{"_id":"@coefficient-work/mcp-doctor","_rev":"7-29c696ecfd0da6deb72575329738c496","name":"@coefficient-work/mcp-doctor","dist-tags":{"latest":"0.4.7"},"versions":{"0.4.1":{"name":"@coefficient-work/mcp-doctor","version":"0.4.1","keywords":["mcp","model-context-protocol","openapi","agents","evaluation","ci","qa","cli"],"author":{"name":"Roundtable Design Ltd"},"license":"MIT","_id":"@coefficient-work/mcp-doctor@0.4.1","maintainers":[{"name":"louisreid","email":"louis@round-table.co.uk"}],"homepage":"https://coefficient.work","bugs":{"url":"https://github.com/coefficient-work/mcp-doctor/issues"},"bin":{"mcp-doctor":"dist/cli.js"},"dist":{"shasum":"2bc76a9dac221372d5f2eb60949609d54d6ae25e","tarball":"https://registry.npmjs.org/@coefficient-work/mcp-doctor/-/mcp-doctor-0.4.1.tgz","fileCount":70,"integrity":"sha512-B5NkuwWQDH7tVrUqdmB/ngD6JMGNea/YOgdbYGGPKMGpdu0cleJS2vnO+KfH2FURkhfvy6jVz+6/eJL256Ufeg==","signatures":[{"sig":"MEUCIQCiqaBrhuCOnAyVWym6FpPOITVwUIkvPlY8guVTHnd6rgIgcLPmbF1uwtdtpJkwxAEmSu1WPkJA33p3dgac7mrVtL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137793},"type":"module","engines":{"node":">=20"},"gitHead":"f55d7ba6ba7b44a6388d7c0f50ee29f10c5d37db","scripts":{"test":"node --import tsx --test src/**/*.test.ts","build":"tsc","analyze":"node dist/cli.js analyze --demo","prepare":"npm run build","test:demo":"node dist/cli.js test --demo","prepublishOnly":"npm run build"},"_npmUser":{"name":"louisreid","email":"louis@round-table.co.uk"},"repository":{"url":"git+https://github.com/coefficient-work/mcp-doctor.git","type":"git"},"_npmVersion":"11.11.0","description":"Inspect MCP servers and write a local readiness report.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^7.0.0","yaml":"^2.7.0","commander":"^13.1.0","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^22.13.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-doctor_0.4.1_1787135303864_0.16659743270488336","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@coefficient-work/mcp-doctor","version":"0.4.2","keywords":["mcp","model-context-protocol","openapi","agents","evaluation","ci","qa","cli"],"author":{"name":"Roundtable Design Ltd"},"license":"MIT","_id":"@coefficient-work/mcp-doctor@0.4.2","maintainers":[{"name":"louisreid","email":"louis@round-table.co.uk"}],"homepage":"https://coefficient.work","bugs":{"url":"https://github.com/coefficient-work/mcp-doctor/issues"},"bin":{"mcp-doctor":"dist/cli.js"},"dist":{"shasum":"07de3de0db1b573ea93fdc51fa64a8134454c4f0","tarball":"https://registry.npmjs.org/@coefficient-work/mcp-doctor/-/mcp-doctor-0.4.2.tgz","fileCount":72,"integrity":"sha512-HaYSZ0zsvdH3SD8cdklKex4vr+vO9wEgGxzYu+ib7iME8pKmThkId2cyT4TSTXqZ0Ejvf6lhg8RHrKQ0h6CZsQ==","signatures":[{"sig":"MEQCIF0M5jF8iC0n9qIfTk8XaWxQp3niLNiqwCDY53Yup3NfAiBvmFVi3SogH0KFOJLvz4f7ZLKA993NCBQ8QVkcFzKaOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161035},"type":"module","engines":{"node":">=20"},"gitHead":"7c5bc981bc41f53e475d00b67680500280583a59","scripts":{"test":"node --import tsx --test src/**/*.test.ts","build":"tsc","analyze":"node dist/cli.js analyze --demo","prepare":"npm run build","test:demo":"node dist/cli.js test --demo","prepublishOnly":"npm run build"},"_npmUser":{"name":"louisreid","email":"louis@round-table.co.uk"},"repository":{"url":"git+https://github.com/coefficient-work/mcp-doctor.git","type":"git"},"_npmVersion":"11.11.0","description":"Inspect MCP servers and write a local readiness report.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^7.0.0","yaml":"^2.7.0","commander":"^13.1.0","@ai-sdk/openai":"^4.0.45","@ai-sdk/anthropic":"^4.0.40","@ai-sdk/openai-compatible":"^3.0.34","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^22.13.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-doctor_0.4.2_1787310494605_0.6436048065482392","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@coefficient-work/mcp-doctor","version":"0.4.3","keywords":["mcp","model-context-protocol","openapi","agents","evaluation","ci","qa","cli"],"author":{"name":"Roundtable Design Ltd"},"license":"MIT","_id":"@coefficient-work/mcp-doctor@0.4.3","maintainers":[{"name":"louisreid","email":"louis@round-table.co.uk"}],"homepage":"https://coefficient.work","bugs":{"url":"https://github.com/coefficient-work/mcp-doctor/issues"},"bin":{"mcp-doctor":"dist/cli.js"},"dist":{"shasum":"9b1d55b2e9bc2911c5fa6f33f2940f7bc487956a","tarball":"https://registry.npmjs.org/@coefficient-work/mcp-doctor/-/mcp-doctor-0.4.3.tgz","fileCount":84,"integrity":"sha512-s/edKY7LLszcy1SuV1rBfgTJASmG8ZdPCPdlzBrS5dT6Da4W6oSoDCIIbAIL6XforpiLItRSGQUJ8qO51022Sw==","signatures":[{"sig":"MEUCIQDq48Fd/5etgwYZEBNsJPvJPTaA7T6Ze4yTR0i71fqpHwIgMh423q1UjCqnLXOfQcdACPaKkSX9dPrrK0E87qaObQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176104},"type":"module","engines":{"node":">=20"},"gitHead":"b30edc6900c8b7a9953e4d52f6a48cba31e3205b","scripts":{"test":"node --import tsx --test src/**/*.test.ts","build":"tsc","analyze":"node dist/cli.js analyze --demo","prepare":"npm run build","test:demo":"node dist/cli.js test --demo","prepublishOnly":"npm run build"},"_npmUser":{"name":"louisreid","email":"louis@round-table.co.uk"},"repository":{"url":"git+https://github.com/coefficient-work/mcp-doctor.git","type":"git"},"_npmVersion":"11.11.0","description":"Inspect MCP servers and write a local readiness report.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^7.0.0","yaml":"^2.7.0","commander":"^13.1.0","@ai-sdk/openai":"^4.0.45","@ai-sdk/anthropic":"^4.0.40","@ai-sdk/openai-compatible":"^3.0.34","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^22.13.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-doctor_0.4.3_1787312119734_0.14465480449290613","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@coefficient-work/mcp-doctor","version":"0.4.4","keywords":["mcp","model-context-protocol","openapi","agents","evaluation","ci","qa","cli"],"author":{"name":"Roundtable Design Ltd"},"license":"MIT","_id":"@coefficient-work/mcp-doctor@0.4.4","maintainers":[{"name":"louisreid","email":"louis@round-table.co.uk"}],"homepage":"https://coefficient.work","bugs":{"url":"https://github.com/coefficient-work/mcp-doctor/issues"},"bin":{"mcp-doctor":"dist/cli.js"},"dist":{"shasum":"ceead44b401cd30b80a2e16bc5f3176834bd5ad6","tarball":"https://registry.npmjs.org/@coefficient-work/mcp-doctor/-/mcp-doctor-0.4.4.tgz","fileCount":86,"integrity":"sha512-Nh/gbIZdC+b1CYepljhcbBhWNH66yCtiNTjkyMdDKvuRKYiBHfqBFOVQ0rBnmhr7tRHYZgN08+ay9m0qyOIfyw==","signatures":[{"sig":"MEQCIA6i/IwrmKC5XnrGRr/LcO1I4dfTkHVe7R8wDrJ8JRTmAiBG3hAbgByENC3Zr97tvLwSfUIpIqPKcSeTEdSWEjc3nQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196902},"type":"module","engines":{"node":">=20"},"gitHead":"c9655c870b0868582785dbf71206fff7abae020c","scripts":{"test":"node --import tsx --test src/**/*.test.ts","build":"tsc","analyze":"node dist/cli.js analyze --demo","prepare":"npm run build","test:demo":"node dist/cli.js test --demo","blind-eval":"bash scripts/blind-eval.sh","prepublishOnly":"npm run build","prepublish-gate":"bash scripts/prepublish-gate.sh"},"_npmUser":{"name":"louisreid","email":"louis@round-table.co.uk"},"repository":{"url":"git+https://github.com/coefficient-work/mcp-doctor.git","type":"git"},"_npmVersion":"11.11.0","description":"Inspect MCP servers and write a local readiness report.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^7.0.0","yaml":"^2.7.0","commander":"^13.1.0","@ai-sdk/openai":"^4.0.45","@ai-sdk/anthropic":"^4.0.40","@ai-sdk/openai-compatible":"^3.0.34","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^22.13.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-doctor_0.4.4_1787334232815_0.8374329539945362","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@coefficient-work/mcp-doctor","version":"0.4.5","keywords":["mcp","model-context-protocol","openapi","agents","evaluation","ci","qa","cli"],"author":{"name":"Roundtable Design Ltd"},"license":"MIT","_id":"@coefficient-work/mcp-doctor@0.4.5","maintainers":[{"name":"louisreid","email":"louis@round-table.co.uk"}],"homepage":"https://coefficient.work","bugs":{"url":"https://github.com/coefficient-work/mcp-doctor/issues"},"bin":{"mcp-doctor":"dist/cli.js"},"dist":{"shasum":"18b9632f6d8bf041bf73c06c4a7a9d9c0ee443ee","tarball":"https://registry.npmjs.org/@coefficient-work/mcp-doctor/-/mcp-doctor-0.4.5.tgz","fileCount":86,"integrity":"sha512-rcYGj0NNovWxMwiCxRBAUfD5xSoPOQRb/fBXsARpAnSI5iw/IKZYH1frLIJZ6BOH4HcQAXdLXTKAu2c1es1o8Q==","signatures":[{"sig":"MEUCIGWD60Gk5w7SAf5uwcgWzrayxe1JLRbdvMhXUBQmyCXtAiEA6dOA+rM9/udupaqDGikizSsU7s/KSkY2ryIFtdGwuDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208419},"type":"module","engines":{"node":">=20"},"gitHead":"d82c2fb47f814355b58b67d4a1db9c608018227a","scripts":{"test":"node --import tsx --test src/**/*.test.ts","build":"tsc","analyze":"node dist/cli.js analyze --demo","prepare":"npm run build","test:demo":"node dist/cli.js test --demo","blind-eval":"bash scripts/blind-eval.sh","prepublishOnly":"npm run build","prepublish-gate":"bash scripts/prepublish-gate.sh"},"_npmUser":{"name":"louisreid","email":"louis@round-table.co.uk"},"repository":{"url":"git+https://github.com/coefficient-work/mcp-doctor.git","type":"git"},"_npmVersion":"11.11.0","description":"Inspect MCP servers and write a local readiness report.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^7.0.0","yaml":"^2.7.0","commander":"^13.1.0","@ai-sdk/openai":"^4.0.45","@ai-sdk/anthropic":"^4.0.40","@ai-sdk/openai-compatible":"^3.0.34","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^22.13.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-doctor_0.4.5_1787344342755_0.38565082841064524","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@coefficient-work/mcp-doctor","version":"0.4.6","keywords":["mcp","model-context-protocol","openapi","agents","evaluation","ci","qa","cli"],"author":{"name":"Roundtable Design Ltd"},"license":"MIT","_id":"@coefficient-work/mcp-doctor@0.4.6","maintainers":[{"name":"louisreid","email":"louis@round-table.co.uk"}],"homepage":"https://coefficient.work","bugs":{"url":"https://github.com/coefficient-work/mcp-doctor/issues"},"bin":{"mcp-doctor":"dist/cli.js"},"dist":{"shasum":"2685e46fb72c7f1b05700d0221b17a3a2d94281e","tarball":"https://registry.npmjs.org/@coefficient-work/mcp-doctor/-/mcp-doctor-0.4.6.tgz","fileCount":86,"integrity":"sha512-XPRAHK9PB4naNggjTNZ+UoJy3NLG6OM/M/Y1m1y9EMRwYgIfa4FwaClfn+3cC0w8xtciw2kKuc1IvIki/XV+Mw==","signatures":[{"sig":"MEUCIA2r5OkeHVezRpqKFs7C1u1S16fn72xrKas0uWy5RT8oAiEAlRstcDq/9rbcviJLko51HjmAp4U802+bsymW0jc9e00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218208},"type":"module","engines":{"node":">=20"},"gitHead":"0378fe143293a0930b86ee7d354c8fb94e891e2d","scripts":{"test":"node --import tsx --test src/**/*.test.ts","build":"tsc","analyze":"node dist/cli.js analyze --demo","prepare":"npm run build","test:demo":"node dist/cli.js test --demo","blind-eval":"bash scripts/blind-eval.sh","prepublishOnly":"npm run build","prepublish-gate":"bash scripts/prepublish-gate.sh"},"_npmUser":{"name":"louisreid","email":"louis@round-table.co.uk"},"repository":{"url":"git+https://github.com/coefficient-work/mcp-doctor.git","type":"git"},"_npmVersion":"11.11.0","description":"Inspect MCP servers and write a local readiness report.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^7.0.0","yaml":"^2.7.0","commander":"^13.1.0","@ai-sdk/openai":"^4.0.45","@ai-sdk/anthropic":"^4.0.40","@ai-sdk/openai-compatible":"^3.0.34","@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.2","@types/node":"^22.13.4"},"_npmOperationalInternal":{"tmp":"tmp/mcp-doctor_0.4.6_1787510621062_0.52987358742583","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@coefficient-work/mcp-doctor","version":"0.4.7","description":"Inspect MCP servers and write a local readiness report.","type":"module","license":"MIT","author":{"name":"Roundtable Design Ltd"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/coefficient-work/mcp-doctor.git"},"bugs":{"url":"https://github.com/coefficient-work/mcp-doctor/issues"},"homepage":"https://coefficient.work","keywords":["mcp","model-context-protocol","openapi","agents","evaluation","ci","qa","cli"],"bin":{"mcp-doctor":"dist/cli.js"},"scripts":{"build":"tsc","prepare":"npm run build","prepublishOnly":"npm run build","test":"node --import tsx --test src/**/*.test.ts","test:demo":"node dist/cli.js test --demo","analyze":"node dist/cli.js analyze --demo","prepublish-gate":"bash scripts/prepublish-gate.sh","blind-eval":"bash scripts/blind-eval.sh","blind-eval:gui":"bash scripts/blind-eval-gui.sh"},"dependencies":{"@ai-sdk/anthropic":"^4.0.40","@ai-sdk/openai":"^4.0.45","@ai-sdk/openai-compatible":"^3.0.34","@modelcontextprotocol/sdk":"^1.12.1","ai":"^7.0.0","commander":"^13.1.0","yaml":"^2.7.0"},"devDependencies":{"@types/node":"^22.13.4","tsx":"^4.19.3","typescript":"^5.8.2"},"engines":{"node":">=20"},"_id":"@coefficient-work/mcp-doctor@0.4.7","_integrity":"sha512-XmQcJABEau6ry12/FmUjR7tTaidI2AzFgCzyw/5Drw9QYDp1rbaz5JxTYLC89BcUbmNSW3mWAYru9WcNkjvSBg==","_resolved":"/Users/louisreid/Documents/coefficient/mvp/mcp-slim/coefficient-work-mcp-doctor-0.4.7.tgz","_from":"file:coefficient-work-mcp-doctor-0.4.7.tgz","_nodeVersion":"25.4.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-XmQcJABEau6ry12/FmUjR7tTaidI2AzFgCzyw/5Drw9QYDp1rbaz5JxTYLC89BcUbmNSW3mWAYru9WcNkjvSBg==","shasum":"9f52386ea43626c7776bee6a734770c465a662a4","tarball":"https://registry.npmjs.org/@coefficient-work/mcp-doctor/-/mcp-doctor-0.4.7.tgz","fileCount":91,"unpackedSize":243112,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDfCplMJWP41ixP/H2SDJo80IJ2mNK22bxszY7rROnbEgIhAIZH3EuNDa2+WmQGpoUMa/j4UmGI+QwMpSiyetEjXxKs"}]},"_npmUser":{"name":"louisreid","email":"louis@round-table.co.uk"},"directories":{},"maintainers":[{"name":"louisreid","email":"louis@round-table.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-doctor_0.4.7_1787584834230_0.8752500675736024"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-19T10:28:23.659Z","modified":"2026-08-24T15:20:34.545Z","0.4.1":"2026-08-19T10:28:24.059Z","0.4.2":"2026-08-21T11:08:14.748Z","0.4.3":"2026-08-21T11:35:19.880Z","0.4.4":"2026-08-21T17:43:52.958Z","0.4.5":"2026-08-21T20:32:22.916Z","0.4.6":"2026-08-23T18:43:41.187Z","0.4.7":"2026-08-24T15:20:34.372Z"},"bugs":{"url":"https://github.com/coefficient-work/mcp-doctor/issues"},"author":{"name":"Roundtable Design Ltd"},"license":"MIT","homepage":"https://coefficient.work","keywords":["mcp","model-context-protocol","openapi","agents","evaluation","ci","qa","cli"],"repository":{"type":"git","url":"git+https://github.com/coefficient-work/mcp-doctor.git"},"description":"Inspect MCP servers and write a local readiness report.","maintainers":[{"name":"louisreid","email":"louis@round-table.co.uk"}],"readme":"# MCP Doctor\n\n**The easiest way to score MCP agent readiness.**\n\nOpen-source CLI — inspect, benchmark, and eval MCP servers before agents hit production.\n\n> *\"Prove that models can execute your MCP, then see where schemas create friction.\"*\n\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Site](https://img.shields.io/badge/site-coefficient.work-black)](https://coefficient.work)\n\n## Real benchmark results\n\n**[State of MCP Quality 2026 (v0)](examples/reports/STATE-OF-MCP-2026.md)** — historical 2026-07-10 snapshot: 10 public servers attempted, 5 connected and scored. It is schema-readiness evidence, not behavioral proof:\n\n| Server | Grade | Tools | Tokens |\n|--------|-------|-------|--------|\n| MCP Filesystem | A | 14 | 1,997 |\n| MCP Sequential Thinking | A | 1 | 996 |\n| MCP Everything | A | 13 | 1,236 |\n| MCP Memory | A | 9 | 1,040 |\n| MCP Puppeteer | B | 7 | 612 |\n\nPer-server reports: [`examples/reports/`](examples/reports/)\n\n```bash\nnpx --yes --package @coefficient-work/mcp-doctor@0.4.7 mcp-doctor benchmark -o ./reports\n```\n\nPublic package: `@coefficient-work/mcp-doctor`. Do not install the unrelated unscoped `mcp-doctor` package.\n\n## Three pillars\n\n| Pillar | Command | Status |\n|--------|---------|--------|\n| **Static scorecard** | `inspect`, `test` | v0.4 |\n| **Execution proof** | `eval` (BYOK) | v0.4 |\n| **Agent friction** | included in `eval` | v0.4 |\n\nPlus: **Recommended Improvements**, **Replay Timeline**, **Model Compatibility Matrix** (multi-model eval).\n\n## Quick start\n\nNode 22 or Node 24 LTS is recommended. MCP Doctor `0.4.7` remains compatible\nwith Node 20+, but Node 20 is no longer maintained by the Node.js project.\n\n```bash\n# Benchmark public MCPs\nnpx --yes --package @coefficient-work/mcp-doctor@0.4.7 mcp-doctor benchmark\n\n# Inspect your Cursor MCP server (also reads ./mcp.json)\nnpx --yes --package @coefficient-work/mcp-doctor@0.4.7 mcp-doctor list\nnpx --yes --package @coefficient-work/mcp-doctor@0.4.7 mcp-doctor inspect <name> -o report.md\n\n# Cross-provider agent eval (BYOK — credential values stay local)\nexport OPENROUTER_API_KEY=...\nnpx --yes --package @coefficient-work/mcp-doctor@0.4.7 mcp-doctor eval memory \\\n  --task \"List all tools and describe them\" \\\n  --models openrouter/openai/gpt-5.6-sol,openrouter/anthropic/claude-sonnet-5,openrouter/google/gemini-3.7-flash \\\n  -o eval-report.md\n```\n\n### Portable eval credentials (macOS/Linux)\n\nFor evals that run from temporary sandboxes or on more than one Mac, keep the\nsame private file at `~/.config/mcp-doctor/evaluation.env` on each machine:\n\n```bash\ninstall -d -m 700 ~/.config/mcp-doctor\ninstall -m 600 examples/evaluation.env.example ~/.config/mcp-doctor/evaluation.env\n```\n\nEdit that file and add only the provider keys you use. The CLI never overrides\nan already exported environment variable. Without an explicit file, precedence\nis `./.env.local` followed by `~/.config/mcp-doctor/evaluation.env`. Select a\ndifferent private file with `mcp-doctor eval --env-file /path/to/evaluation.env`\nor `MCP_DOCTOR_ENV_FILE`; explicitly selected files must exist and be mode 600.\nOnly known model-provider variables are loaded, and values are parsed as data —\nnot executed as shell code.\n\nOpenRouter uses its OpenAI-compatible endpoint through the Vercel AI SDK. Prefix an OpenRouter-routed model with `openrouter/`, followed by the normal OpenRouter model ID:\n\n```bash\nexport OPENROUTER_API_KEY=...\nnpx --yes --package @coefficient-work/mcp-doctor@0.4.7 mcp-doctor eval memory \\\n  --task \"List all tools and describe them\" \\\n  --models openrouter/openai/gpt-5.6-sol,openrouter/anthropic/claude-sonnet-5,openrouter/google/gemini-3.7-flash \\\n  -o eval-report.md\n```\n\n`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.\n\n### AI Gateway setup (one-time)\n\n```bash\nvercel login\ncd mcp-doctor && vercel link\nvercel ai-gateway api-keys create --name mcp-doctor-local --budget 5 --refresh-period monthly\n# Key saved to .env.local (gitignored) — CLI auto-loads it for eval\n```\n\n## Pain Interview (before sending to friends)\n\nSee [`docs/FRIEND-GUIDE.md`](docs/FRIEND-GUIDE.md).\n\n**Do not** ask friends to beta-test until you've run a 30-min workflow interview.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `benchmark` | State of MCP Quality — score catalog servers (writes files only with `--out`) |\n| `list` | MCP servers in `./mcp.json` or `~/.cursor/mcp.json` |\n| `inspect <name>` | Live connect + scorecard + suggested fixes (missing `inputSchema` -> Grade F, exit 2) |\n| `eval <name> --task \"...\"` | BYOK execution proof + friction + replay (OpenRouter, OpenAI, Anthropic, Gateway, or Ollama) |\n| `test --demo` | Static scorecard on OpenAPI fixture |\n| `build --demo --out <dir>` | Write optimized MCP tool bundle (requires `--out`) |\n| `competitors` | Adjacent MCP tooling map |\n\nRun `npm run prepublish-gate` before every publish. Run `npm run blind-eval` when you want a no-context agent pass against a packed tarball.\n\n## Roadmap\n\n| Priority | Feature | Status |\n|----------|---------|--------|\n| 1 | Public benchmark reports | **v0.4** |\n| 2 | Pain Interview (Jonty / Anders) | In progress |\n| 3 | BYOK eval + friction | **v0.4** |\n| 4 | Suggested fixes | **v0.4** |\n| 5 | Model matrix | **v0.4** |\n| 6 | Scale to 50 MCPs + awards | Next |\n| 9 | OpenAPI drift | Deprioritized |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}