Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Nov 1, 2025

Bumps fastmcp from 2.12.4 to 2.13.0.2.

Release notes

Sourced from fastmcp's releases.

v2.13.0.2: Cache Me If You Can

Bugfixes

This release includes two critical dependency fixes:

  • Fix py-key-value-aio minimum version (#2288): Corrected minimum version requirement to 0.2.8 to ensure compatibility
  • Replace openapi-core with jsonschema-path (#2291): Migrated from openapi-core to jsonschema-path for improved OpenAPI validation performance and stability

v2.13.0.1: Cache Me If You Can

This release includes an important bugfix for 2.13.0 that affects how the Azure OAuth provider handles scopes.

What's Changed

Enhancements 🔧

Fixes 🐞

Other Changes 🦾

New Contributors

Full Changelog: jlowin/fastmcp@v2.13.0...v2.13.0.1

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:

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 lifespan parameter.

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.

... (truncated)

Commits

Dependabot compatibility score

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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Nov 1, 2025
@socket-security
Copy link

socket-security bot commented Nov 1, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedfastmcp@​2.13.0.297100100100100

View full report

@socket-security
Copy link

socket-security bot commented Nov 1, 2025

Caution

Review the following alerts detected in dependencies.

According to your organization's Security Policy, you must resolve all "Block" alerts before proceeding. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Block Low
Embedded URLs or IPs: pypi fastmcp

URLs: https://github.com/jlowin/fastmcp, https://picsum.photos/400/300, https://picsum.photos/300/200, https://bsky.social, http://127.0.0.1:8000/mcp, https://your-app.authkit.app, https://your-env.scalekit.com, https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf, https://github.com/jlowin/fastmcp.git#subdirectory=examples/smart_home, https://surgemsg.com/, https://api.surgemsg.com/messages, https://api.github.com/repos/, https://gofastmcp.com/docs/deployment/server-configuration, https://fastmcp-test-server.example.com, https://dev.example.com, http://oauth.net/core/2.1/#registration, https://modelcontextprotocol.io/specification/2025-06-18/basic/security_best_practices#confused-deputy-problem, https://gofastmcp.com/servers/auth/oauth-proxy#confused-deputy-attacks, https://openid.net/specs/openid-connect-discovery-1_0.html, https://datatracker.ietf.org/doc/html/rfc8414, https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata, https://datatracker.ietf.org/doc/html/rfc8414#section-2, https://oidc.config.url, https://your.server.url, https://auth0.config.url, https://my-server.com, https://login.microsoftonline.com/, https://api.descope.com, https://app.descope.com/apps/inbound, https://app.descope.com/settings/project, https://docs.descope.com/identity-federation/inbound-apps/creating-inbound-apps#method-2-dynamic-client-registration-dcr, https://your-fastmcp-server.com, https://api.github.com/user, https://api.github.com/user/repos, https://github.com/login/oauth/authorize, https://github.com/login/oauth/access_token, https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/oauth2/v1/tokeninfo, https://www.googleapis.com/oauth2/v2/userinfo, https://www.googleapis.com/auth/userinfo.profile, https://accounts.google.com/o/oauth2/v2/auth, https://oauth2.googleapis.com/token, http://fastmcp.example.com, https://auth.example.com/oauth/introspect, https://fastmcp.example.com, https://app.scalekit.com/, https://docs.scalekit.com/mcp/overview/, https://abc123.supabase.co, https://your-fastmcp-server.com/oauth2/callback, https://workos.com/docs/authkit/mcp/integrating/token-verification, https://your-workos-domain.authkit.app, http://127.0.0.1, https://app.example.com/auth/, https://gofastmcp.com/servers/context#http-requests, https://gofastmcp.com/deployment/asgi, https://github.com/jlowin/fastmcp/issues, https://gofastmcp.com/patterns/decorating-methods, https://gofastmcp.com, https://fastmcp.cloud, https://astral.sh/uv/install.sh, https://gofastmcp.com/public/schemas/fastmcp.json/v1.json, https://gofastmcp.com/assets/brand/blue-logo.png, https://api.example.com/v1, http://example.com, http://127.0.0.1:3000/path, https://example.com, https://api.example.com/mcp, ftp://example.com, https://github.com/jlowin/fastmcp/pull/643, http://example.com/api/sse/stream, http://example.com/api/sse, http://example.com/api/sse/, http://example.com/api/sse?param=value, http://example.com/api, http://example.com/asset/image.jpg, https://example.com/assets/file, https://example.com:8080/mcp, https://x.com, https://github.com/modelcontextprotocol/python-sdk/pull/659, https://api.example.com, https://raw.githubusercontent.com/github/rest-api-description/refs/heads/main/descriptions-next/ghes-3.17/ghes-3.17.json, https://api.example.com/users/123, https://api.example.com/, https://api.example.com/v1/users/123, https://api.example.com/users/42, https://api.example.com/search, https://github.com/settings/developers, http://127.0.0.1:9100/auth/callback, https://api.githubcopilot.com/mcp/, http://example.com/data, https://example.com/.well-known/openid-configuration, https://example.com:8000/, https://example.com/authorize, https://example.com/oauth/token, https://example.com/.well-known/jwks.json, https://cognito-idp.us-east-1.amazonaws.com/us-east-1_XXXXXXXXX, https://test.auth.us-east-1.amazoncognito.com/oauth2/authorize, https://test.auth.us-east-1.amazoncognito.com/oauth2/token, https://cognito-idp.us-east-1.amazonaws.com/us-east-1_XXXXXXXXX/.well-known/jwks.json, https://test.auth.us-east-1.amazoncognito.com/oauth2/userInfo, https://example.com/, https://env-example.com, https://env-example.com/, https://myserver.com, https://myserver.com/, https://envserver.com, https://envserver.com/, https://login.microsoftonline.com/my-tenant-id/oauth2/v2.0/authorize, https://login.microsoftonline.com/my-tenant-id/oauth2/v2.0/token, https://login.microsoftonline.com/my-tenant/discovery/v2.0/keys, https://login.microsoftonline.com/my-tenant/v2.0, https://srv.example, https://should.be.ignored, http://env-server.com, http://env-server.com/, https://api.descope.com/P2abc123/.well-known/jwks.json, https://api.descope.com/v1/apps/P2abc123, https://github.com/testuser.png, https://auth.example.com/introspect, https://my-env.scalekit.com, https://env-scalekit.com, https://envserver.com/mcp, https://test-env.scalekit.com, http://test-server.com, http://test-server.com/, https://my-env.scalekit.com/, https://my-env.scalekit.com/keys, https://my-env.scalekit.com/resources/sk_resource_456, https://env123.supabase.co, https://abc123.supabase.co/, https://abc123.supabase.co/auth/v1/.well-known/jwks.json, https://abc123.supabase.co/auth/v1, https://test123.supabase.co, https://test.authkit.app, https://env.authkit.app, https://test.authkit.app/oauth2/authorize, https://test.authkit.app/oauth2/token, https://respectful-lullaby-34-staging.authkit.app, https://auth.example.com, https://my-server.com/.well-known/oauth-protected-resource/api/v1/mcp, https://my-server.com/mcp, https://my-server.com/api/v2/services/mcp, https://test.com, https://myserver.com/register, https://example.com/icon.png, https://test-server.com, https://test-server.com/mcp, https://other-server.com, https://other-server.com/mcp, https://test.example.com, https://evil.example.com, https://wrong-api.example.com, https://test.example.com/.well-known/jwks.json, https://any.example.com, https://any-api.example.com, https://other-api.example.com, https://third-party.example.com, https://my-auth-server.com, https://myserver.example, https://oauth.example.com/authorize, https://oauth.example.com/token, https://proxy.example.com, https://example.com/custom-icon.png, https://auth.example.com/, https://api.example.com/api, https://api.example.com/api/mcp, https://api.example.com/outer/inner, https://api.example.com/outer/inner/mcp, https://auth.example.com/authorize, https://auth.example.com/token, https://auth.example.com/revoke, https://issuer.example.com, https://docs.example.com, https://auth.com/authorize, https://auth.com/token, https://api.com, https://resource.example.com, http://127.0.0.1:3000, https://claude.ai/api/mcp/auth_callback, https://app.example.com/, https://app.example.com/callback, https://anywhere.com:9999/path, https://accounts.google.com/.well-known/openid-configuration, http://example.com:3000/callback, https://api.example.com/callback, https://example.com/callback, http://app.example.com/callback, https://app.example.com:8080/auth/callback, https://api.example.com:3000/auth/redirect, http://app.example.com:8080/auth/callback, http://127.0.0.1:8080, https://app.example.com, https://api.trusted.io/auth, https://other.example.com/callback, http://example.com/callback, https://api.example.com/.well-known/oauth-protected-resource/mcp, https://api.example.com/v1/, https://api.example.com/v1/.well-known/oauth-protected-resource/mcp, https://api.example.com/v1/mcp, https://auth1.example.com, https://auth2.example.com, https://auth1.example.com/, https://auth2.example.com/, https://accounts.google.com, https://accounts.google.com/, https://doc.my-server.com/resource-docs, http://test.com, https://resource.example.com/, https://github.com/jlowin/fastmcp/issues/1300, http://example.com/mcp/, https://mcptest.com, https://client.example.com/callback, https://auth.example.com/register, https://docs.example.com/, https://client.example.com/other-callback, https://client.example.com, https://attacker.example.com/callback, https://example.com/tool-icon.png, https://example.com/resource-icon.png, https://example.com/template-icon.png, https://example.com/prompt-icon.png, https://example.com/icon-48.png, https://example.com/icon-96.png, https://example.com/icon.svg, http://127.0.0.1:9999/sse/, http://example.com/path, https://github.com/jlowin/fastmcp/issues/1369, http://cyaninc.com/json-schemas/market-v1/product-constraints, https://example.com/calculator.png, https://example.com/data.png, https://example.com/user.png, https://example.com/analyze.png, https://example.com/tool-small.png, https://example.com/tool-large.png, https://example.com/v1-tool.png, https://example.com/server.png, https://example.com/tool.png

Location: Package overview

From: client/requirements.txtpypi/[email protected]

ℹ Read more on: This package | This alert | What are URL strings?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Review all remote URLs to ensure they are intentional, pointing to trusted sources, and not being used for data exfiltration or loading untrusted code at runtime.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore pypi/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Embedded URLs or IPs: pypi fastmcp

URLs: https://gofastmcp.com/docs/deployment/server-configuration, https://fastmcp-test-server.example.com, https://dev.example.com, http://oauth.net/core/2.1/#registration, https://modelcontextprotocol.io/specification/2025-06-18/basic/security_best_practices#confused-deputy-problem, https://gofastmcp.com/servers/auth/oauth-proxy#confused-deputy-attacks, https://openid.net/specs/openid-connect-discovery-1_0.html, https://datatracker.ietf.org/doc/html/rfc8414, https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata, https://datatracker.ietf.org/doc/html/rfc8414#section-2, https://oidc.config.url, https://your.server.url, https://auth0.config.url, https://my-server.com, https://login.microsoftonline.com/, https://api.descope.com, https://app.descope.com/apps/inbound, https://app.descope.com/settings/project, https://docs.descope.com/identity-federation/inbound-apps/creating-inbound-apps#method-2-dynamic-client-registration-dcr, https://your-fastmcp-server.com, https://api.github.com/user, https://api.github.com/user/repos, https://github.com/login/oauth/authorize, https://github.com/login/oauth/access_token, https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/oauth2/v1/tokeninfo, https://www.googleapis.com/oauth2/v2/userinfo, https://www.googleapis.com/auth/userinfo.profile, https://accounts.google.com/o/oauth2/v2/auth, https://oauth2.googleapis.com/token, http://fastmcp.example.com, https://auth.example.com/oauth/introspect, https://fastmcp.example.com, https://app.scalekit.com/, https://your-env.scalekit.com, https://docs.scalekit.com/mcp/overview/, https://abc123.supabase.co, https://your-app.authkit.app, https://your-fastmcp-server.com/oauth2/callback, https://workos.com/docs/authkit/mcp/integrating/token-verification, https://your-workos-domain.authkit.app, http://127.0.0.1, https://app.example.com/auth/, https://gofastmcp.com/servers/context#http-requests, https://gofastmcp.com/deployment/asgi, https://github.com/jlowin/fastmcp/issues, https://gofastmcp.com/patterns/decorating-methods, https://gofastmcp.com, https://fastmcp.cloud, https://astral.sh/uv/install.sh, https://gofastmcp.com/public/schemas/fastmcp.json/v1.json, https://gofastmcp.com/assets/brand/blue-logo.png

Location: Package overview

From: ?pypi/[email protected]

ℹ Read more on: This package | This alert | What are URL strings?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Review all remote URLs to ensure they are intentional, pointing to trusted sources, and not being used for data exfiltration or loading untrusted code at runtime.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore pypi/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Bumps [fastmcp](https://github.com/jlowin/fastmcp) from 2.12.4 to 2.13.0.2.
- [Release notes](https://github.com/jlowin/fastmcp/releases)
- [Changelog](https://github.com/jlowin/fastmcp/blob/main/docs/changelog.mdx)
- [Commits](jlowin/fastmcp@v2.12.4...v2.13.0.2)

---
updated-dependencies:
- dependency-name: fastmcp
  dependency-version: 2.13.0.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/pip/fastmcp-2.13.0.2 branch from 90bf0a3 to 1f75ad3 Compare November 7, 2025 08:00
@alphasecio
Copy link
Owner

@dependabot rebase

@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Nov 13, 2025

The dependabot.yml entry that created this PR has been deleted so this PR can't be rebased. Please close the PR so Dependabot can create a new one with the current dependabot.yml.

@alphasecio alphasecio closed this Nov 13, 2025
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Nov 13, 2025

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot bot deleted the dependabot/pip/fastmcp-2.13.0.2 branch November 13, 2025 06:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant