На проекте apache/superset объемом около 400 тысяч строк кода на Python и TypeScript были протестированы четыре MCP-сервера для Claude Code: filesystem (grep + read), graphlens (структурный граф), serena (LSP) и codegraph (конкурентный графовый продукт). За 936 прогонов с тремя моделями (Haiku, Sonnet, Opus) и 26 задачами измерялись точность, процент завершения и стоимость в токенах.

Методология эксперимента строилась на принципе единственной переменной: все параметры, кроме MCP-сервера, были зафиксированы. Встроенные инструменты Claude Code (Read, Grep, Bash) отключались, чтобы агент не мог их использовать вместо тестируемого сервера. Каждая задача выполнялась с тремя разными сидами для статистической достоверности.

РукаПровайдер контекста (MCP-сервер)Шаг индексации
filesystem@modelcontextprotocol/server-filesystem (read_file + grep)нет
graphlensграф graphlens поверх MCPgraphlens analyze
serenaSerena (LSP)прогрев LSP-воркспейса
codegraphконкурент на графахcodegraph init

Результаты показали, что на простых задачах (например, «где определен X» или «от чего наследуется Y») все четыре инструмента демонстрируют одинаковую точность около 1.0. Разница наблюдается только в стоимости: grep обходится примерно в три раза дешевле графа или LSP. Однако на сложных задачах — оценка радиуса поражения, поиск всех переопределений, разрешение неоднозначных имен — grep резко теряет эффективность: точность падает до 0.71, до финиша доходит лишь 83% прогонов, а стоимость выросших прогонов увеличивается в 10–23 раза. Структурные инструменты и LSP сохраняют стабильную точность и низкую стоимость.

На задачах оценки влияния изменений и разрешения неоднозначных имен grep показал точность 0.71 и завершил лишь 83% прогонов, а стоимость выросла в 10–23 раза.

Автор отмечает, что если бы он мерил только простые задачи, вывод был бы «grep справляется, граф не нужен». Если бы только сложные — «grep не нужен, берите граф». Реальность лежит посередине: оптимальный инструмент зависит от того, какую работу вы поручаете агенту. Для повседневных запросов grep остаётся экономичным, для глубокого анализа кода структурные решения предпочтительнее.