/ Directory / Playground / Cisco MCP Scanner
● Official cisco-ai-defense ⚡ Instant

Cisco MCP Scanner

by cisco-ai-defense · cisco-ai-defense/mcp-scanner

Run a battery of prompt-injection, tool-shadowing, and exfiltration tests against any MCP server before you trust it in production.

Cisco's scanner enumerates an MCP server's tools, descriptions, and prompts, then probes them with known attack templates: indirect injection in returned data, tool-name shadowing, suspicious schema fields, exfil-via-error, and more. You get a Markdown/JSON report you can attach to a PR.

Why use it

Key features

Live Demo

What it looks like in practice

ready

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "cisco-mcp-scanner": {
      "command": "uvx",
      "args": [
        "mcp-scanner",
        "--server",
        "stdio:npx -y <target>"
      ],
      "_doc": "Run against any MCP server config; produces a security report."
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "cisco-mcp-scanner": {
      "command": "uvx",
      "args": [
        "mcp-scanner",
        "--server",
        "stdio:npx -y <target>"
      ],
      "_doc": "Run against any MCP server config; produces a security report."
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "cisco-mcp-scanner": {
      "command": "uvx",
      "args": [
        "mcp-scanner",
        "--server",
        "stdio:npx -y <target>"
      ],
      "_doc": "Run against any MCP server config; produces a security report."
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "cisco-mcp-scanner": {
      "command": "uvx",
      "args": [
        "mcp-scanner",
        "--server",
        "stdio:npx -y <target>"
      ],
      "_doc": "Run against any MCP server config; produces a security report."
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "cisco-mcp-scanner",
      "command": "uvx",
      "args": [
        "mcp-scanner",
        "--server",
        "stdio:npx -y <target>"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "cisco-mcp-scanner": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-scanner",
          "--server",
          "stdio:npx -y <target>"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add cisco-mcp-scanner -- uvx mcp-scanner --server 'stdio:npx -y <target>'

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use Cisco MCP Scanner

Audit a third-party MCP before adopting it

👤 Developers ⏱ ~15 min intermediate

When to use: A teammate wants to install a community MCP and you want a security signal first.

Flow
  1. Install scanner
    uvx mcp-scanner --help✓ Copied
    → Scanner runs
  2. Scan
    mcp-scanner --server "stdio:npx -y the-mcp" --output report.md✓ Copied
    → Report written
  3. Review
    Open report.md; triage findings by severity.✓ Copied
    → Adoption decision documented

Outcome: Documented security review before merging the MCP into your config.

Gate MCP changes in CI

👤 Developers ⏱ ~15 min intermediate

When to use: You ship an internal MCP and want a baseline check on every PR.

Flow
  1. Add CI step
    Run mcp-scanner against the built server; fail on HIGH findings.✓ Copied
    → PR fails on regressions
  2. Fix or accept
    Each finding gets fixed or annotated with a risk acceptance.✓ Copied
    → Clean baseline

Outcome: No new prompt-injection surface ships unreviewed.

Combinations

Pair with other MCPs for X10 leverage

cisco-mcp-scanner + github

Run on every PR via Actions; comment findings on the PR

Combine cisco-mcp-scanner with github: Run on every PR via Actions; comment findings on the PR✓ Copied
cisco-mcp-scanner + sentry

Pipe scanner findings as Sentry alerts on main branch

Combine cisco-mcp-scanner with sentry: Pipe scanner findings as Sentry alerts on main branch✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
scanner CLI (see docs) Not exposed as MCP tools — this is a scanner, not a server 1 call

Cost & Limits

What this costs to run

API quota
N/A
Tokens per call
Local — uses the target MCP only
Monetary
Free OSS
Tip
Run scans in a sandboxed network so probes can't exfil real data

Security

Permissions, secrets, blast radius

Credential storage: No credentials by itself
Data egress: Whatever the target MCP egresses
Never grant: point at a production MCP with real credentials — use a staging instance

Troubleshooting

Common errors and fixes

Scanner times out on a slow MCP

Increase --timeout; check the server actually starts under stdio

False positives on benign tools

Use --baseline to mark them; future runs ignore

Alternatives

Cisco MCP Scanner vs others

AlternativeWhen to use it insteadTradeoff
Manual reviewSingle-author trusted MCPMisses subtle injection patterns

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills