Endpoints

Three servers. Three outcomes.

Each path is its own MCP server with a different security posture. Point the scanner at the full URL — or paste it into the box on the home page.

/error
intentionally insecure
F
https://playground.mcpscanner.dev/error
  • Unauthenticated access
  • Path traversal · command injection · SSRF
  • CORS wildcard / reflection

No auth, misconfigured CORS, risky tools, and confirmed injection payloads. The tool set + CORS mode are randomised, so every scan looks a little different.

Scan it →
/success
hardened
A
https://playground.mcpscanner.dev/success
  • Auth required (401 to anonymous)
  • Strict CORS
  • Input-validated, safe tools

A properly secured server. It rejects anonymous and weak tokens, so an anonymous scan finds nothing exploitable. Pass a strong bearer token to get benign “hello world” output.

Scan it →
/random
varies every ~30s
A–F
https://playground.mcpscanner.dev/random
  • Secure (A) or insecure (D–F)
  • Self-consistent within one scan
  • Great for repeat demos

A randomised profile, seeded per client IP + 30-second window so a single scan stays self-consistent but re-rolls roughly every 30 seconds — flipping between a secure and an insecure server.

Scan it →
Open to everyone

Public on purpose.

This isn't just for our scanner. Use it to test any MCP security tool — ours, the open-source CLI, or something you're building yourself.

~  scan the playground public
# in the browser: paste a URL into mcpscanner.dev
https://playground.mcpscanner.dev/error
# from your terminal: the open-source CLI scans directly
$ mcpscanner scan https://playground.mcpscanner.dev/error
$ mcpscanner scan https://playground.mcpscanner.dev/random --format json
# or talk to the server directly — /error needs no auth
$ curl -X POST https://playground.mcpscanner.dev/error \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
$
01

Nothing is real

No filesystem, shell, database or network is ever touched. Responses are canned fakes — safe to run, safe to scan.

02

Why A–C needs auth

An open MCP server with tools is always at least one critical (no-auth), so it caps at a D. Grades A–C require an authenticated server.

03

Same engine

Whatever the scanner reports here is exactly what it reports on a real server — identical checks, identical scoring.

04

Open source

The whole worker is on GitHub, Apache 2.0. Fork it, extend it.

Like the playground? A GitHub star helps a lot. ★ Star on GitHub
Stop wondering

Know what your MCP servers actually expose.

Get in touch hello@mcpscanner.dev
For bugs, please open an issue on GitHub.