Semantic Intelligence for Large-Scale Engineering.
Context+ is an MCP server designed for developers who demand 99% accuracy. By combining Tree-sitter AST parsing, Spectral Clustering, and Obsidian-style linking, Context+ turns a massive codebase into a searchable, hierarchical feature graph.
Video.Project.5.mp4
| Tool | Description |
|---|---|
get_context_tree |
Structural AST tree of a project with file headers and symbol ranges (line numbers for functions/classes/methods). Dynamic pruning shrinks output automatically. |
get_file_skeleton |
Function signatures, class methods, and type definitions with line ranges, without reading full bodies. Shows the API surface. |
semantic_code_search |
Search by meaning, not exact text. Uses embeddings over file headers/symbols and returns matched symbol definition lines. |
semantic_identifier_search |
Identifier-level semantic retrieval for functions/classes/variables with ranked call sites and line numbers. |
semantic_navigate |
Browse codebase by meaning using spectral clustering. Groups semantically related files into labeled clusters. |
| Tool | Description |
|---|---|
get_blast_radius |
Trace every file and line where a symbol is imported or used. Prevents orphaned references. |
run_static_analysis |
Run native linters and compilers to find unused variables, dead code, and type errors. Supports TypeScript, Python, Rust, Go. |
| Tool | Description |
|---|---|
propose_commit |
The only way to write code. Validates against strict rules before saving. Creates a shadow restore point before writing. |
get_feature_hub |
Obsidian-style feature hub navigator. Hubs are .md files with [[wikilinks]] that map features to code files. |
| Tool | Description |
|---|---|
list_restore_points |
List all shadow restore points created by propose_commit. Each captures file state before AI changes. |
undo_change |
Restore files to their state before a specific AI change. Uses shadow restore points. Does not affect git. |
No installation needed. Add Context+ to your IDE MCP config.
For Claude Code, Cursor, and Windsurf, use mcpServers:
{
"mcpServers": {
"contextplus": {
"command": "bunx",
"args": ["contextplus"],
"env": {
"OLLAMA_EMBED_MODEL": "nomic-embed-text",
"OLLAMA_CHAT_MODEL": "gemma2:27b",
"OLLAMA_API_KEY": "YOUR_OLLAMA_API_KEY"
}
}
}
}For VS Code (.vscode/mcp.json), use servers and inputs:
{
"servers": {
"contextplus": {
"type": "stdio",
"command": "bunx",
"args": ["contextplus"],
"env": {
"OLLAMA_EMBED_MODEL": "nomic-embed-text",
"OLLAMA_CHAT_MODEL": "gemma2:27b",
"OLLAMA_API_KEY": "YOUR_OLLAMA_API_KEY"
}
}
},
"inputs": []
}If you prefer npx, use:
"command": "npx""args": ["-y", "contextplus"]
Or generate the MCP config file directly in your current directory:
npx -y contextplus init claude
bunx contextplus init cursorSupported coding agent names: claude, cursor, vscode, windsurf.
Config file locations:
| IDE | Config File |
|---|---|
| Claude Code | .mcp.json |
| Cursor | .cursor/mcp.json |
| VS Code | .vscode/mcp.json |
| Windsurf | .windsurf/mcp.json |
npm install
npm run buildnode build/index.js # analyze current directory
node build/index.js /path/to/my-project # analyze a specific projectThree layers built with TypeScript over stdio using the Model Context Protocol SDK:
Core (src/core/) — Multi-language AST parsing (tree-sitter, 43 extensions), gitignore-aware traversal, Ollama vector embeddings with disk cache, wikilink hub graph.
Tools (src/tools/) — 11 MCP tools exposing structural, semantic, and operational capabilities.
Git (src/git/) — Shadow restore point system for undo without touching git history.
Runtime Cache (.mcp_data/) — created on server startup; stores reusable file, identifier, and call-site embeddings to avoid repeated GPU/CPU embedding work. A realtime tracker refreshes changed files/functions incrementally.
| Variable | Default | Description |
|---|---|---|
OLLAMA_EMBED_MODEL |
nomic-embed-text |
Embedding model |
OLLAMA_API_KEY |
— | Ollama Cloud API key |
OLLAMA_CHAT_MODEL |
llama3.2 |
Chat model for cluster labeling |
CONTEXTPLUS_EMBED_BATCH_SIZE |
8 |
Embedding batch size per GPU call, clamped to 5-10 |
CONTEXTPLUS_EMBED_TRACKER |
true |
Enable realtime embedding refresh on file changes |
CONTEXTPLUS_EMBED_TRACKER_MAX_FILES |
8 |
Max changed files processed per tracker tick, clamped to 5-10 |
CONTEXTPLUS_EMBED_TRACKER_DEBOUNCE_MS |
700 |
Debounce window before tracker refresh |
npm test
npm run test:demo
npm run test:all