The Map
A tree-sitter structural graph: clusters, hub symbols, imports, calls, inheritance. Instant, local, incremental.
map of any repository and precise live navigation from real language servers — bridged by stable symbol IDs, budgeted to the token.One MCP server, two cooperating layers. The agent orients on a pre-built structural graph for milliseconds and zero language-server cost, then drills into ground truth only where it matters — every response structured, anchored to file:line, and capped by an explicit token budget.
The Map
A tree-sitter structural graph: clusters, hub symbols, imports, calls, inheritance. Instant, local, incremental.
Live Navigation
Real language servers (pyright, tsserver) for definition, references, hover, call hierarchy — always reflecting current disk state.
The Bridge
resolve crosses layers: node ID ⇄ verified live file:line:col, with staleness flagged whenever the two disagree.
Token Budgets
Every tool accepts a tokenBudget; oversized results are ranked, truncated, and annotated with how to get the rest back.
Freshness, Observable
Nav is always live; the map flags itself stale per-file the instant a watcher sees a change. Staleness is never silent.
Add a Language
A language is one extractor directory (grammar + three .scm queries) plus an LSP command — zero core changes.
Tool descriptions teach the agent to reach for the cheapest call that answers the question:
| Step | Layer | Tools | Cost |
|---|---|---|---|
| 1 — Orient | MAP (static index) | map_overview, map_search, map_neighbors, map_path | milliseconds, no LSP |
| 2 — Drill | LIVE (language server) | nav_definition, nav_references, nav_type, nav_callHierarchy | authoritative, always current |
| 3 — Cross | BRIDGE | resolve | node ID ⇄ verified position |
When map and language server disagree, the language server wins — and the response says so. Read the full policy in Orchestration.
transcend-mcp pairs with transcend-harness — a meta-framework that generates a bespoke, committed .claude/ harness for your project. The harness shapes how your agent works; transcend-mcp gives it eyes on the codebase.