Skip to main content
ClaudeWave
cdeust avatar
cdeust

automatised-pipeline

View on GitHub

Codebase intelligence MCP for AI agents — tree-sitter AST → LadybugDB property graph, import/call resolution with evidence-graded confidence, Leiden communities, hybrid BM25+TF-IDF+RRF search, impact analysis, PRD-hallucination + security gates. Rust · 24 tools (core-8 agent profile) · 503 tests.

MCP ServersOfficial Registry2 stars1 forksRustMITUpdated today
Install in Claude Code / Claude Desktop
Method: Manual · automatised-pipeline
Claude Code CLI
git clone https://github.com/cdeust/automatised-pipeline
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "automatised-pipeline": {
      "command": "automatised-pipeline"
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Install the binary first: cargo install automatised-pipeline (or build from https://github.com/cdeust/automatised-pipeline).
Use cases

MCP Servers overview

<!-- mcp-name: io.github.cdeust/automatised-pipeline -->

<p align="center">
  <img src="assets/banner.svg" alt="automatised-pipeline — codebase intelligence as an MCP server" width="100%"/>
</p>

<p align="center">
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="MIT License"></a>
  <img src="https://img.shields.io/badge/Rust-1.94+-dea584.svg" alt="Rust 1.94+">
  <img src="https://img.shields.io/badge/Tools-24-orange" alt="24 MCP tools">
  <img src="https://img.shields.io/badge/Tests-434_passing-brightgreen" alt="434 tests">
  <img src="https://img.shields.io/badge/Languages-10-blueviolet" alt="10 languages">
  <img src="https://img.shields.io/badge/Stages-0_through_9-8A2BE2" alt="Stages">
</p>

<p align="center">
  <a href="#what-an-agent-can-ask-it">What An Agent Can Ask</a> · <a href="#getting-started">Getting Started</a> · <a href="#the-pipeline">Pipeline</a> · <a href="#24-mcp-tools">Tools</a> · <a href="#architecture">Architecture</a> · <a href="#the-zetetic-standard">Zetetic Standard</a>
</p>

<p align="center">
  <strong>Companion projects:</strong><br>
  <a href="https://github.com/cdeust/Cortex">Cortex</a> — persistent memory that consolidates and reconsolidates across sessions<br>
  <a href="https://github.com/cdeust/zetetic-team-subagents">zetetic-team-subagents</a> — 97 genius reasoning agents + 18 team specialists<br>
  <a href="https://github.com/cdeust/prd-spec-generator">prd-spec-generator</a> — TypeScript PRD generator that consumes our graph intelligence
</p>

---

Every AI coding assistant hits the same wall: you ask it to change `handle_tool_call`, and it either hallucinates a function that was renamed last week, edits something in the wrong community of the codebase, or silently breaks a call chain three modules away. Agents operate on strings; codebases have structure. The gap is where bugs live.

**automatised-pipeline** is a Rust MCP server that indexes any Rust, Python, TypeScript, Java, Kotlin, Swift, Objective-C, C, C++, or Go codebase into a LadybugDB property graph, resolves imports and call chains across files, detects functional communities via Leiden-class community detection, traces execution flows from entry points, builds a hybrid BM25 + sparse TF-IDF + RRF search index, and exposes all of it to AI agents through 24 MCP tools.

It is the **codebase intelligence layer** that sits between a finding ("this bug exists") and a PRD ("here is the fix, here is what it affects, here is what it must never break"). It is **read-only intelligence** — it never writes code, opens PRs, or runs CI. It tells the system what is true about the code so the next stage can reason without guessing.

**One pipeline stage = one MCP tool. 10 stages. 24 tools. 12,000+ lines of Rust. 434 tests. Zero warnings. Every constant sourced.**

---

## What an agent can ask it

```
analyze_codebase(path: "/path/to/project", output_dir: "/tmp/run")
  → index + resolve + cluster + build search index in one call
  → 430 nodes, 400 edges, 216 communities, 35 processes on our own codebase

search_codebase(graph_path, query: "process incoming tool requests")
  → hybrid ranked results: BM25 lexical + sparse TF-IDF semantic + RRF fusion
  → returns: handle_tool_call (score 0.021), dispatch_request (0.020), ...

get_context(graph_path, qualified_name: "src/main.rs::handle_tool_call")
  → 360° view: community membership, process participation,
    incoming calls, outgoing calls, types used, types that use it
  → did-you-mean suggestions when the symbol isn't found exactly

get_impact(graph_path, qualified_name)
  → blast radius: every process that transits this symbol, every community it touches
  → the answer to "what breaks if I change this?"

detect_changes(graph_path, diff_text OR base_ref+head_ref)
  → git diff → affected symbols → impacted communities → touched processes
  → risk score for the change

validate_prd_against_graph(prd_path, graph_path)
  → does the PRD reference real symbols? (symbol hallucination check)
  → does "scoped to X" match the actual community count?
  → does "doesn't affect main" hold against the call graph?

check_security_gates(graph_path, changed_symbols)
  → auth-critical community touch · unsafe symbol · public API change ·
    unresolved imports · test coverage gap

verify_semantic_diff(before_graph_path, after_graph_path)
  → what nodes/edges appeared, what disappeared, what dangles,
    new cycles via Tarjan SCC, regression score with verdict
```

---

## Getting started

### Prerequisites

- Rust 1.94+ (`rustup install stable`)
- CMake (LadybugDB builds its C++ core from source — ~5 minutes first build, cached after)

### Clone + build

```bash
git clone https://github.com/cdeust/automatised-pipeline.git
cd automatised-pipeline
cargo build --release
# First build: ~5 minutes (compiles LadybugDB C++ core)
# Subsequent builds: <1 second incremental
```

### Register the MCP server

The repo ships a `.mcp.json` that Claude Code picks up automatically when you open the directory:

```json
{
  "mcpServers": {
    "ai-architect": {
      "command": "cargo",
      "args": ["run", "--quiet", "--release", "--manifest-path", "Cargo.toml", "--", "--profile", "core"]
    }
  }
}
```

Or register globally (recommended agent setup — the `core` profile):

```bash
claude mcp add ai-architect -- /absolute/path/to/target/release/automatised-pipeline --profile core
```

### Tool profiles

The server registers one of two tool sets, chosen once at startup:

| Profile | Tools | Who it's for |
|---|---|---|
| `core` | 8 — `health_check` · `analyze_codebase` · `search_codebase` · `get_context` · `get_symbol` · `get_impact` · `query_graph` · `detect_changes` | **Recommended for agents.** The read-only code-intelligence surface: analyze once, then search, inspect symbols, and measure blast radius. |
| `full` | all 24 | The ai-architect pipeline orchestrator — adds the internal finding → PRD stages (1/2/4/6/8/9) and the manual graph passes (`index_codebase`, `resolve_graph`, `cluster_graph`, `lsp_resolve`, `get_processes`, `index_history`). |

Select with the `--profile` flag or the `AP_PROFILE` environment variable (the flag wins):

```bash
automatised-pipeline --profile core   # agent-facing 8
AP_PROFILE=core automatised-pipeline  # same, via env
automatised-pipeline                  # default: full (all 24)
```

The default stays `full` until the next major version — shrinking the default tool surface is a breaking change. New agent installations should opt into `core`: `analyze_codebase` already runs index + resolve + cluster in one call, so the 16 hidden tools are pipeline plumbing an agent never needs, and hiding them keeps the tool prompt small.

### First run

```bash
# Run the binary directly to verify the handshake
./target/release/automatised-pipeline

# Or exercise it via stdio JSON-RPC:
printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
  '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"health_check","arguments":{}}}' \
  | ./target/release/automatised-pipeline
```

### Use with other MCP hosts

The server is a self-contained stdio binary — any MCP host can launch it. Install once:

```bash
cargo install ai-architect-mcp   # installs the `automatised-pipeline` binary into ~/.cargo/bin
```

The CLI commands below assume `~/.cargo/bin` is on your `PATH`. GUI hosts (Cursor, Windsurf, VS Code) may not inherit your shell `PATH` — in the JSON configs, replace `automatised-pipeline` with the output of `which automatised-pipeline`. Use the `core` profile (8 read-only tools) for agent hosts.

**Gemini CLI**

```bash
gemini mcp add -e AP_PROFILE=core ai-architect automatised-pipeline
```

Or install as an extension (this repo ships a `gemini-extension.json`):

```bash
gemini extensions install https://github.com/cdeust/automatised-pipeline
```

**OpenAI Codex CLI** (also picked up by the ChatGPT desktop app and Codex IDE extension — they share `~/.codex/config.toml`)

```bash
codex mcp add ai-architect -- automatised-pipeline --profile core
```

Or in `~/.codex/config.toml`:

```toml
[mcp_servers.ai-architect]
command = "automatised-pipeline"
args = ["--profile", "core"]
```

**Cursor** — `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):

```json
{
  "mcpServers": {
    "ai-architect": {
      "command": "automatised-pipeline",
      "args": ["--profile", "core"]
    }
  }
}
```

**Windsurf** — `~/.codeium/windsurf/mcp_config.json`: same `mcpServers` block as Cursor.

**VS Code** — `.vscode/mcp.json`:

```json
{
  "servers": {
    "ai-architect": {
      "type": "stdio",
      "command": "automatised-pipeline",
      "args": ["--profile", "core"]
    }
  }
}
```

**OpenAI Agents SDK (Python)**

```python
from agents.mcp import MCPServerStdio

async with MCPServerStdio(
    name="ai-architect",
    params={"command": "automatised-pipeline", "args": ["--profile", "core"]},
) as server:
    agent = Agent(name="Assistant", mcp_servers=[server])
```

---

## The pipeline

Every stage is a tool. Stages build on each other but are independently callable. The pipeline is serial in logical order but MCP calls are stateless — you can re-run stages 3a-3d on a fresh codebase without re-running stages 1-2.

| # | Tool(s) | What it does |
|---|---|---|
| **0** | `health_check` | Handshake + protocol + tool count |
| **1** | `extract_finding`, `refine_finding` | Deterministic finding extraction + orchestrator-aware prompt refinement |
| **2** | `start_verification`, `append_clarification`, `finalize_verification`, `abort_verification` | Human-gated clarification loop with SHA-256 transcript digest, atomic single-file session state |
| **3a** | `index_codebase`, `query_graph`, `get_symbol` | tree-sitter AST → LadybugDB graph (16 node labels, 36+ relationship tables) |
| **3b** | `resolve_graph`, `lsp_resolve` | Import/call/impl resolution with confidence scoring + optional
anthropicbm25claudeclaude-codeclaude-code-pluginclean-architecturecode-graphcode-intelligencecodebase-analysiscommunity-detectioncyphergraph-databasehybrid-searchlouvain-algorithmmcp-servermodel-context-protocolproperty-graphruststatic-analysistree-sitter

What people ask about automatised-pipeline

What is cdeust/automatised-pipeline?

+

cdeust/automatised-pipeline is mcp servers for the Claude AI ecosystem. Codebase intelligence MCP for AI agents — tree-sitter AST → LadybugDB property graph, import/call resolution with evidence-graded confidence, Leiden communities, hybrid BM25+TF-IDF+RRF search, impact analysis, PRD-hallucination + security gates. Rust · 24 tools (core-8 agent profile) · 503 tests. It has 2 GitHub stars and was last updated today.

How do I install automatised-pipeline?

+

You can install automatised-pipeline by cloning the repository (https://github.com/cdeust/automatised-pipeline) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is cdeust/automatised-pipeline safe to use?

+

cdeust/automatised-pipeline has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.

Who maintains cdeust/automatised-pipeline?

+

cdeust/automatised-pipeline is maintained by cdeust. The last recorded GitHub activity is from today, with 1 open issues.

Are there alternatives to automatised-pipeline?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy automatised-pipeline to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: cdeust/automatised-pipeline
[![Featured on ClaudeWave](https://claudewave.com/api/badge/cdeust-automatised-pipeline)](https://claudewave.com/repo/cdeust-automatised-pipeline)
<a href="https://claudewave.com/repo/cdeust-automatised-pipeline"><img src="https://claudewave.com/api/badge/cdeust-automatised-pipeline" alt="Featured on ClaudeWave: cdeust/automatised-pipeline" width="320" height="64" /></a>

More MCP Servers

automatised-pipeline alternatives