# mcp-scan [Health: Active]

**Category:** 🔒 Security  
**Repository:** https://github.com/CodingSelim/mcp-scan  
**GitHub Stars:** 0  
**npm Downloads (last month):** 199  
**Views:** 6  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcp-scan

## Description
Passive security scanner: audits MCP servers against the OWASP MCP Top 10, graded A-F.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp-scan": {
    "command": "npx",
    "args": ["-y","owasp-mcp-scan"]
  }
}
```

## Documentation

## 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`:

```bash
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`:

```bash
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.

_Full upstream README: https://allmcps.com/mcp/mcp-scan/readme_

