Once connected (with or without auth), the tools, resources, and prompts command groups let you explore and exercise what the server exposes.
Running commands as a host
Add --host <id> to any tools, resources, or prompts command to connect the way a real host would, sending that host’s clientInfo, advertised clientCapabilities, and protocol version in the MCP initialize handshake, exactly as the Inspector Playground does.
Valid host IDs match the presets in the Inspector: claude, chatgpt, cursor, copilot, codex, mcpjam.
Tool visibility with --host: tools list --host hides tools whose _meta.ui.visibility is ["app"]. Those are app-only tools the host’s model cannot see. The output includes a host field and a toolsDroppedVisibility count. Hosts that opt out of visibility filtering (such as cursor) keep all tools. tools call --host rejects app-only tools with a usage error; omit --host to call them as an operator.
Conflict with --client-capabilities: --host and --client-capabilities both set the exact advertised capabilities and cannot be combined. The CLI exits with a usage error if both are passed.
Returns every tool the server exposes, including names, descriptions, and input schemas.
Tool arguments can be inline JSON, @path, - for stdin, or --tool-args-stdin as a shorthand for stdin. The result includes the tool’s response content.
tools call supports --debug-out <path> to capture the full request/response
trace for debugging. For stdio targets, the artifact records only the
explicit env keys passed through -e/--env; inherited shell variables are
not enumerated.
If tools list shows _meta.ui.resourceUri, deprecated _meta["ui/resourceUri"], or openai/outputTemplate in toolsMetadata, the tool has interactive UI. Add --ui to execute it once and render the completed result in Inspector’s Playground:
Without --ui, tools call returns the raw tool result. With --ui, it opens Inspector by default in a TTY and returns an envelope containing the raw result, inspectorBrowserUrl, and compact inspectorRender evidence. inspectorRender.status is the UI signal: rendered means Inspector accepted the render, skipped means the tool succeeded but the active browser client, a render precondition, or the render wait was missing, and error means a non-recoverable Inspector render command failed. inspectorRender.remediation is always present and is one of open_browser, retry, reconnect_server, or none. Skipped renders emit a stable root warning plus inspectorRender.warning with code, message, remediation, and optional browserUrl, hasActiveClient, and inspectorStarted fields. Stable skipped-render codes are no_active_client, timeout, disconnected_server, and unsupported_in_mode. Pass --require-render when a skipped render should become a hard error instead of a warning. Browser automation can open inspectorBrowserUrl itself and pass --no-open; --inspector-url is the local Inspector backend/API base URL. If you already know the Inspector browser/client URL, pass --frontend-url <url> to use it directly and skip health-advertised frontend checks and local dev port discovery.
For agent/browser automation, either let --ui open Inspector automatically in a TTY, or open http://127.0.0.1:6274/#playground in the automation browser first and run tools call --ui --no-open --quiet --format json. Add --attach-only when startup, browser opening, and discovery should be disallowed. Agents should confirm inspectorRender.status === "rendered" before assuming the UI is visible, and use inspectorRender.remediation to recover from skipped renders. Default non-TTY --ui runs do not open a browser unless --open is passed. TTY stderr runs print the Playground URL and initial wait message unless --quiet is set; the elapsed-seconds heartbeat only appears when stderr is a TTY. The normal JSON output is compact; pass --debug-out <path> for the full render envelope.
For a local stdio server:
Resources
List resources
Read a resource
Use resources read --resource-uri ui://... when you need to inspect raw widget HTML or other UI resources directly.
List resource templates
Prompts
List prompts
Get a prompt
Common patterns
Enumerate the full server surface
For generated payloads, pipe JSON through stdin:
--tool-args-stdin is equivalent to --tool-args - and cannot be combined with --tool-args or --params in the same command:
Using a credentials file
Instead of passing --access-token to every command, save credentials once and reuse the file:
No-auth servers
For servers that don’t require authentication (like mcp.excalidraw.com/mcp), simply omit the auth flags:
Stdio child processes inherit the parent shell environment by default. Use
-e/--env to add values or override inherited ones for local subprocesses.