mcp-doctor
mcp-doctor is a diagnostic MCP server that lets you monitor, audit, and benchmark your MCP server infrastructure directly from an AI assistant — with zero configuration required.
scan— Discovers all MCP server configurations across supported tools (Claude Code, Cursor, VS Code, Windsurf, Claude Desktop) and tests each connection via a JSON-RPC handshake, reporting which servers are healthy or failingsecurity— Audits all MCP server configs for vulnerabilities, including hardcoded secrets/API keys, tokens exposed in command arguments, and shell injection patternsbench— Measures response latency for all configured MCP servers, providing round-trip timing with performance ratings (fast / ok / slow / timeout)
Diagnoses, benchmarks, and performs security audits on Slack MCP server connections, including token exposure detection.
mcp-doctor
Diagnose, secure, and benchmark your MCP servers.
Zero-config CLI that auto-discovers MCP server configs across Claude Code, Cursor, VS Code, Windsurf, and Claude Desktop — then tests connections, flags security issues, and benchmarks latency in seconds.
Why?
MCP servers are becoming the backbone of AI-assisted development. But as you add more servers across more tools, things break silently:
Servers go down and you don't notice until a tool call fails mid-conversation
Secrets leak — API keys hardcoded in config files, tokens visible in process args
Slow servers drag down your entire AI workflow without you realizing it
Configs drift between tools — what works in Cursor might be broken in Claude Desktop
mcp-doctor gives you a single command to check everything, across every tool, in seconds.
Related MCP server: mcp-shield
Quick Start
npx @wigu/mcp-doctor doctorThat's it. No config needed — it finds your servers automatically.
Commands
Command | Description |
| Run all checks at once (scan + security + bench) |
| Test all MCP server connections |
| Audit configs for security issues |
| Benchmark server response times |
| Run as an MCP server (stdio transport) |
All commands support --json for machine-readable output.
doctor — Full checkup (recommended)
Runs scan, security, and bench in one go and prints a summary.
mcp-doctor doctor
# JSON output for CI/scripts
mcp-doctor doctor --jsonscan — Test all MCP server connections
Discovers configs and verifies each server responds to a JSON-RPC handshake.
$ mcp-doctor scan
┌─────────────────────────────────────────┐
│ mcp-doctor v0.3.0 │
│ Diagnose · Secure · Benchmark │
└─────────────────────────────────────────┘
✔ Found 3 server(s)
┌──────────────┬────────────┬─────────┐
│ Server │ Source │ Status │
├──────────────┼────────────┼─────────┤
│ filesystem │ Claude │ ✔ OK │
│ postgres │ Cursor │ ✔ OK │
│ slack │ VS Code │ ✘ FAIL │
└──────────────┴────────────┴─────────┘security — Audit configs for security issues
Checks for leaked secrets, overly broad permissions, and risky command patterns.
$ mcp-doctor security
⚠ 2 issues found
┌──────────┬──────────┬───────────────────────────────┐
│ Severity │ Server │ Issue │
├──────────┼──────────┼───────────────────────────────┤
│ HIGH │ postgres │ Plaintext password in config │
│ MEDIUM │ slack │ Token visible in args │
└──────────┴──────────┴───────────────────────────────┘bench — Benchmark server response times
Measures JSON-RPC round-trip latency for every configured server.
$ mcp-doctor bench
┌──────────────┬──────────┬────────┐
│ Server │ Latency │ Rating │
├──────────────┼──────────┼────────┤
│ filesystem │ 12ms │ fast │
│ postgres │ 87ms │ ok │
│ slack │ timeout │ — │
└──────────────┴──────────┴────────┘MCP Server Mode
mcp-doctor can also run as an MCP server itself, exposing scan, security, bench, and doctor as tools your AI assistant can call directly.
{
"mcpServers": {
"mcp-doctor": {
"command": "npx",
"args": ["@wigu/mcp-doctor"]
}
}
}When invoked without arguments and stdin is piped, it automatically starts in server mode using stdio transport. You can also explicitly run:
mcp-doctor serveThis means your AI assistant can diagnose its own MCP infrastructure on demand.
GitHub Action
Use mcp-doctor in CI to catch broken servers and leaked secrets automatically:
- name: Check MCP servers
uses: realwigu/mcp-doctor@main
with:
command: doctor
fail-on-error: "true"The action outputs JSON via ${{ steps.mcp-doctor.outputs.result }} for downstream processing.
JSON Output
All commands support --json for structured output — useful for CI pipelines, dashboards, or scripting:
mcp-doctor doctor --json | jq '.summary'{
"servers": 3,
"healthy": 2,
"securityIssues": 1,
"avgLatencyMs": 45
}Supported Tools
Tool | Config Auto-Detected |
Claude Code | ✅ |
Claude Desktop | ✅ |
Cursor | ✅ |
VS Code | ✅ |
Windsurf | ✅ |
mcp-doctor reads each tool's config file from its standard location and merges all discovered servers into a single view.
What It Checks
Connection health — JSON-RPC
initializehandshake against every serverSecurity issues — plaintext secrets, tokens in args, dangerous shell commands
Latency benchmarks — round-trip timing with fast / ok / slow ratings
Install
# Run directly (no install needed)
npx @wigu/mcp-doctor scan
# Or install globally
npm install -g @wigu/mcp-doctor
mcp-doctor scanRequires Node.js 18+.
Contributing
Contributions are welcome! Open an issue or submit a pull request.
Fork the repo
Create a feature branch (
git checkout -b my-feature)Commit your changes
Open a PR
License
Available Tools
4 toolsbenchA
Benchmark response latency for all configured MCP servers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full behavioral burden. It only states the action but does not disclose if it is read-only, sends requests, or impacts server performance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient sentence, front-loaded with the verb 'benchmark', and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool, the description is mostly complete. It clearly states what it does and its scope, though it could mention output format or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters and 100% schema coverage, so the description does not need to add parameter info. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool benchmarks response latency for all configured MCP servers. It distinguishes from siblings like 'doctor', 'scan', 'security' by focusing on latency measurement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for latency benchmarking but provides no guidance on when to use this tool vs alternatives, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doctorA
Run all checks at once: scan connections, audit security, and benchmark latency for all configured MCP servers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it performs scans, audits, and benchmarks, but does not disclose side effects, permissions, or whether it is read-only. Adequate but lacks depth beyond the actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose, and no extraneous words. Every part is necessary and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description adequately explains what it does and its scope. Could be slightly improved by mentioning result format or prerequisites, but is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, so baseline is 4. Description correctly implies no parameters are needed, adding no further value but also no deficit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs and resources: 'scan connections, audit security, and benchmark latency' for 'all configured MCP servers'. It clearly distinguishes from sibling tools like 'bench', 'scan', and 'security' by stating it runs all checks at once.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is to run a comprehensive check, but no explicit when-to-use or when-not-to-use compared to individual sibling tools (bench, scan, security). No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scanB
Discover all MCP server configs and test their connections via JSON-RPC handshake
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it tests connections but does not disclose whether the tool is read-only, modifies anything, has rate limits, or handles errors. The behavioral traits are insufficiently explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the main action, and contains no filler. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, yet the description does not explain what the tool returns (e.g., list of configs, success/failure status). For a no-parameter tool, the description should at least hint at the output format. This omission makes it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema is empty (100% coverage). Per guidelines, 0 parameters yields a baseline score of 4. The description adds no parameter information, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool discovers MCP server configs and tests connections via JSON-RPC handshake. The verb 'Discover' is specific, and the scope is defined as 'all MCP server configs', which distinguishes it from sibling tools like bench, doctor, and security.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
securityA
Audit all MCP server configs for security issues like hardcoded secrets, tokens in args, and shell injection patterns
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses what issues the tool checks for (hardcoded secrets, tokens, shell injection), which is helpful. However, with no annotations, it does not explicitly state whether the tool is read-only or has side effects, nor does it mention authorization requirements or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence of 16 words that front-loads the purpose with a strong verb ('Audit') and provides concrete examples. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless audit tool, the description is fairly complete: it states the target (MCP server configs), the action (audit), and examples of issues. However, it does not describe the output format or how results are presented, which would be beneficial but not critical given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% coverage, so the schema fully documents the lack of parameters. The description adds no param info, which is acceptable; baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: auditing MCP server configs for security issues like hardcoded secrets, tokens in args, and shell injection patterns. This is specific and distinguishes it from sibling tools (bench, doctor, scan) which likely cover performance, health, and other scans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for security auditing but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. The context is clear but lacks exclusions or comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v0.4.0- Added
doctor
3 tool updates
v1.0.0- First observed
bench - First observed
scan - First observed
security
TDQS
Each tool has a clearly distinct purpose: bench focuses on latency, scan on discovery and connection testing, security on vulnerability audit, and doctor runs all checks combined. No overlap or ambiguity.
All tool names are single, lowercase words (bench, doctor, scan, security), following a consistent and predictable naming pattern. No mixing of conventions.
With 4 tools, the set is well-scoped for a diagnostic server. Each tool addresses a core need (benchmarking, scanning, security, all-in-one) without being sparse or excessive.
The tool surface covers the essential diagnostic operations: connection testing, latency benchmarking, security auditing, and a combined run. No obvious gaps for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Scan any MCP server for tool-poisoning, security, auth & license. Trust score before install.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- AlicenseCqualityDmaintenanceA comprehensive MCP server that provides AI assistants with tools for file system management, Git integration, and shell command execution. It features specialized code utilities for analysis, formatting, and linting to enhance development workflows within Claude Desktop.287MIT
- AlicenseAqualityDmaintenanceThe MCP ecosystem is growing fast. Not every server on npm is safe. mcp-shield lets Claude audit any MCP server — local or from npm — before you trust it with your files, keys, and context.41382MIT
- AlicenseNot gradedqualityCmaintenanceDiagnose MCP servers — health checks, tool testing, token cost audits, conflict detection, and security scanning with 50+ prompt injection patterns. Works as CLI or MCP server inside Claude Desktop.1MIT

agentseal-mcp-intelofficial
FlicenseAqualityDmaintenanceEnables users to scan MCP servers for security threats, check installed servers, and analyze config files for risks, all from AI assistants like Claude, Cursor, or Windsurf.5143-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/realwigu/mcp-doctor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server