Skip to content

transcend-mcp

Gives a coding agent a cheap static 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.

The two layers →

Live Navigation

Real language servers (pyright, tsserver) for definition, references, hover, call hierarchy — always reflecting current disk state.

Nav tools →

The Bridge

resolve crosses layers: node ID ⇄ verified live file:line:col, with staleness flagged whenever the two disagree.

The resolve tool →

Token Budgets

Every tool accepts a tokenBudget; oversized results are ranked, truncated, and annotated with how to get the rest back.

Response envelope →

Freshness, Observable

Nav is always live; the map flags itself stale per-file the instant a watcher sees a change. Staleness is never silent.

Freshness & staleness →

Add a Language

A language is one extractor directory (grammar + three .scm queries) plus an LSP command — zero core changes.

Adding a language →

Tool descriptions teach the agent to reach for the cheapest call that answers the question:

StepLayerToolsCost
1 — OrientMAP (static index)map_overview, map_search, map_neighbors, map_pathmilliseconds, no LSP
2 — DrillLIVE (language server)nav_definition, nav_references, nav_type, nav_callHierarchyauthoritative, always current
3 — CrossBRIDGEresolvenode 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.