Fossil Mcp

by yfedoseev

298 downloads Not rated yet

About

The code quality toolkit for the vibe coding era.

Explore

- Detects unreachable functions, unused exports, and orphaned methods.
- Finds code clones (exact, renamed, and structural duplicates).
- Identifies scaffolding artifacts: phase/step comments, TODO/FIXME markers, placeholder bodies.
- Locates temp and backup files (temp_, backup_, old_, phase_).
- Builds a call graph for tracing, blast radius, and code path analysis.
- Single binary written in Rust, zero configuration, framework‑aware.

Add a [ci] section to fossil.toml:

[ci]
max_dead_code = 10           # Maximum dead code findings (0 = fail on any)
max_clones = 5               # Maximum clone findings
max_scaffolding = 3          # Maximum scaffolding findings
min_confidence = "medium"    # Minimum confidence (low|medium|high|certain)
fail_on_scaffolding = false  # Fail if any scaffolding found

macOS / Linux:

curl -fsSL fossil-mcp.com/install.sh | sh

Windows (PowerShell):

irm fossil-mcp.com/install.ps1 | iex

Auto-detects your OS and architecture, downloads the latest binary, and adds it to your PATH.

If you have cargo-binstall, it downloads pre-built binaries instead of compiling from source:

cargo binstall fossil-mcp

Install in VS Code
Install in VS Code Insiders
Install in Cursor

Fossil runs as an MCP server by default — just run fossil-mcp with no arguments. Connect it to your AI coding tool:

<details>
<summary><b>Claude Code</b></summary>

claude mcp add fossil fossil-mcp

</details>

<details>
<summary><b>OpenAI Codex</b></summary>

Add to your Codex MCP configuration:

{
  "mcpServers": {
    "fossil": {
      "command": "fossil-mcp"
    }
  }
}

</details>

<details>
<summary><b>Cursor</b></summary>

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "fossil": {
      "command": "fossil-mcp"
    }
  }
}

Or click the Cursor install button above.

</details>

<details>
<summary><b>VS Code / VS Code Insiders</b></summary>

Add to .vscode/mcp.json in your workspace:

{
  "mcp": {
    "servers": {
      "fossil": {
        "command": "fossil-mcp"
      }
    }
  }
}

Or click the VS Code install button above.

</details>

<details>
<summary><b>Windsurf</b></summary>

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "fossil": {
      "command": "fossil-mcp"
    }
  }
}

</details>

<details>
<summary><b>Claude Desktop</b></summary>

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "fossil": {
      "command": "fossil-mcp"
    }
  }
}

</details>

Fossil works with zero configuration. All settings have sensible defaults. If you need to customize behavior, create a fossil.toml in your project root:

[dead_code]
min_confidence = "high"       # low, medium, high, certain
include_tests = false
exclude_patterns = ["generated/", "vendor/"]

[clones]
min_lines = 6
similarity_threshold = 0.8

[entry_points]

bash

fossil-mcp check

scan_all

Run all analyses (dead code + clones + scaffolding) on a project

analyze_dead_code

Detect unreachable code with configurable confidence

detect_clones

Find duplicated code (Type 1/2/3 clones)

fossil_refresh

Incremental re-analysis after file changes (fast)

fossil_inspect

Inspect call graph, data flow, control flow, or blast radius for any function

fossil_trace

Find call paths between two functions — understand how code connects

fossil_explain_finding

Get rich context about a specific finding

fossil_detect_scaffolding

Find AI scaffolding: phased comments, TODOs, placeholders, and temp files

Once connected, your AI agent has access to these tools:

| Tool | Description |
|------|-------------|
| scan_all | Run all analyses (dead code + clones + scaffolding) on a project |
| analyze_dead_code | Detect unreachable code with configurable confidence |
| detect_clones | Find duplicated code (Type 1/2/3 clones) |
| fossil_refresh | Incremental re-analysis after file changes (fast) |
| fossil_inspect | Inspect call graph, data flow, control flow, or blast radius for any function |
| fossil_trace | Find call paths between two functions — understand how code connects |
| fossil_explain_finding | Get rich context about a specific finding |
| fossil_detect_scaffolding | Find AI scaffolding: phased comments, TODOs, placeholders, and temp files |

---

The code quality toolkit for the vibe coding era.

Static analysis that finds the mess vibe coding leaves behind — dead code, duplicated logic, scaffolding artifacts, and disconnected functions — across 16 languages.

fossil-mcp.com

CI
Crates.io
License: MIT OR Apache-2.0

---

The Problem

AI-assisted coding is fine — you review the code, you understand the architecture, you stay in control. Vibe coding is different. You describe what you want, the AI writes it, and you ship it without reading every line. Tools like Claude Code, Cursor, GitHub Copilot, and Windsurf make this workflow fast and productive. But over days and weeks, vibe-coded projects accumulate a specific class of problems that traditional linters don't catch:

