Arbor builds a semantic dependency graph of your codebase and exposes it through 10 MCP tools that answer execution-aware questions like "what breaks if I change this symbol?" Six surgical tools (get_callers, get_callees, search_symbols, get_node_detail, get_file_graph, list_entry_points) let agents traverse the graph precisely, while four broader tools handle impact analysis and pathfinding. Every response includes suggested_next_tool hints so Claude can chain queries without re-prompting. Install via `arbor bridge` for stdio transport, then run `arbor setup` in your project to build the initial graph. Works across Rust, TypeScript, Python, Go, Java, and more. Particularly useful when refactoring, reviewing blast radius before merge, or letting AI assistants understand architectural dependencies instead of treating code as flat text.
Graph-native intelligence for codebases.
Know what breaks before you break it.
Simulated replay — the arbor commands and their output are real (tokio @ 178k LOC). Methodology: BENCHMARKS.md
v2.5.0 — The Last Excuse · PageRank 23x faster (149.8ms → 6.6ms on a 10k-node graph). Indexing goes parallel across every core. A 178k-LOC codebase cold-indexes in 1.6s. "Indexing is slow" was the last argument for letting your agent navigate with
grep -r— it's gone. Every number reproducible: BENCHMARKS.md · Release notes →
Most AI coding tools treat code as text. Arbor builds a semantic dependency graph — functions, classes, and modules as nodes; calls, imports, and inheritance as edges — then answers execution-aware questions with deterministic precision:
| Question | Arbor answer |
|---|---|
| If I change this symbol, what breaks? | Blast radius with depth, confidence, and risk level |
| Who calls this — directly and transitively? | Caller/callee traversal on the call graph |
| What's the shortest path between A and B? | A* path through real dependencies |
| Is this PR too risky to merge? | CI gate on blast-radius thresholds |
No keyword guessing. No embedding hallucinations. One graph, every interface.
| Change | Measured |
|---|---|
| PageRank rewrite — flat call-graph adjacency replaces per-iteration traversal | 149.8ms → 6.6ms on a 10k-node graph (23x), verified side-by-side vs the old implementation |
| Parallel indexing — parse fans out across all cores, deterministic assembly | Arbor: 253ms → 95ms · tokio (178k LOC): 2.7s → 1.6s |
| Warm-start centrality — watcher recomputes seed from previous scores | Converges in ~2 rounds after a one-file patch instead of the full 20-iteration budget |
| Convergence early-exit | Iteration stops at 1e-9 max delta — the budget is a ceiling, not a sentence |
Zero breaking changes — cargo install arbor-graph-cli --force and everything is just faster. Think a number is wrong? cargo bench -p arbor-graph and prove it: BENCHMARKS.md.
2026-07-28, HTTP transport, Tasks, MCP Apps)| Feature | What it does |
|---|---|
MCP 2026-07-28 | Stateless server/discover, response caching (ttlMs/cacheScope), dual-version fallback for 2025-03-26 clients |
| Tasks extension | tasks/get · tasks/update · tasks/cancel — cold-start indexing returns task handles, not errors |
| MCP Apps | Interactive blast-radius graph (ui://arbor/blast-radius) and architecture map (ui://arbor/architecture-map) inside agent hosts |
| HTTP transport | arbor bridge --http --port 3333 — stateless MCP behind load balancers |
Real get_blast_radius | Git-diff-aware impact analysis via shared arbor-graph::compute_blast_radius |
| Pagination | offset / limit / hasMore on search_symbols and get_map |
| Benchmarks | Criterion suite + CI regression gate — see BENCHMARKS.md |
# Install
cargo install arbor-graph-cli
# Index your project (one command)
cd your-project && arbor setup
# Explore before you edit
arbor map . --exclude-test # ranked project skeleton (~1k tokens)
arbor refactor parse_file # blast radius of changing a symbol
arbor diff # impact of uncommitted git changes
# Wire up your AI agent
claude mcp add --transport stdio --scope project arbor -- arbor bridge
Agent workflow: call get_map first → search_symbols / get_file_graph to locate code → Read only the target file. Full MCP guide →
Arbor ships a production MCP server via arbor bridge. Stdio is the default; HTTP is opt-in for remote/enterprise.
# Stdio (Claude, Cursor, VS Code)
arbor bridge
# HTTP (MCP 2026-07-28)
arbor bridge --http --port 3333
{
"mcpServers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
}
}
Templates: templates/mcp/ · Setup scripts: scripts/setup-mcp.sh · scripts/setup-mcp.ps1
| Tier | Tools | Use when |
|---|---|---|
| Orientation | get_map | First call — token-budgeted project skeleton ranked by PageRank |
| Surgical | list_entry_points · get_callers · get_callees · search_symbols · get_file_graph · get_node_detail | Navigate to a specific symbol or file |
| Broad | get_logic_path · analyze_impact · find_path · get_knowledge_path | Trace dependencies, blast radius, paths |
| Agent-native | get_blast_radius · explain_symbol · audit_security · get_architecture_overview · batch_query | PR impact, onboarding, security audit, bulk lookup |
Every tool returns { ok, tool, data, meta: { suggested_next_tool, suggested_next_args } } so agents chain calls without re-prompting.
Registry: io.github.Anandb71/arbor · Official API lookup · Glama listing
| Command | Description |
|---|---|
arbor setup | One-shot init + index |
arbor map | Ranked, token-budgeted project skeleton |
arbor query <term> | Fuzzy symbol search (supports | OR) |
arbor callers / callees <sym> | One-hop graph traversal |
arbor entry-points | HTTP handlers, main, jobs, webhooks |
arbor file-graph <path> | Symbols + edges in one file |
arbor inspect <sym> | Full symbol detail |
arbor path <a> <b> | Shortest call-graph path |
arbor refactor <sym> | Blast radius before refactoring |
arbor diff | Git-change impact report |
arbor check | CI safety gate (--max-blast-radius N) |
arbor summary | Auto-generate PR description |
arbor agent review | Autonomous PR architecture review |
arbor agent onboard | Codebase onboarding guide |
arbor agent guard | Real-time architectural safety gate |
arbor bridge | MCP server (add --http for HTTP transport) |
arbor watch | Live re-index on file changes |
arbor gui | Native desktop UI |
All query commands support --json. map additionally supports --tokens N, --focus "pattern", --focus-changed.
Full recording: media/recording-2026-01-13.mp4
# Rust / Cargo
cargo install arbor-graph-cli
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor && scoop install arbor
# npm wrapper (cross-platform)
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:latest
No-Rust installers:
curl -fsSL https://raw.githubusercontent.com/Anandb71/arbor/main/scripts/install.sh | bashirm https://raw.githubusercontent.com/Anandb71/arbor/main/scripts/install.ps1 | iexPinned installs: docs/INSTALL.md
Production parsers: Rust · TypeScript / JavaScript · Python · Go · Java · C / C++ · C# · Dart
Fallback parsers: Kotlin · Swift · Ruby · PHP · Shell
arbor diff --markdown
arbor check --max-blast-radius 30 --markdown
arbor summary
GitHub Action (pre-built binary, ~5s vs ~3–5min compile):
name: Arbor Check
on: [pull_request]
jobs:
arbor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: Anandb71/arbor@v2.4.0
with:
command: check . --max-blast-radius 30 --markdown
comment-on-pr: true
github-token: ${{ secrets.GITHUB_TOKEN }}
arbor-core (Tree-sitter parsing)
└── arbor-graph (petgraph + PageRank + impact analysis)
├── arbor-cli — CLI + MCP bridge
├── arbor-mcp — MCP protocol server
├── arbor-server — WebSocket JSON-RPC
├── arbor-watcher — incremental file watcher
└── arbor-gui — desktop UI
Docs: Quickstart · Architecture · Graph schema · MCP integration · Benchmarks · Roadmap · Philosophy
Release channels: GitHub Releases · crates.io · GHCR · npm · VS Code / Open VSX · Homebrew · Scoop — Releasing guide
Arbor is local-first: no mandatory data exfiltration, offline-capable, open source. Security policy →
cargo build --workspace
cargo test --workspace
cargo clippy --workspace --all-targets --all-features
CONTRIBUTING.md · Good first issues · Code of conduct
7 contributors | View all
MIT — see LICENSE.