Drop-in OAuth Provider for Personal FastMCP Servers on All Claude Platforms

What This Solves
A developer built a personal memory server using mem0 that Claude can read and write to, creating a personal knowledge vault. While getting it working on Claude Code was straightforward, making it function across Claude.ai web, mobile, and Desktop platforms presented authentication challenges.
The core problem: Claude.ai custom connectors require full OAuth 2.1 compliance. FastMCP provides either an in-memory test provider (unsuitable for production) or a proxy requiring setup of external identity providers like Google, GitHub, or Auth0. For a server intended only for personal use, setting up Auth0 was undesirable overhead.
The Solution
The developer created a single-file authentication provider written in Python that handles the entire OAuth flow without external services. Key features include:
- Dynamic Client Registration (DCR)
- PKCE (Proof Key for Code Exchange)
- Token persistence
- Complete OAuth 2.1 implementation
The provider restricts redirect URIs to claude.ai and localhost only, preventing unauthorized access even though client registration remains open (a Claude.ai requirement that took time to understand).
Implementation Details and Gotchas
The developer encountered several undocumented issues during implementation:
- FastAPI's BaseHTTPMiddleware silently breaks streaming responses, requiring workarounds
- Tool naming conflicts: If tools are named generically (like "add_memory" or "search"), Claude will use its own built-in memory functions instead of calling your server tools. The solution is to prefix tool names distinctively
- Serverless database connections: Neon Postgres (and likely other serverless databases) drop idle connections. Creating a single connection at startup causes tools to randomly fail after a few minutes
- DCR configuration: Dynamic Client Registration is disabled by default in FastMCP. Without enabling it, the /register endpoint returns 404, and Claude.ai silently fails to connect without any error messages
Availability
The solution is available on GitHub at github.com/crumrine/fastmcp-personal-auth as a single Python file under MIT license. This provides a practical alternative for developers who want their personal FastMCP servers to work across all Claude platforms without the complexity of external identity providers.
📖 Read the full source: r/ClaudeAI
👀 See Also

Claude Code Remote Control: Continue Local Sessions from Any Device
Claude Code Remote Control lets you continue local Claude Code sessions from other devices like phones or browsers while keeping everything running on your machine. It's available as a research preview on Pro and Max plans, requiring authentication and workspace trust setup.

4-Pane iTerm2 Setup for Claude Code CLI Separates AI Roles
A developer built a four-pane iTerm2 terminal setup specifically for Claude Code CLI to address context drift and self-grading bias. Each pane is locked to a specific role with dedicated models and permissions.

Claude-First Analytics MCP Server: Giving AI Agents Direct Access to Web Analytics Context
A developer rebuilt their web analytics tool as an MCP server, exposing simple web analytics, trackable links, and product insight tools directly to Claude, enabling AI agents to leverage site data alongside code and database context.

AVP Protocol Enables LLM Agents to Share KV-Cache Instead of Text for Token Efficiency
AVP (Agent Vector Protocol) allows LLM agents to pass KV-cache directly between them instead of text, reducing token processing by 73-78% and achieving 2-4x speedups across Qwen, Llama, and DeepSeek models. The protocol works with HuggingFace and vLLM connectors and is available as a Python package.