
Code Pathfinder
shivasuryaApache-2.0
135 звёзд16 форков
Code Pathfinder — это MCP-сервер, который даёт AI-ассистенту инструменты статического анализа кода на Python и Go. Сервер строит граф вызовов (call graph), отслеживает потоки данных между файлами и функциями, находит уязвимости и определяет типы (type inference). В основе сервера — открытый SAST-движок, который парсит код в абстрактные синтаксические деревья (AST) и строит графы зависимостей переменных (VDG).
В отличие от обычных статических анализаторов, Code Pathfinder v2.0 специально создан для межфайлового анализа (cross-file dataflow). Он отслеживает заражённые данные по всей цепочке вызовов, от источника до опасного приёмника. Такая глубина анализа помогает находить сложные уязвимости — например, SQL-инъекцию, где пользовательский ввод проходит через несколько слоёв абстракции в разных файлах, прежде чем попасть в опасный контекст.
Установка
uvx codepathfinderХарактеристики
Общее
- СтатусСообщество
- Разработчикshivasurya
- ЛицензияApache-2.0
Технологии
- ЯзыкиGo
- Транспортstdio
Описание
Возможности
- Построение графа вызовов для любой функции — AI видит, откуда вызывается функция и куда она зовёт дальше.
- Поиск символов (переменных, функций, классов) по всему проекту с учётом контекста.
- Межфайловый taint analysis — отслеживание заражённых данных от источника до опасного приёмника (sink).
- Вывод типов (type inference) для Python и Go.
- Запуск сканирования на уязвимости (SAST) по предустановленным правилам для Python, Go и Docker.
- Получение кода конкретной функции вместе с картой её зависимостей от других функций.
- Работа без конфигурационных файлов и API-ключей — достаточно передать путь к проекту.
- Запрос описания логики работы модуля в связке с другими частями кодовой базы.
Как подключить
Установите пакет через uvx:
uvx codepathfinderДобавьте конфигурацию в ваш MCP-клиент (например, Claude Desktop):
{ "mcpServers": { "codepathfinder": { "command": "uvx", "args": ["codepathfinder"] } } }После добавления конфигурации перезапустите клиент.
Примеры запросов
- «Найди уязвимости в проекте. Покажи цепочку источник-приёмник для SQL-инъекций.»
- «Построй граф вызовов для функции handle_login в файле auth.py. Покажи все дочерние и родительские функции.»
- «Проверь Dockerfile на уязвимости и плохие практики безопасности.»
- «Объясни, как работает функция process_payment, на основе её кода и зависимостей.»
Технические детали
- Язык реализации: Go
- Транспорт: stdio
- Лицензия: Apache-2.0
- Поддерживаемые языки кода: Python, Go, Docker
- Совместимые клиенты: Claude Desktop, любой MCP-клиент