PMAT MCP
Бинарник на Rust, он же MCP-сервер: сложность, технический долг, мертвый код и контекст репозитория в Claude Code и Cline.
- 170 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Читает исходники и историю git; `kaizen` и хуки меняют репозиторий, а HTTP-режим открывает чтение путей процесса по токену.
Установка
- Работает в
Ручная установка
cargo install pmatКоманда из README ставит бинарник `pmat`; нужен Rust.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Читает исходники и историю git; `kaizen` и хуки меняют репозиторий, а HTTP-режим открывает чтение путей процесса по токену.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
PMAT (Pragmatic Multi-language Agent Toolkit) анализирует кодовую базу на 20 с лишним языках и отдает агенту проверяемые числа вместо догадок. Около 20 MCP-инструментов считают сложность и Big-O, находят мертвый код, незавершенные места (`analyze_satd`) и недостижимые функции, строят граф зависимостей, ищут похожий код и собирают сжатый контекст проекта. Консольная часть добавляет оценку технического долга от A+ до F, мутационное тестирование, оценку здоровья репозитория и поиск по истории git. Проверка `pmat verify` прогоняет те же шаги, что и CI: формат, сложность, SATD, clippy и тесты. Агент правит код, запускает `pmat verify --format json`, чинит красное и коммитит на зеленом. Один бинарник говорит тремя способами: обычная команда, MCP по stdio (`pmat --mode mcp`) и MCP по HTTP с токеном (`pmat serve --transport http`).
Для кого. Разработчикам на Rust, Python, TypeScript и Go, у которых агент пишет код быстрее, чем команда успевает следить за сложностью и долгом.
Подходит, если
- Новый репозиторий открыт в Claude Code, и перед правками нужна карта архитектуры и сжатый контекст.
- Агент закончил рефакторинг, а до коммита хочется прогнать те же проверки, что и в CI.
- Нужно найти функции с наибольшей сложностью и мертвый код перед чисткой.
- Команда отслеживает технический долг и блокирует PR при падении оценки.
- Тесты зеленые, но уверенности нет, и качество проверяют мутационным тестированием.
Не подходит, если
- Небольшой скрипт: сложность и долг на таком объеме не стоят установки.
- Достаточно одного-двух инструментов: у PMAT около 20 MCP-инструментов и больше сотни консольных команд.
- Сервер собираются открыть в сеть без токена: HTTP-режим требует токен не короче 16 символов и без него не запустится.
Пример запроса к агенту
Подключись к pmat, найди пять самых сложных функций в проекте и мертвый код, потом предложи план рефакторинга и прогони `pmat verify`.MCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Переменные окружения
PMAT_MCP_HTTP_TOKENсекрет- Токен для режима HTTP, не короче 16 символов; для stdio не нужен.
Ограничения
Собирается из исходников через `cargo install pmat`, нужен Rust 1.91 или новее. HTTP-режим отвечает на корневой путь `/`, пути `/mcp` и эндпоинта `/health` нет. Токен `PMAT_MCP_HTTP_TOKEN` обязателен, длина от 16 символов. Значения `--transport` кроме `http` пока не реализованы. Сервер по HTTP может читать любой путь, доступный процессу, поэтому слушает `127.0.0.1`, пока не указан `--host`. Команды `pmat kaizen` и хуки меняют репозиторий; сначала запускайте `--dry-run`.
Как отключить. Выполните `claude mcp remove pmat`, остановите `pmat serve`, если запускали HTTP-режим, и удалите хуки командой из `pmat hooks status`. Сам бинарник убирает `cargo uninstall pmat`.
Частые вопросы
Как подключить PMAT к Claude Code?
Выполните `cargo install pmat`, затем `claude mcp add --scope user pmat -- pmat --mode mcp`. Команда `claude mcp list` должна показать `pmat` со статусом Connected.
Чем stdio отличается от HTTP?
Stdio запускает pmat как дочерний процесс клиента, без порта и токена. HTTP нужен, когда один долгоживущий сервер обслуживает несколько клиентов или другую машину: запуск `pmat serve --transport http --port 8765` с токеном в `PMAT_MCP_HTTP_TOKEN`.
Как работает проверка перед коммитом?
`pmat verify --format json` прогоняет форматирование, сложность, SATD, clippy и тесты и останавливается на первой ошибке. Результат в JSON агент читает сам и чинит красный шаг.
Какие языки поддерживаются?
Более 20: Rust, TypeScript, Python, Go, Java, C и C++, Lua, Lean и другие. Список языков для мутационного тестирования длиннее и включает Kotlin, Swift, PHP, SQL и Scala.
Что делает pmat kaizen?
Сканирует проект, применяет безопасные автоисправления и коммитит их. Сначала запустите `pmat kaizen --dry-run`: он только показывает находки, а `--push` отправит изменения на удаленный репозиторий.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыRust-бинарник для агентов и терминала: через tree-sitter находит определение символа, его вызовы и зависимости файла
rust-analyzer MCP — навигация по коду Rust для агента
r3bl-rust-analyzer-mcp-server
MCP-сервер на потоках Rust: агент получает подсказки, переходы к определениям, ссылки, форматирование и диагностику компилятора от rust-analyzer
Три скилла и конфиг clippy: агент пишет, проверяет и переносит код на идиоматичный Rust, а правила проходят в CI
MCP-сервер и CLI для исследования кода: поиск и разбор по вашему проекту и по всему GitHub с экономией токенов
Локальный граф знаний о коде с историей версий: MCP-сервер отвечает агенту, кто вызывает функцию и что сломается от правки
MCP сервер структурного поиска по коду для агентов: находит нужный файл по смыслу запроса и работает локально
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| PMAT (эта карточка) | нет | не нужна | 170 | |
| Repomix | нет | не нужна | 29 172 | упаковывает репозиторий в один файл для модели; PMAT считает сложность и долг и отдает их MCP-инструментами |
| Code2Prompt | нет | 7 746 | собирает кодовую базу в промпт с деревом файлов; здесь добавлены оценка долга, мутационные тесты и сервер MCP |
Коротко о README
README делится на установку, три способа запуска MCP и обзор команд: контекст, долг, мутационные тесты, оценка репозитория, хуки и проверки соответствия. Отдельный блок перечисляет четыре неочевидные особенности HTTP-режима.