mcpjam mcp runs MCPJam itself as an MCP server over stdio. Add it to any MCP client — Claude Desktop, Claude Code, Cursor, or your own agent — and the agent gets MCPJam’s local testing engine as tools: connect to a server under test, call its tools, read its resources and prompts, watch the notifications it emits, and run diagnostic sweeps.
Why use this instead of the CLI?
Agents with shell access can already runmcpjam commands directly, and for one-shot checks that is often the better choice. The MCP server mode adds two things the CLI cannot do:
- Clients without a shell. Claude Desktop and other chat-style MCP clients can’t run CLI commands. This is the only way to give them MCPJam’s testing engine.
- Persistent sessions. Each CLI invocation reconnects to the target server.
mcpjam mcpholds connections open across tool calls, so the agent can observenotifications/messagelogs,list_changedevents, resource updates, and other session behavior that one-shot commands miss.
Setup
- Claude Desktop
- Claude Code
- Cursor
- Other clients
Add to
claude_desktop_config.json (Settings → Developer → Edit Config):In MCP server mode all status output goes to stderr; stdout carries only
JSON-RPC. The
--timeout <ms> global flag sets the default per-request
timeout against target servers (individual tool calls can override it with
timeoutMs).Tools
Connections
Exercising the target
Stateless diagnostics
Example session
A typical agent flow while developing a stdio server:connect_serverwith{ "name": "dev", "command": "node", "args": ["dist/server.js"] }list_toolswith{ "server": "dev" }— review names, descriptions, schemascall_toolwith{ "server": "dev", "tool": "search", "arguments": { "query": "test" } }get_notificationswith{ "server": "dev" }— did the server log what you expected? Did it emitnotifications/tools/list_changed?- Iterate on the server code, then
disconnect_server/connect_serverto pick up the rebuild server_doctorwith the samecommandfor a final health sweep
{ "error": { "code", "message" } } payloads with isError: true — for example USAGE_ERROR for invalid input or SERVER_UNREACHABLE when the target is down.
Relationship to the hosted MCP server
MCPJam also operates a hosted MCP server atmcp.mcpjam.com/mcp that exposes your MCPJam account — projects, saved servers, eval suites and runs — behind OAuth. The two are complementary:
Troubleshooting
- Client says the server failed to start — run
npx -y @mcpjam/cli@latest mcpin a terminal; you should seeMCPJam MCP server listening on stdioon stderr. First runs may be slow whilenpxdownloads the package; pre-install withnpm i -g @mcpjam/cliand usemcpjam mcpto avoid the download. connect_serverfails withSERVER_UNREACHABLE— the target URL or command is wrong, or the target crashed on startup. Tryserver_doctoragainst the same target for a structured diagnosis.- A connection name is already taken —
connect_serverrefuses to overwrite an existing name;disconnect_serverit first or pass a differentname.

