An MCP server that makes your codebase stop lying to the LLM
Context+ builds a queryable feature graph from your repo so AI assistants actually know where things live, what they mean, and what breaks if you touch them.

What it does
Context+ is an MCP server that plugs into Claude Code, Cursor, VS Code, and Windsurf. It parses your codebase with Tree-sitter, embeds symbols and file headers, clusters related files by meaning, and exposes 17 tools for semantic search, blast-radius tracing, static analysis, and shadow git restore points. The goal: give your coding agent structured context instead of dumping raw files into the prompt.
The interesting bit
The memory graph is the unusual part. Nodes (files, symbols, concepts) get auto-linked when cosine similarity hits ≥0.72, and edges decay over time via e^(-λt) scoring. There’s also an Obsidian-style feature hub — .md files with [[wikilinks]] that map human-readable features to code. It’s part documentation, part embedding-backed knowledge base, and it lives inside the repo.
Key highlights
- Semantic navigation over structural search:
semantic_navigateclusters files by meaning using spectral clustering, not just folder hierarchy or string matching. - Blast-radius tracing:
get_blast_radiusfollows imports and call sites to show every file and line affected by changing a symbol. - Shadow undo without git pollution:
propose_commitcreates restore points before AI writes code;undo_changereverts them without touching git history. - Offline-by-default, cloud-optional: Ollama is the default embedding backend; OpenAI-compatible APIs (including Gemini free tier) are a config switch away.
- Realtime incremental cache:
.mcp_data/stores embeddings and refreshes only changed files/functions on the fly.
Caveats
- Requires running your own Ollama instance or supplying an API key for embeddings; not zero-config if you lack a GPU or API budget.
- The README claims “99% accuracy” but never defines the metric or cites a benchmark — treat it as aspiration, not measurement.
- Static analysis supports TypeScript, Python, Rust, and Go; other languages get AST parsing and search but not linting/dead-code detection.
Verdict
Worth trying if you’re hitting context-window limits or watching your agent hallucinate file relationships in large repos. Skip it if you want a drop-in replacement for grep or if your codebase is small enough that full-file inclusion already works fine.