Spaces:
Sleeping
Sleeping
Jeremiah Lowin
Add comprehensive OAuth 2.1 authentication system with WorkOS integration (#1327)
3959209 unverified Download src/fastmcp/contrib/component_manager/example.py from purecipher/xsecuremcp: direct link, hf CLI and curl.
- Browser
- Download file 1.59 kB
-
https://huggingface.co/spaces/purecipher/xsecuremcp/resolve/main/src/fastmcp/contrib/component_manager/example.py
- Command line
-
hf download hf://spaces/purecipher/xsecuremcp/src/fastmcp/contrib/component_manager/example.py
-
curl -L -o example.py https://huggingface.co/spaces/purecipher/xsecuremcp/resolve/main/src/fastmcp/contrib/component_manager/example.py
1.59 kB
| from fastmcp import FastMCP | |
| from fastmcp.contrib.component_manager import set_up_component_manager | |
| from fastmcp.server.auth.providers.jwt import JWTVerifier, RSAKeyPair | |
| key_pair = RSAKeyPair.generate() | |
| auth = JWTVerifier( | |
| public_key=key_pair.public_key, | |
| issuer="https://dev.example.com", | |
| audience="my-dev-server", | |
| required_scopes=["mcp:read"], | |
| ) | |
| # Build main server | |
| mcp_token = key_pair.create_token( | |
| subject="dev-user", | |
| issuer="https://dev.example.com", | |
| audience="my-dev-server", | |
| scopes=["mcp:write", "mcp:read"], | |
| ) | |
| mcp = FastMCP( | |
| name="Component Manager", | |
| instructions="This is a test server with component manager.", | |
| auth=auth, | |
| ) | |
| # Set up main server component manager | |
| set_up_component_manager(server=mcp, required_scopes=["mcp:write"]) | |
| # Build mounted server | |
| mounted_token = key_pair.create_token( | |
| subject="dev-user", | |
| issuer="https://dev.example.com", | |
| audience="my-dev-server", | |
| scopes=["mounted:write", "mcp:read"], | |
| ) | |
| mounted = FastMCP( | |
| name="Component Manager", | |
| instructions="This is a test server with component manager.", | |
| auth=auth, | |
| ) | |
| # Set up mounted server component manager | |
| set_up_component_manager(server=mounted, required_scopes=["mounted:write"]) | |
| # Mount | |
| mcp.mount(server=mounted, prefix="mo") | |
| def get_greeting() -> str: | |
| """Provides a simple greeting message.""" | |
| return "Hello from FastMCP Resources!" | |
| def get_info() -> str: | |
| """Provides a simple info.""" | |
| return "You are using component manager contrib module!" | |