Framework-aware code intelligence MCP server — 88 framework integrations, 81 languages, 72.7% fewer input tokens to review a pull request, comprehension at parity
wins, so the max-width pair has to stay above the theme source.
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
The missing space in (prefers-color-scheme:light) on the narrow source is
deliberate: GitHub's substring-matches the spaced form and,
for a reader who pinned Light in Appearance, rewrites that source's media to
match every viewport — which would put the phone cut on a 750px desktop. -->
while keeping it on — measured on
a live PR page — so the last carries no media at all and always
matches. That is what sizes the default dark view; the is only ever
reached by a renderer that drops entirely. -->
WORKS WITH · Claude Code · Cursor · Codex · Windsurf · Zed · any MCP client
trace-mcp indexes what your agent keeps re-reading, and serves the answer instead.
72.7% fewer input tokens to review a pull request — median over 60 merged pull requests in open-source repos we don't own.
We change configuration you could change yourself. We do not patch your client's binary, intercept its traffic, or rewrite its files. One declinable exception: the Max tier's tweakcc pairing runs a third-party patcher for you.
**72.7% fewer input tokens** to review a pull request — median over 60 merged PRs in six repos that are not ours, 13,595 → 3,291 per pull request. Method and reproduction →
Measured at trace-mcp 3.23.2 (cb8ab30c) on 7 September 2026 — a result from that build, not a claim about the current one. What it set out to measure, the bar it had to clear and the verdict: preregistration.
Cheaper is not the same as better, so the same 60 pull requests were reviewed twice and scored blind. The trace-mcp arm **understood the change in 67%** of them against **65%** for naive file loading, at **0.80** false positives per PR against **0.58**. Quality half of the benchmark →
The desktop app : a GPU graph explorer over the same index the MCP server serves.
---
The problem
AI agents pay repeatedly for work they have already done. Every turn, the agent re-reads the same files, re-traverses the same dependencies, and re-inflates the context window with structure it discovered five steps ago. That repeated work is most of what a long session costs in tokens and latency.
trace-mcp builds a framework-aware graph of your codebase **once**, then serves it through MCP so the agent reasons from a precomputed structure instead of brute-reading the repo. Ask *"what breaks if I change this model?"* — instead of 80 Grep calls and 190 file reads, the agent calls get_change_impact once and gets the blast radius across PHP, Vue, migrations, and DI. 88 framework integrations across 81 languages, 182 tools.
The binding constraint is **recomputation**, not model capability: token bills, latency, and hallucinations all grow with project size instead of with task complexity. trace-mcp closes the recomputation leak. The graph is built once, kept incrementally fresh, and served to every agent that asks — so the same work isn't paid for over and over.
- **Lower cost** — fewer tokens per successful answer, on average and at peak
- **Lower latency** — fewer sequential tool calls, fewer round-trips to the model
- **Higher accuracy** — less noise in context means fewer hallucinations and stronger first-response correctness
- **Production stability** — context growth tracks task complexity rather than repository size
We started with code intelligence, where the repetition is most expensive, and the same engine now indexes markdown knowledge vaults (Obsidian, Logseq, plain MD) as a peer domain. Wikilinks, tags, frontmatter, and embeds become graph edges and symbol metadata; search, find_usages, get_change_impact, and apply_rename work identically over both.
---
What trace-mcp does for you
| You ask | trace-mcp answers | How |
|---|---|---|
| "What breaks if I change this model?" | Blast radius across languages + risk score + linked architectural decisions | get_change_impact — reverse dependency graph + decision memory |
| "Why was auth implemented this way?" | The actual decision record with reasoning and tradeoffs | query_decisions — searches the decision knowledge graph linked to code |
| "I'm starting a new task" | Optimal code subgraph + relevant past decisions + dead-end warnings | plan_turn — opening-move router with decision enrichment |
| "What did we discuss about GraphQL last month?" | Verbatim conversation fragments with file references | search_sessions — FTS5 search across all past session content |
| "Show me the request flow from URL to rendered page" | Route → Middleware → Controller → Service → View with prop mapping | get_request_flow — framework-aware edge traversal |