Bump fastmcp from 2.11.3 to 2.13.0
Bumps fastmcp from 2.11.3 to 2.13.0.
Release notes
Sourced from fastmcp's releases.
v2.13.0: Cache Me If You Can
FastMCP 2.13.0 "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 providers now automatically persist tokens across restarts, and developers can store arbitrary state without reaching for external databases. This foundation enables long-running sessions, cached credentials, and stateful applications built on MCP.🔐 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 providing a clean UX with customizable branding. The OAuth proxy now issues its own tokens with automatic key derivation from client secrets, and RFC 7662 token introspection support enables enterprise auth flows. Path prefix mounting enables OAuth-protected servers to integrate into existing web applications under custom paths like
/api, and MCP 1.17+ compliance with RFC 9728 ensures protocol compatibility. Combined with improved error handling and platform-aware token storage, OAuth is now production-ready and security-hardened for serious applications.FastMCP now supports out-of-the-box authentication with:
- WorkOS and AuthKit
- GitHub
- Azure (Entra ID)
- AWS Cognito
- Auth0
- Descope
- Scalekit
- JWTs
- RFC 7662 token introspection
⚡ Response Caching Middleware dramatically improves performance for expensive operations. Cache tool and resource responses with configurable TTLs, reducing redundant API calls and speeding up repeated queries.
🔄 Server lifespans provide proper initialization and cleanup hooks that run once per server instance instead of per client session. This fixes a long-standing source of confusion in the MCP SDK and enables proper resource management for database connections, background tasks, and other server-level state. Note: this is a breaking behavioral change if you were using the
lifespanparameter.✨ Developer experience improvements include Pydantic input validation for better type safety, icon support for richer UX, RFC 6570 query parameters for resource templates, improved Context API methods (list_resources, list_prompts, get_prompt), and async file/directory resources.
This release includes contributions from 20 new contributors and represents the largest feature set in a while. Thank you to everyone who tested preview builds and filed issues - your feedback shaped these improvements!
What's Changed
New Features 🎉
- Add RFC 6570 query parameter support to resource templates by
@jlowinin jlowin/fastmcp#1971- Add Storage to FastMCP and switch OAuth to use it by
@strawgatein jlowin/fastmcp#1913- Add Pydantic-compatible input validation by
@jlowinin jlowin/fastmcp#2073- Add RFC 7662 token introspection provider by
@jlowinin jlowin/fastmcp#2074- Add Response Caching Middleware by
@strawgatein jlowin/fastmcp#1845- Support mounting OAuth-protected servers under path prefixes by
@jlowinin jlowin/fastmcp#2119- OAuth proxy issues its own tokens by
@jlowinin jlowin/fastmcp#2109- Implement icon support by
@jlowinin jlowin/fastmcp#2121- Add ToolInjectionMiddleware + Tools for Read/List Resource/Prompt for Client Compat by
@strawgatein jlowin/fastmcp#2142Enhancements 🔧
- Add Scalekit Provider for Enterprise Authentication by
@AkshayParihar33in jlowin/fastmcp#1927- Add AuthKit DCR example by
@jlowinin jlowin/fastmcp#1935- Remove redirect path for authkit example by
@jlowinin jlowin/fastmcp#1938- feat: Follow OAuth 2.1 spec requirements on auth failures by
@tcaracin jlowin/fastmcp#1923- Refactor OAuth 2.1 error handling with TokenHandler subclass by
@jlowinin jlowin/fastmcp#1948- Expand timeouts by
@jlowinin jlowin/fastmcp#1954- Upgrade GitHub workflows to claude-code-action@v1 by
@jlowinin jlowin/fastmcp#1956- Add --model claude-sonnet-4-5-20250929 to all workflows by
@jlowinin jlowin/fastmcp#1963- Improve env vars for marvin by
@jlowinin jlowin/fastmcp#1972
... (truncated)
Changelog
Sourced from fastmcp's changelog.
title: "Changelog" icon: "list-check" rss: true
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 providers now automatically persist tokens across restarts, and developers can store arbitrary state without reaching for external databases. This foundation enables long-running sessions, cached credentials, and stateful applications built on MCP.🔐 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 providing a clean UX with customizable branding. The OAuth proxy now issues its own tokens with automatic key derivation from client secrets, and RFC 7662 token introspection support enables enterprise auth flows. Path prefix mounting enables OAuth-protected servers to integrate into existing web applications under custom paths like
/api, and MCP 1.17+ compliance with RFC 9728 ensures protocol compatibility. Combined with improved error handling and platform-aware token storage, OAuth is now production-ready and security-hardened for serious applications.FastMCP now supports out-of-the-box authentication with:
- WorkOS and AuthKit
- GitHub
- Azure (Entra ID)
- AWS Cognito
- Auth0
- Descope
- Scalekit
- JWTs
- RFC 7662 token introspection
⚡ Response Caching Middleware dramatically improves performance for expensive operations. Cache tool and resource responses with configurable TTLs, reducing redundant API calls and speeding up repeated queries.
🔄 Server lifespans provide proper initialization and cleanup hooks that run once per server instance instead of per client session. This fixes a long-standing source of confusion in the MCP SDK and enables proper resource management for database connections, background tasks, and other server-level state. Note: this is a breaking behavioral change if you were using the
lifespanparameter.✨ Developer experience improvements include Pydantic input validation for better type safety, icon support for richer UX, RFC 6570 query parameters for resource templates, improved Context API methods (list_resources, list_prompts, get_prompt), and async file/directory resources.
This release includes contributions from 20 new contributors and represents the largest feature set in a while. Thank you to everyone who tested preview builds and filed issues - your feedback shaped these improvements!
Full Changelog: v2.12.5...v2.13.0
FastMCP 2.12.5 is a point release that pins the MCP SDK version below 1.17, which introduced a change affecting FastMCP users with auth providers mounted as part of a larger application. This ensures the
.well-knownpayload appears in the expected location when using FastMCP authentication providers with composite applications.What's Changed
Fixes 🐞
... (truncated)
Commits
716e50dchore: Update SDK documentation (#2214)5896dafStage 2.13.0 updates (#2252)b57a39cRemove redundant None checks from Context methods (#2251)3808355Async FileResource and DirectoryResource (#2241)1e5776fAdd list_resources, list_prompts, and get_prompt methods to Context (#2249)2f13119Add Documentation for FastMCP Server Testing (#2244)c002bc3Small Clean-up (#2247)19fbc84delete ratio test (#2250)063ffe9Derivejwt_signing_keyfrom Client Secret, default to Encrypted Disk Store ...577ed6eFix middleware example: add context parameter to call_next() (#2215)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.