MCP security audit that checks your server’s OAuth, tokens and tools in ten days

An MCP server security assessment of your remote server, ChatGPT plugin or Claude connector against the 2026-07-28 specification. USD 10,000, with a signed verdict and the tests.

Illustrative findingsInvented server

MCP security audit results by area

A billing server for an invented company, checked against MCP 2026-07-28.

Audit findings by area
AreaResult
Token audience checkedPass
Token passthrough to the payments APIBlocker
PKCE with S256, exact redirect URIsPass
Scope no tool usesCondition
State handles bound to the userPass
Memo text reaches the model unmarkedBlocker
Each finding has evidence, a fix and the spec sectionRe-run included
From the same invented example as our sample verdict, page 4

What a 2026 study found in 7,973 remote MCP servers

In a measurement study published on arXiv on 21 May 2026, Zhou and colleagues found 7,973 live remote MCP servers. 3,233 of them (40.55%) exposed tools with no authentication at all. They tested 119 servers protected by OAuth in depth and found at least one flaw in every one, 325 in total. The study used the 2025-11-25 revision of the specification as its reference.

The current revision tightens several of those points. It deprecates Dynamic Client Registration in favour of Client ID Metadata Documents, asks authorization servers to return the issuer (iss) so clients can detect mix-up attacks, and replaces protocol sessions with server-minted state handles (changelog). A server built to last year’s revision can pass its own tests and still fail this one.

What the MCP security audit checks

Authorization and tokens
  • Protected resource metadata, and every token checked for your server’s audience, so a token issued for another API gets a 401.
  • No token passthrough, meaning the server never forwards a token it received from the client to another API.
  • PKCE with S256 (proof that the app finishing a sign-in is the one that started it), exact redirect URI matching, an iss value naming the authorization server in every response, and a consent screen that names the client.
  • Client registration through Client ID Metadata Documents, with Dynamic Client Registration only where a client still needs it.
Scopes, tools and confused deputies

The scopes each tool needs against the scopes the server holds, step-up challenges for tools that need more, and every path where the server acts with its own authority on a request it shouldn’t trust.

State handles, request state and retries

Handles that are random, short-lived and bound to the user ID in the verified token, so a guessed or stolen handle gets nothing. The security best practices say a handle must never be treated as authentication. requestState protected against tampering and replay, write tools that run once when a client retries after a dropped stream, and per-user results marked "private" so a shared cache can’t serve them to someone else.

Prompt injection through tools

Tool descriptions, and tool results that carry text your customers or their customers wrote. We plant instructions in those fields and record which ones reach an action that changes data or money.

Inputs and SSRF

Validation of tool arguments against what your API enforces, and every fetch your server or authorization server makes to a URL someone else chose, such as a Client ID Metadata Document. SSRF (server-side request forgery) is a request like that aimed at your internal network.

Logging, limits and dependencies

An audit record for every tool call (user, client, scopes), rate limits per user and per tool, how secrets are stored, and known vulnerabilities in your dependencies.

Tool-use evals

A suite that sends your real tasks and current tool definitions to the OpenAI and Anthropic models behind ChatGPT and Claude, and checks which tool each picks and with which arguments. It runs in your CI. ChatGPT and Claude add their own prompts and confirmations, so the verdict lists what an API test can’t see.

Each check maps to a section of the specification in our MCP server security guide.

The difference between MCP security testing and penetration testing

A penetration test of your hosting looks for ways into your network and servers. An MCP server security audit tests the protocol layer that a penetration test usually treats as one more endpoint. It checks which tokens the server accepts, whether it forwards them, what each tool can reach, and what an instruction planted in a ticket or document can make an agent do through it. Whoever you hire, ask which of those checks the statement of work names. Our comparison of AI red teaming and penetration testing sets out what each kind of test finds.

How the ten days run

  1. Before day 1. Kick-off call. You give us a staging URL, test accounts, the tool list with scopes, and read access to the code or a walkthrough.
  2. Days 1–2. We read the code, configuration and logs and write the threat model.
  3. Day 3. Checkpoint. We share the threat model and test plan, and either side can stop here.
  4. Days 4–5. We write the tool-use evals and run the baseline.
  5. Days 6–7. Authorization, token and injection tests against staging.
  6. Day 8. Logging, rate limits, secrets and dependencies.
  7. Days 9–10. The written verdict and a readout call.
  8. Within 30 days. One free re-run after your fixes.

MCP security audit price and terms

USD 10,000 fixed

  • The same terms as the production readiness review. You pay half when you book and half on the verdict, and either side can stop after day 3 (USD 3,000, or USD 1,800 at the founding price).
  • Founding-client price: USD 6,000 for the first three reviews of either kind, in exchange for an anonymous published summary you approve. All three places are open.
  • One server, up to 10 tools. More are quoted before we start.
  • One re-run within 30 days of the verdict.

What’s outside an audit

Some controls belong to the host, not to your server. They include the SSRF checks ChatGPT or Claude make when they discover your OAuth endpoints, how they validate authorization URLs, and whether they ask the user before risky actions. We don’t test your identity provider’s internals or your wider infrastructure, and we can’t promise that OpenAI or Anthropic will approve a directory submission. Building a new server, or fixing the findings, is MCP server development.

Read before you book

  • MCP security best practices for SaaS vendors (2026-07-28 spec)

    MCP security best practices for SaaS teams running a remote MCP server, with a threat model mapped to the 2026-07-28 spec, a 19-row checklist and tests.

    Published , about 21 minutes to read

  • MCP OAuth and CIMD authorization on the 2026-07-28 spec

    How MCP OAuth works on the 2026-07-28 spec, covering discovery, Client ID Metadata Documents, PKCE, iss and scopes, with conformance tests.

    Published , about 14 minutes to read

  • How to test an MCP server, from MCP Inspector to CI

    How to test a remote MCP server on the 2026-07-28 spec, with conformance, contract and auth tests, tool-use evals and CI steps we ran locally.

    Published , about 29 minutes to read

Send us your server’s URL

Tell us which clients connect to it and which tools worry you. We reply within one working day with what we’d test first.