Describe the bug
The auth/pre-registration scenario supplies its pre-registered credentials to the client under
test as context: { client_id, client_secret } with no indication of which authorization server issued
them, even though the mock AS URL is in scope when the context is built.
The 2026-07-28 specification's Client Registration page makes credential-to-issuer binding
mandatory (Authorization Server Binding):
MUST associate those credentials with the specific authorization server that issued them, keyed
by the authorization server's issuer identifier
A client that implements this rule cannot bind credentials it received without issuer context, so it
refuses to present them, and the scenario's pre-registration-auth check fails with "Client did not
make a token request".
To Reproduce
Run auth/pre-registration at 0.2.0-alpha.10 (re-verified 2026-07-28) with a client whose
draft-track default is mandatory issuer binding (observed with the PHP SDK, logiscape/mcp-sdk-php
v2 main): 2/3 checks pass; pre-registration-auth fails as "Client did not make a token request".
The official TypeScript SDK doesn't refuse the request, but it does emit a warning.
Expected behavior
If the context supplies the issuer, the client should proceed with making a token request, allowing the test
to continue. I have tested the change with my PHP SDK and the scenario passes, and it also still passes in
the TypeScript SDK.
Additional context
I have implemented a fix and verified against the official TypeScript SDK (no regression)
and will open a PR referencing this issue.
Describe the bug
The
auth/pre-registrationscenario supplies its pre-registered credentials to the client undertest as
context: { client_id, client_secret }with no indication of which authorization server issuedthem, even though the mock AS URL is in scope when the context is built.
The
2026-07-28specification's Client Registration page makes credential-to-issuer bindingmandatory (Authorization Server Binding):
A client that implements this rule cannot bind credentials it received without issuer context, so it
refuses to present them, and the scenario's
pre-registration-authcheck fails with "Client did notmake a token request".
To Reproduce
Run
auth/pre-registrationat0.2.0-alpha.10(re-verified 2026-07-28) with a client whosedraft-track default is mandatory issuer binding (observed with the PHP SDK, logiscape/mcp-sdk-php
v2
main): 2/3 checks pass;pre-registration-authfails as "Client did not make a token request".The official TypeScript SDK doesn't refuse the request, but it does emit a warning.
Expected behavior
If the context supplies the issuer, the client should proceed with making a token request, allowing the test
to continue. I have tested the change with my PHP SDK and the scenario passes, and it also still passes in
the TypeScript SDK.
Additional context
I have implemented a fix and verified against the official TypeScript SDK (no regression)
and will open a PR referencing this issue.