MCP Scan logo

MCP Scan

Audits live MCP servers against the OWASP MCP Top 10 and produces A–F grades in console, JSON, or SARIF formats.

Install MCP Scan

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "mcp-scan": {
      "command": "npx",
      "args": [
        "-y",
        "owasp-mcp-scan"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

npx -y owasp-mcp-scan

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 25d ago.

Overview

The mcp-scan MCP server audits running MCP servers against the OWASP MCP Top 10 without invoking their tools. It connects over stdio or Streamable HTTP, enumerates advertised tools, prompts, and resources, then applies static checks for issues such as secrets, injection, SSRF, path traversal, and toxic data flows. Results include a 0–100 score, an A–F grade, findings, and optional JSON or SARIF output. Reach for it before adding an MCP server to an agent or as a CI gate for configured targets.

Use cases

  • Audit an MCP server before connecting it to an agent
  • Gate MCP server changes in CI with SARIF output
  • Inspect local stdio servers from the command line
  • Review remote Streamable HTTP endpoints with authorization headers

Key features

  • OWASP MCP Top 10 static checks
  • A–F grades and 0–100 scores
  • stdio and Streamable HTTP scanning
  • Console, JSON, and SARIF reports
  • Cross-tool toxic-flow analysis
  • MCP tools for on-demand scanning

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

25/25 checks healthy over the last 90d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 5d ago via OSV.dev · owasp-mcp-scan (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

npm downloads199Package downloads in the last 30 days.
Last commit29d agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Directory activity6 viewsConfig copies, upvotes, and views on AllMCPs.

How MCP Scan works

What mcp-scan MCP server does

The mcp-scan MCP server performs passive security reviews of live Model Context Protocol servers. It examines the capabilities and text that a server advertises, including tools, prompts, resources, resource contents, and server instructions. The scanner does not call tools, fuzz inputs, or send exploits.

Its checks cover the OWASP MCP Top 10 (2025), including exposed secrets, insecure HTTP transport, path traversal, excessive permissions, tool poisoning, tool shadowing, supply-chain risks, command injection, SSRF, unauthenticated HTTP handshakes, missing telemetry, and cross-tool toxic flows. The toxic-flow analysis considers whether one server can read private data, consume untrusted content, and exfiltrate information, rather than evaluating each tool in isolation.

Results receive a score from 0 to 100 and an A–F grade. A critical finding forces an F. The command-line interface can print a human-readable report or emit JSON and SARIF for automation and GitHub Code Scanning.

How it works

For a local target, the scanner starts the supplied command over stdio. For a remote target, it connects to a Streamable HTTP endpoint and can send a request header such as an authorization token. It first enumerates the server’s advertised surface, then runs the static detectors against that data.

The analysis is intentionally passive: no MCP tool is invoked during a scan. This makes the inspection suitable for reviewing a server before it is connected to an agent, although launching a stdio target still means executing that command locally.

The mcp-scan MCP server exposes the same scanning workflow to an MCP-compatible client. Its scan_mcp_server tool audits a stdio or HTTP target, while list_checks reports the available checks.

Setup and configuration

Run the package with Node.js 18 or newer through npx; the package name used by the examples is owasp-mcp-scan:

Terminal
npx owasp-mcp-scan --stdio "npx -y @modelcontextprotocol/server-filesystem /tmp"

A remote endpoint can be scanned with --url, and request headers can be supplied with --header:

Terminal
npx owasp-mcp-scan --url https://host/mcp --header "Authorization: Bearer $TOKEN"

Existing Cursor MCP configuration can be inspected with --config. Select console, json, or sarif using --format, write results with --output, and use --fail-on to set the severity that produces a non-zero exit status.

To run the mcp-scan MCP server inside a client, configure its stdio command as npx -y owasp-mcp-scan --serve. The documented configuration works with Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, and Gemini CLI. OpenAI Codex uses the equivalent command in its TOML MCP configuration. A Claude Code plugin installation is also documented by the project.

Limitations and notes

Static inspection cannot determine whether a server applies runtime sandboxing or path restrictions, so a finding may require verification against the server’s actual enforcement. Authentication and transport checks apply only to HTTP targets. The heuristics favor recall, making contextual triage necessary.

The scanner reads what the target advertises but does not validate behavior by execution. In particular, a stdio scan spawns the supplied command; only scan commands and servers you trust. Telemetry findings are advisory and unscored. The project is released under the MIT license.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about MCP Scan

mcp-scan is an MCP server that connects to running MCP targets over stdio or Streamable HTTP and audits their advertised tools, prompts, resources, and instructions. Its main tools are scan_mcp_server for an audit and list_checks for the available security checks, with OWASP-based findings and A–F grades.

Run it with npx rather than a separate installation: `npx -y owasp-mcp-scan --serve`. Add that command to an MCP client’s server configuration, or use the package’s CLI commands for direct stdio, HTTP, or configuration-file scans.

Yes, mcp-scan works with Cursor through its MCP server configuration.

Yes, mcp-scan scans Streamable HTTP targets with `--url` and supports request headers such as bearer authorization. Its authentication and transport checks apply to HTTP targets, including unauthenticated handshakes and plaintext HTTP to non-loopback hosts.

No, mcp-scan does not invoke tools, fuzz inputs, or send exploits. It enumerates the target’s advertised capabilities and analyzes them statically, though scanning a stdio target does launch the supplied command.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMCP Scan AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/mcp-scan?style=directory)](https://allmcps.com/mcp/mcp-scan)
HTML Embed
<a href="https://allmcps.com/mcp/mcp-scan"><img src="https://allmcps.com/api/badge/mcp-scan?style=directory" alt="MCP Scan on AllMCPs" /></a>