4 of 21 findings from one recorded scan
Remote MCP endpoint accepts requests without authentication
No token was sent and the server listed all 7 of its tools, including run_command.
Open-source security testing for MCP servers
MCP servers are the connectors that let AI assistants and agents use your tools and data. mcpprobe tests yours the way an attacker would, links every issue to the exact request and response observed, and tells you how to fix it.
pipx install mcpprobe-scannermcpprobe https://your-server.example/mcpuv tool install mcpprobe-scannermcpprobe https://your-server.example/mcpdocker run --rm -it python:3.13-slim shpip install mcpprobe-scanner==0.3.0mcpprobe https://your-server.example/mcpPackage on PyPI · source on GitHub · v0.3.0 release notes
Opt-in only: deeper tests run only on servers you have proven you own. Read-only by default. Scanning policy
No token was sent and the server listed all 7 of its tools, including run_command.
Source: the scanner's check catalogue v0.3.0, synced , and mcpprobe --help
One scan, start to finish
mcpprobe connects the way an AI client would, runs read-only tests against authentication, tool descriptions, sessions and transports, and records every request and response it relied on. You get a terminal summary, a JSON report and results in GitHub code scanning.
_mcpprobe.<host>, or locally for stdio servers.$ mcpprobe http://127.0.0.1:8765/mcp mcpprobe 0.1.0 | passive mode | rate 5.0/s | scan only what you own or are authorised to testtransport=http | revision=2025-11-25 (handshake) | auth=none | server=fake-mcp 0.0.1 | tools=7Findings critical 0 high 8 medium 5 low 3 info 5 HIGH AUTH-01 Remote MCP endpoint accepts requests without authentication HIGH META-01 Possible tool-description poisoning HIGH META-05 Secret material in server metadata or configuration HIGH TRANS-01 Origin header not validated (DNS-rebinding exposure) HIGH TRANS-03 Forged session ID accepted MEDIUM ERR-01 Verbose error responses leak stack traces, paths or versions MEDIUM META-03 Tool annotations contradict the tool's apparent capability … INJ-01 active skipped requires --active and verified ownershipSUPPLY-01 active skipped not applicable to http transport38 request/response pairs recorded as evidence.Result: FAIL (findings at or above high)
Why it matters
An MCP server decides what an AI agent can read, send and change. When it is wrong, the agent, or anyone who can reach the server, can be made to do things you never intended.
A public GitHub issue steered an agent using the GitHub MCP server into leaking private repository data. AuthZed timeline, citing Invariant Labs
An MCP package for sending email added one line that blind-copied every message to an outside address. It had 1,643 downloads before it was removed. The Hacker News, 29 Sep 2025
In a study of 9,695 MCP servers listed in public directories, no authentication was the largest group of the 4,982 issues found: 2,054 of them, or 41%. Trend Micro, 24 Jun 2026
Of the exposed MCP servers Wiz observed, about 70% listed every tool to an anonymous caller. Wiz, 28 Jul 2026
The official MCP Registry lists servers and leaves security scanning to the package registries and to aggregators. These are counts of that public metadata, refreshed daily. We have not scanned these servers.
Counts unavailable in this build
The registry could not be reached when this page was generated, so no numbers are shown rather than old or estimated ones. The page tries again every day. When it can, it counts the servers listed, the share that declare a remote endpoint, and how many still offer the deprecated HTTP+SSE transport, which TRANS-04 flags.
Source: official MCP Registry API. Counts of public metadata; the registry is in preview and its data may be reset.
Who it's for
What it covers
Built on the current MCP spec and the servers people actually run, so it understands tool descriptions, authorization metadata, sessions and transports the way a client does.
Browse all 37 checksNo auth, missing RFC 9728 metadata, no PKCE S256, wrong-audience and query-string tokens
Hidden instructions, cross-tool shadowing, invisible Unicode, rug-pull diffs, secrets, lying annotations
Origin validation, version handling, session-id quality, deprecated SSE, TLS and headers
Stack traces in errors; one oversized, one deeply nested and 20 paced requests, never more
Command, path traversal, SSRF, SQL and tool-output canaries, behind the authorisation gate
Provenance, risky stdio configs and sandboxed start-up behaviour for stdio packages
Badge and CI
The badge links to a public report page and goes grey after 30 days without a clean scan. Run mcpprobe in GitHub Actions and the SARIF lands in code scanning.
- uses: mcpprobe-dev/mcpprobe@v0.3.0
with:
target: https://staging.your-server.example/mcp
fail-on: high
sarif-output: mcpprobe.sarif
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: mcpprobe.sarifHow it compares
| Capability | mcpprobe | Static config scanners | LLM eval red-teamers | Enterprise AI security |
|---|---|---|---|---|
| Tests the live server | Yes, with request and response evidence | Reads config and descriptions only | Prompts, not the MCP protocol | Yes |
| MCP authorization spec checks | RFC 9728, RFC 8707, PKCE, Origin | No | No | Varies |
| Published false-positive rate | Per check, once it has 100 samples | No | No | No |
| Price for a 5-person team | Free CLI · £49/month hosted | Free | Free tier, capped | Quote only |
| What it does not do | No runtime proxy, no exploitation, no unverified targets | — | — | — |
Named comparisons, with sources: mcpprobe and mcp-scan · mcpprobe and Cisco mcp-scanner
What shipped
Check catalogue v0.3.0 synced from the scanner's CHECKS.md on .
The demo report runs against a reserved .example host and can be downloaded as a PDF evidence report.
Install commands use the PyPI distribution mcpprobe-scanner. The command is still mcpprobe.
First public release of the open-source scanner core: 24 passive checks, the CLI, the GitHub Action and SARIF output.