Scan at scaleSites with broken MCP authorization discovery
Sites with broken MCP authorization discovery
A site-wide report: one row per host, over the mcp_auth rows the crawl emitted.
What this report returns
When an MCP server is protected (it answers unauthenticated requests with 401), agents authenticate by walking an OAuth discovery chain: the 401 points at protected-resource metadata (RFC 9728), which names authorization servers, whose metadata (RFC 8414) provides the endpoints and PKCE support. On these sites a hop in that chain is missing, malformed, or mismatched, so autonomous clients can't obtain a token no matter how valid their credentials.
How to fix it. Repair the flagged hop: publish /.well-known/oauth-protected-resource with a "resource" exactly matching the endpoint and at least one authorization server, and make each server's metadata expose authorization_endpoint, token_endpoint, and S256 PKCE.
Every hop here is a specification must, so triage by the Security Risk Detected column: it marks the two faults whose required remedy is refusal rather than tolerance, an issuer that doesn't match the authorization server identifier its metadata URL was built from (RFC 8414) and an authorization server that doesn't advertise S256 PKCE.
Those rows also appear in the report for MCP authorization a conforming agent must refuse.
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.
- Host
host - MCP Authorization Valid
mcpAuthValid - MCP Authorization Security Risk Detected
mcpAuthSecurityRiskDetected - MCP Auth Findings
mcpAuthFindings - MCP Auth Challenged Endpoint URL
mcpAuthChallengedEndpointUrl - MCP Auth Declared Resource Value
mcpAuthDeclaredResourceValue - MCP Auth Authorization Server URLs
mcpAuthAuthorizationServerUrls - MCP Auth Missing Resource Metadata
mcpAuthMissingResourceMetadata - MCP Auth Malformed Resource Metadata
mcpAuthMalformedResourceMetadata - MCP Auth Resource Mismatch
mcpAuthResourceMismatch - MCP Auth Missing Authorization Server
mcpAuthMissingAuthorizationServer - MCP Auth Invalid Authorization Server URL
mcpAuthInvalidAuthorizationServerUrl - MCP Auth Missing Authorization Server Metadata
mcpAuthMissingAuthorizationServerMetadata - MCP Auth Malformed Authorization Server Metadata
mcpAuthMalformedAuthorizationServerMetadata - MCP Auth Authorization Server Issuer Mismatch
mcpAuthAuthorizationServerIssuerMismatch - MCP Auth Missing PKCE Support
mcpAuthMissingPkceSupport - MCP Authorization Partially Assessed
mcpAuthPartiallyAssessed
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 ships in the Lumar agent-readiness container and appears on any project it is linked to, on every crawl. See the whole set, or check a single URL with the scanner on this site, which runs the same code with no account.