# n3mo

Строит граф символов и зависимостей кодовой базы без нейросетей при индексации. Помогает оценить зону поражения перед рефакторингом функций.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 26
- Автор: RajX-dev
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/RajX-dev/N3MO
- Обновлён: 2026-09-18
- HTML: https://affpapa.org/nevibecode/mcp/n3mo

## Что делает

Сервер парсит абстрактные синтаксические деревья через Tree-sitter и складывает связи вызовов в реляционную базу PostgreSQL. Индексация выполняется детерминированно. Векторные эмбеддинги и запросы к языковым моделям на этапе разбора не используются, поэтому граф остаётся точным. Архитектура поддерживает 27 синтаксических грамматик.

Инструмент позволяет ассистенту рекурсивно обходить цепочки вызовов через SQL-запросы CTE. Вместо текстового поиска по совпадению строк модель видит реальные зависимости между классами и функциями. Для локального запуска требуются Docker и среда Python версии 3.10 или новее.

Исходный код распространяется по лицензии PolyForm Noncommercial 1.0.0, поэтому использовать сервер в коммерческих проектах без отдельной платной лицензии запрещено.

## Требования
- Нужно: Python и uv (команды через uvx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add n3mo -- uvx n3mo
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from n3mo <команда>

### Codex

**Командой платформы**
```bash
codex mcp add n3mo -- uvx n3mo
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from n3mo <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "n3mo": {
            "command": "uvx",
            "args": [
                "n3mo"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from n3mo <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "n3mo": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "n3mo"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from n3mo <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add n3mo uvx n3mo
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from n3mo <команда>

## Когда брать
- Найти все прямые и транзитивные вызовы функции перед её правкой
- Определить потенциальные поломки при изменении интерфейса класса
- Исследовать иерархию вызовов в незнакомом репозитории
- Передать языковой модели структурный граф связей вместо текстовых выжимок

## Примеры запросов агенту
- Покажи зону поражения и цепочку зависимостей, если я перепишу функцию auth_handler.
- Найди все места в проекте, где транзитивно вызывается метод parse_token.
- Построй дерево связей для модуля биллинга на основе графа вызовов.

## Похожие
- [graphify](https://affpapa.org/nevibecode/skills/graphify.md) — скилл · 2000 установок
- [jCodemunch MCP](https://affpapa.org/nevibecode/mcp/jcodemunch-mcp.md) — MCP-сервер · ★ 2809
- [Octocode](https://affpapa.org/nevibecode/mcp/octocode.md) — MCP-сервер · ★ 518
- [MPM-Coding](https://affpapa.org/nevibecode/mcp/mpm-coding.md) — MCP-сервер · ★ 17
- [repo2graph](https://affpapa.org/nevibecode/mcp/repo2graph.md) — MCP-сервер · ★ 9
- [gitnexus-guide](https://affpapa.org/nevibecode/skills/gitnexus-guide.md) — скилл · 809 установок

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
