
Context+ MCP Server: Setup for Claude, Cursor and Other Apps
Lets your AI assistant search a codebase by meaning, see where code is used, and keep a memory of what it learned.
Context+ is a community code-search server that lets Claude, Cursor and other assistants find code by meaning, trace where a symbol is used, and keep a memory graph of notes. It runs on your computer inside the project folder. By default it makes embeddings with a local Ollama model, and you can switch to a cloud provider such as OpenAI or Gemini. It can also write files, restore older versions, and run the project's linter or compiler.
Good for
- Developers who work in large codebases and want the assistant to find the right files faster
- Teams who run Ollama and want code search without sending code to a cloud service
- Anyone who wants a built-in way to undo assistant edits to files
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install contextplus MCP
Claude Code
- 1
Copy this prompt.
Add the contextplus MCP server to Claude Code. Run this command: claude mcp add contextplus -- npx -y contextplus Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
Built from the package data we hold. Not yet tested by us.
Tools
Finds code by what it does, not by exact words
Matches your question to files and symbols by meaning, so "user authentication" can find login and session code that never uses those words. It returns the matching definition lines. It builds and saves a search index in the project, and sends code snippets to your embedding provider.
Try: “Find the code that handles user authentication.”
Write ·
semantic_code_searchFinds functions and classes by intent, with where they are used
Looks up functions, methods, classes and variables by what you describe, then lists their definitions and the places that call them, with line numbers. It uses the same saved embedding index as code search.
Try: “Where is the retry logic for failed payments defined and called?”
Write ·
semantic_identifier_searchShows the project's folders, files and symbols as a tree
Draws the project as a tree with each file's short header and the functions, classes and enums inside it. Large projects are trimmed automatically to fit a token limit, and you can limit depth or point it at one folder.
Try: “Give me an outline of the src folder, two levels deep.”
Files ·
get_context_treeShows a file's function signatures without the bodies
Lists the functions, methods and types in one file with their parameters, return types and line ranges. It lets the assistant learn how to use a file without loading all of it.
Try: “Show the public API of src/core/parser.ts.”
Files ·
get_file_skeletonGroups the project's files into labeled topic clusters
Clusters files that are about similar things and gives each cluster a name using a chat model. It needs an embedding model and a chat model, and it saves embeddings in the project.
Try: “Group this repo's files by feature and name each group.”
Write ·
semantic_navigateLists everywhere a function, class or variable is used
Finds every file and line that imports or uses a symbol you name. Use it before deleting or changing code, and it warns when a symbol is barely used.
Try: “What breaks if I rename parseConfig?”
Files ·
get_blast_radiusRuns the project's own linter or compiler and reports problems
Runs a checker that matches the file type: tsc for TypeScript, eslint for JavaScript, py_compile for Python, cargo check for Rust, go vet for Go. These run on your machine inside the project folder with a 30 second limit.
Try: “Run the type checker on this project and list the errors.”
Runs code ·
run_static_analysisSaves a file after checking it against the server's code rules
Writes a full file to the project, but only if it passes the server's rules, such as a two-line header, no inline comments, a nesting limit and a file length limit. It saves a restore point of the old file first.
Try: “Save this new version of src/api/client.ts.”
Write ·
propose_commitLists the saved copies made before the assistant changed files
Shows every restore point made before a save, so you can pick one to go back to. Reads a small file in the project's .mcp_data folder.
Try: “Show the restore points from today.”
Files ·
list_restore_pointsPuts files back to how they were before a specific change
Rewrites the files from a restore point over the current ones, so changes made after that point are lost. Git history is not touched.
Try: “Undo the last change to src/api/client.ts.”
Write ·
undo_changeBrowses feature maps written as Markdown notes with links to code
Reads hub notes, which are Markdown files with [[wikilinks]] to code files. It can list the hubs, show one with outlines of the files it links, or find files that no hub mentions.
Try: “List the feature hubs and any files that are not linked to one.”
Files ·
get_feature_hubSaves or updates a note, concept or symbol in a memory graph
Stores a node for a concept, file, symbol or note in the project's memory graph, or updates it if the same label exists. Its text is turned into an embedding using your provider.
Try: “Remember that the payments module depends on the billing API.”
Write ·
upsert_memory_nodeLinks two memory notes with a typed connection
Connects two memory nodes with a relation such as depends_on or implements. The link weight fades over time unless it is refreshed.
Try: “Link the payments note to the billing API note as depends_on.”
Write ·
create_relationSearches saved memory by meaning and follows its links
Finds the notes closest in meaning to your question, then also returns notes linked to them one or two steps away, with relevance scores.
Try: “What do we remember about the billing API?”
Files ·
search_memory_graphCleans old, faded links and unused notes out of memory
Deletes memory links whose weight has faded below a threshold, and notes that have no links, are rarely used and have not been touched for over 7 days. It only touches the memory graph, not your source files.
Try: “Clean up stale links in the memory graph.”
Delete ·
prune_stale_linksAdds many notes at once and links the similar ones
Saves a batch of notes and automatically links any two that are similar enough, including links to notes already stored. It computes embeddings with your provider.
Try: “Import these ten notes about our auth flow into memory.”
Write ·
add_interlinked_contextStarts from one memory note and explores what it links to
Takes a memory node and returns all notes reachable within a depth limit, ranked by link strength and distance.
Try: “Show everything connected to the payments note within two steps.”
Files ·
retrieve_with_traversal
Read from the source code
Permissions
high risk · 5 things to watch
High risk
The assistant can overwrite files in your project, run your linters and compilers there, and send code snippets to your embedding provider if you pick a cloud one. Work on a git branch, and keep the default local Ollama setup if your code is private.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
propose_commit overwrites any file the path points to
It writes whatever path the assistant gives, and the 1.0.8 build does not check that the path stays inside the project folder, so a path such as ../../.zshrc is written as given. The header and comment rules only reject some content. undo_change also rewrites files from a restore point. Work in a git branch and review every change. github.com
run_static_analysis runs commands in your project through a shell
It runs tsc, eslint, py_compile, cargo check or go vet with exec, joining the file path into a shell command line without quoting. cargo check and go vet run project build code, and a crafted path can add shell commands. It has no read-only mode. Use it only on projects you trust. github.com
A cloud provider receives your code snippets
If you set the embedding provider to OpenAI, Gemini or another API, file contents and symbol text are sent there to be embedded. The default Ollama setup keeps this local unless you add an Ollama Cloud key. github.com
It saves data inside your project
A .mcp_data folder holds embedding caches, restore points and the memory graph. Add it to .gitignore so it is not committed. github.com
prune_stale_links deletes memory data
It removes faded links and unused notes from the memory graph. It does not touch your source files. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No read-only mode is documented. Every tool is always available. |
|---|---|
| Talks to | Your embedding provider: local Ollama by default, or an OpenAI-compatible API if you set one |
| Sign-in and keys | No account. An API key is needed only if you use Ollama Cloud or an OpenAI-compatible provider, set as an environment variable. |
Questions
Is Context+ official?
No. It is a community project by forloopcodes. It is not made by Ollama, OpenAI or any editor vendor.
Does it need Ollama?
By default yes. It uses a local Ollama server with an embedding model such as nomic-embed-text. You can switch to an OpenAI-compatible API, including Gemini's free tier, with environment variables.
Does it send my code to the cloud?
Not with the default local Ollama setup. With an OpenAI-compatible provider or an Ollama Cloud key, file content and symbols are sent to that service to be embedded.
Which folder does it index?
The folder you start it in, or a path you add after the package name. The README shows an optional --include flag for gitignored sub-folders.
Can it change my files?
Yes. propose_commit writes whole files and undo_change restores older copies. There is no read-only mode, so review changes in git.
What does the README say about npx or bunx?
Both work. The README examples use bunx, and says to use npx with the -y flag if you prefer it.
Which apps does it work with?
The README names Claude Code, Cursor, VS Code, Windsurf and OpenCode, with a command that creates the config file for each.
Is the list of 17 tools complete?
Yes for the main branch, where the README and the source both list 17. The npm release is 1.0.8 and main is at 1.0.9, so a tool added or removed in between could differ.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
contextplus- Registry
- npm
- Transport
- stdio
- Auth
- None
- License
- MIT
- Last commit
- Jul 13, 2026
- Open issues
- 1
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- github.com · github.com
- github.com · github.com
- github.com · github.com