Gives Claude the ability to security audit any MCP server against the OWASP MCP Top 10 and return an A through F letter grade. Exposes four tools: scan_mcp_server runs 10 checks on a local server path looking for command injection, path traversal, SSRF, and prompt injection risks. get_public_score fetches live grades from the public leaderboard at mcpwatch.pages.dev. list_leaderboard returns top and bottom ranked servers, and explain_check details any of the 10 security tests. Also works as a CLI via npx mcpwatch-scanner or a GitHub Action that can gate CI/CD on minimum grade thresholds. Reach for this when vetting third party MCPs before adding them to your config or when you want to track security posture across the ecosystem.
Have I Been Pwned for MCP servers. Open-source security scanner that audits MCP servers against the OWASP MCP Top 10 and produces an A–F letter grade.
MCPWatch is a security tool for the MCP ecosystem that:
Add to your MCP configuration:
{
"mcpServers": {
"mcpwatch": {
"command": "npx",
"args": ["-y", "mcpwatch-mcp"]
}
}
}
npx mcpwatch-scanner /path/to/mcp-server
- uses: lazymac2x/mcpwatch-action@v1
with:
path: .
fail-below: B
When running as an MCP server, MCPWatch exposes the following tools to your AI agent:
| Tool | Description |
|---|---|
scan_mcp_server | Scan a local MCP server by path — returns grade + per-check findings |
get_public_score | Fetch the live grade for any public MCP server by owner/repo slug |
list_leaderboard | Return the top/bottom N servers from the public leaderboard |
explain_check | Get a detailed explanation of any OWASP MCP Top 10 check by ID |
Ask Claude: "Use mcpwatch to scan the filesystem-mcp server at ~/mcps/filesystem-mcp before I add it to my config."
| ID | Check | Severity |
|---|---|---|
| MCP-01 | Command injection in tool handlers | Critical |
| MCP-02 | Path traversal in file tools | Critical |
| MCP-03 | Unauthenticated mutations | Critical |
| MCP-04 | Prompt injection via tool descriptions | High |
| MCP-05 | SSRF in URL-fetching tools | High |
| MCP-06 | Hardcoded secret leakage | High |
| MCP-07 | Over-permissive filesystem scope | Medium |
| MCP-08 | Missing rate limits | Medium |
| MCP-09 | Outdated dependencies with known CVEs | Medium |
| MCP-10 | Missing input schema validation | Low |
| Grade | Score |
|---|---|
| A | 90–100 — no Critical/High findings |
| B | 75–89 — no Critical findings |
| C | 60–74 — has Critical findings, minor impact |
| D | 40–59 — multiple Critical findings |
| F | 0–39 — severe/exploitable vulnerabilities |
Every public MCP server on Smithery, npm, and the official registry is scanned daily.
Live badge — drop into any README:
[](https://mcpwatch.pages.dev/servers/YOUR_OWNER/YOUR_REPO)
JSON API:
GET https://api.lazy-mac.com/mcpwatch/scan/{owner}/{repo}
mcpwatch/
├── packages/
│ ├── scanner/ # Core check engine (TypeScript, runs in Worker + CLI + Node)
│ └── cli/ # mcpwatch-scanner — npx runnable
├── workers/
│ └── crawler/ # CF Worker — scheduled crawl + scan (daily)
├── apps/
│ └── web/ # CF Pages — mcpwatch.pages.dev — public leaderboard
└── .github/
└── workflows/ # mcpwatch-action CI gate
scan_mcp_server / CLI)MIT — use it, fork it, contribute checks.
Pull requests for new checks, false-positive fixes, or leaderboard improvements are welcome. See CONTRIBUTING.md for guidelines.
Cross-repo trend analysis + Slack/Discord webhook alerts on grade drops + private MCP scanning. Email waitlist:
If you ship MCP servers, you might want these (one-time license, lifetime updates, MIT source):
Full catalog: https://api.lazy-mac.com Profile: https://github.com/lazymac2x dev.to: https://dev.to/lazymac2x
com.exploit-intel/eip-mcp
dmontgomery40/pentest-mcp
pantheon-security/notebooklm-mcp-secure
cyanheads/pentest-mcp-server
io.github.akhilucky/ai-firewall-mcp