Scan report
Cloudflare Workers
https://bindings.mcp.cloudflare.com/mcp against MCP Authorization 2026-07-28 · newest scanner observation
Grade C
- SHOULD-level check unsupported: Scope in the WWW-Authenticate challenge
- SHOULD-level check unsupported: Client ID Metadata Documents supported
| Requirement | Level | Status | Evidence | Observed |
|---|---|---|---|---|
| Protected Resource Metadata served | MUST | Supported | source | |
| PRM lists an authorization server | MUST | Supported | source | |
| PRM lists scopes_supported | MAY | Unsupported | source | |
| PRM reachable at a well-known URI | MUST | Supported | source | |
| resource_metadata in the 401 challenge | MUST | Supported | source | |
| Scope in the WWW-Authenticate challenge | SHOULD | Unsupported | source | |
| No offline_access in advertised scopes | SHOULD | Unknown | source |
| Requirement | Level | Status | Evidence | Observed |
|---|---|---|---|---|
| Metadata issuer matches the discovery URL | MUST | Supported | source | |
| Authorization server metadata discoverable | MUST | Supported | source | |
| Client ID Metadata Documents supported | SHOULD | Unsupported | source | |
| Dynamic Client Registration offered | MAY | Supported | source | |
| Issuer identifier in authorization responses | SHOULD | Supported | source | |
| PKCE with S256 advertised | MUST | Supported | source | |
| All endpoints served over HTTPS | MUST | Supported | source |
Judged against MCP Authorization 2026-07-28 · newest scanner observation · method passive scan · letsauth-scanner/0.4.0
How the grade is derived
- F when a MUST-level check is unsupported or partial.
- Withheld (no letter) when a MUST-level check is unknown: the scanner could not establish it.
- C when every MUST-level check is supported and a SHOULD-level check is unsupported or partial.
- B when every MUST-level check is supported, no SHOULD-level check fails, and a SHOULD-level check is unknown.
- A when every MUST-level and SHOULD-level check is supported.
- A MUST the server may meet in either of two ways is met when either way is supported, and counts as unknown, not unsupported, while the other way is unknown: protected resource metadata may be served at a well-known location or announced in the WWW-Authenticate challenge the endpoint returns to an unauthenticated request; the scanner reads both.
- MAY-level and deprecated requirements are listed and never change the grade.
- Servers whose auth class is API key or no authentication are not graded: there is no OAuth authorization to check. The class is an evidenced statement on the server, not the directory's claim.
Derived from the statuses above at build time; never used to sort or rank servers. About the scanner.
Not checked by the scanner
These requirements need a token, a scope or a reading of the implementation. Their cells on the atlas page come from documentation and manual checks.
- Documented pre-registration pathmanual
- 403 insufficient_scope for step-upactive
- Refresh token rotation for public clientsmanual
- Resource indicators honouredmanual
- 401 for missing or invalid tokensactive
- Audience validationactive
- Bearer token only in the Authorization headeractive
- No token passthrough to upstream APIsmanual
- Per-client consent on proxy serversmanual