/ Directory / Playground / inspector
● Community MCPJam ⚡ Instant

inspector

by MCPJam · MCPJam/inspector

The debugger you wish you had when building MCP servers — JSON-RPC tracing, tool evals across LLMs, OAuth conformance, CI integration.

MCPJam Inspector is a dev platform for MCP servers. Web app, desktop app, terminal, and Docker. Debug tool calls, chat with any LLM against your server, run eval tests across models, and integrate with CI to catch regressions on PR.

Why use it

Key features

Live Demo

What it looks like in practice

inspector.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "inspector": {
      "command": "npx",
      "args": [
        "-y",
        "inspector"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "inspector": {
      "command": "npx",
      "args": [
        "-y",
        "inspector"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "inspector": {
      "command": "npx",
      "args": [
        "-y",
        "inspector"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "inspector": {
      "command": "npx",
      "args": [
        "-y",
        "inspector"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "inspector",
      "command": "npx",
      "args": [
        "-y",
        "inspector"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "inspector": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "inspector"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add inspector -- npx -y inspector

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use inspector

How to debug why your MCP tool isn't being called

👤 MCP server developers ⏱ ~15 min intermediate

When to use: You wrote a tool, Claude doesn't use it, and you don't know why.

Prerequisites
  • Node — nodejs.org or nvm
Flow
  1. Launch Inspector
    npx @mcpjam/inspector@latest and open the printed URL.✓ Copied
    → UI opens in browser
  2. Connect your server
    In the UI, add your server (stdio or HTTP) and connect.✓ Copied
    → Tools list populates
  3. Simulate a prompt
    In the Chat tab, ask a question that should trigger your tool. Watch the JSON-RPC trace.✓ Copied
    → Either tool fires (good) or you see why the model rejected it (bad description, missing input schema)

Outcome: Concrete reason (wrong tool description, schema issue, model choice) with a visible fix.

Pitfalls
  • Testing with a weaker model that never uses tools — Test across multiple models in the Evals tab — Haiku, Sonnet, GPT-4o — behavior varies

How to run eval tests on PRs for your MCP server

👤 Teams maintaining production MCPs ⏱ ~30 min advanced

When to use: You want to catch 'oops that prompt no longer picks my tool' in CI.

Flow
  1. Author evals
    In Inspector, create eval cases: (prompt, expected_tool_called, expected_args).✓ Copied
    → Eval suite saved
  2. Wire into CI
    Use the CLI to run evals on every PR; fail the build on regression.✓ Copied
    → .github/workflows/mcp-eval.yml runs evals

Outcome: PRs that break tool selection don't merge.

Pitfalls
  • Evals are flaky when temperature > 0 — Use temperature 0 in eval runs
Combine with: github

How to diagnose a broken OAuth flow on your MCP server

👤 MCP server devs shipping OAuth-protected tools ⏱ ~20 min advanced

When to use: Tokens aren't refreshing, or redirect returns 400.

Flow
  1. Enable OAuth debug in Inspector
    Configure your server's OAuth endpoints and click 'Test flow'.✓ Copied
    → Step-by-step trace of authorize, token, refresh
  2. Identify the break
    Inspector highlights nonconforming steps (wrong content-type, missing PKCE, bad scope).✓ Copied
    → Specific failure node

Outcome: Conforming OAuth implementation.

Combinations

Pair with other MCPs for X10 leverage

inspector + github

Run Inspector evals in a GitHub Action on PRs for your MCP server

Set up a GitHub Action using @mcpjam/inspector CLI to run evals on every PR touching src/tools/.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
(inspector app) connect-server transport: stdio|http, command or url First step free
(inspector app) execute-tool tool, args Manual testing depends on tool
(inspector app) chat-and-inspect model, prompt End-to-end simulation 1 LLM call
(inspector app) run-evals suite_id CI regression testing N LLM calls

Cost & Limits

What this costs to run

API quota
Your LLM/eval keys determine the budget
Tokens per call
Evals can burn tokens — limit concurrency + size
Monetary
Inspector itself is free. Hosted app at app.mcpjam.com has tiers.
Tip
Run evals on Haiku for cheap smoke tests; reserve Sonnet/Opus for nightly runs.

Security

Permissions, secrets, blast radius

Minimum scopes: Whatever scopes your MCP server needs LLM provider keys for evals
Credential storage: Local env for CLI; workspace secrets for the hosted app
Data egress: Tool calls stay between your MCP and LLM; hosted app stores eval results in your workspace
Never grant: Don't upload production OAuth client secrets to the hosted app without review

Troubleshooting

Common errors and fixes

Can't connect to my stdio server

Make sure the command Inspector runs matches what Claude Desktop runs — working dir and env vars included.

Chat tab says 'model not configured'

Add your Anthropic/OpenAI key in Settings.

Evals pass locally, fail in CI

Env mismatch — pin the same model + temperature in CI as locally.

OAuth test reports 'state mismatch'

Your server isn't preserving the state param; compare to the spec in Inspector's conformance report.

Alternatives

inspector vs others

AlternativeWhen to use it insteadTradeoff
@modelcontextprotocol/inspector (official)You want the first-party reference inspectorSmaller feature surface; no evals/CI
mcp-client-for-ollamaYou want a terminal-only Ollama-backed clientNot a debugger, just a client

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills