← Back to directory
C

Context+ MCP Server

Community
Semantic Intelligence for Large-Scale Engineering.
Category
Dev Tools #280 of 438
Stars
★ 2.0k Very popular
Transport
stdio (local process)
Runtime
Node.js · Bun
Credentials
Optional API key
License
MIT
Last commit
Tools
17
48FMRS · D

Context+ is a feature-rich MCP server offering code structure analysis, semantic search, static analysis, code editing, and memory graph capabilities. Its strengths include combining AST and RAG for semantic understanding and the shadow restore point mechanism. Configuration is relatively complex, requiring Ollama or another embedding provider.

Strongest · Maintenance 12/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
8/20
Maintenance
12/20
Documentation
10/20
Setup experience
10/20
Why each score
Reliability 8/20
Static review shows clear architecture and definitions of 17 MCP tools, but no evidence of executed CI tests or tool behavior verification. Error handling and edge cases are not well documented. Happy path plausible but not guaranteed.
Security and permissions 8/20
Documentation references environment variables for API keys, but no hardcoded secrets or malicious behavior found. Tools like propose_commit modify files but have shadow restore and validation described. However, permission boundaries and confirmation are not explicit in code. External network calls depend on local services. No red-line risks, but security scoping incomplete.
Maintenance 12/20
Repository has 1968 stars, 2 open issues, not archived, indicating activity. But no commit history, release cadence, or security response channel visible. Dependency updates and governance unclear.
Documentation 10/20
README is comprehensive with setup, config, tools, and env variable tables, but lacks troubleshooting, limitations, and verification examples. Tests are mentioned but no evidence of their content.
Setup experience 10/20
Configuration examples for multiple clients (Claude Code, Cursor, etc.) and CLI init commands are provided. Requires external dependencies (Ollama, API keys) and local setup, but steps are clear and standard. Setup is straightforward but may be fragile due to external dependencies.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local filesUses the network

Best for

  • Developers working on large codebases
  • Teams needing highly accurate code understanding
  • Users leveraging Ollama or OpenAI-compatible embeddings
  • Those who want AI-assisted code editing with rollback capability

Not for

  • Small projects where this might be overkill
  • Users needing native git integration for version control (only shadow restore points)
  • Scenarios requiring non-code operations like SQL or filesystem access

Required permissions

  • Read project files (via AST parsing and file traversal)
  • Create shadow restore points (in .mcp_data directory)
  • Run linters and compilers (run_static_analysis)
  • Write code files (via propose_commit)
  • Network access (calling Ollama or OpenAI-compatible APIs)

Risks and side effects

  • propose_commit may modify code files; validation rules exist but caution is advised
  • Runtime cache (.mcp_data) can consume disk space
  • Embeddings rely on local or cloud models; consider data privacy
  • Spectral clustering results may be unstable; labels may be inaccurate

Setup

Before you start

Runtime:Node.js · Bun

OLLAMA_API_KEY optionalsecret API key for Ollama Cloud; not needed for local Ollama, obtained from the Ollama website.
CONTEXTPLUS_OPENAI_API_KEY optionalsecret API key for any OpenAI-compatible provider; get one from OpenAI, Google AI Studio, Groq, etc.
OPENAI_API_KEY optionalsecret Alias of CONTEXTPLUS_OPENAI_API_KEY.
Other optional settings (22)
OLLAMA_EMBED_MODEL optional Ollama embedding model name, default nomic-embed-text; pull locally with `ollama pull nomic-embed-text`.
OLLAMA_CHAT_MODEL optional Ollama chat model for cluster labeling, default llama3.2 (gemma2:27b in the example config).
CONTEXTPLUS_EMBED_PROVIDER optional Embedding backend selector: ollama (default) or openai.
CONTEXTPLUS_OPENAI_BASE_URL optional OpenAI-compatible endpoint URL, default https://api.openai.com/v1.
CONTEXTPLUS_OPENAI_EMBED_MODEL optional OpenAI-compatible embedding model, default text-embedding-3-small; Gemini uses text-embedding-004.
CONTEXTPLUS_OPENAI_CHAT_MODEL optional OpenAI-compatible chat model for cluster labeling, default gpt-4o-mini.
OPENAI_BASE_URL optional Alias of CONTEXTPLUS_OPENAI_BASE_URL.
OPENAI_EMBED_MODEL optional Alias of CONTEXTPLUS_OPENAI_EMBED_MODEL.
OPENAI_CHAT_MODEL optional Alias of CONTEXTPLUS_OPENAI_CHAT_MODEL.
CONTEXTPLUS_EMBED_BATCH_SIZE optional Embedding batch size per GPU call, default 8, clamped to 5-10.
CONTEXTPLUS_EMBED_CHUNK_CHARS optional Per-chunk chars before merge, default 2000, clamped to 256-8000.
CONTEXTPLUS_MAX_EMBED_FILE_SIZE optional Byte limit above which large non-code text files are skipped, default 51200.
CONTEXTPLUS_EMBED_NUM_GPU optional Optional Ollama embed runtime num_gpu override.
CONTEXTPLUS_EMBED_MAIN_GPU optional Optional Ollama embed runtime main_gpu override.
CONTEXTPLUS_EMBED_NUM_THREAD optional Optional Ollama embed runtime num_thread override.
CONTEXTPLUS_EMBED_NUM_BATCH optional Optional Ollama embed runtime num_batch override.
CONTEXTPLUS_EMBED_NUM_CTX optional Optional Ollama embed runtime num_ctx override.
CONTEXTPLUS_EMBED_LOW_VRAM optional Optional Ollama embed runtime low_vram boolean override.
CONTEXTPLUS_EMBED_TRACKER optional Enable realtime embedding refresh on file changes, default true.
CONTEXTPLUS_EMBED_TRACKER_MAX_FILES optional Max changed files processed per tracker tick, default 8, clamped to 5-10.
CONTEXTPLUS_EMBED_TRACKER_DEBOUNCE_MS optional Debounce window before tracker refresh, default 700 ms.
CONTEXTPLUS_EXTRA_ROOTS optional Re-include directories excluded by the workspace .gitignore, joined with the system path separator (: on Unix).

No installation needed; run via npx or bunx. Add the following to your IDE's MCP config (example for Claude Code, Cursor, Windsurf):

{
  "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, use .vscode/mcp.json with servers format. Alternatively, use npx -y contextplus init <client> to generate config files for claude, cursor, vscode, windsurf, opencode.

claude_desktop_config.json
{
  "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"
      }
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "contextplus": {
      "command": "bunx",
      "args": [
        "contextplus"
      ],
      "env": {
        "OLLAMA_EMBED_MODEL": "nomic-embed-text",
        "OLLAMA_CHAT_MODEL": "gemma2:27b",
        "OLLAMA_API_KEY": "YOUR_OLLAMA_API_KEY"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add contextplus -e OLLAMA_EMBED_MODEL=nomic-embed-text -e OLLAMA_CHAT_MODEL=gemma2:27b -e OLLAMA_API_KEY=YOUR_OLLAMA_API_KEY -- bunx contextplus

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After adding the config to your MCP client and starting a session, check that tools like semantic_code_search and get_context_tree appear in the client's tool list; you can also run `bunx contextplus skeleton .` to view the project tree in the terminal and confirm the install.

Troubleshooting

  1. Ensure Ollama is installed and running, and models are pulled (e.g., nomic-embed-text)
  2. Verify API keys and environment variables are set correctly (OLLAMA_API_KEY, etc.)
  3. Check project path is correct and not excluded by .gitignore; use --include or CONTEXTPLUS_EXTRA_ROOTS to add extra roots
  4. If using OpenAI-compatible provider, ensure CONTEXTPLUS_OPENAI_API_KEY and BASE_URL are set

Things to try

Once connected, you can ask your AI assistant things like:

  • Use semantic_code_search to find authentication-related code in this repository.
  • Show me the context tree for src/core/ with line numbers for functions and classes.
  • Run get_blast_radius on the util.parse function to find every import and usage.
  • Use propose_commit to change the default port in config.ts, then list the restore points.

Tools 17

get_context_tree read-only
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 read-only
Function signatures, class methods, and type definitions with line ranges, without reading full bodies. Shows the API surface.
semantic_code_search read-only
Search by meaning, not exact text. Uses embeddings over file headers/symbols and returns matched symbol definition lines.
semantic_identifier_search read-only
Identifier-level semantic retrieval for functions/classes/variables with ranked call sites and line numbers.
semantic_navigate read-only
Browse codebase by meaning using spectral clustering. Groups semantically related files into labeled clusters.
get_blast_radius read-only
Trace every file and line where a symbol is imported or used. Prevents orphaned references.
run_static_analysis read-only
Run native linters and compilers to find unused variables, dead code, and type errors. Supports TypeScript, Python, Rust, Go.
propose_commit writes
The only way to write code. Validates against strict rules before saving. Creates a shadow restore point before writing.
Show 9 more tools
get_feature_hub read-only
Obsidian-style feature hub navigator. Hubs are `.md` files with `[[wikilinks]]` that map features to code files.
list_restore_points read-only
List all shadow restore points created by `propose_commit`. Each captures file state before AI changes.
undo_change destructive
Restore files to their state before a specific AI change. Uses shadow restore points. Does not affect git.
upsert_memory_node writes
Create or update a memory node (concept, file, symbol, note) with auto-generated embeddings.
create_relation writes
Create typed edges between nodes (relates_to, depends_on, implements, references, similar_to, contains).
search_memory_graph read-only
Semantic search with graph traversal — finds direct matches then walks 1st/2nd-degree neighbors.
prune_stale_links destructive
Remove decayed edges (e^(-λt) below threshold) and orphan nodes with low access counts.
add_interlinked_context writes
Bulk-add nodes with auto-similarity linking (cosine ≥ 0.72 creates edges automatically).
retrieve_with_traversal read-only
Start from a node and walk outward — returns all reachable neighbors scored by decay and depth.

Use cases

Quickly understand large codebase structure
Search code by semantics instead of text matching
Analyze impact of changes
Create restore points before AI edits
Build a knowledge graph of code features

Supported clients

Claude DesktopPartial support
Claude Code
Cursor
VS Code
Windsurf
OpenCode

Listed from the project's documentation, not tested by this site.

Overview

Context+ is an MCP server designed for developers who demand 99% accuracy. By combining RAG, Tree-sitter AST, Spectral Clustering, and Obsidian-style linking, Context+ turns a massive codebase into a searchable, hierarchical feature graph.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 62.9k · Tools 2 Compare with this →

Source revision 1b59b37f3130 Data synced 2026-10-11 Read the FMRS scoring method