FastMCP 2.14.6: $Ref Dead Redemption
v2.14.4 backported
dereference_refs() but never wired it into the tool schema pipeline — $ref and $defs were still sent to MCP clients. Now fixed: schemas are fully inlined before reaching clients.FastMCP 2.14.5: Sealed Docket
Fixes a memory leak in the memory:// docket broker where cancelled tasks accumulated instead of being cleaned up. Bumps pydocket to ≥0.17.2.
FastMCP 2.14.4: Package Deal
Fixes a fresh install bug where the packaging library was missing as a direct dependency, plus backports $ref dereferencing in tool schemas and a task capabilities location fix.
FastMCP 2.14.3: Time After Timeout
Sometimes five seconds just isn’t enough. This release fixes an HTTP transport bug that was cutting connections short, along with OAuth and Redis fixes, better ASGI support, and CLI update notifications so you never miss a beat.
FastMCP 2.14.2: Port Authority
FastMCP 2.14.2 brings a wave of community contributions safely into the 2.x line. A variety of important fixes backported from 3.0 work improve OpenAPI 3.1 compatibility, MCP spec compliance for output schemas and elicitation, and correct a subtle base_url fallback issue. The CLI now gently reminds you that FastMCP 3.0 is on the horizon.
FastMCP 2.14.1: 'Tis a Gift to Be Sample
FastMCP 2.14.1 introduces sampling with tools (SEP-1577), enabling servers to pass tools to
ctx.sample() for agentic workflows where the LLM can automatically execute tool calls in a loop.🤖 Sampling with tools lets servers leverage client LLM capabilities for multi-step agentic workflows. The new ctx.sample_step() method provides single LLM calls with tool inspection, while result_type enables structured outputs via validated Pydantic models.🔧 AnthropicSamplingHandler joins the existing OpenAI handler, and both are now promoted from experimental to production-ready status with a unified API.FastMCP 2.14.0: Task and You Shall Receive
FastMCP 2.14 begins adopting the MCP 2025-11-25 specification, introducing protocol-native background tasks that enable long-running operations to report progress without blocking clients.⏳ Background Tasks (SEP-1686) let you add
task=True to any async tool decorator. Powered by Docket for enterprise task scheduling—in-memory backends work out-of-the-box, Redis enables persistence and horizontal scaling.🔧 OpenAPI Parser Promoted from experimental to standard with improved performance through single-pass schema processing.📋 MCP Spec Updates including SSE polling (SEP-1699), multi-select elicitation (SEP-1330), and tool name validation (SEP-986). Also removes deprecated APIs accumulated across 2.x.FastMCP 2.13.3: Pin-ish Line
Pins
mcp<1.23 as a precaution due to MCP SDK changes related to the 11/25/25 protocol update that break certain FastMCP patches and workarounds. FastMCP 2.14 introduces proper support for the updated protocol.FastMCP 2.13.2: Refreshing Changes
Polishes the authentication stack with improvements to token refresh, scope handling, and multi-instance deployments.🎮 Discord OAuth provider added as a built-in authentication option.🔄 Token refresh fixes for Azure and Google providers, plus OAuth proxy improvements for multi-instance deployments.🎨 Icon support added to proxy classes for richer UX.
FastMCP 2.13.1: Heavy Meta
Introduces meta parameter support for
ToolResult, enabling tools to return supplementary metadata alongside results for patterns like OpenAI’s Apps SDK.🏷️ Meta parameters let tools return supplementary metadata alongside results.🔐 New auth providers for OCI and Supabase, plus custom token verifiers with DebugTokenVerifier for development.🔒 Security fixes for CVE-2025-61920 and safer Cursor deeplink URL validation on Windows.FastMCP 2.13.0: Cache Me If You Can
FastMCP 2.13 “Cache Me If You Can” represents a fundamental maturation of the framework. After months of community feedback on authentication and state management, this release delivers the infrastructure FastMCP needs to handle production workloads: persistent storage, response caching, and pragmatic OAuth improvements that reflect real-world deployment challenges.💾 Pluggable storage backends bring persistent state to FastMCP servers. Built on py-key-value-aio, a new library from FastMCP maintainer Bill Easton (@strawgate), the storage layer provides encrypted disk storage by default, platform-aware token management, and a simple key-value interface for application state. We’re excited to bring this elegantly designed library into the FastMCP ecosystem - it’s both powerful and remarkably easy to use, including wrappers to add encryption, TTLs, caching, and more to backends ranging from Elasticsearch, Redis, DynamoDB, filesystem, in-memory, and more!🔐 OAuth maturity brings months of production learnings into the framework. The new consent screen prevents confused deputy and authorization bypass attacks discovered in earlier versions, while the OAuth proxy now issues its own tokens with automatic key derivation. RFC 7662 token introspection support enables enterprise auth flows, and path prefix mounting enables OAuth-protected servers to integrate into existing web applications. FastMCP now supports out-of-the-box authentication with WorkOS and AuthKit, GitHub, Google, Azure (Entra ID), AWS Cognito, Auth0, Descope, Scalekit, JWTs, and RFC 7662 token introspection.⚡ Response Caching Middleware dramatically improves performance for expensive operations, while Server lifespans provide proper initialization and cleanup hooks that run once per server instance instead of per client session.✨ Developer experience improvements include Pydantic input validation, icon support, RFC 6570 query parameters for resource templates, improved Context API methods, and async file/directory resources.
FastMCP 2.12.5: Safety Pin
Pins MCP SDK version below 1.17 to ensure the
.well-known payload appears in the expected location when using FastMCP auth providers with composite applications.FastMCP 2.12.4: OIDC What You Did There
FastMCP 2.12.4 adds comprehensive OIDC support and expands authentication options with AWS Cognito and Descope providers. The release also includes improvements to logging middleware, URL handling for nested resources, persistent OAuth client registration storage, and various fixes to the experimental OpenAPI parser.🔐 OIDC Configuration brings native support for OpenID Connect, enabling seamless integration with enterprise identity providers.🏢 Enterprise Authentication expands with AWS Cognito and Descope providers, broadening the authentication ecosystem.🛠️ Improved Reliability through enhanced URL handling, persistent OAuth storage, and numerous parser fixes based on community feedback.
FastMCP 2.12.3: Double Time
FastMCP 2.12.3 focuses on performance and developer experience improvements. This release includes optimized auth provider imports that reduce server startup time, enhanced OIDC authentication flows, and automatic inline snapshot creation for testing.
FastMCP 2.12.2: Perchance to Stream
Hotfix for streamable-http transport validation in fastmcp.json configuration files, resolving a parsing error when CLI arguments were merged against the configuration spec.
FastMCP 2.12.1: OAuth to Joy
FastMCP 2.12.1 strengthens OAuth proxy implementation with improved client storage reliability, PKCE forwarding, configurable token endpoint authentication methods, and expanded scope handling based on extensive community testing.
FastMCP 2.12: Auth to the Races
FastMCP 2.12 represents one of our most significant releases to date. After extensive testing and iteration with the community, we’re shipping major improvements to authentication, configuration, and MCP feature adoption.🔐 OAuth Proxy bridges the gap for providers that don’t support Dynamic Client Registration, enabling authentication with GitHub, Google, WorkOS, and Azure through minimal configuration.📋 Declarative JSON Configuration introduces
fastmcp.json as the single source of truth for server settings, making MCP servers as portable and shareable as container images.🧠 Sampling API Fallback tackles adoption challenges by letting servers generate completions server-side when clients don’t support the feature, encouraging innovation while maintaining compatibility.FastMCP 2.11: Auth to a Good Start
FastMCP 2.11 brings enterprise-ready authentication and dramatic performance improvements.🔒 Comprehensive OAuth 2.1 Support with WorkOS AuthKit integration, Dynamic Client Registration, and support for separate resource and authorization servers.⚡ Experimental OpenAPI Parser delivers dramatic performance gains through single-pass schema processing and optimized memory usage (enable with environment variable).💾 Enhanced State Management provides persistent state across tool calls with a simple dictionary interface, improving context handling and type annotations.This release emphasizes speed and simplicity while setting the foundation for future enterprise features.
FastMCP 2.10: Great Spec-tations
FastMCP 2.10 achieves full compliance with the 6/18/2025 MCP specification update, introducing powerful new communication patterns.💬 Elicitation Support enables dynamic server-client communication and “human-in-the-loop” workflows, allowing servers to request additional information during execution.📊 Output Schemas provide structured outputs for tools, making results more predictable and easier to parse programmatically.🛠️ Enhanced HTTP Routing with OpenAPI extensions support and configurable algorithms for more flexible API integration.This release includes a breaking change to
client.call_tool() return signatures but significantly expands the interaction capabilities of MCP servers.
FastMCP 2.9: MCP-Native Middleware
FastMCP 2.9 is a major release that, among other things, introduces two important features that push beyond the basic MCP protocol.🤝 MCP Middleware brings a flexible middleware system for intercepting and controlling server operations - think authentication, logging, rate limiting, and custom business logic without touching core protocol code.✨ Server-side type conversion for prompts solves a major developer pain point: while MCP requires string arguments, your functions can now work with native Python types like lists and dictionaries, with automatic conversion handling the complexity.These features transform FastMCP from a simple protocol implementation into a powerful framework for building sophisticated MCP applications. Combined with the new
File utility for binary data and improvements to authentication and serialization, this release makes FastMCP significantly more flexible and developer-friendly while maintaining full protocol compliance.
FastMCP 2.8: Transform and Roll Out
FastMCP 2.8 is here, and it’s all about taking control of your tools.This release is packed with new features for curating the perfect LLM experience:🛠️ Tool TransformationThe headline feature lets you wrap any tool—from your own code, a third-party library, or an OpenAPI spec—to create an enhanced, LLM-friendly version. You can rename arguments, rewrite descriptions, and hide parameters without touching the original code.This feature was developed in close partnership with Bill Easton. As Bill brilliantly put it, “Tool transformation flips Prompt Engineering on its head: stop writing tool-friendly LLM prompts and start providing LLM-friendly tools.”🏷️ Component ControlNow that you’re transforming tools, you need a way to hide the old ones! In FastMCP 2.8 you can programmatically enable/disable any component, and for everyone who’s been asking what FastMCP’s tags are for—they finally have a purpose! You can now use tags to declaratively filter which components are exposed to your clients.🚀 Pragmatic by DefaultLastly, to ensure maximum compatibility with the ecosystem, we’ve made the pragmatic decision to default all OpenAPI routes to Tools, making your entire API immediately accessible to any tool-using agent. When the industry catches up and supports resources, we’ll restore the old default — but no reason you should do extra work before OpenAI, Anthropic, or Google!

