inspector/test-servers/configs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
cliffhall 7ca753bc4c fix(auth): accept RFC 8414 metadata served at the OIDC well-known path
The SDK's `discoverAuthorizationServerMetadata` picks its validation schema
from the well-known filename that resolved rather than from the document that
came back, so anything found at `/.well-known/openid-configuration` is
validated as an OpenID provider document — requiring `jwks_uri`,
`subject_types_supported` and `id_token_signing_alg_values_supported`, three
fields RFC 8414 does not define. RFC 8414 §5 permits that filename for general
OAuth metadata, so a conforming plain OAuth 2.0 authorization server is
rejected; and because the parse throws instead of continuing the candidate
loop, discovery aborts and the connection fails outright.

Filed upstream as modelcontextprotocol/typescript-sdk#2733.

`core/auth/oidcDiscoveryCompat.ts` works around it without fabricating a
field: on a failed RFC 8414 candidate it probes the OIDC candidates the SDK
would try next and, when one returns a document that satisfies
`OAuthMetadataSchema` but fails the OIDC schema, serves that body as the RFC
8414 response so the SDK picks the schema that describes it. A genuine OpenID
provider document is left to the SDK's own OIDC leg. Issuer validation runs
unchanged, since the substituted document is the one the server published.

It wraps `effectiveAuthFetch` — above the fetch tracker, the opposite of
`withOAuthEndpointOverrides` — so the Network tab still records the real 404
and the real probe rather than the substitution.

The candidate derivation mirrors the SDK's `buildDiscoveryUrls`, which a fetch
wrapper cannot call, and a test pins it against that export so the two cannot
drift.

Adds `oauth.asMetadataPath` to the composable test server (mirroring
`oauth.resourceMetadataPath`) and the `oauth-rfc8414-at-oidc-path-http.json`
showcase config that reproduces the failure.

Closes #2172

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UL9retfvAXRgvi6EWk4SY4
Signed-off-by: cliffhall <cliff@futurescale.com>
2026-08-28 00:40:11 -04:00
..
advertised-extensions-http.json Extensions: advertised-extensions toggle in Server Settings (Phase 2 of #1633) (#1743) 2026-07-22 16:23:43 -04:00
app-elicitation-http.json feat(apps): negotiated app-rendered form elicitations 2026-08-22 19:05:33 -04:00
app-elicitation-native-http.json feat(apps): negotiated app-rendered form elicitations 2026-08-22 19:05:33 -04:00
demo.json feat(core): port v1.5 InspectorClient + transports + auth subsystem (#1302) (#1306) 2026-05-15 15:36:17 -04:00
duplicate-tool-names-http.json test: add a duplicate-tool-names test server for the #1957 repro 2026-08-10 20:22:47 -04:00
logging-legacy-http.json Logging: per-request log level on modern servers (era fork) (#1629) (#1724) 2026-07-19 17:08:22 -04:00
logging-modern-http.json Logging: per-request log level on modern servers (era fork) (#1629) (#1724) 2026-07-19 17:08:22 -04:00
mcp-app-domain-http.json test(web): prove the dedicated app origin end to end 2026-08-24 08:45:40 -04:00
mcp-app-http.json test: add an MCP App showcase config to reproduce and verify #1859 2026-08-05 17:59:09 -04:00
modern-http.json Add modern-era (2026-07-28) test-server preset (#1700) (#1703) 2026-07-17 11:12:40 -04:00
modern-mrtr-http.json History: MRTR conversation grouping + modern message vocabulary (#1705) 2026-07-17 20:02:11 -04:00
modern-network-http.json Network: modern Mcp-* headers, new error codes, cancellation-as-abort (#1628) (#1722) 2026-07-18 17:32:05 -04:00
mrtr-showcase-http.json fix(web): name an empty tool result instead of "No results yet" (#1860) 2026-08-16 18:31:01 -04:00
nullable-fields-http.json fix: render nullable enum fields as a Select instead of a raw JSON textarea 2026-08-15 16:10:17 -04:00
oauth-custom-resource-metadata-http.json fix(auth): pass the challenge's resource_metadata URL to SDK auth() 2026-08-24 19:48:40 -04:00
oauth-rfc8414-at-oidc-path-http.json fix(auth): accept RFC 8414 metadata served at the OIDC well-known path 2026-08-28 00:40:11 -04:00
oauth-step-up-demo.json All of the mid-session and step-up auth work 2026-07-02 16:35:31 -07:00
pagination-http.json Thread cacheMode through managed list refresh via SDK cache-aware verbs (#1721) (#1723) 2026-07-19 01:06:31 -04:00
rfc6570-templates-http.json fix(core): share URI-template expansion and correct the SDK's multi-name branch 2026-08-16 18:51:12 -04:00
root-union-schemas-http.json fix: render tool schemas with root-level anyOf/oneOf composition 2026-08-26 00:37:43 -04:00
structured-output-http.json fix: render a tool result's structuredContent in the Tools screen (#1908) 2026-08-11 09:23:43 -04:00
subscriptions-legacy-http.json Resources: subscriptions/listen model on modern servers (era fork) (#1630) (#1730) 2026-07-20 19:33:40 -04:00
subscriptions-modern-http.json Resources: subscriptions/listen model on modern servers (era fork) (#1630) (#1730) 2026-07-20 19:33:40 -04:00
subscriptions-never-acknowledged-http.json fix(core): say why a never-acknowledged subscriptions/listen ended 2026-08-27 20:49:55 -04:00
tasks-legacy-http.json Tasks: io.modelcontextprotocol/tasks extension on modern servers (era fork) (#1731) 2026-07-21 19:17:04 -04:00
tasks-modern-http.json Tasks: io.modelcontextprotocol/tasks extension on modern servers (era fork) (#1731) 2026-07-21 19:17:04 -04:00
unportable-schemas-http.json fix: map the new exit code, keep add runnable, distinguish severity by shape 2026-08-25 02:37:10 -04:00
url-elicitation-form.json feat(core): port v1.5 InspectorClient + transports + auth subsystem (#1302) (#1306) 2026-05-15 15:36:17 -04:00
web-tabs-http.json chore(web): connected-flow smoke for the Tools, Resources and Prompts tabs 2026-08-26 23:09:44 -04:00
xaa-ema-http.json Auth hardening CI gaps + SDK consolidation: EMA leg 2 / scopes (#1527) (#1725) 2026-07-19 22:36:21 -04:00
xmcpheader-modern-http.json Tools: x-mcp-header annotation tooling + -32602 unknown-tool rendering (#1632) (#1735) 2026-07-22 11:42:54 -04:00