mcpjam CLI is a stateless tool for inspecting, debugging, and testing MCP servers from the command line or CI. It covers the full lifecycle: connectivity checks, OAuth login, MCP Apps validation, tool/resource/prompt exploration, and protocol conformance.
Recommended: Use with Agent Skills
The easiest way to use the CLI is through the MCPJam skill, which gives your agent full context on every command and workflow.mcpjam commands automatically.
Install
All examples in these docs use
mcpjam directly. If you installed via npx,
replace mcpjam with npx -y @mcpjam/cli@latest.Command groups
Global flags
These flags apply to every command.Output formats
The CLI auto-detects whether stdout is a terminal:- Interactive terminal — defaults to
--format human. For most commands this is pretty-printed JSON;server doctorand the OAuth conformance commands provide dedicated human-readable summaries. - Piped or redirected (CI,
| jq, agent invocation) — defaults to--format json, the full structured result. - Conformance in CI —
protocol conformance,protocol conformance-suite,oauth conformance,oauth conformance-suite,apps conformance, andapps conformance-suitesupport--reporter junit-xmland--reporter json-summary. - Explicit
--formatalways wins over the auto-detected default.
--quiet --format json.
JSON-valued flags accept inline JSON, @path, or - for stdin. tools call also accepts --tool-args-stdin as a shorthand for --tool-args -. Use files or stdin for large payloads to avoid shell escaping issues:
Connecting to servers
The CLI supports two transport modes, selected by which flags you pass:--url ...selects HTTP.--command ...selects stdio.--transport http|stdiois optional and acts as an explicit override/validator when you want the CLI to reject mismatched flags early.
HTTP (Streamable HTTP / SSE)
Stdio (local subprocess)
-e/--env to add values or override inherited ones for the spawned server.
Structured debug artifacts only record the explicit env keys you pass through
-e/--env; inherited shell variables are not enumerated.
oauth ... and protocol ... are HTTP-only command groups. They do
not accept stdio targets.Update notifications
After a successful command, the CLI checks whether a newer version of@mcpjam/cli is available and prints a notice to stderr when one is found:
Exit codes
Quick triage workflow
The fastest path from “I have a server URL” to “I know what’s wrong”:Use from an MCP client instead of a shell
If your agent speaks MCP but can’t run shell commands (Claude Desktop, chat clients), run the same testing engine as a stdio MCP server:What’s next
- MCPJam as an MCP server — give MCP clients the testing engine over stdio
- Server inspection — probe, doctor, and diagnostics
- OAuth conformance — test your OAuth implementation
- OAuth login — authenticate and debug OAuth flows
- MCP Apps conformance — validate
_meta.ui.resourceUriandui://resource wiring - Tools, resources & prompts — exercise the connected surface
- Full command reference — every flag for every command

