trace-mcp
nikolai-vysotskyi/trace-mcpMCP-сервер для Claude Code и Codex: строит кросс-языковой граф зависимостей с поддержкой 58 фреймворков. Один вызов инструмента заменяет ~42 минуты агентского исследования — 80 Grep-запросов и 190 чтений файлов.
Установка
npm install -g trace-mcpREADME
Ваш AI-агент читает
UserController.phpи видит класс. trace-mcp читает его и видит маршрут → контроллер → Eloquent-модель → Inertia render → Vue-страницу — в одном графе.Спросите «что сломается, если изменить эту модель?» — вместо 80 Grep-запросов и 190 чтений файлов агент вызывает
get_change_impactодин раз и получает радиус поражения по PHP, Vue, миграциям и DI. 58 интеграций с фреймворками, 81 язык, 138 инструментов, сокращение токенов до 99%.
Что trace-mcp делает для вас
| Вы спрашиваете | trace-mcp отвечает | Как |
|---|---|---|
| «Что сломается, если изменить эту модель?» | Радиус поражения по языкам + оценка риска + связанные архитектурные решения | get_change_impact — граф обратных зависимостей + память решений |
| «Почему аутентификация реализована именно так?» | Реальная запись решения с обоснованием и компромиссами | query_decisions — поиск по графу знаний решений, привязанному к коду |
| «Начинаю новую задачу» | Оптимальный подграф кода + релевантные прошлые решения + предупреждения о тупиках | plan_turn — маршрутизатор первого хода с обогащением решениями |
| «Что мы обсуждали про GraphQL в прошлом месяце?» | Дословные фрагменты разговора со ссылками на файлы | search_sessions — FTS5-поиск по всему содержимому прошлых сессий |
| «Покажи поток запроса от URL до отрендеренной страницы» | Route → Middleware → Controller → Service → View с маппингом пропсов | get_request_flow — обход рёбер с учётом фреймворка |
| «Найди весь непокрытый тестами код в этом модуле» | Символы, классифицированные как «недостижимые» или «импортированные, но никогда не вызываемые в тестах» | get_untested_symbols — маппинг тестов к исходникам |
| «Как изменение этого API повлияет на другие сервисы?» | Клиентские вызовы между подпроектами с оценками уверенности | get_subproject_impact — обход топологического графа |
Три вещи, которых не делает ни один другой инструмент:
-
Рёбра с учётом фреймворка — trace-mcp понимает, что
Inertia::render('Users/Show')связывает PHP с Vue, что@Injectable()создаёт DI-зависимость, что$user->posts()означает таблицуpostsиз миграций. 58 интеграций: 15 фреймворков, 7 ORM, 13 UI-библиотек. -
Память решений, привязанная к коду — когда вы записываете «выбрали PostgreSQL ради поддержки JSONB», это привязывается к
src/db/connection.ts::Pool#class. Когда кто-то запускаетget_change_impactдля этого символа, он видит решение. MemPalace хранит решения как текст; trace-mcp связывает их с графом зависимостей. -
Межсессионный интеллект — прошлые сессии анализируются на предмет решений и индексируются для поиска. При старте новой сессии
get_wake_upдаёт ориентацию примерно в 300 токенов;plan_turnпоказывает релевантные прошлые решения для вашей задачи;get_session_resumeпереносит структурный контекст из предыдущих сессий.
Проблема
AI-агенты для написания кода понимают языки, но слепы к фреймворкам.
Они не знают, что Inertia::render('Users/Show', $data) связывает Laravel-контроллер с resources/js/Pages/Users/Show.vue. Они не знают, что $user->posts() означает таблицу posts, определённую три миграции назад. Они не могут отследить запрос от URL до отрендеренного пикселя.
Поэтому они читают файлы грубой силой, угадывают связи и полностью упускают кросс-языковые рёбра. Чем крупнее проект, тем хуже.
Решение
trace-mcp строит кросс-языковой граф зависимостей из вашего исходного кода и предоставляет его через Model Context Protocol — формат плагинов, который понимают Claude Code, Cursor, Windsurf и другие AI-агенты для написания кода. Любой MCP-совместимый агент получает понимание на уровне фреймворка из коробки.
| Без trace-mcp | С trace-mcp |
|---|---|
| Агент читает 15 файлов, чтобы понять фичу | get_task_context — оптимальный подграф кода за один вызов |
| Агент не знает, какую Vue-страницу рендерит контроллер | Рёбра routes_to → renders_component → uses_prop |
| «Что сломается, если изменить эту модель?» — агент угадывает | get_change_impact обходит обратные зависимости по всем языкам |
| Схема БД? Агенту нужна работающая база данных | Миграции разобраны — схема восстановлена из кода |
| Несоответствие пропсов между PHP и Vue? Обнаруживается в продакшне | Обнаруживается во время индексации — PHP-данные vs. defineProps |
Десктопное приложение
trace-mcp поставляется с опциональным Electron-приложением (packages/app), которое предоставляет визуальный интерфейс над тем же индексом, что использует MCP-сервер. Оно управляет несколькими проектами, подключает MCP-клиентов и предоставляет GPU-ускоренный обозреватель графа — всё без открытия терминала.
Проекты и клиенты. Главное окно отображает проиндексированные проекты с актуальным статусом (Ready / индексирование / ошибка) и элементами управления для переиндексации и удаления. Вкладка MCP Clients определяет установленных клиентов (Claude Code, Claw Code, Claude Desktop, Cursor, Windsurf, Continue, Junie, JetBrains AI, Codex) и подключает к ним trace-mcp одним кликом.