@guardbee/mcp-owasp-scan
🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇧🇷 Português | 🇪🇸 Español | 🇩🇪 Deutsch
[npm version]
[npm downloads]
[License: MIT]
One CLI and MCP server for a unified OWASP MCP Top 10 check. It runs seven GuardBee auditors over a codebase in one pass, or grades a live MCP server's tool list, and reports every finding under its OWASP id with an A–F grade. Output as text, JSON or SARIF for GitHub code scanning.
Telemetry is off by default. With GUARDBEE_TELEMETRY=1 it sends the server, tool, success, duration and short parameter values such as a file path; longer strings and fields like content, token or password are replaced with a placeholder. See @guardbee/mcp-telemetry.
Quick start
As an MCP server (Claude Desktop, Cursor, VS Code):
Modes
scan reads TypeScript/JavaScript, Python (FastMCP, official SDK, low-level server) and Go (official go-sdk, mark3labs/mcp-go) MCP servers in full: tool definitions, handler sinks and OAuth rules. Other languages (Rust, Java, Kotlin, C#, Ruby, PHP, Swift) get the language-neutral rules only (secrets, URLs, config). The report's coverage lists every source file with its language, that depth (full or patterns) and the number of tool definitions found, plus a per-language summary (languages: in text output), so a file the scan could not read deeply is visible rather than silently passing.
--discover-shadow adds an MCP09 check to scan: it inventories the MCP servers configured on this machine (Cursor, Claude Desktop, Windsurf, VS Code) through mcp-config-auditor, and --allowlist=<path> marks the approved ones.
OWASP MCP Top 10 coverage
Grade
CLI options
Exit codes: 0 clean (or below --fail-on), 1 findings at or above --fail-on, 2 usage error.
MCP tools
GitHub Actions
Related packages
Each auditor is also its own package with more options: mcp-secret-scanner, mcp-server-auditor, mcp-oauth-auditor, mcp-audit-gap-auditor, mcp-context-oversharing-auditor, mcp-toxic-flow-auditor, mcp-tool-poisoning-scanner, mcp-config-auditor. To enforce these rules at runtime instead of finding them in code, put mcp-security-proxy in front of your MCP servers.
Feedback
Questions, ideas, or a false positive? Start a thread in GitHub Discussions or open an issue. If GuardBee is useful to you, a ⭐ on the repository helps others find it.