Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mcpjam-mintlify-docs-update-pr-1990-1777694265403.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The 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. The easiest way to use the CLI is through the MCPJam skill, which gives your agent full context on every command and workflow.
npx skills add mcpjam/inspector --skill mcp-inspector
Once installed, your agent will know how and when to invoke mcpjam commands automatically.

Install

# Global (gives you the mcpjam command)
npm i -g @mcpjam/cli

# Or run without installing
npx -y @mcpjam/cli@latest --help
All examples in these docs use mcpjam directly. If you installed via npx, replace mcpjam with npx -y @mcpjam/cli@latest.

Command groups

GroupPurposeKey commands
serverTriage connectivity and capabilitiesprobe, doctor, info, validate, ping, capabilities, export
oauthTest OAuth flows and conformanceconformance, conformance-suite, login, metadata, proxy
appsValidate MCP Apps metadata and resource wiringconformance, conformance-suite
inspectorStart, open, or stop the local Inspector from the CLIopen, start, stop
toolsExercise the tool surfacelist, call
resourcesRead resources and templateslist, read, templates
promptsFetch promptslist, get
protocolMCP protocol conformance checksconformance, conformance-suite
telemetryInspect and configure anonymous CLI telemetrystatus, disable, enable

Global flags

These flags apply to every command.
FlagDefaultDescription
--timeout <ms>30000Request timeout in milliseconds
--rpcoffInclude raw JSON-RPC request/response logs in JSON output under _rpcLogs
--quietoffSuppress non-result progress output on stderr
--no-telemetryoffDisable anonymous telemetry for this invocation
--format <format>human on TTY, json when pipedRaw output format (json or human)
-v, --versionPrint the CLI version

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 doctor and 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 CIprotocol conformance, protocol conformance-suite, oauth conformance, oauth conformance-suite, apps conformance, and apps conformance-suite support --reporter junit-xml and --reporter json-summary.
  • Explicit --format always wins over the auto-detected default.
For agents: raw JSON is the source of truth. Human format is a lossy presentation layer. If you’re parsing output programmatically, pass --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:
echo '{"key":"value"}' | mcpjam tools call --url $URL --access-token $TOKEN \
  --tool-name my_tool --tool-args - --quiet --format json

Connecting to servers

The CLI supports two transport modes, selected by which flags you pass:
  • --url ... selects HTTP.
  • --command ... selects stdio.
  • --transport http|stdio is optional and acts as an explicit override/validator when you want the CLI to reject mismatched flags early.

HTTP (Streamable HTTP / SSE)

mcpjam server doctor --url https://your-server.com/mcp
Add auth when needed:
# Static bearer token
mcpjam server doctor --url https://your-server.com/mcp --access-token $TOKEN

# OAuth tokens from a prior login
mcpjam server doctor --url https://your-server.com/mcp --oauth-access-token $TOKEN

# Custom headers
mcpjam server doctor --url https://your-server.com/mcp --header "X-API-Key: $KEY"

Stdio (local subprocess)

mcpjam server doctor --command node --args server.js --cwd /path/to/project -e API_KEY=$KEY
Stdio child processes inherit the parent shell environment by default. Use -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.

Exit codes

CodeMeaning
0Success / all checks passed
1Command ran but reported a failure (e.g., server unhealthy, conformance failed)
2Invalid arguments or configuration

Quick triage workflow

The fastest path from “I have a server URL” to “I know what’s wrong”:
# 1. One-shot health check (probe + connect + sweep)
mcpjam server doctor --url https://your-server.com/mcp

# 2. If oauth_required: get a token
mcpjam oauth login --url https://your-server.com/mcp \
  --protocol-version 2025-11-25 --registration dcr

# 3. Re-run doctor with the token
mcpjam server doctor --url https://your-server.com/mcp --oauth-access-token $TOKEN

# 4. Exercise tools directly
mcpjam tools list --url https://your-server.com/mcp --access-token $TOKEN
mcpjam tools call --url https://your-server.com/mcp --access-token $TOKEN \
  --tool-name my_tool --tool-args @params.json --quiet --format json

# 5. If the server exposes MCP Apps, validate the ui:// surface
mcpjam apps conformance --url https://your-server.com/mcp --access-token $TOKEN

# 6. Render one UI-capable tool result in Inspector's App Builder.
# --ui opens Inspector by default in a TTY; add --no-open if browser automation already opened it.
mcpjam tools call --url https://your-server.com/mcp --access-token $TOKEN \
  --tool-name my_app_tool --tool-args @params.json --ui --quiet --format json

What’s next