Labsco
MCP SERVER

Vibecode Cleaner Fartrun

by ChuprinaDaria

Scan the project your AI assistant is editing — dead code, tech debt, leaked secrets, git hygiene — on your own machine, and give the assistant an undo button plus a list of files it may not touch.

Automated Testing & QA
Summary
An agent can check its own work, and be stopped from touching what matters.

Point it at a project and it returns findings with a file, a line and a severity, produced on your own machine rather than by shipping the code out to a model to read. The other half is the guardrail: a save point before the agent starts, a rollback when it goes wrong, and a frozen-file list that a Claude Code hook enforces rather than merely asks for.

What it is

A scanner for the codebase an AI coding assistant is working in, exposed to that assistant as an MCP server with 29 tools. It reads what is already on disk — source files, git history, config files, dependency manifests — and returns findings that each carry a file, a line, a severity and a suggested fix. The health scan runs in 9 phases and the security scan in 10 modules, and both run locally: the analysis makes no API calls and the code is not sent anywhere.

What you get
  • A full pass with `run_health_scan`, or any single phase on its own — `get_unused_code`, `get_tech_debt`, `get_security_issues`, `get_complexity_report`, `get_git_health`, `get_test_coverage`, `get_docs_quality`, `get_ui_issues`, `get_framework_check`, `get_outdated_deps`, `get_config_map`
  • `get_health_summary` for a compact score-and-top-issues read before committing to a full scan, and `generate_health_report` when you want the findings as markdown
  • Orientation without opening the repo yourself: `detect_project_stack`, `get_module_graph`, `get_status`, `get_activity`, and `search_code` for a regex sweep narrowed by a glob
  • A git-backed undo — `create_save_point` before risky work, `list_save_points` to see what is there, `rollback_save_point` to put the tree back
  • Files the agent is not allowed to edit — `freeze_file`, `unfreeze_file`, `list_frozen`. A frozen path is written into CLAUDE.md for any agent to read, and on Claude Code a PreToolUse hook rejects the write outright
  • `install_context7` and `uninstall_context7` to wire in Context7, which is what attaches version-specific documentation snippets to findings instead of generic advice
  • `build_prompt` and `list_prompts` — hand the current findings, frozen files and priority order back to the assistant as a prompt
Requirements

No credentials for the scanning itself — it runs against files on disk, with no API calls and no telemetry. `npx fartrun@latest install` fetches the binary for your platform and writes the MCP entry into Claude Code, Cursor and Windsurf; `--claude`, `--cursor` or `--windsurf` limits it to one. Prebuilt binaries cover Linux and macOS on x64 and arm64 and Windows on x64, and an unsupported pairing such as Windows on ARM exits with an error rather than installing. A key only enters the picture for the optional AI tips: `ANTHROPIC_API_KEY` by default, or an OpenAI-compatible provider set under `[ai]` in `config.toml`. Save points and rollback are git operations, so the project has to be a git repository, and rollback refuses to run on a dirty working tree. Building from source is Python 3.11+, with Node.js 18+ behind the npm installer and `maturin` for the Rust modules. The documentation-backed fix suggestions only appear once Context7 MCP is installed. On accuracy the project publishes its own measurements — 99% on TypeScript and React, 91% on Django and DRF — so dead-code findings on a Django project are the ones to verify by hand, since ORM signals and receivers create usage the parser cannot see.

Setup effort

One command — npx fartrun@latest install