Conformance • Scenarios

Scenario Catalog

The test suite ships 35 scenarios across seven capability areas.

OAuth Auth Code + PKCE (6)

IDScenarioStatus
auth.auth_code_pkce_happy_pathFull happy path: discover → register → authorize → token exchangeDraft
auth.missing_pkce_challengeMissing code_challenge → 400Draft
auth.wrong_pkce_verifierWrong code_verifier → invalid_grantDraft
auth.reused_authorization_codeReused code fails second exchangeDraft
auth.invalid_redirect_uriInvalid redirect → errorDraft
auth.denied_consentConsent denied → access_deniedDraft

OAuth DCR (4)

IDScenarioStatus
dcr.happy_pathMinimal metadata registrationDraft
dcr.unsupported_grant_typeUnsupported grant → 400Draft
dcr.public_client_with_secretPublic client sends secret → 400Draft
dcr.invalid_scopeUnsupported scope → 400Draft

OAuth CIMD (5)

IDScenarioStatus
cimd.happy_pathCIMD URL → server fetches metadataDraft
cimd.non_https_rejectedHTTP URL in production → 400Draft
cimd.mismatched_client_idMetadata client_id ≠ URLDraft
cimd.fetch_timeoutCIMD fetch timeout → graceful 400Draft
cimd.metadata_cacheSecond request uses cached metadataDraft

MCP Protocol (5)

IDScenarioStatus
protocol.tools_list_schematools/list returns valid shapeDraft
protocol.tools_call_validtools/call with valid paramsDraft
protocol.tools_call_unknown_toolUnknown tool → JSON-RPC errorDraft
protocol.tools_call_missing_argMissing required arg → errorDraft
protocol.resources_list_schemaresources/list shapeDraft

Error / Edge (5)

IDScenarioStatus
errors.unauthorized_request_returns_401No token → 401Draft
errors.expired_token_returns_401Expired token → 401Draft
errors.unknown_scopeUnknown scope → 403Draft
errors.insufficient_scopeInsufficient permissions → 403Draft
errors.wrong_audienceWrong audience → 401Draft

No-Auth MCP (5)

Test that a server exposes MCP operations without requiring any authentication.

IDScenarioStatus
no_auth.tools_listtools/list succeeds without authDraft
no_auth.tools_calltools/call succeeds without authDraft
no_auth.initializeinitialize handshake works with no authDraft
no_auth.resources_listresources/list succeeds without authDraft
no_auth.prompts_listprompts/list succeeds without authDraft

Bearer Token Auth MCP (5)

Test that a server correctly validates RFC 6750 Bearer tokens on MCP requests. Tokens can be provided inline or resolved from an environment variable via from_env.

IDScenarioStatus
bearer.valid_tokenValid Bearer token → 200 + valid responseDraft
bearer.missing_tokenNo token → 401 + WWW-AuthenticateDraft
bearer.invalid_tokenMalformed token → 401Draft
bearer.expired_tokenExpired token → 401Draft
bearer.insufficient_scopeWrong scope → 403Draft

Built with SvelteKit + mdsvex. Deployable as a static site on GitHub Pages.