MCP-сервер Graphify отдаёт 10 инструментов поверх knowledge graph, построенного из вашего репозитория, чтобы любой MCP-клиент (Claude Code, Cursor, Copilot и остальные) читал граф нативно вместо поиска по файлам.
Запуск сервера
Сервер входит в состав CLI и читает graph.json, который создал /graphify . (по умолчанию graphify-out/graph.json). По умолчанию он работает через stdio (правильный режим для одного ассистента) или Streamable HTTP, когда несколько ассистентов или коллег должны разделять один граф. HTTP-транспорт может требовать ключ через --api-key (или переменную GRAPHIFY_API_KEY).
# stdio (по умолчанию), один ассистент, один граф:
$ python -m graphify.serve graphify-out/graph.json
# общий HTTP, один сервер, много клиентов:
$ python -m graphify.serve graphify-out/graph.json --transport http --port 8080
# также доступен как консольный скрипт:
$ graphify-mcp graphify-out/graph.json
Подключение клиента
Большинство ассистентов подхватывают сервер автоматически: graphify install прописывает его в обнаруженные ассистенты. Для ручной регистрации в Claude Code добавьте в .mcp.json в корне проекта; остальные MCP-клиенты принимают ту же команду в своём формате конфига.
{
"mcpServers": {
"graphify": {
"command": "python",
"args": ["-m", "graphify.serve", "graphify-out/graph.json"]
}
}
}
Каждый инструмент ниже также принимает необязательный параметр project_path (абсолютный путь к другому проекту с graphify-out/graph.json), поэтому один запущенный сервер может отвечать по целому workspace репозиториев. Если опустить — сервер отвечает по графу, с которым запущен.
Запрос и обход
Базовая четвёрка: задать вопрос, инспектировать узел, обойти соседей или проследить путь между двумя концепциями. Результаты возвращаются текстовым контекстом с цитатами file:line, каждое ребро помечено EXTRACTED, INFERRED или AMBIGUOUS.
query_graph
Поиск по графу на естественном языке с обходом BFS или DFS. Возвращает релевантные узлы и рёбра текстовым контекстом — тот же вывод, что печатает graphify query.
| Параметр | Описание |
|---|---|
question (обязательный) | Вопрос на естественном языке или поиск по ключевым словам |
mode (по умолчанию bfs) | bfs для широкого контекста, dfs для конкретного пути |
depth (по умолчанию 3) | Глубина обхода (1–6) |
token_budget (по умолчанию 2000) | Лимит токенов вывода |
context_filter (необязательный) | Явный фильтр контекста рёбер, например ["call", "field"] |
get_node
Полные детали одного узла по метке или ID: что это, где живёт, его сообщество и рёбра.
| Параметр | Описание |
|---|---|
label (обязательный) | Метка или ID узла для поиска |
get_neighbors
Все прямые соседи узла с деталями рёбер: на один шаг во всех направлениях.
| Параметр | Описание |
|---|---|
label (обязательный) | Метка или ID узла |
relation_filter (необязательный) | Только рёбра этого типа отношений |
shortest_path
Кратчайший путь между двумя концепциями в графе: как две части кодовой базы соединены, шаг за шагом.
| Параметр | Описание |
|---|---|
source (обязательный) | Метка или ключевое слово источника |
target (обязательный) | Метка или ключевое слово цели |
max_hops (по умолчанию 8) | Максимум шагов для рассмотрения |
Структура и обзор
Для ориентации: сообщества графа, самые связные узлы и сводная статистика — инструменты «покажи форму этой кодовой базы», которые ассистент вызывает первым в незнакомом репозитории.
get_community
Все узлы одного сообщества (кластеров, на которые граф организован), по ID сообщества.
| Параметр | Описание |
|---|---|
community_id (обязательный) | ID сообщества, индексируется с 0 по размеру |
god_nodes
Самые связные узлы графа: ключевые абстракции, на которых держится всё остальное.
| Параметр | Описание |
|---|---|
top_n (по умолчанию 10) | Сколько узлов вернуть |
graph_stats
Сводная статистика: число узлов, рёбер, сообществ и разбивка доверия EXTRACTED / INFERRED / AMBIGUOUS.
| Параметр | Описание |
|---|---|
| нет параметров | — |
Pull request’ы
Тот же анализ влияния на граф, что и у graphify prs, отданный агентам: какие открытые PR что затрагивают и в каком порядке их ревьюить.
list_prs
Открытые GitHub PR со статусом CI, состоянием ревью и влиянием на граф: какие сообщества затрагивает каждый PR и его «радиус поражения». Полезно перед стартом работы — проверить, не покрывает ли уже этот PR нужную область.
| Параметр | Описание |
|---|---|
base (необязательный) | Базовая ветка для фильтра (автоопределение, если опущено) |
repo (необязательный) | owner/repo; по умолчанию текущий репозиторий |
get_pr_impact
Детальное влияние одного PR на граф: какие файлы меняет, какие сообщества затрагивает и сколько узелов — для оценки риска мёржа или перекрытия с текущей работой.
| Параметр | Описание |
|---|---|
pr_number (обязательный) | Номер PR для анализа |
repo (необязательный) | owner/repo; по умолчанию текущий репозиторий |
triage_prs
Все «actionable» открытые PR (правильная базовая ветка, не устаревшие) с полными данными влияния на граф, чтобы агент мог рассуждать о приоритете ревью, порядке мёржа и риске конфликтов.
| Параметр | Описание |
|---|---|
base (необязательный) | Базовая ветка для фильтра |
repo (необязательный) | owner/repo; по умолчанию текущий репозиторий |
Ресурсы
Помимо инструментов, сервер публикует MCP-ресурсы — документы только для чтения, которые клиент может подтянуть в контекст: полный GRAPH_REPORT.md, статистику графа, god nodes, неожиданные cross-community связи, аудит доверия и предложенные вопросы для кодовой базы.
Не путать с docs MCP-сервером
Здесь описан graph MCP-сервер — тот, что CLI запускает локально над вашим репозиторием. У Graphify есть отдельный docs MCP-сервер с одним инструментом, search_graphify_docs, для поиска по этой документации из редактора. Другой сервер, другая задача.
Заметка практика: Параметр
project_pathу инструментов — мощная штука для workspace с несколькими репозиториями: один запущенный MCP-сервер отвечает по всем проектам, если у каждого есть своя папкаgraphify-out/. Это удобно, когда ассистент работает сразу над бэкендом и фронтендом, лежащими в разных репозиториях.
Локализованный справочник на основе официальной документации MCP-инструментов Graphify.