File tree Expand file tree Collapse file tree 6 files changed +12
-22
lines changed
examples/servers/simple-auth/mcp_simple_auth Expand file tree Collapse file tree 6 files changed +12
-22
lines changed Original file line number Diff line number Diff line change @@ -429,7 +429,7 @@ MCP servers can use authentication by providing an implementation of the `TokenV
429429
430430``` python
431431from mcp import FastMCP
432- from mcp.server.auth.verifier import TokenVerifier
432+ from mcp.server.auth.provider import TokenVerifier
433433from mcp.server.auth.settings import AuthSettings
434434
435435class MyTokenVerifier (TokenVerifier ):
@@ -455,7 +455,7 @@ For a complete example with separate Authorization Server and Resource Server im
455455- ** Resource Server (RS)** : Your MCP server that validates tokens and serves protected resources
456456- ** Client** : Discovers AS through RFC 9728, obtains tokens, and uses them with the MCP server
457457
458- See [ TokenVerifier] ( src/mcp/server/auth/verifier .py ) for more details on implementing token validation.
458+ See [ TokenVerifier] ( src/mcp/server/auth/provider .py ) for more details on implementing token validation.
459459
460460## Running Your Server
461461
Original file line number Diff line number Diff line change 22
33import logging
44
5- from mcp .server .auth .provider import AccessToken
6- from mcp .server .auth .token_verifier import TokenVerifier
5+ from mcp .server .auth .provider import AccessToken , TokenVerifier
76
87logger = logging .getLogger (__name__ )
98
Original file line number Diff line number Diff line change 77from starlette .requests import HTTPConnection
88from starlette .types import Receive , Scope , Send
99
10- from mcp .server .auth .provider import AccessToken
11- from mcp .server .auth .token_verifier import TokenVerifier
10+ from mcp .server .auth .provider import AccessToken , TokenVerifier
1211
1312
1413class AuthenticatedUser (SimpleUser ):
Original file line number Diff line number Diff line change 44
55from pydantic import AnyUrl , BaseModel
66
7- from mcp .server .auth .token_verifier import TokenVerifier
87from mcp .shared .auth import OAuthClientInformationFull , OAuthToken
98
109
@@ -87,6 +86,13 @@ class TokenError(Exception):
8786 error_description : str | None = None
8887
8988
89+ class TokenVerifier (Protocol ):
90+ """Protocol for verifying bearer tokens."""
91+
92+ async def verify_token (self , token : str ) -> AccessToken | None :
93+ """Verify a bearer token and return access info if valid."""
94+
95+
9096# NOTE: FastMCP doesn't render any of these types in the user response, so it's
9197# OK to add fields to subclasses which should not be exposed externally.
9298AuthorizationCodeT = TypeVar ("AuthorizationCodeT" , bound = AuthorizationCode )
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 3030 BearerAuthBackend ,
3131 RequireAuthMiddleware ,
3232)
33- from mcp .server .auth .provider import OAuthAuthorizationServerProvider , ProviderTokenVerifier
33+ from mcp .server .auth .provider import OAuthAuthorizationServerProvider , ProviderTokenVerifier , TokenVerifier
3434from mcp .server .auth .settings import AuthSettings
35- from mcp .server .auth .token_verifier import TokenVerifier
3635from mcp .server .elicitation import ElicitationResult , ElicitSchemaModelT , elicit_with_validation
3736from mcp .server .fastmcp .exceptions import ResourceError
3837from mcp .server .fastmcp .prompts import Prompt , PromptManager
You can’t perform that action at this time.
0 commit comments