npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@coefficient-work/mcp-doctor

v0.4.7

Published

Inspect MCP servers and write a local readiness report.

Readme

MCP Doctor

The easiest way to score MCP agent readiness.

Open-source CLI — inspect, benchmark, and eval MCP servers before agents hit production.

"Prove that models can execute your MCP, then see where schemas create friction."

MIT License Site

Real benchmark results

State of MCP Quality 2026 (v0) — historical 2026-07-10 snapshot: 10 public servers attempted, 5 connected and scored. It is schema-readiness evidence, not behavioral proof:

| Server | Grade | Tools | Tokens | |--------|-------|-------|--------| | MCP Filesystem | A | 14 | 1,997 | | MCP Sequential Thinking | A | 1 | 996 | | MCP Everything | A | 13 | 1,236 | | MCP Memory | A | 9 | 1,040 | | MCP Puppeteer | B | 7 | 612 |

Per-server reports: examples/reports/

npx --yes --package @coefficient-work/[email protected] mcp-doctor benchmark -o ./reports

Public package: @coefficient-work/mcp-doctor. Do not install the unrelated unscoped mcp-doctor package.

Three pillars

| Pillar | Command | Status | |--------|---------|--------| | Static scorecard | inspect, test | v0.4 | | Execution proof | eval (BYOK) | v0.4 | | Agent friction | included in eval | v0.4 |

Plus: Recommended Improvements, Replay Timeline, Model Compatibility Matrix (multi-model eval).

Quick start

Node 22 or Node 24 LTS is recommended. MCP Doctor 0.4.7 remains compatible with Node 20+, but Node 20 is no longer maintained by the Node.js project.

# Benchmark public MCPs
npx --yes --package @coefficient-work/[email protected] mcp-doctor benchmark

# Inspect your Cursor MCP server (also reads ./mcp.json)
npx --yes --package @coefficient-work/[email protected] mcp-doctor list
npx --yes --package @coefficient-work/[email protected] mcp-doctor inspect <name> -o report.md

# Cross-provider agent eval (BYOK — credential values stay local)
export OPENROUTER_API_KEY=...
npx --yes --package @coefficient-work/[email protected] mcp-doctor eval memory \
  --task "List all tools and describe them" \
  --models openrouter/openai/gpt-5.6-sol,openrouter/anthropic/claude-sonnet-5,openrouter/google/gemini-3.7-flash \
  -o eval-report.md

Portable eval credentials (macOS/Linux)

For evals that run from temporary sandboxes or on more than one Mac, keep the same private file at ~/.config/mcp-doctor/evaluation.env on each machine:

install -d -m 700 ~/.config/mcp-doctor
install -m 600 examples/evaluation.env.example ~/.config/mcp-doctor/evaluation.env

Edit that file and add only the provider keys you use. The CLI never overrides an already exported environment variable. Without an explicit file, precedence is ./.env.local followed by ~/.config/mcp-doctor/evaluation.env. Select a different private file with mcp-doctor eval --env-file /path/to/evaluation.env or MCP_DOCTOR_ENV_FILE; explicitly selected files must exist and be mode 600. Only known model-provider variables are loaded, and values are parsed as data — not executed as shell code.

OpenRouter uses its OpenAI-compatible endpoint through the Vercel AI SDK. Prefix an OpenRouter-routed model with openrouter/, followed by the normal OpenRouter model ID:

export OPENROUTER_API_KEY=...
npx --yes --package @coefficient-work/[email protected] mcp-doctor eval memory \
  --task "List all tools and describe them" \
  --models openrouter/openai/gpt-5.6-sol,openrouter/anthropic/claude-sonnet-5,openrouter/google/gemini-3.7-flash \
  -o eval-report.md

eval proves execution only when at least one MCP tool returns a non-error result. It does not formally prove that an arbitrary natural-language task was semantically completed. Credential values are not stored or printed, but eval necessarily sends the task, tool schemas, calls, and tool results to the selected model provider. inspect is local except for connecting to the MCP endpoint; benchmark launches or contacts every server in its catalog.

AI Gateway setup (one-time)

vercel login
cd mcp-doctor && vercel link
vercel ai-gateway api-keys create --name mcp-doctor-local --budget 5 --refresh-period monthly
# Key saved to .env.local (gitignored) — CLI auto-loads it for eval

Pain Interview (before sending to friends)

See docs/FRIEND-GUIDE.md.

Do not ask friends to beta-test until you've run a 30-min workflow interview.

Commands

| Command | Description | |---------|-------------| | benchmark | State of MCP Quality — score catalog servers (writes files only with --out) | | list | MCP servers in ./mcp.json or ~/.cursor/mcp.json | | inspect <name> | Live connect + scorecard + suggested fixes (missing inputSchema -> Grade F, exit 2) | | eval <name> --task "..." | BYOK execution proof + friction + replay (OpenRouter, OpenAI, Anthropic, Gateway, or Ollama) | | test --demo | Static scorecard on OpenAPI fixture | | build --demo --out <dir> | Write optimized MCP tool bundle (requires --out) | | competitors | Adjacent MCP tooling map |

Run npm run prepublish-gate before every publish. Run npm run blind-eval when you want a no-context agent pass against a packed tarball.

Roadmap

| Priority | Feature | Status | |----------|---------|--------| | 1 | Public benchmark reports | v0.4 | | 2 | Pain Interview (Jonty / Anders) | In progress | | 3 | BYOK eval + friction | v0.4 | | 4 | Suggested fixes | v0.4 | | 5 | Model matrix | v0.4 | | 6 | Scale to 50 MCPs + awards | Next | | 9 | OpenAPI drift | Deprioritized |

License

MIT