FastMCP 2.7: Pare Programming
FastMCP 2.7 has been released!Most notably, it introduces the highly requested (and Pythonic) “naked” decorator usage:In addition, decorators now return the objects they create, instead of the decorated function. This is an important usability enhancement.The bulk of the update is focused on improving the FastMCP internals, including a few breaking internal changes to private APIs. A number of functions that have clung on since 1.0 are now deprecated.

FastMCP 2.6: Blast Auth
FastMCP 2.6 is here!This release introduces first-class authentication for MCP servers and clients, including pragmatic Bearer token support and seamless OAuth 2.1 integration. This release aligns with how major AI platforms are adopting MCP today, making it easier than ever to securely connect your tools to real-world AI models. Dive into the update and secure your stack with minimal friction.

Stop Vibe-Testing Your MCP Server
Your tests are bad and you should feel bad.Stop vibe-testing your MCP server through LLM guesswork. FastMCP 2.0 introduces in-memory testing for fast, deterministic, and fully Pythonic validation of your MCP logic—no network, no subprocesses, no vibes.

Reflecting on FastMCP at 10k stars 🌟
In just six weeks since its relaunch, FastMCP has surpassed 10,000 GitHub stars—becoming the fastest-growing OSS project in our orbit. What started as a personal itch has become the backbone of Python-based MCP servers, powering a rapidly expanding ecosystem. While the protocol itself evolves, FastMCP continues to lead with clarity, developer experience, and opinionated tooling. Here’s to what’s next.

