Skip to content

MCP Server FuzzerSecurity assessment for MCP servers, with evidence

A black-box client that drives an authorized MCP server over its real transport, checks it, and preserves what it saw so a second analyst can reproduce the result.

MCP Server Fuzzer

Start with the question you need to answer โ€‹

Assessment questionUseEvidence to review
What does the server expose?--mode tools, resources, or promptsDiscovery metadata and negotiated protocol version
Does input handling match the advertised schema?--phase realistic then --phase aggressiveRequests, responses, rejection/acceptance outcome, timing
Are protocol boundaries robust?--mode protocol, optionally --statefulPer-message outcomes and spec-guard results
Does the advertised security boundary hold?--security-audit and --auth-auditCheck IDs, evidence, source references, and auth metadata
What does a local server do on the host?stdio plus safety controls and optional --runtime-probeProcess, network, filesystem, credential, and privilege observations
Can a pipeline detect an unusable target?--fail-if-no-toolsNon-zero exit for no tools, auth failure, or unreachable target

The fuzzer reports observations and useful reproductions. It does not certify a server, prove exploitability in every deployment, or replace manual review of authorization, business impact, and deployment context.

The assessment loop โ€‹

Every stage has a task-focused guide:

  1. Choose an assessment path
  2. Run a first assessment
  3. Follow the audit workflow
  4. Use focused recipes and local fixtures
  5. Interpret and preserve evidence

What the assessment can cover โ€‹

  • Tool arguments, result content, and schema constraints.
  • Protocol requests, notifications, stateful sequences, resources, prompts, and deterministic spec checks.
  • HTTP, HTTPS, SSE, Streamable HTTP, and stdio transports.
  • API-key, basic, bearer-token, custom-header, and OAuth client-credentials authentication paths, plus MCP OAuth audit checks where supported.
  • Tool/schema poisoning markers, hidden or encoded instructions, ANSI/control content, duplicate or drifting definitions, dangerous capability combinations, cleartext remote transport, and evidence-backed injection oracles.
  • Optional host-level observations for local stdio processes through mcpfz-probe.

For the exact flags and current defaults, use the CLI reference. For protocol-version selection, see configuration.

Safety boundary โ€‹

Only test systems you are authorized to assess. Use dedicated credentials, bounded timeouts, low initial run counts, and a disposable target. For local stdio targets, combine --enable-safety-system with --fs-root and usually --no-network. These controls reduce accidental impact but are not an OS sandbox or a replacement for a container/VM.

Security context โ€‹

Use this tool alongside the official MCP Security Best Practices, MCP authorization specification, and OWASP MCP Top 10. The project links applicable sources in finding evidence; a mapping is context for analyst triage, not a severity decision by itself.

Project resources โ€‹

Released under the MIT License.