streamable-http
transport was not recognized as a valid option in fastmcp.json
configuration files, despite being supported by the CLI. This resulted in a parsing error when the CLI arguments were merged against the configuration spec.resource_server_url
has been renamed to base_url
for clarity and consistencyfastmcp.json
configuration file becomes the single source of truth for dependencies, transport settings, entrypoints, and server metadata. This foundation sets the stage for future capabilities like transformations and remote sources, moving toward a world where MCP servers are as portable and shareable as container images.π§ Sampling API Fallback tackles the chicken-and-egg problem limiting adoption of advanced MCP features. Samplingβwhere servers request LLM completions from clientsβis powerful but underutilized due to limited client support. FastMCP now lets server authors define fallback handlers that generate sampling completions server-side when clients donβt support the feature, encouraging adoption while maintaining compatibility.This release took longer than usual to ship, and for good reason: the communityβs aggressive testing and feedback on the authentication system helped us reach a level of stability weβre confident in. Thereβs certainly more work ahead, but these foundations position FastMCP to handle increasingly complex use cases while remaining approachable for developers.Thank you to our new contributors and everyone who tested preview builds. Your feedback directly shaped these features.pyright
to ty
by @zzstoatzz in #1545StdioTransport
in Client.new
by @strawgate in #1635just
error message for static checks by @jlowin in #1483RemoteAuthProvider
for cleaner external identity provider integration, update docs by @jlowin in #1346_key
after model_copy()
to enable prefixing Transformed Tools by @strawgate in #1357FASTMCPEXPERIMENTALENABLENEWOPENAPIPARSER=1
to enable it. A message will be shown to all users on the legacy parser encouraging them to try the new one before it becomes the default.)π§ Context State Management finally gives you persistent state across tool calls with a simple dict interface, while enhanced meta support lets you expose rich component metadata to clients. Combined with improved type annotations, string-based argument descriptions, and UV transport support, this release makes FastMCP feel more intuitive than ever.This release represents a TON of community contributions and sets the foundation for even more ambitious features ahead.meta
dict by @jlowin in #1281fastmcp run mcp.json
by @strawgate in #1138get_http_request
and context.session_id
by @hopeful0 in #1242mcp-json
output format to include server name by @jlowin in #1185mdxify
version by @zzstoatzz in #1182fastmcp install
command by @jlowin in #1056--path
Option to CLI for HTTP/SSE Route by @davidbk-legit in #1087client.call_tool()
.mcp
below 1.10, which includes changes related to the 6/18/2025 MCP spec update and could potentially break functionality for some FastMCP users.create_thread
tool to bsky MCP server by @zzstoatzz in #927mount_example.py
to work with current fastmcp API by @rajephon in #957Tools
by default. This is a breaking change but pragmatically necessitated by the fact that the majority of MCP clients available today are, sadly, only compatible with MCP tools. Therefore, this change significantly simplifies the out-of-the-box experience and ensures your entire API is immediately accessible to any tool-using agent.Context.sample
for flexible model selection. by @davenpi in #542fastmcp run
to work with remote servers by @jlowin in #491server.py
by @zzstoatzz in #476test_permission_error
if runner is root. by @ZiadAmerr in #502mcp
.Contributing
section to README by @zzstoatzz in #32