Lachesis — MCP-сервер для Claude Code: карта кода и поиск утечек
Строит граф свойств кода для C, Python и TypeScript и отвечает на вопросы о потоках данных. Пригодится, когда нужно понять, куда уходит значение и может ли внешний ввод дойти до опасного места.
claude mcp add lachesis -- uvx lachesis-cpgЧто делает Lachesis
Lachesis читает проект так, как это делает компилятор, а не по текстовым шаблонам. На выходе — карта: узлы, связи, вызовы функций, пути значений. По ней можно спросить, кто вызывает функцию, что она вызывает, откуда пришло значение и куда оно уходит дальше. Отдельный проход ищет места, где внешний ввод добирается до чувствительного вызова без проверки. Это не приговор, а зацепка для разбора.
Работает в трёх режимах: команда lachesis в терминале, библиотека Python и MCP-сервер для агента. В терминале шаги разбиты на проходы — lachesis build, lachesis enrich, lachesis analyze, а lachesis explain показывает все доказательства по одной точке. Первое сканирование проекта идёт долго, дальше карта лежит в кэше ~/.lachesis/cache. Можно скормить и git-ссылку: код скачается во временную папку и удалится после разбора.
Для MCP-режима запускайте lachesis mcp из той же папки, где строилась карта, либо без аргумента — тогда агент соберёт её сам. Пакет ставится через python -m pip install lachesis-cpg, а в конфигурации клиента можно указать uvx, чтобы не ставить ничего заранее. Есть вариант с Docker-образом, где все три языка уже внутри. Каждый ответ идёт с оценкой уверенности: часть связей точные, часть — осторожное предположение, и сервер об этом говорит прямо.
Какие задачи решает
- найти, кто вызывает функцию и что вызывает она сама
- проследить путь значения от источника до приёмника
- проверить, доходит ли внешний ввод до вызова базы данных
- разобрать все доказательства по подозрительной точке кода
- поймать двойное освобождение или использование после освобождения в C
Примеры запросов агенту
- Запусти
lachesis mcp ./my-projectи покажи зацепки по этому проекту - Кто вызывает
handleWebhookи какие проверки стоят на пути? - Построй карту для
./my-projectи объясни точкуtree.c:1487
Как установить Lachesis
Командой платформы
claude mcp add lachesis -- uvx lachesis-cpguvx запускает команду с именем пакета; если в README она другая — uvx --from lachesis-cpg <команда>
Командой платформы
codex mcp add lachesis -- uvx lachesis-cpguvx запускает команду с именем пакета; если в README она другая — uvx --from lachesis-cpg <команда>
Файл настроек
{
"mcpServers": {
"lachesis": {
"command": "uvx",
"args": [
"lachesis-cpg"
]
}
}
}uvx запускает команду с именем пакета; если в README она другая — uvx --from lachesis-cpg <команда>
Файл настроек
{
"servers": {
"lachesis": {
"type": "stdio",
"command": "uvx",
"args": [
"lachesis-cpg"
]
}
}
}uvx запускает команду с именем пакета; если в README она другая — uvx --from lachesis-cpg <команда>
Командой платформы
gemini mcp add lachesis uvx lachesis-cpguvx запускает команду с именем пакета; если в README она другая — uvx --from lachesis-cpg <команда>
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о Lachesis
Как установить Lachesis в Claude Code?
Одной командой: claude mcp add lachesis -- uvx lachesis-cpg. Она прописывает сервер в конфигурацию Claude, и дальше агент запускает его сам.
Что делает Lachesis?
Собирает граф свойств кода для C, Python и TypeScript/JavaScript и отвечает по нему на вопросы: вызовы, потоки значений, указатели, достижимость опасных мест. Работает как команда терминала, библиотека Python и MCP-сервер.
Нужно ли ставить пакет заранее?
Нет, если в конфигурации указан uvx — он подтянет lachesis-cpg при первом запуске. Для терминального режима пакет ставят через python -m pip install lachesis-cpg.