Scan at scaleSites whose MCP authorization a conforming agent must refuse
Sites whose MCP authorization a conforming agent must refuse
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 two faults in that chain are the ones a careful client refuses to work around rather than tolerate. On these sites the authorization server's issuer value doesn't match the authorization server identifier the metadata URL was built from, which is the mix-up-attack signal that makes the whole metadata document unusable, or the server never advertises S256 PKCE, which leaves an intercepted authorization code replayable.
Both are musts whose remedy is refusal: the client that cannot confirm PKCE support is required to stop, so a strict agent doesn't connect at all and a lenient one takes the risk on your users' behalf.
How to fix it. Publish an "issuer" identical to the authorization server identifier its metadata URL was constructed from (RFC 8414), and advertise "code_challenge_methods_supported": ["S256"] (MCP authorization, with RFC 7636 for PKCE itself).
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 Security Risk Detected
mcpAuthSecurityRiskDetected - MCP Auth Authorization Server Issuer Mismatch
mcpAuthAuthorizationServerIssuerMismatch - MCP Auth Missing PKCE Support
mcpAuthMissingPkceSupport - MCP Auth Findings
mcpAuthFindings - MCP Auth Challenged Endpoint URL
mcpAuthChallengedEndpointUrl - MCP Auth Authorization Server URLs
mcpAuthAuthorizationServerUrls
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.