v3.0.0
Most servers need only one change: update your import fromfrom mcp.server.fastmcp import FastMCP to from fastmcp import FastMCP. The sections below cover less common breaking changes.
Breaking Changes
WSTransport Removed
UseStreamableHttpTransport instead.
Auth Provider Environment Variables Removed
Auth providers no longer auto-load configuration. Read them explicitly:Component enable()/disable() Moved to Server
These methods moved from component objects to the server:Listing Methods Return Lists
get_tools(), get_resources(), get_prompts(), and get_resource_templates() now return lists instead of dicts:
Prompts Use Message Class
UseMessage instead of mcp.types.PromptMessage:
Context State Methods Are Async
ctx.set_state() and ctx.get_state() are now async. State persists across the session:
Server Banner Environment Variable Renamed
FASTMCP_SHOW_CLI_BANNER is now FASTMCP_SHOW_SERVER_BANNER.
OpenAPI timeout Parameter Removed
Configure timeout on the httpx client directly. The client parameter is now optional — when omitted, a default client is created from the spec’s servers URL with a 30-second timeout.
Metadata Namespace Renamed
The FastMCP metadata namespace changed from_fastmcp to fastmcp, and metadata is now always included. The include_fastmcp_meta parameter has been removed from FastMCP() and to_mcp_tool()—remove any usage of this parameter.
Behavior Changes
Decorators Return Functions
Decorators now return your original function instead of a component object. This means functions stay callable for testing:greet as a FunctionTool), set FASTMCP_DECORATOR_MODE=object for v2 compatibility.
Deprecated Features
These still work but emit warnings. Update when convenient.mount() prefix → namespace
include_tags/exclude_tags → enable()/disable()
tool_serializer → ToolResult
ReturnToolResult from your tools for explicit serialization control instead of using the tool_serializer parameter.
add_tool_transformation() → add_transform()
FastMCP.as_proxy() → create_proxy()
v2.14.0
OpenAPI Parser Promotion
The experimental OpenAPI parser is now standard. Update imports:Removed Deprecated Features
BearerAuthProvider→ useJWTVerifierContext.get_http_request()→ useget_http_request()from dependenciesfrom fastmcp import Image→ usefrom fastmcp.utilities.types import ImageFastMCP(dependencies=[...])→ usefastmcp.jsonconfigurationFastMCPProxy(client=...)→ useclient_factory=lambda: ...output_schema=False→ useoutput_schema=None