Now Streaming: FastMCP 2.3
FastMCP 2.3 introduces full support for Streamable HTTP, a modern alternative to SSE that simplifies MCP deployments over the web. It’s efficient, reliable, and now the default HTTP transport. Just run your server with transport=“http” and connect clients via a standard URL—FastMCP handles the rest. No special setup required. This release makes deploying MCP servers easier and more portable than ever.

MCP Proxy Servers with FastMCP 2.0
Even AI needs a good travel adapter 🔌FastMCP now supports proxying arbitrary MCP servers, letting you run a local FastMCP instance that transparently forwards requests to any remote or third-party server—regardless of transport. This enables transport bridging (e.g., stdio ⇄ SSE), simplified client configuration, and powerful gateway patterns. Proxies are fully composable with other FastMCP servers, letting you mount or import them just like local servers. Use
FastMCP.from_client() to wrap any backend in a clean, Pythonic proxy.
Introducing FastMCP 2.0 🚀
This major release reimagines FastMCP as a full ecosystem platform, with powerful new features for composition, integration, and client interaction. You can now compose local and remote servers, proxy arbitrary MCP servers (with transport translation), and generate MCP servers from OpenAPI or FastAPI apps. A new client infrastructure supports advanced workflows like LLM sampling.FastMCP 2.0 builds on the success of v1 with a cleaner, more flexible foundation—try it out today!
FastMCP is joining the official MCP Python SDK!
FastMCP 1.0 will become part of the official MCP Python SDK!

Introducing FastMCP 🚀
Because life’s too short for boilerplate.This is where it all started. FastMCP’s launch post introduced a clean, Pythonic way to build MCP servers without the protocol overhead. Just write functions; FastMCP handles the rest. What began as a weekend project quickly became the foundation of a growing ecosystem.

