Connecting Claude Code (and other MCP clients)
Veri's connection panel writes one config format: a project-scoped .mcp.json. This page documents exactly what gets written, where, and how to verify it works — for Claude Code and for any client that can launch a stdio MCP server. Using a different agent? See Cursor, Codex CLI, or Gemini CLI.
What Veri writes
Open the project in Veri, click Settings at the bottom of the left rail, choose Agent connection, and click Set up connection. Veri writes a .mcp.json file at the project root — the directory that contains veri/, which is where Claude Code looks for project-scoped MCP config:
{
"mcpServers": {
"veri": {
"command": "node",
"args": [
"/Applications/Veri.app/Contents/Resources/app/node_modules/@veri/mcp/dist/server.js",
"/Users/you/code/your-project"
]
}
}
}
command: "node"— your agent launches the server with your own Node (version 20 or newer). This is deliberate: it keeps the file portable — no machine-specific runtime path baked into something you may commit and share. The panel warns you at setup time if no usable Node is on your shell's PATH.- First argument — the MCP server script that ships inside the Veri app. The path contains no version segment, so it stays valid across app self-updates.
- Second argument — the project root the server serves: the folder containing
veri/. Relative paths are accepted and resolved against the project root.
mcpServers.veri entry of exactly the shape above. Any other entry in the file is preserved untouched. A veri entry Veri doesn't recognize — different command, extra keys — is shown to you as a conflict and replaced only if you explicitly say so. If the file doesn't parse, Veri refuses to write it at all rather than risk your other config.Per-user alternative: claude mcp add
If you'd rather not have a checked-in file — say, teammates don't use Veri — the panel offers a copyable, pre-filled command that registers the server in your user-scoped Claude Code config instead:
claude mcp add veri -- node "<path to server.js>" "<path to project root>"
Copy is the only action; Veri never runs it for you.
Restart your agent
Agent apps read MCP config on launch. After any write, quit and reopen Claude Code — or start a new session — in the project folder. This is the one step Veri can't do for you. In Claude Code, /mcp should then list veri with ten tools.
Verify from inside Veri
The connection panel's static checks confirm the file exists, the entry is present, the server script exists on disk, and the root argument points at the open project. LIVE CHECK → Verify connection goes further: Veri launches the server with the exact command and arguments in your config — resolving node the way your terminal would — and performs a real MCP handshake, including a search call proving the server serves this project's documents.
Success looks like: "Server answered over MCP — serving this project (16 documents, 7 tools) with node v22.x." A failure names one of five causes — missing Node, Node too old, server script missing, wrong project root, or the server didn't answer — each with a single fix. See troubleshooting for all five.
What the agent gets
| Tool | What it does |
|---|---|
get_context | The context package for a work order: the project workflow, the work order, all linked requirements and active decisions (two hops), source excerpts, with token estimates. Superseded decisions are named as already rejected. |
search | Case-insensitive substring search over every document's id, title, and body. |
get_document | One document in full by id — how an agent follows a link the context package only named. |
get_neighbors | A document's direct links, inbound and outbound, with each neighbor's type and status. |
file_decision | Records a decision the agent made during implementation, with the alternatives it rejected — filed for your review. |
file_work_order | Proposes a new work order with the next free WO id, in backlog until you review it. |
file_requirement | Drafts a requirement with the next free REQ id — born draft, awaiting your acceptance. |
file_source | Files a source document — imported evidence with the file paths, commit refs, and excerpts it rests on. |
file_receipt | Appends a work-session receipt (commit, files, summary) to a work order — or to an import manifest as an import's completion signal. Receipts accumulate; they never overwrite. |
get_import_instructions | The brownfield import instruction package: what to mine from an existing repo, the filing rules, and a census of what the knowledge base already holds. |
Other MCP clients
There's nothing Claude-specific about the server: it's a standard stdio MCP server. Any client that can launch one works with the same three facts — command node, the server.js path shown in Veri's panel, and your project root as the argument. Configure those in your client's own format, then use Veri's Verify connection to prove the server side end to end (it exercises the same script and root your client will).