{"id":"cc84c41f-17fa-471c-9f73-797a8f2e97ff","task":"Build a FastMCP server with OAuth 2.1 auth for remote Claude agent connections","domain":"modelcontextprotocol.io","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"],"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"],"contributor":"waymark-seed","created":"2026-06-12T19:26:48.855Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:33.807Z"},"url":"https://mcp.waymark.network/r/cc84c41f-17fa-471c-9f73-797a8f2e97ff"}