MCP Setup (Claude / Cursor)
probe-mcp is a stdio JSON-RPC binary bundled inside the Probe install. To use it, point your AI client at the binary's path. No tokens, ports, or extra config — probe-mcp reads ~/.probe/api-handshake.json automatically, and reads it again whenever Probe's port or token changes, so you never have to restart your AI client after restarting Probe.
Find the binary path
Section titled “Find the binary path”The binary lives inside the app bundle:
/Applications/Probe.app/Contents/MacOS/probe-mcpIf you installed Probe somewhere else, replace the prefix with that path.
The binary sits next to Probe.exe:
C:\Program Files\Probe\probe-mcp.exeIf you installed Probe per-user, look under %LOCALAPPDATA%\Programs\Probe\probe-mcp.exe.
Configure your client
Section titled “Configure your client”The fastest way is the CLI — claude mcp add registers the server without editing any file. Everything after -- is the command Claude Code runs.
claude mcp add probe -- /Applications/Probe.app/Contents/MacOS/probe-mcpAdd --scope user to make it available in every project (defaults to the current project's .mcp.json).
claude mcp add probe -- "C:\Program Files\Probe\probe-mcp.exe"Add --scope user to make it available in every project.
Prefer to edit config by hand? Claude Code reads .mcp.json from your project root (or ~/.claude.json for a user-level config):
{ "mcpServers": { "probe": { "command": "/Applications/Probe.app/Contents/MacOS/probe-mcp", "args": [] } }}{ "mcpServers": { "probe": { "command": "C:\\Program Files\\Probe\\probe-mcp.exe", "args": [] } }}Edit Claude Desktop's MCP config (Settings → Developer → Edit Config) and add:
{ "mcpServers": { "probe": { "command": "/Applications/Probe.app/Contents/MacOS/probe-mcp", "args": [] } }}The file lives at ~/Library/Application Support/Claude/claude_desktop_config.json.
{ "mcpServers": { "probe": { "command": "C:\\Program Files\\Probe\\probe-mcp.exe", "args": [] } }}The file lives at %APPDATA%\Claude\claude_desktop_config.json.
Restart Claude Desktop after saving.
Cursor stores MCP servers in .cursor/mcp.json (project-scoped) or ~/.cursor/mcp.json (global).
{ "mcpServers": { "probe": { "command": "/Applications/Probe.app/Contents/MacOS/probe-mcp", "args": [] } }}{ "mcpServers": { "probe": { "command": "C:\\Program Files\\Probe\\probe-mcp.exe", "args": [] } }}Reload Cursor (or hit the Refresh button in MCP settings) so it spawns the new server.
The Codex CLI reads MCP servers from ~/.codex/config.toml. Register probe with the CLI:
codex mcp add probe -- /Applications/Probe.app/Contents/MacOS/probe-mcpcodex mcp add probe -- "C:\Program Files\Probe\probe-mcp.exe"Or add the block to ~/.codex/config.toml by hand:
[mcp_servers.probe]command = "/Applications/Probe.app/Contents/MacOS/probe-mcp"args = [][mcp_servers.probe]command = "C:\\Program Files\\Probe\\probe-mcp.exe"args = []Codex spawns the server on the next codex run — no restart needed.
Add an entry to Continue's config.json under mcpServers:
{ "mcpServers": [ { "name": "probe", "command": "/Applications/Probe.app/Contents/MacOS/probe-mcp", "args": [] } ]}Any MCP client that supports stdio transport works. Spawn the binary with no arguments and speak JSON-RPC 2.0 on stdin/stdout. Each request must be on a single line, terminated with \n.
/Applications/Probe.app/Contents/MacOS/probe-mcpThe first message you send should be initialize; from there, send tools/list to discover the catalog.
Verify it's wired up
Section titled “Verify it's wired up”- Make sure Probe is running (the proxy may be stopped: the API and every non-traffic tool still work).
probe-mcpalso starts without it, but every tool answersProbe is not running … Start Probe, then retry.until the app is up. - Restart your AI client so it picks up the new config. (This is only needed after a config change, not after restarting Probe.)
- Ask the AI: "What tools do you have available from probe?"
- You should see 117 tools listed, all prefixed
probe_….
If the AI says it doesn't see any Probe tools:
- Confirm Probe is open and capturing.
- Check that
~/.probe/api-handshake.jsonexists (ls ~/.probe/on macOS). - Run
probe-mcpdirectly from a terminal — it prints what it found (or why it couldn't reach Probe) to stderr.
Auth and security
Section titled “Auth and security”You don't pass any credentials. probe-mcp reads the bearer token straight from ~/.probe/api-handshake.json, which Probe creates with 0600 permissions on Unix (owner read/write only) from the first byte — it writes a fresh owner-only file and renames it into place, so the token is never readable by other users, even briefly. On Windows the file sits in your user profile, which only your account (and administrators) can read. Each proxy start generates a new port and token; quitting Probe removes the file. To point probe-mcp at an isolated Probe instance, set PROBE_DATA_DIR in the server's env block — it then reads <PROBE_DATA_DIR>/api-handshake.json.
The REST API only listens on 127.0.0.1, so it's reachable from local processes only.
What a connected AI can reach
Section titled “What a connected AI can reach”An AI connected to Probe is trusted roughly like you: it can see captured traffic, send requests and run scripts. Probe still keeps a few things out of its reach by default:
- Local files. Files transfers and Map Local rules created or edited over MCP may only read from
~/Downloads,~/.probe/transfersand (Map Local)~/.probe/map-local; downloads only write to the first two. Refusals name the allowed folders and never say whether a file elsewhere exists. Paths you pick in the app are not limited. - Secret variable values. Secret Composer variables are masked (
••••••••) in send results and flow run reports, so they don't end up in a chat or a log by accident. This is not a barrier against an AI that sets out to read them: a script can print a transformed value, the captured traffic of its own Composer sends shows the real URL and headers (it is not masked), and a server that echoes the request returns the value. Don't connect an AI you wouldn't trust with those secrets.
Next steps
Section titled “Next steps”- MCP Tool Reference — every tool, every parameter.
- Internal REST API — what's running on the other end.
- Troubleshooting — fixes for common MCP errors.