# n3mo

Builds a symbol knowledge graph directly from source code ASTs without embedding models. Helps trace the blast radius of any refactor before editing.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 26
- Author: RajX-dev
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/RajX-dev/N3MO
- Updated: 2026-09-18
- HTML: https://affpapa.org/en/nevibecode/mcp/n3mo

## What it does

The server parses source files using 27 Tree-sitter grammars and models call hierarchies inside PostgreSQL. Indexing is deterministic. It requires zero LLM API calls during the ingestion phase, which avoids index drift and semantic guesswork. You get exact relations instead of fuzzy text matches.

Agents query call trees and parent-child links through recursive CTE operations. Instead of piping raw grep results into the prompt window, your tool inspects the actual dependency paths. Running the local stack requires Docker and Python 3.10 or newer.

The project is governed by the PolyForm Noncommercial 1.0.0 license, meaning commercial deployments require a paid license from the author.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add n3mo -- uvx n3mo
```
uvx runs the command named after the package; if the README names another one, use uvx --from n3mo <command>

### Codex

**Platform CLI**
```bash
codex mcp add n3mo -- uvx n3mo
```
uvx runs the command named after the package; if the README names another one, use uvx --from n3mo <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "n3mo": {
            "command": "uvx",
            "args": [
                "n3mo"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from n3mo <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "n3mo": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "n3mo"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from n3mo <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add n3mo uvx n3mo
```
uvx runs the command named after the package; if the README names another one, use uvx --from n3mo <command>

## When to use it
- Map direct and transitive callers for a modified function
- Calculate the blast radius of structural changes across files
- Inspect component hierarchies without manual code tracing
- Supply AI coding assistants with exact syntax-based call graphs

## Example prompts
- Check the blast radius across downstream callers before I edit validate_session.
- Trace all transitive references to the process_payment function.
- Show the parent-child relationship graph for the authentication module.

## Similar
- [Front-End Checklist](https://affpapa.org/en/nevibecode/mcp/front-end-checklist.md) — MCP server · ★ 74559
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [Serena MCP: the IDE for your agent](https://affpapa.org/en/nevibecode/mcp/serena-mcp-the-ide-for-your-agent.md) — MCP server · ★ 30677
- [Repomix](https://affpapa.org/en/nevibecode/mcp/repomix.md) — MCP server · ★ 29027
- [Repowise](https://affpapa.org/en/nevibecode/mcp/repowise.md) — MCP server · ★ 7891
- [sem](https://affpapa.org/en/nevibecode/mcp/sem.md) — MCP server · ★ 3422

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
