trace-mcp - framework-aware codebase MCP for coding agents
MCP server with 138 tools and cross-language framework awareness (58 integrations across 81 languages). Indexes Laravel/Inertia/Vue, Rails/Hotwire, Django/HTMX edges so agents skip re-deriving call graphs. Decision memory links architectural choices to the code they're about. Local-first ONNX embeddings, optional LSP enrichment.
trace-mcp sits in the same lane as Qartez - pre-index the codebase, hand the agent a structured graph instead of letting it grep - but it cuts the problem along a different axis. Where Qartez's edge is structural (PageRank, blast radius, complexity), trace-mcp's edge is framework-aware. It understands that Inertia::render('Users/Show', $data) connects a Laravel controller to resources/js/Pages/Users/Show.vue, and that $user->posts() means the posts table defined three migrations ago. Cross-language semantic edges are the headline feature.
The number to look at: 40-50% average token reduction on real workloads, up to 97% on individual structured tasks. The README also frames it as "one tool call replaces ~42 minutes of agent exploration" - that's marketing copy, but the underlying mechanism (graph traversal in place of repeated file reads) is real.
The 138-tool surface
Big tool count, organised into a few clean categories:
- Code navigation -
get_project_map,get_task_context,get_change_impact,find_usages,apply_rename - Analysis -
get_request_flow,get_untested_symbols,get_call_graph,get_type_hierarchy - Search -
search,semantic_search,search_sessions - Decision memory -
query_decisions,mine_sessions - Subprojects -
get_subproject_graph,get_subproject_impact,get_subproject_clients - Planning -
benchmark_project,get_session_resume,plan_turn
get_request_flow and get_change_impact are the ones to lead with when you wire it up - they're the queries that visibly change how an agent plans an edit.
Decision memory is the differentiated bit
Most code-intel MCPs stop at "graph of symbols." trace-mcp also captures architectural decisions and links each one to the code it's about - so when an agent asks for the impact of editing a file, the relevant historical "we did it this way because..." surface as part of the answer.
It's not a chat log. Decisions have temporal validity (valid_from / valid_until), get auto-mined from session logs, and are queryable via query_decisions. Treat it like a code-linked changelog the agent reads automatically.
Install
npx trace-mcp benchmark . # try it on this repo first
npm install -g trace-mcp
trace-mcp init # configures your MCP client
trace-mcp add # indexes current project
trace-mcp init autodetects Claude Code, Cursor, Windsurf, and friends; you can also drop the MCP config block in by hand.
Frameworks and languages
81 languages parsed. The framework integrations - 58 of them - are where the money is:
- Backend - Laravel (Livewire, Nova, Filament), Django, FastAPI, Express, NestJS, Rails, Spring
- Frontend - Vue, React, Next.js, Nuxt
- ORMs - Eloquent, Prisma, TypeORM, Drizzle, SQLAlchemy, Mongoose, Sequelize
- Knowledge vaults - Obsidian, Logseq, Markdown with wikilinks/frontmatter
The cross-language edges are the part nobody else does well. If your stack is Laravel + Inertia + Vue, or Rails + Hotwire + Turbo, or Django + HTMX, this is probably the most useful piece of code intel you can put in front of an agent right now.
Semantic search defaults to local
ONNX embeddings ship in the package. No API keys, no outbound calls, semantic search just works after install. You can swap to Ollama (still local) or OpenAI via config if you want a bigger model.
Ranking combines PageRank, "Signal Fusion" (the README's term for blending structural + embedding signals), and the embeddings themselves. Defaults are reasonable - tune later.
LSP enrichment is optional but worth it
Wire up tsserver, pyright, gopls, or rust-analyzer and trace-mcp gets compiler-grade resolution for call graphs and type hierarchies. The README calls it "4-tier resolution confidence" - unenriched parses still work, LSP-enriched ones are sharper.
When to reach for it
- You're on a stack with cross-language framework conventions (Laravel/Inertia/Vue, Rails/Hotwire, Django/HTMX). Most code-intel tools ignore those edges; this one indexes them.
- Your agents waste tokens re-deriving call graphs and request flows on every session.
get_request_flowandget_change_impactare the high-leverage replacements. - You want a code-linked decision log without building one yourself.
When not to
- You're on a niche stack outside the 58-framework list. Coverage is broad but uneven - the README is honest that PHP/TypeScript/Python/Go are best-supported and others trail.
- You want a global-knowledge MCP. trace-mcp is project-scoped; it won't help with non-code workloads.
- You already run Qartez and the structural signals are what you actually need. trace-mcp's value is in the framework edges and decision memory; if those don't apply to your work, the overlap isn't worth running both.
Trade-offs
The 138-tool surface is large. Some MCP clients get noisy with that many tools registered, and an agent that doesn't know which tool to pick will burn context exploring options. The README's claimed token savings assume the agent picks get_change_impact instead of opening files - if your harness biases towards file reads, you'll see less of the gain.
Decision memory is only as good as your session history. On day one, query_decisions returns nothing useful; the value compounds with use, which is the right shape but worth flagging if you're evaluating it on a fresh repo.
Local-first is the default and a feature, not a limitation. If you do flip to OpenAI embeddings for higher recall, the bundled ONNX model is still a sensible fallback for offline work.
Featured in
Claude Code tools, plugins, and integrations
The best tools, MCP servers, and harnesses for getting more out of Claude Code - orchestration, observability, telemetry, and remote control.
MCP servers and Model Context Protocol tools
Production MCP servers, gateways, frameworks, and clients - everything in this directory that speaks the Model Context Protocol.
Related entries
Graph-Hub - codebase as queryable knowledge graph
Local-first code intelligence layer that turns a codebase into a Kuzu-backed knowledge graph for Claude Code, Cursor, and other MCP clients. Reports up to 85% token savings vs grep-style retrieval.
Qartez MCP - codebase intelligence for AI agents
Rust MCP server that pre-indexes a codebase with PageRank, blast-radius, git co-change, and complexity signals. Agents query the graph instead of grepping files.
mcp-shodan - Shodan MCP server for AI agents
MCP server exposing Shodan APIs for IP reconnaissance, DNS lookups, and CVE/CPE vulnerability intelligence. Plugs into Claude Code, Codex, Gemini CLI, and Claude Desktop.
byob - bring your own browser to AI agents
Chrome extension and MCP bridge that lets your AI agent drive the Chrome you already have open, including authenticated sessions. Works with Claude Code and Cursor.