agentic‑readiness docs
/
Scan at scale Blog Build one › Run a scan ›
Menu

Scan at scaleSites with an unsafe MCP authorization setup

Sites with an unsafe MCP authorization setup

A site-wide report: one row per host, over the mcp_auth rows the crawl emitted.

What this report returns

An MCP server that answers unauthenticated requests with 401 sends agents through an OAuth discovery chain, and these sites break a protection that chain is meant to provide.

A row appears here when any of these is wrong, worst first:

  • Private Key ExposedAn advertised public key set contains private or symmetric key material, allowing readers to impersonate the signer.Fix Remove private members, rotate the exposed keys and publish only public verification keys.
  • Unsigned Signing AlgorithmResource signing or authorization-server client authentication advertises the unsigned algorithm none where the metadata specification forbids it.Fix Remove none from those lists and advertise supported signing algorithms.
  • Resource MismatchThe metadata's "resource" doesn't exactly match what it describes, which RFC 9728 requires: the challenged MCP endpoint, or the bare origin for metadata at the site's root, so clients must reject it, since the match is what stops another server impersonating yours.Fix Set "resource" to the endpoint URL character for character, or serve that metadata at the endpoint's own well-known URL.
  • Authorization Server Issuer MismatchThe metadata's "issuer" doesn't exactly match the identifier it was discovered from, which RFC 8414 requires, so clients must not use it, since the match is what stops another server impersonating it.Fix Set issuer to the exact URL the server is advertised under.
  • Missing PKCE SupportThe authorization server doesn't advertise code_challenge_methods_supported including S256; MCP mandates PKCE, so a compliant client must refuse to proceed.Fix Enable PKCE with S256 and advertise it in the server metadata.
  • Insecure EndpointAn advertised authorization server, or an authorization, token or registration endpoint in its metadata, isn't https (plain http, or a javascript:, data: or file: URL), so sign-in, codes and tokens travel unencrypted or a client is handed a link it must never open. MCP requires HTTPS for every one.Fix Serve each over https and advertise its https:// URL.

A row here means the chain is unsafe as published, not that anyone has attacked it.

Security checks are provisional; precision has not yet been measured. A clean row is not a security assessment.

The columns it shows

Every defect this technology can carry is a column in the grid, worst first, so nothing is hidden behind a filter you have to know to apply.

  • Hosthost
  • MCP Authorization Security Risk DetectedmcpAuthSecurityRiskDetected
  • MCP Authorization Conformance Issue DetectedmcpAuthConformanceIssueDetected
  • MCP Auth Private Key ExposedmcpAuthPrivateKeyExposed
  • MCP Auth Unsigned Signing AlgorithmmcpAuthUnsignedSigningAlgorithm
  • MCP Auth Resource MismatchmcpAuthResourceMismatch
  • MCP Auth Authorization Server Issuer MismatchmcpAuthAuthorizationServerIssuerMismatch
  • MCP Auth Missing PKCE SupportmcpAuthMissingPkceSupport
  • MCP Auth Insecure EndpointmcpAuthInsecureEndpoint
  • MCP Weak RSA KeymcpAuthWeakRsaKey
  • MCP Authorization Known Test KeymcpAuthTestKey
  • MCP Query Bearer MethodmcpAuthQueryBearerMethod
  • MCP Auth FindingsmcpAuthFindings
  • MCP Auth Challenged Endpoint URLmcpAuthChallengedEndpointUrl
  • MCP Auth Declared Resource ValuemcpAuthDeclaredResourceValue
  • MCP Auth Authorization ServersmcpAuthAuthorizationServerUrls
  • Ruleset VersionrulesetVersion
  • Security Check StatussecurityCheckStatus
  • Related Security FrameworkssecurityFrameworkReferences

About MCP authorization

The OAuth discovery chain protecting that MCP endpoint.

Read how MCP authorization is checked, including the specification it is validated against and a worked correct and broken example.

Running it

This report comes with Agentic Readiness in Lumar and appears on every crawl of any project that has it turned on. See the whole set, or check a single URL with the scanner on this site, which runs the same code with no account.

Get Lumar pricing