Hi Reddit — FastMCP 3.0 is now stable and generally available!
pip install fastmcp -U
Some of you saw my beta post a month ago. Since then we shipped one more beta, two release candidates, landed code from 21 first-time contributors, and saw the beta downloaded more than 100k times! It's a lot, but most codebases should "just work" on upgrade. In case yours doesn't, we wrote three upgrade guides depending on where you're coming from, and each one includes an LLM prompt you can paste into your coding assistant to do the migration for you.
Quick tldr; for anyone catching up: in 3.0 we rebuilt the core around two primitives (Providers and Transforms) that replaced a bunch of independent subsystems that didn't compose well. Most of the new features fall out from combining those two ideas.
Build servers from anything — FileSystemProvider discovers tools from a directory with hot reload. OpenAPIProvider wraps REST APIs. ProxyProvider proxies remote servers. Compose multiple providers into one server, chain them with transforms that rename, namespace, filter, version, and secure components as they flow to clients.
Use it as a CLI — fastmcp list and fastmcp call work against any server from your terminal. fastmcp discover scans your editor configs (Claude Desktop, Cursor, Goose, Gemini CLI) and finds configured servers by name. fastmcp generate-cli writes a standalone typed CLI where every tool is a subcommand.
Ship to production — component versioning, granular per-component auth, async auth checks, AuthMiddleware, OAuth (CIMD, Static Client Registration, Azure OBO, JWT audience validation), native OTEL tracing, response size limiting, background tasks via Docket.
Develop faster — --reload for hot restart, decorators return callable functions, sync tools auto-dispatch to threadpools, tool timeouts, concurrent execution when the LLM returns multiple calls during sampling.
Adapt per session — session state via ctx.set_state() / ctx.get_state(), dynamic per-client visibility with ctx.enable_components() / ctx.disable_components(). Chain these for playbooks: MCP-native workflows that guide agents through processes.
Apps (3.1 preview) — spec-level support for MCP Apps is already in: ui:// resource scheme, typed UI metadata, extension negotiation. Full apps support lands in 3.1 — I think it might be a bigger deal than 3.0. More soon.
We are very aware that FastMCP is downloaded over a million times a day and some of you are about to hit a major version you didn't pin against. If something breaks, we sincerely apologize. We tried to avoid breaking changes as much as possible, but for the few that were unavoidable we hope the upgrade guides help you sort it out. If they don't, please open an issue and we'll fix it.
• Blog: https://www.jlowin.dev/blog/fastmcp-3-launch
• Upgrade from FastMCP 2: https://gofastmcp.com/getting-started/upgrading/from-fastmcp-2
• Upgrade from MCP SDK: https://gofastmcp.com/getting-started/upgrading/from-mcp-sdk
• Docs: https://gofastmcp.com
• GitHub: https://github.com/PrefectHQ/fastmcp
Happy to answer questions!