# Sem MCP server

> Get entity-level diffs, impact analysis, blame and code context from git repositories, parsed with tree-sitter across 28 languages.

- Listing: https://mcp.tc/i/sem
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: no API key needed
- Category: [Developer Tools](https://mcp.tc/c/developer-tools)
- Vendor: Ataraxy Labs
- Homepage: <https://ataraxy-labs.com>
- Repository: <https://github.com/Ataraxy-Labs/sem>
- Package: npm `@ataraxy-labs/sem`

## About

Sem is a semantic version control tool that sits on top of Git. It parses code with tree-sitter, extracts functions, classes and methods as entities, and reports which entities changed instead of which lines. Through MCP, agents get the same verbs as the command line: find entities, list callers and references, run impact analysis, check a change, and produce review certificates.

It runs locally over stdio from the @ataraxy-labs/sem npm package, or from the sem binary with the mcp subcommand. It works in any Git repository with no setup and needs no API key. Cloud-backed queries are optional and opt-in per repository.

## What it can do

- Find functions, classes and methods by name
- List callers and references of an entity
- Run impact analysis and find affected tests
- Diff at entity level instead of by line
- Check a change with the project's own compiler, linter and tests
- Generate a review certificate for a commit range
- View entity history and last-changed blame

## Example prompts

- "Which functions changed between main and HEAD in this repo?"
- "Find who calls parse\_config and which tests it affects."
- "Run a semantic check on my uncommitted changes."
- "Generate a review certificate for main..HEAD."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio sem -- npx -y @ataraxy-labs/sem
```

2. Start Claude Code and type `/mcp`. **sem** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "sem": {
      "command": "npx",
      "args": [
        "-y",
        "@ataraxy-labs/sem"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

Needs Node.js on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=sem&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBhdGFyYXh5LWxhYnMvc2VtIl19>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "sem": {
      "command": "npx",
      "args": [
        "-y",
        "@ataraxy-labs/sem"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=sem&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40ataraxy-labs%2Fsem%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"sem","type":"stdio","command":"npx","args":["-y","@ataraxy-labs/sem"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "sem": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@ataraxy-labs/sem"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "sem": {
      "command": "npx",
      "args": [
        "-y",
        "@ataraxy-labs/sem"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add sem -- npx -y @ataraxy-labs/sem
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.sem]
command = "npx"
args = ["-y", "@ataraxy-labs/sem"]
```

Needs Node.js on your computer.

### Gemini CLI

```bash
gemini mcp add sem npx -- -y @ataraxy-labs/sem
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "sem": {
      "command": "npx",
      "args": [
        "-y",
        "@ataraxy-labs/sem"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Node.js on your computer.

## Recent changes

- 2026-10-06 21:22 UTC: Tracking started: version 0.27.0. Source: automatic check.

More on the History tab, with descriptions before and after for the newest entries: https://mcp.tc/i/sem#history (Atom feed: https://mcp.tc/i/sem/history.xml). It records what mcp.tc's anonymous checks saw, every 3 hours where the tool list can be read without sign-in; it is not a security review.

## Details

- Server version: 0.27.0
- Last checked: 2026-10-05
- Listed: 2026-10-05
- Updated: 2026-10-05

---
Source: https://mcp.tc/i/sem (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
