Skip to content

Commit 5212ce0

Browse files
committed
clean up code
1 parent 62c729d commit 5212ce0

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

src/mcp/client/auth.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,25 @@ async def set_client_info(self, client_info: OAuthClientInformationFull) -> None
4949

5050

5151
def _get_authorization_base_url(server_url: str) -> str:
52-
"""Return the authorization base URL for ``server_url``.
52+
"""
53+
Return the authorization base URL for ``server_url``.
5354
5455
Per MCP spec 2.3.2, the path component must be discarded so that
5556
``https://api.example.com/v1/mcp`` becomes ``https://api.example.com``.
5657
"""
5758
from urllib.parse import urlparse, urlunparse
5859

5960
parsed = urlparse(server_url)
61+
# Remove path component
6062
return urlunparse((parsed.scheme, parsed.netloc, "", "", "", ""))
6163

6264

6365
async def _discover_oauth_metadata(server_url: str) -> OAuthMetadata | None:
64-
"""Discover OAuth metadata from the server's well-known endpoint."""
66+
"""
67+
Discover OAuth metadata from the server's well-known endpoint.
68+
"""
6569

70+
# Extract base URL per MCP spec
6671
auth_base_url = _get_authorization_base_url(server_url)
6772
url = urljoin(auth_base_url, "/.well-known/oauth-authorization-server")
6873
headers = {"MCP-Protocol-Version": LATEST_PROTOCOL_VERSION}
@@ -73,14 +78,19 @@ async def _discover_oauth_metadata(server_url: str) -> OAuthMetadata | None:
7378
if response.status_code == 404:
7479
return None
7580
response.raise_for_status()
76-
return OAuthMetadata.model_validate(response.json())
81+
metadata_json = response.json()
82+
logger.debug(f"OAuth metadata discovered: {metadata_json}")
83+
return OAuthMetadata.model_validate(metadata_json)
7784
except Exception:
85+
# Retry without MCP header for CORS compatibility
7886
try:
7987
response = await client.get(url)
8088
if response.status_code == 404:
8189
return None
8290
response.raise_for_status()
83-
return OAuthMetadata.model_validate(response.json())
91+
metadata_json = response.json()
92+
logger.debug(f"OAuth metadata discovered (no MCP header): {metadata_json}")
93+
return OAuthMetadata.model_validate(metadata_json)
8494
except Exception:
8595
logger.exception("Failed to discover OAuth metadata")
8696
return None

src/mcp/server/auth/handlers/token.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ class RefreshTokenRequest(BaseModel):
4848

4949

5050
class ClientCredentialsRequest(BaseModel):
51-
"""Token request for the client credentials grant."""
52-
51+
# See https://datatracker.ietf.org/doc/html/rfc6749#section-4.4
5352
grant_type: Literal["client_credentials"]
5453
scope: str | None = Field(None, description="Optional scope parameter")
5554
client_id: str

0 commit comments

Comments
 (0)