MCP-AUT-010
AS advertises S256 in code_challenge_methods_supported
“Authorization servers providing OpenID Connect Discovery 1.0 MUST include code_challenge_methods_supported in their metadata to ensure MCP compatibility.” — spec anchor
How to fix this
Include `S256` in `code_challenge_methods_supported`, in both OAuth 2.0 Authorization Server Metadata and OpenID Connect Discovery responses if you support the latter. A client that doesn't find it there must refuse the authorization flow entirely.
Example: failing and passing
{
"issuer": "https://auth.example.com",
"authorization_endpoint": "https://auth.example.com/authorize",
"token_endpoint": "https://auth.example.com/token",
"response_types_supported": ["code"]
}{
"issuer": "https://auth.example.com",
"authorization_endpoint": "https://auth.example.com/authorize",
"token_endpoint": "https://auth.example.com/token",
"response_types_supported": ["code"],
"code_challenge_methods_supported": ["S256"]
}How the validator checks this
Probe P8.3, against a streamable-http server on the modern protocol. What it reports:
- pass
- Every authorization server advertises S256 in code_challenge_methods_supported
- fail
- Missing S256 in code_challenge_methods_supported
Quoted from the probe that runs this check, so it cannot drift from what the validator actually reports.
This rule is checked deterministically: a fail here is a certain violation, not an inference.
Checked in the same request as MCP-AUT-004, MCP-AUT-005, MCP-AUT-011.
Check your own server against MCP-AUT-010
Probe P8.3 checks MCP-AUT-010 in the same request as 3 other rules, so one run shows your server's result for this rule next to the rest. Validate a server or read how the validator works.
Background on this topic: how to add OAuth to an MCP server.
Other Authorization rules
- MCP-AUT-001Unauthenticated request returns 401 with WWW-Authenticate resource_metadata
- MCP-AUT-002RFC 9728 Protected Resource Metadata is served and valid
- MCP-AUT-003PRM resource equals the canonical server URI
- MCP-AUT-004Each listed authorization server exposes RFC 8414 or OIDC discovery metadata
- MCP-AUT-005AS advertises authorization_response_iss_parameter_supported: true
- MCP-AUT-006WWW-Authenticate includes a scope parameter
- MCP-AUT-007Insufficient scope returns 403 with error="insufficient_scope"
- MCP-AUT-008Tokens with a foreign audience are rejected
- MCP-AUT-009offline_access absent from scopes_supported / challenge scope
- MCP-AUT-011AS supports Client ID Metadata Documents, not DCR alone