You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 8031fe6
Browse filesBrowse the repository at this point in the historyBrowse files
Warn when a pre-provisioned OAuth client is created without an issuer
ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider send fixed
credentials to whichever authorization server discovery yields unless
`issuer=` names the one they belong to. Leaving it out stays allowed, but
the provider now says so at construction with a UserWarning that names the
server URL and the keyword to pass, so the choice is visible rather than
silent. Nothing else changes: with `issuer=` set there is no warning, and a
value that is not an http(s) URL is still a ValueError.
The example story and the interaction tests pass `issuer=` (their
authorization server is known); the extension tests that exercise the
no-issuer path opt in to the warning explicitly.
Copy file name to clipboardExpand all lines: docs/client/oauth-clients.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -112,7 +112,7 @@ A nightly job, a CI step, another service. There is no browser and nobody to cli
112
112
What changed:
113
113
114
114
* No `OAuthClientMetadata`, no handlers. You pass `client_id` and `client_secret`; the provider builds a minimal `client_credentials` registration around them and skips dynamic registration entirely.
115
-
*`issuer` names the authorization server that issued those credentials; use the `issuer` value its `/.well-known/oauth-authorization-server` document returns. Discovery still runs as above, but token requests are only ever built from metadata for *that* issuer; if the MCP server points anywhere else, the flow stops with an `OAuthFlowError` instead. Leave it out and the provider uses whichever authorization server discovery finds.
115
+
*`issuer` names the authorization server that issued those credentials; use the `issuer` value its `/.well-known/oauth-authorization-server` document returns. Discovery still runs as above, but token requests are only ever built from metadata for *that* issuer; if the MCP server points anywhere else, the flow stops with an `OAuthFlowError` instead. Leave it out and the provider uses whichever authorization server discovery finds, and says so with a `UserWarning` when it is constructed.
116
116
*`scope` is a space-separated string, the OAuth wire format.
117
117
* Everything downstream is identical: the same `TokenStorage`, the same `httpx2.AsyncClient(auth=...)`, the same `streamable_http_client`.
0 commit comments