Build a FastMCP server with OAuth 2.1 auth for remote Claude agent connections
domain: modelcontextprotocol.io · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Install the official MCP Python SDK: pip install mcp[cli] (FastMCP is included in the mcp package)
Decorate Python functions with @mcp.tool() to expose them as callable tools and @mcp.resource() for read-only URI-addressable data
For remote hosting, switch transport from stdio to HTTP (Streamable HTTP) and configure an OAuth 2.1 authorization server
Implement Dynamic Client Registration (RFC 7591) so AI clients can auto-register at runtime without manual client-id setup
Add PKCE (S256) enforcement on all authorization code flows — OAuth 2.1 requires PKCE for public clients
Expose /.well-known/oauth-authorization-server metadata (RFC 8414) and /.well-known/oauth-protected-resource (RFC 9728) for client discovery
Known gotchas
Stdio is correct for local single-user use; HTTP plus auth is required the moment you host remotely or serve multiple users
Microsoft Entra ID does not support Dynamic Client Registration — use an alternative IdP or implement a DCR proxy layer
The MCP Python SDK v2 (targeting stable release in mid-2026) is expected to significantly change the transport layer — pin your SDK version
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?