fix(deps): update dependency fastmcp to v3#485
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
Conversation
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



This PR contains the following updates:
>=2.0.0,<3→>=3.1.1,<4Release Notes
PrefectHQ/fastmcp (fastmcp)
v3.1.1: : 'Tis But a PatchCompare Source
Pins
pydantic-monty<0.0.8to fix a breaking change in Monty that affects code mode. Monty 0.0.8 removed theexternal_functionsconstructor parameter, causingMontySandboxProviderto fail. This patch caps the version so existing installs work correctly.What's Changed
Fixes 🐞
Full Changelog: PrefectHQ/fastmcp@v3.1.0...v3.1.1
v3.1.0: : Code to JoyCompare Source
FastMCP 3.1 is the Code Mode release. The 3.0 architecture introduced providers and transforms as the extensibility layer — 3.1 puts that architecture to work, shipping the most requested capability since launch: servers that can find and execute code on behalf of agents, without requiring clients to know what tools exist.
Code Mode
Standard MCP has two scaling problems. The entire tool catalog loads into context upfront — with a large server, that's tens of thousands of tokens before the LLM reads a single word of the user's request. And every tool call is a round-trip: the LLM calls a tool, the result flows back through the context window, the LLM reasons about it, calls another tool, and so on. Intermediate results that only exist to feed the next step still burn tokens every time.
CodeModeis an experimental transform that solves both. Instead of seeing your tool catalog directly, the LLM gets meta-tools: it searches for relevant tools on demand (using BM25), inspects their schemas, then writes Python that chainscall_tool()calls in a sandbox and returns a final answer. Discovery is staged and targeted; intermediate results never touch the model's context window.Your existing tools don't change —
CodeModewraps them. The default three-stage flow (search → get schemas → execute) is configurable: collapse it to two stages for smaller catalogs, skip discovery entirely for tiny ones. The sandbox supports resource limits on time, memory, and recursion depth.Read the docs here.
Search Transforms
Code Mode's discovery layer is also available as a standalone transform.
SearchToolsadds BM25 text search to any server — clients can query against tool names and descriptions and receive ranked results, without needing to know tool names upfront. This is useful anywhere the tool catalog is large, dynamic, or not known in advance.Prefab Apps
3.1 adds early integration with Prefab, a frontend framework with a Python DSL that compiles to React. The vision: Python developers building MCP servers shouldn't have to leave Python to ship a proper UI. Prefab is still under very active development (their words: "probably shouldn't use it yet"), but the integration is here, the pieces are aligning, and 3.2 is where this gets interesting.
Auth Additions
MultiAuthlets you compose multiple token verification sources into a single auth layer — useful when you need to accept tokens from more than one provider (e.g., internal JWTs alongside a third-party OAuth provider). This release also adds out-of-the-box support for PropelAuth and a Google GenAI sampling handler.Under the Hood
Heavy imports are now lazy-loaded, meaningfully reducing startup time for servers that don't use every feature.
fastmcp runanddev inspectorgain a-m/--moduleflag for module-style invocation,MCPConfigTransportnow correctly persists sessions across tool calls, andsearch_result_serializergives you a hook to customize how search results are serialized for markdown output. Eight new contributors, and the usual round of fixes.What's Changed
New Features 🎉
Enhancements 🔧
fastmcp runanddev inspectorby @dgenio in #3331Fixes 🐞
Docs 📚
Other Changes 🦾
New Contributors
Full Changelog: PrefectHQ/fastmcp@v3.0.2...v3.1.0
v3.0.2: : Threecovery Mode IICompare Source
Two community-contributed fixes: auth headers from MCP transport no longer leak through to downstream OpenAPI APIs, and background task workers now correctly receive the originating request ID. Plus a new docs example for context-aware tool factories.
What's Changed
Fixes 🐞
Docs 📚
New Contributors
Full Changelog: PrefectHQ/fastmcp@v3.0.1...v3.0.2
v3.0.1: : Threecovery ModeCompare Source
First patch after 3.0 — mostly smoothing out rough edges discovered in the wild. The big ones: middleware state that wasn't surviving the trip to tool handlers now does,
Tool.from_tool()accepts callables again, OpenAPI schemas with circular references no longer crash discovery, and decorator overloads now return the correct types in function mode. Also addsverify_id_tokento OIDCProxy for providers (like some Azure AD configs) that issue opaque access tokens but standard JWT id_tokens.What's Changed
Enhancements 🔧
Fixes 🐞
Docs 📚
Full Changelog: PrefectHQ/fastmcp@v3.0.0...v3.0.1
v3.0.0: : Three at LastCompare Source
FastMCP 3.0 is stable. Two betas, two release candidates, 21 new contributors, and more than 100,000 pre-release installs later — the architecture held up, the upgrade path was smooth, and we're shipping it.
The surface API is largely unchanged —
@mcp.tool()still works exactly as before. What changed is everything underneath: a provider/transform architecture that makes FastMCP extensible, observable, and composable in ways v2 couldn't support. If we did our jobs right, you'll barely notice the redesign. You'll just notice that more is possible.This is also the release where FastMCP moves from jlowin/fastmcp to PrefectHQ/fastmcp. GitHub forwards all links, PyPI is the same, imports are the same. A major version felt like the right moment to make it official.
Build servers from anything
🔌 Components no longer have to live in one file with one server.
FileSystemProviderdiscovers tools from directories with hot-reload.OpenAPIProviderwraps REST APIs.ProxyProviderproxies remote MCP servers.SkillsProviderdelivers agent skills as resources. Write your own provider for whatever source makes sense. Compose multiple providers into one server, share one across many, or chain them with transforms that rename, namespace, filter, version, and secure components as they flow to clients.ResourcesAsToolsandPromptsAsToolsexpose non-tool components to tool-only clients.Ship to production
🔐 Component versioning: serve
@tool(version="2.0")alongside older versions from one codebase. Granular authorization on individual components with async auth checks, server-wide policies viaAuthMiddleware, and scope-based access control. OAuth gets CIMD, Static Client Registration, Azure OBO via dependency injection, JWT audience validation, and confused-deputy protections. OpenTelemetry tracing with MCP semantic conventions. Response size limiting. Background tasks with distributed Redis notification andctx.elicit()relay. Security fixes include droppingdiskcache(CVE-2025-69872) and upgradingpython-multipartandprotobuffor additional CVEs.Adapt per session
💾 Session state persists across requests via
ctx.set_state()/ctx.get_state().ctx.enable_components()andctx.disable_components()let servers adapt dynamically per client — show admin tools after authentication, progressively reveal capabilities, or scope access by role.Develop faster
⚡
--reloadauto-restarts on file changes. Standalone decorators return the original function, so decorated tools stay callable in tests and non-MCP contexts. Sync functions auto-dispatch to a threadpool. Tool timeouts, MCP-compliant pagination, composable lifespans,PingMiddlewarefor keepalive, and concurrent tool execution when the LLM returns multiple calls in one response.Use FastMCP as a CLI
🖥️
fastmcp listandfastmcp callquery and invoke tools on any server from a terminal.fastmcp discoverscans your editor configs (Claude Desktop, Cursor, Goose, Gemini CLI) and finds configured servers by name.fastmcp generate-cliwrites a standalone typed CLI where every tool is a subcommand.fastmcp installregisters your server with Claude Desktop, Cursor, or Goose in one command.Build apps (3.1 preview)
📱 Spec-level support for MCP Apps is in:
ui://resource scheme, typed UI metadata viaAppConfig, extension negotiation, and runtime detection. The full Apps experience lands in 3.1.If you hit 3.0 because you didn't pin your dependencies and something breaks — the upgrade guides will get you sorted. We minimized breaking changes, but a major version is a major version.
📖 Documentation
🚀 Upgrade from FastMCP v2
🔀 Upgrade from MCP Python SDK
📰 What's New in FastMCP 3.0
What's Changed
New Features 🎉
fastmcp listandfastmcp callCLI commands by @jlowin in #3054fastmcp generate-clicommand by @jlowin in #3065Enhancements 🔧
fastmcp install stdiocommand by @jlowin in #3032fastmcp discoverand name-based server resolution by @jlowin in #3055Fixes 🐞
openapi_versionCheck So 3.1 Is Included by @deeleeramone in #2768Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.