Versioning Policy
Semantic Versioning
Major (x.0.0): Complete API redesigns Major versions represent fundamental shifts. FastMCP 2.x is entirely different from 1.x in both implementation and design philosophy. Minor (2.x.0): New features and evolutionUnlike traditional semantic versioning, minor versions may include breaking changes when necessary for the ecosystem’s evolution. This flexibility is essential in a young ecosystem where perfect backwards compatibility would prevent important improvements.
Breaking Changes
We permit breaking changes in minor versions because the MCP ecosystem is rapidly evolving. Refusing to break problematic APIs would accumulate design debt that eventually makes the framework unusable. Each breaking change represents a deliberate decision to keep FastMCP aligned with the ecosystem’s evolution. When breaking changes occur:- They only happen in minor versions (e.g., 2.3.x to 2.4.0)
- Release notes explain what changed and how to migrate
- We provide deprecation warnings at least 1 minor version in advance when possible
- Changes must substantially benefit users to justify disruption
FastMCP
server class,Client
class, and FastMCPContext
- Core MCP components:
Tool
,Prompt
,Resource
,ResourceTemplate
, and transports - Their public methods and documented behaviors
The
fastmcp.server.auth
module was introduced in 2.12.0 and is exempted from this policy temporarily, meaning it is expected to have breaking changes even on patch versions. This is because auth is a rapidly evolving part of the MCP spec and it would be dangerous to be beholden to old decisions. Please pin your FastMCP version if using authentication in production.We expect this exemption to last through at least the 2.12.x and 2.13.x release series.Production Use
Pin to exact versions:Creating Releases
Our release process is intentionally simple:- Create GitHub release with tag
vMAJOR.MINOR.PATCH
(e.g.,v2.11.0
) - Generate release notes automatically, and curate or add additional editorial information as needed
- GitHub releases automatically trigger PyPI deployments
Release Cadence
We follow a feature-driven release cadence rather than a fixed schedule. Minor versions ship approximately every 3-4 weeks when significant functionality is ready. Patch releases ship promptly for:- Critical bug fixes
- Security updates (immediate release)
- Regression fixes