chiasmus
- title
- chiasmus
- type
- toolbox
- summary
- MCP-сервер для анализа достижимости, мёртвого кода и влияния правок через tree-sitter и Prolog
- tags
- typescript, mcp, code-analysis, prolog, ai-agents
- language
- TypeScript
- license
- Unknown
- created
- 2026-04-09
- updated
- 2026-04-09
- lang
- ru
- translation_of
- chiasmus
- source_updated
- 2026-04-09
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
MCP-сервер, предоставляющий LLM-ассистентам для написания кода движок формального рассуждения для структурного анализа кода. Вместо того чтобы итеративно искать через grep по файлам, LLM делает один вызов инструмента и получает строго доказанный ответ о достижимости, мёртвом коде, циклах зависимостей или анализе влияния изменений.
Как это работает
Пайплайн состоит из четырёх этапов:
- Парсинг через tree-sitter - исходные файлы превращаются в типизированные AST с выделенными определениями методов, связями вызовов, импортами и экспортами.
- Генерация фактов Prolog - структурные связи преобразуются в декларативные факты Prolog (например,
calls(moduleA, funcX, moduleB, funcY).). - Анализ на основе правил - встроенные правила Prolog обеспечивают транзитивную достижимость с защитой от циклов, обнаружение мёртвого кода и анализ зависимостей.
- Выполнение запросов - механизм бэктрекинга Prolog исчерпывающе отвечает на запрос и возвращает результат в едином ответе MCP-инструмента.
Это паттерн neurosymbolic-ai: LLM отвечает за понимание естественного языка и решает, что запросить, а символьный солвер выполняет полный обход графа и проверку ограничений.
На какие вопросы может ответить
- Транзитивная достижимость: "Может ли пользовательский ввод дойти до этого SQL-запроса?" - отслеживает цепочки вызовов между файлами и модулями.
- Обнаружение мёртвого кода: функции, которые никогда не вызываются ни из одной точки входа.
- Обнаружение циклов: циклические зависимости вызовов.
- Анализ влияния: всё, что зависит от изменённого метода.
Экономика токенов
Транзитивный анализ на пять шагов через grep может обойтись примерно в 2 500 токенов за несколько вызовов инструментов, при этом LLM рассуждает на каждом шаге. Chiasmus отвечает на тот же вопрос примерно за 200 токенов за один вызов инструмента - Prolog-солвер берёт тяжёлые вычисления на себя и выполняет их локально.
Установка
claude mcp add chiasmus -- npx -y chiasmus
Предоставляет девять MCP-инструментов для анализа графов, формальной верификации, создания шаблонов и автономного решения задач.
Ограничения
Зависит от наличия грамматики tree-sitter для целевого языка. Генерация фактов Prolog фиксирует структуру графа вызовов, но не поведение во время выполнения (рефлексия, динамическая диспетчеризация, eval). Ответы корректны для статической структуры, но не полны для языков с активным использованием метапрограммирования.