Dead code piles up fast. When the AI refactors a function, it writes the new version but often forgets to remove the old one. You don't notice because you didn't read the diff line by line. Over multiple sessions, unused functions, unreachable branches, and orphaned utilities pile up — the codebase grows but nothing gets pruned. A METR study found developers spend significant time checking and debugging AI output. Dead code makes this exponentially harder.

Duplication spreads silently. Each AI session has limited context window. It generates a utility function that already exists elsewhere, or solves the same problem with a slightly different implementation three files over. You asked for a feature, it works, so you move on. Traditional duplicate detection focuses on copy-paste — vibe coding duplication is structural: similar logic, different names, scattered across modules.

// Phase 1, // TODO, // Step 2 — everywhere. AI agents work in phases. They leave behind scaffolding markers that were meant to be temporary: // Phase 1: Setup, // TODO: implement error handling, placeholder function bodies with pass or todo!(), and phased naming like process_data_v2. In vibe coding, nobody goes back to clean these up. They become permanent fixtures.

Functions exist that nothing calls. This is the vibe coding signature. The AI writes a helper function, uses it, then in a later session rewrites the caller to use a different approach — but the helper stays. Without a call graph, neither you nor the AI can tell which functions are actually connected to the rest of the codebase. Current AI coding tools navigate code by text search, not by understanding how functions call each other.

Temp files accumulate in the repo. AI sessions create temp_, backup_, old_, phase_1_ files and directories. In vibe coding, you don't audit your file tree after each session. These artifacts persist across commits.

The Solution

Fossil MCP is a static analysis toolkit purpose-built for vibe-coded projects. It detects the artifacts that accumulate when AI writes most of the code — and it works both as a CLI tool for developers and as an MCP server that gives AI agents a code graph instead of just text search.

  ███████╗ ██████╗ ███████╗███████╗██╗██╗           ()    ()
  ██╔════╝██╔═══██╗██╔════╝██╔════╝██║██║            \    /
  █████╗  ██║   ██║███████╗███████╗██║██║             |  |
  ██╔══╝  ██║   ██║╚════██║╚════██║██║██║             |  |
  ██║     ╚██████╔╝███████║███████║██║███████╗       /    \
  ╚═╝      ╚═════╝ ╚══════╝╚══════╝╚═╝╚══════╝      ()    ()
  Dig up dead code. Unearth clones. Expose scaffolding.

What Fossil Detects

| Analysis | What it finds | The vibe coding problem |
|----------|--------------|------------------------|
| Dead Code | Unreachable functions, unused exports, orphaned methods | AI rewrites a caller but forgets to delete the old helper — nobody notices |
| Code Clones | Type 1 (exact), Type 2 (renamed), Type 3 (structural) duplicates | Each AI session reinvents utilities that already exist elsewhere in the codebase |
| Scaffolding | Phase N / Step N comments, TODO/FIXME markers, placeholder bodies | AI works in phases and leaves temporary markers that never get cleaned up |
| Temp Files | temp_, backup_, old_, phase_ files and directories | Session artifacts that persist because nobody audits the file tree |
| Code Graph | Trace paths between any two functions, blast radius analysis, call graph traversal | AI tools navigate by text search — Fossil gives them a graph to trace how functions connect and what breaks if you change one |

What Makes Fossil Different

- Purpose-built for vibe coding. Not a general linter — specifically targets the mess that accumulates when AI writes most of the code and humans review less of it.
- Graph, not grep. AI coding tools navigate code by searching for text. Fossil builds a call graph and lets agents trace how functions connect, find blast radius before refactoring, and discover dead ends — without reading every file.
- MCP-native. Runs as an MCP server so AI agents can self-check their output during development.
- Saves tokens, saves money. Instead of an agent scanning files over and over to find issues, Fossil identifies dead code, clones, and scaffolding in one pass — fewer rounds of LLM inference, lower cost.
- Built in Rust. Single binary, no runtime dependencies. Scans thousands of files in seconds. Memory-safe by design.
- Cross-file analysis. Resolves imports, barrel re-exports, and class hierarchies to find dead code across module boundaries.
- Framework-aware. Auto-detects React, Next.js, Django, Spring, Axum, and more — won't flag lifecycle methods as dead code.
- Zero configuration. Works out of the box. Config file is optional.
- 16 languages. One tool for polyglot codebases.

---

Install

Quick install (recommended)

macOS / Linux:

curl -fsSL fossil-mcp.com/install.sh | sh

Windows (PowerShell):

irm fossil-mcp.com/install.ps1 | iex

Auto-detects your OS and architecture, downloads the latest binary, and adds it to your PATH.

Manual download

Download the latest binary for your platform from GitHub Releases:

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.