Prism — Claude Code MCP server: repo intelligence before you ship
A local MCP server that hands your agent the right files before an edit and checks what the change left behind. Your code stays on the machine.
claude mcp add --env PRISM_WORKSPACE=<PRISM_WORKSPACE> --env CURSOR_API_KEY=<CURSOR_API_KEY> --env PRISM_DISPATCH_ROLE=<PRISM_DISPATCH_ROLE> --transport stdio prism -- npx -y @repo-prism/mcp-serverWhat Prism does
Prism indexes your repository locally and answers the agent from that index. Before an edit it names the files and tests tied to the task, plus helpers worth reusing instead of rewriting. During the edit it points at a file from your own repo to copy, so new code matches the surrounding style. Afterward it runs the checks the change reaches and returns one verdict: SHIP, NOT PROVEN with the cheapest check to prove it, or NO-SHIP.
Nine MCP tools ship by default; the rest are opt-in through extraTools in ~/.prism/config.json. Review lenses come in Dev, Architect and QA flavors, and you can add your own with prism lens. The CLI and the agent read the same index, so both give the same answers.
Analysis makes no network requests, and a trap suite fails the build if one shows up. The single exception is a once-a-day npm registry check for updates, switched off with PRISM_SKIP_SELF_UPDATE=1. Installation is global, so Node.js and npm need to be present.
What it helps with
- find the files and tests a task touches before editing
- spot callers left dangling by a change
- work out which tests reach a given file
- get a verdict on a change instead of checking by hand
- add custom review lenses for a team
Example prompts for the agent
- What breaks if I change
src/index.ts? - Prepare a change: I need to rewrite error handling in the API
- Review my changes with the QA lens
How to install Prism
Platform CLI
claude mcp add --env PRISM_WORKSPACE=<PRISM_WORKSPACE> --env CURSOR_API_KEY=<CURSOR_API_KEY> --env PRISM_DISPATCH_ROLE=<PRISM_DISPATCH_ROLE> --transport stdio prism -- npx -y @repo-prism/mcp-serverReplace <…> with your own values
Platform CLI
codex mcp add prism --env PRISM_WORKSPACE=<PRISM_WORKSPACE> --env CURSOR_API_KEY=<CURSOR_API_KEY> --env PRISM_DISPATCH_ROLE=<PRISM_DISPATCH_ROLE> -- npx -y @repo-prism/mcp-serverReplace <…> with your own values
Config file
{
"mcpServers": {
"prism": {
"command": "npx",
"args": [
"-y",
"@repo-prism/mcp-server"
],
"env": {
"PRISM_WORKSPACE": "<PRISM_WORKSPACE>",
"CURSOR_API_KEY": "<CURSOR_API_KEY>",
"PRISM_DISPATCH_ROLE": "<PRISM_DISPATCH_ROLE>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"prism": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@repo-prism/mcp-server"
],
"env": {
"PRISM_WORKSPACE": "<PRISM_WORKSPACE>",
"CURSOR_API_KEY": "<CURSOR_API_KEY>",
"PRISM_DISPATCH_ROLE": "<PRISM_DISPATCH_ROLE>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e PRISM_WORKSPACE=<PRISM_WORKSPACE> -e CURSOR_API_KEY=<CURSOR_API_KEY> -e PRISM_DISPATCH_ROLE=<PRISM_DISPATCH_ROLE> prism npx -y @repo-prism/mcp-serverReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Prism
How do I install Prism in Claude Code?
Run claude mcp add prism -e CURSOR_API_KEY=<CURSOR_API_KEY> -- npx -y @repo-prism/mcp-server. If you need a workspace path and a Dispatch role, use the second form: `claude mcp add --env PRISM_WORKSPACE=<PRISM_WORKSPACE> --env CURSOR_API_KEY=<CURSOR_API_KEY> --env PRISM_DISPATCH_ROLE=<PRISM_DISPATCH_ROLE> --transport stdio prism -- npx -y @repo-prism/mcp-server`.
What does Prism do?
It builds a local index of your repo and tells the agent which files and tests matter for a task, what depends on a file or symbol, and which changes no test covers. When the agent stops, it reports a verdict on the checks the change reached.
Does Prism send my code anywhere?
No. Analysis makes no network requests, and a trap suite fails the build if one appears. A daily npm registry update check is the only request, and PRISM_SKIP_SELF_UPDATE=1 turns it off.