Skip to main content
Glama

safe-fix-mcp

Настоящий MCP-сервер, который находит мёртвый код в Python-репозитории и предлагает ветку + PR для того единственного класса находок, который действительно безопасно удалять автоматически: неиспользуемые импорты в строках с одним именем. Всё остальное, что он находит — неиспользуемые функции, классы, неиспользуемые зависимости — остаётся только в отчёте. Мерджит всегда человек. Этот инструмент сам никогда ничего не мерджит.

Зачем это существует

Большинство инструментов поиска «мёртвого кода» останавливаются на отчёте. Те, что идут дальше, обычно удаляют без страховки. Этот не делает ни того, ни другого: он создаёт настоящий, минимальный, проверяемый PR, который проходит полный набор тестов целевого репозитория после удаления — не эвристика, а настоящий запуск pytest. Если набор тестов падает, ничего не коммитится и не пушится; репозиторий остаётся ровно в том состоянии, в каком был.

Related MCP server: code-review-mcp-server

Инструменты

scan_dead_code(repo_path=".", min_confidence=60)

Только чтение. Запускает vulture (мёртвый код) и deptry (проблемы с зависимостями) и возвращает читаемый список находок. Ничего не изменяет.

propose_removal_pr(repo_path=".")

  • Отказывается работать при грязном рабочем дереве — никогда не редактирует поверх незакоммиченной работы.

  • Отбирает неиспользуемые импорты с уверенностью vulture ≥90%, только в строках с одним именем (строка from x import y, z пропускается — удаление всей строки молча удалило бы и z).

  • Создаёт настоящую ветку, удаляет подходящие импорты, запускает настоящий полный набор тестов репозитория.

  • Только при реальном прохождении: коммитит, пушит и пытается открыть PR через gh pr create.

  • Если gh не установлен/не авторизован, ветка всё равно коммитится и пушится по-настоящему — деградирует только создание PR, а реальная ошибка возвращается, чтобы вы могли открыть его вручную.

Установка

pip install -e .

Добавьте в конфиг вашего MCP-клиента (например, Claude Code):

claude mcp add safe-fix-mcp -- safe-fix-mcp

Или запустите напрямую для локального тестирования:

python -m safe_fix_mcp.server

Требования

  • Python ≥ 3.10

  • git в PATH

  • gh (GitHub CLI) в PATH и авторизованный, если вы хотите, чтобы propose_removal_pr действительно открывал PR — без него ветка всё равно запушится по-настоящему, а инструмент подскажет открыть PR вручную.

Разработка

pip install -e ".[dev]"
pytest

Известное ограничение

vulture помечает сами scan_dead_code/propose_removal_pr как «неиспользуемые» — это известный класс ложных срабатываний, а не настоящий баг: они диспетчеризуются декоратором @mcp.tool() во время выполнения и нигде в исходном коде не вызываются напрямую, поэтому статический анализ графа вызовов не видит настоящего вызывающего (сам MCP-фреймворк).

Проверка по-настоящему

scripts/verify_real_client.py запускает упакованный сервер как настоящий дочерний процесс и общается с ним через настоящий mcp.client.ClientSession — тот же путь, что использует реальный MCP-клиент. Полезно как смоук-тест после любых изменений:

python scripts/verify_real_client.py
A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.

  • Autonomous dev team steered from chat: plain-English requests in, tested merged PRs out.

  • Generate SBOMs, scan vulnerabilities, and analyze dependencies from local projects or Git repos.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pamela-0/safe-fix-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server