Bump mcp from 1.26.0 to 1.30.0
Bumps mcp from 1.26.0 to 1.30.0.
Release notes
Sourced from mcp's releases.
v1.30.0
Maintenance release of the 1.x line. 2.x is the current line; 1.x docs are at https://py.sdk.modelcontextprotocol.io/v1/.
A few defaults changed in this release. If you run a server or client on 1.x, skim these first:
Behaviour changes
HTTP client redirects are only followed within the endpoint's origin (#3448)
streamable_http_clientandsse_clientfollow a redirect only if it stays on the same scheme, host and port (or upgradeshttptohttpson the same host).- A redirect anywhere else now fails the request with
httpx.HTTPStatusError. If that other URL is the server you meant, use it as the endpoint URL.- The
follow_redirectssetting on anhttpx.AsyncClientyou pass in is no longer used for MCP requests, so you don't need it for the trailing-slash redirect any more.OAuthClientProviderapplies the same rule to its own requests.Idle Streamable HTTP sessions now expire (#3426)
- A stateful session with nothing in flight for 30 minutes is closed. The client's next request gets a 404 and it has to initialize again.
- Clients that keep the GET stream open (the SDK's client does) are not affected.
- A server also holds at most 10 000 sessions at once; beyond that, new sessions get a 503.
- To turn either off:
FastMCP(..., session_idle_timeout=None, max_sessions=None).The OAuth client checks the authorization server's
issuer(#3431)
- Authorization server metadata whose
issuerdoesn't match the server it was fetched for is now rejected withOAuthFlowError: Authorization server metadata issuer mismatch.- Client registrations are now remembered per issuer; if the server later points at a different authorization server, the client registers again.
- If protected resource metadata can't be fetched because of a 5xx/429, the flow now stops instead of falling back to the legacy endpoints.
Two new
DeprecationWarnings (#3431, #3451)
ClientCredentialsOAuthProvider/PrivateKeyJWTOAuthProviderwithoutissuer=. Pass your authorization server's issuer URL.AuthSettingswithresource_server_urlset butvalidate_token_resourceunset. Set it toTrueorFalse.- Both keep working as before in 1.x; this mostly matters if your tests turn warnings into errors.
New
AuthSettings.validate_token_resource: only accept tokens yourTokenVerifierreports as issued for this server (#3451).issuer=onClientCredentialsOAuthProviderandPrivateKeyJWTOAuthProvider(#3431).session_idle_timeout=andmax_sessions=onFastMCP(#3426).What's Changed
- [v1.x] Resolve tool output-schema references within the schema document only by
@maxisbeyin modelcontextprotocol/python-sdk#3396- [v1.x] Expire idle Streamable HTTP sessions by default and cap concurrent sessions by
@maxisbeyin modelcontextprotocol/python-sdk#3426- [v1.x] Validate the authorization server metadata issuer on every discovery path by
@maxisbeyin modelcontextprotocol/python-sdk#3431- [v1.x] Follow redirects only within the MCP endpoint's origin by
@maxisbeyin modelcontextprotocol/python-sdk#3448- [v1.x] Add AuthSettings.validate_token_resource to check a bearer token's resource by
@maxisbeyin modelcontextprotocol/python-sdk#3451Full Changelog: https://github.com/modelcontextprotocol/python-sdk/compare/v1.29.1...v1.30.0
v1.29.1
What's Changed
- [v1.x] Complete the FastMCP Settings model at import time by
@maxisbeyin modelcontextprotocol/python-sdk#3352- [v1.x] Apply the request body limit to the SSE and OAuth endpoints by
@maxisbeyin modelcontextprotocol/python-sdk#3344
... (truncated)
Commits
8c2fa6e[v1.x] Add AuthSettings.validate_token_resource to check a bearer token's res...2106335[v1.x] Follow redirects only within the MCP endpoint's origin (#3448)3eed7ce[v1.x] Validate the authorization server metadata issuer on every discovery p...92120b4[v1.x] Expire idle Streamable HTTP sessions by default and cap concurrent ses...5ebdfed[v1.x] Resolve tool output-schema references within the schema document only ...b222713[v1.x] Give recursive tool return types an object-rooted output schema (#3377)4dc224f[v1.x] Apply the request body limit to the SSE and OAuth endpoints (#3344)ae3338f[v1.x] Complete the FastMCP Settings model at import time (#3352)98b7159[v1.x] Move the v1.x docs to /v1/ and mark v1.x as the maintenance line (#3177)c0c5a9d[v1.x] ci: pick the docs toolchain per worktree in build-docs.sh (#3082)- 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 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.
Summary by cubic
Bumps mcp from 1.26.0 to 1.30.0 in uv.lock. The update tightens HTTP redirects to the endpoint's origin, expires idle Streamable HTTP sessions after 30 minutes, and validates the OAuth authorization server's issuer. The lockfile also picks up pyobjc marker changes and adds pyobjc-framework-pubsub.