
XERJ MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude, Cursor and other assistants search your local code, docs and notes and cite the file and line.
XERJ is a search engine that runs on your computer. Its MCP server is the same program, started with the mcp argument. It queries a XERJ node that must already be running, and it does not start one. The node listens on localhost, and a development node started with the README command has no password.
This server does more than search. It can store memories and delete indexed folders, and one tool sends a field report to the XERJ project by default.
Good for
- Developers who want an assistant to search a large codebase without reading every file
- Teams who keep specs, docs and logs locally and want cited answers
- Agent builders who need local memory the assistant can store and recall
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 XERJ MCP
Claude Code
- 1
Copy this prompt.
Add the XERJ MCP server to Claude Code. Run this command: claude mcp add xerj -- xerj mcp 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 xerj binary installed, A running XERJ node.
Install xerj first with the installer in the README, then start a node with the README's xerj --insecure --data-dir ~/xerj-data & command. Replace /abs/path/to/xerj with the real path, shown by command -v xerj.
From the project README. Source.
Tools
Searches your indexed code and docs
Keyword search over an index of your files. Plain words rank the file that defines a symbol above files that only mention it, and results give the file and line.
Try: “Where do we rotate the WAL segment?”
Read ·
xerj_searchFinds where a symbol is defined
Looks up a symbol in your locally indexed data and returns the declaration with its file and line.
Try: “Where is euler_to_rotationmatrix defined?”
Read ·
xerj_defRuns up to 50 searches at once
Searches 1 to 50 identifiers or questions in one call and returns results in input order, with citations. It retrieves evidence and does not write answers.
Try: “Look up these 20 function names and cite the files.”
Read ·
xerj_batch_searchShows how other projects solved a problem
Searches a corpus of other codebases and returns the matching definition, the file and line to cite, and a licence warning for each hit.
Try: “How did other projects implement a retry policy?”
Read ·
xerj_code_searchFinds text by meaning
Searches a semantic field by meaning. The server embeds your query itself, with no outside API key. The default embedder is lexical, not neural.
Try: “Find notes about slow database queries.”
Read ·
xerj_semantic_searchFinds near matches to a vector
Runs a nearest-neighbour search on a vector field using a vector you supply.
Try: “Find the 5 nearest items to this embedding.”
Read ·
xerj_vector_searchCombines keyword and meaning search
Fuses several sub-queries, such as keywords plus a vector, into one ranked list.
Try: “Search for payment errors using keywords and meaning together.”
Read ·
xerj_hybrid_searchTurns a plain request into a query
Turns a plain-words filter into a validated search query you can send to the search tool. It is rule-based, not an AI model.
Try: “Build a query for events deeper than 100 km.”
Read ·
xerj_planLists the fields of each indexed folder
Reads the local index catalog and lists each index with its record count, time range and field names, so the assistant stops guessing field names.
Try: “What fields can I query in my indexes?”
Read ·
xerj_mapChecks that the XERJ node is up
Reports whether the node is running, its health, the number of indexes and the first 20 index names.
Try: “Is XERJ running, and what is indexed?”
Read ·
xerj_statusEstimates an index before building it
Counts the files and bytes in a folder by type and compares them with free disk space, before anything is indexed.
Try: “How big would indexing ~/projects be?”
Files ·
xerj_index_budgetDeletes one indexed folder
Deletes the indexes and catalog rows for a folder you indexed. Without confirm set to true it returns the plan and deletes nothing.
Try: “Remove the index of my old-notes folder.”
Delete ·
xerj_autoindex_removeSaves a memory for later
Stores a durable memory in a namespace, searchable by words and by meaning. It can skip near-duplicates.
Try: “Remember that we chose Postgres for the billing service.”
Write ·
xerj_memory_storeRecalls saved memories
Finds the most relevant memories in a namespace by text, meaning, or both.
Try: “What did we decide about the billing database?”
Read ·
xerj_memory_recallSummarizes a knowledge graph
Reports whether a second-brain graph exists, how many links are live or retired, its most linked nodes and a timeline.
Try: “Give me an overview of my project brain.”
Read ·
xerj_brain_overviewShows one node and its links
Returns one node's neighborhood in the graph, with each link's direction, type, confidence and supporting quote.
Try: “What is linked to the auth service node?”
Read ·
xerj_brain_egoAdds a link between two nodes
Records a link between two nodes in the graph along with the quote that justifies it. Repeating the same link changes nothing.
Try: “Link the payments service to the ledger with this quote.”
Write ·
xerj_brain_linkRetires a link in the graph
Marks a link as no longer valid. It stays in the history and can still be seen at earlier dates.
Try: “Retire the link between the old API and the billing service.”
Write ·
xerj_brain_unlinkSends a report about XERJ
Files a field report about using XERJ. It opens a GitHub pull request on the XERJ repo when it can, and otherwise posts to xerj.org. It sends by default.
Try: “Write a field report on how XERJ worked for this task.”
Write ·
xerj_field_reportRates a hub corpus
Sends a structured rating of a corpus on hub.xerj.org after you use it. Query text is reduced to its shape first. It sends by default.
Try: “Rate the corpus you just used.”
Write ·
xerj_corpus_feedbackFinds hub corpora that fit a question
Lists hub corpora that could answer a question, with their upstream repo, licence and whether each is already on your machine.
Try: “Which hub corpora cover the Rust tokio runtime?”
Network ·
xerj_hub_findLooks up a definition in a hub corpus
Looks up one definition, with its signature, file and line, in a named hub corpus. It never downloads a corpus. It also sends an automatic review to hub.xerj.org by default.
Try: “In the redis corpus, where is dictAdd defined?”
Network ·
xerj_hub_defAsks a hub corpus a question
Answers a question from hub corpora, using packs on your machine first and hosted ones second. Without a corpus name it picks one.
Try: “How does the redis corpus handle key expiry?”
Network ·
xerj_hub_ask
From the official docs
Permissions
high risk · 4 things to watch
High risk
The assistant can search everything you index, store memories, and delete indexed folders. Run the node on localhost only and read the plan before confirming any delete.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can delete indexed folders
One tool deletes the indexes for a folder you indexed. It deletes nothing unless confirm is true, so read the plan it shows before the assistant confirms. github.com
One tool sends reports by default
The field report tool posts to xerj.org or opens a GitHub pull request, and its description says it sends without asking. Set XERJ_DISABLE_FEEDBACK=true to turn this off, as the README mentions. github.com
The dev node has no password
The README starts the node with --insecure, which turns off encryption and auth, so every caller can do everything. Keep the node on localhost or turn auth on. github.com
Hosted hub answers leave your machine
Hub questions use local packs first and hosted ones second. Do not ask about private topics. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No read-only switch is documented. Read, write and delete tools are all exposed. |
|---|---|
| Talks to | Your XERJ node, default http://localhost:9200. xerj.org and GitHub (field reports). hub.xerj.org (corpus feedback and hosted hub answers) |
| Sign-in and keys | No account. The node address goes in XERJ_URL. If the node has auth on, put the key in XERJ_AUTH; the README says it is in the data folder's admin.key. |
| Scopes |
|
Questions
Do I need to install anything besides the MCP config?
Yes. You install the xerj program and start a node first. The MCP command only connects to that node and does not start one.
Does it send my code anywhere?
Searches run against your own node. Two tools send data out by default: a field report to xerj.org or GitHub, and corpus feedback to hub.xerj.org. Hub questions may use hosted corpora.
Do I need an API key?
No for a local dev node. If your node has auth on, set XERJ_AUTH to the key from the data folder.
Can it delete my files?
It can delete the search indexes of a folder you indexed, with a confirm step. The source does not show it deleting the original files.
Can I run it read-only?
No read-only switch is documented. Pick the search tools you want in your app and leave the rest off if it lets you.
Which apps does it work with?
Any app that runs local stdio servers. The README lists 26 clients and marks only a few as tested, including Claude Code and Cline. Run xerj init to wire up Claude Code or Cursor.
How many tools does it have?
The source defines 23: 20 core tools and 3 hub tools. The README says all 23 are exposed when Hub tools are enabled, and its Claude Code test of one build listed 22. Your build may show fewer.
Information
updated Nov 2, 2026
- Publisher
- Official
- Transport
- stdio
- Auth
- token in env
- Version
- 1.0.0-rc.99
- License
- Apache-2.0
- Last commit
- Oct 31, 2026
- Open issues
- 74
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 2Hide
- github.com · github.com
- github.com · github.com