Skip to content

deps: bump the minor-and-patch group across 1 directory with 16 updates - #571

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/minor-and-patch-951a2668a1
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/minor-and-patch-951a2668a1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 15, 2026

Copy link
Copy Markdown
Contributor

Warning

Cooldown could not be applied because no publication date was available from the registry.

Bumps the minor-and-patch group with 16 updates in the / directory:

Package From To
mcp 2.1.1 2.2.0
tree-sitter-language-pack 1.16.1 1.18.0
ruff 0.16.6 0.16.7
pyright 1.1.411 1.1.414
build 1.6.0 1.6.1
filelock 3.32.5 3.32.6
fsspec 2026.6.0 2026.7.0
huggingface-hub 1.30.0 1.31.0
mcp-types 2.1.1 2.2.0
narwhals 2.25.0 2.26.0
pydantic-core 2.46.5 2.49.0
pyjwt 2.13.0 2.14.0
regex 2026.9.3 2026.9.10
tqdm 4.70.0 4.70.1
transformers 5.16.1 5.17.0
multidict 6.7.1 6.8.0

Updates mcp from 2.1.1 to 2.2.0

Release notes

Sourced from mcp's releases.

v2.2.0

pip install -U mcp. Docs: https://py.sdk.modelcontextprotocol.io/

A few defaults changed in this release. If you run a server or client on 2.x, skim these first:

Behaviour changes

HTTP client redirects are only followed within the endpoint's origin (#3397)

  • Client("https://..."), streamable_http_client and sse_client follow a redirect only if it stays on the same scheme, host and port (or upgrades http to https on the same host).
  • A redirect anywhere else is not followed: the call fails with MCPError and the session stays usable (an SSE connect fails with httpx2.HTTPStatusError). If that other URL is the server you meant, use it as the endpoint URL.
  • The follow_redirects setting on an httpx2.AsyncClient you pass in is no longer used for MCP requests, so you don't need it for the trailing-slash redirect any more.
  • The OAuth providers apply the same rule to their own requests.

Idle Streamable HTTP sessions now expire (legacy <=2025-11-25 spec( (#3395)

  • 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. Neither are stateless servers or 2026-07-28 connections.
  • A server also holds at most 10 000 sessions at once; beyond that, new sessions get a 503.
  • To turn either off: mcp.run(transport="streamable-http", session_idle_timeout=None, max_sessions=None) (also on streamable_http_app() and run_streamable_http_async()).

The OAuth client checks the authorization server's issuer on the legacy path too (#3398)

  • For servers without protected resource metadata, authorization server metadata whose issuer isn't the server's own origin is now rejected with OAuthFlowError: Authorization server metadata issuer mismatch. The protected-resource-metadata path has done this since 2.0.
  • A 403 that isn't an insufficient_scope challenge is returned to the caller instead of retried.
  • 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 MCPDeprecationWarnings (#3435, #3447)

  • ClientCredentialsOAuthProvider / PrivateKeyJWTOAuthProvider without issuer=. Pass your authorization server's issuer URL; 3.0 will require it.
  • AuthSettings with resource_server_url set but validate_token_resource unset. Set it to True or False; 3.0 defaults it to True.
  • Both keep working as before in 2.x; this mostly matters if your tests turn warnings into errors.

New

  • AuthSettings.validate_token_resource: only accept tokens your TokenVerifier reports as issued for this server (#3447).
  • issuer= on ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider (#3398).
  • session_idle_timeout= and max_sessions= on the Streamable HTTP server entry points (#3395).

Fixes

  • A client DELETE frees its session immediately, and a refused opening request no longer leaves a session behind (#2455, #3228, #3300).
  • $refs in a tool's outputSchema resolve within that schema only; an unresolvable one surfaces as RuntimeError: Invalid schema for tool ... (#3394).

Known gaps

The tasks extension (SEP-2663), DPoP (SEP-1932) and the jwt-bearer grant are not implemented yet; https://github.com/modelcontextprotocol/python-sdk/blob/main/ROADMAP.md tracks them.

What's Changed

... (truncated)

Commits
  • 9972c21 Replace RootModel wrappers with type aliases and TypeAdapter validation (#3470)
  • fd66270 docs: refresh translations, and translate pages in parallel (#3458)
  • 08a3bc8 docs: ask for AI disclosure on comments too (#3459)
  • 7bb486a docs: stop presenting the in-memory client as the way to connect (#3443)
  • 0c91368 Add AuthSettings.validate_token_resource to check a bearer token's resource (...
  • 9771e6b Keep following a relative redirect when the endpoint URL carries userinfo (#3...
  • a925e55 Bump the locked versions of eight dev and test dependencies (#3449)
  • e8b9486 Bump pymdown-extensions from 11.0 to 11.0.1 (#3285)
  • c6762e8 Follow redirects only within the MCP endpoint's origin (#3397)
  • 5fd3abc Skip automatic docs previews for fork PRs and drop the setup-uv retry steps (...
  • Additional commits viewable in compare view

Updates tree-sitter-language-pack from 1.16.1 to 1.18.0

Release notes

Sourced from tree-sitter-language-pack's releases.

v1.18.0

Changed

  • Refreshed 22 grammar pins to their upstream latest: al, blade, cfml, dotenv, gitcommit, javadoc, kcl, kdl, lean, magik, mlir, nix, ocaml, ocaml_interface, perl, proto, sas, sql, swift, sysml and t32. abl is no longer held back: upstream now defines the outer_join node its highlights.scm references, so it compiles for the first time since the hold was taken. cuda is now the one deliberate hold -- upstream's committed parser.c grew past the regeneration threshold, so a bump would ship it as-is at ABI 15 and drop the injections and tags queries the grammar only receives while being regenerated.
  • Re-derived the ocaml_interface highlights overlay from upstream's reworked query. tree-sitter-ocaml declares one shared queries/highlights.scm for all three of its grammars, but that query matches (shebang), which only the implementation grammar defines; the overlay is upstream's file with that alternative removed, and it had drifted behind their block-access rework.
  • Regenerated bindings, fixtures, documentation and release workflows with Alef 0.85.15. C# contains assertions now compare a JSON-serialized value instead of Convert.ToString, which reported a type name rather than content for tagged unions such as StructureKind. The PHP e2e runner exports the verified extension path so processes it spawns under -n load the same build.
  • Upgraded rmcp to 3.3.
  • Retained tree-sitter 0.26 and the tree-sitter-language 0.1.7 pin. tree-sitter 0.27 requires tree-sitter-language 0.1.8 and removed its Package.swift, so SwiftTreeSitter cannot follow it; the upgrade also changes this crate's public API, since Language is re-exported. (#189)

Fixed

  • Publish every native NuGet runtime package required by the managed package's runtime graph.
  • Upload Dart native archives and checksums required by the generated package downloader.
  • Publish Go installer archive aliases and their required SHA256 sidecars.
  • Recorded the node e2e harness's tree-sitter floor in alef.toml and realigned test_apps/node's lockfile with its regenerated manifest, which disagreed and broke pnpm install --frozen-lockfile. Realigned the generated Go e2e module pin, which the version sync leaves behind.

v1.17.0

Changed

  • Retain tree-sitter 0.26 and the current grammar revisions. The attempted 0.27 upgrade is deferred because SwiftTreeSitter 0.25 requires the 0.25 C runtime, which conflicts with the newer runtime in our published static Swift library. Pin the WASM shim dependency tree-sitter-language to 0.1.7 because 0.1.8 rejects the retained runtime. (#189)
  • Regenerate bindings, fixtures, documentation, and release workflows with Alef 0.85.11; upgrade Rust dependencies, including dirs 7 and zstd 0.14.

Added

  • Restore the Rust extension_ambiguity() API and its serde-gated JSON companion to expose the

... (truncated)

Changelog

Sourced from tree-sitter-language-pack's changelog.

[1.18.0] - 2026-09-11

Changed

  • Refreshed 22 grammar pins to their upstream latest: al, blade, cfml, dotenv, gitcommit, javadoc, kcl, kdl, lean, magik, mlir, nix, ocaml, ocaml_interface, perl, proto, sas, sql, swift, sysml and t32. abl is no longer held back: upstream now defines the outer_join node its highlights.scm references, so it compiles for the first time since the hold was taken. cuda is now the one deliberate hold -- upstream's committed parser.c grew past the regeneration threshold, so a bump would ship it as-is at ABI 15 and drop the injections and tags queries the grammar only receives while being regenerated.
  • Re-derived the ocaml_interface highlights overlay from upstream's reworked query. tree-sitter-ocaml declares one shared queries/highlights.scm for all three of its grammars, but that query matches (shebang), which only the implementation grammar defines; the overlay is upstream's file with that alternative removed, and it had drifted behind their block-access rework.
  • Regenerated bindings, fixtures, documentation and release workflows with Alef 0.85.15. C# contains assertions now compare a JSON-serialized value instead of Convert.ToString, which reported a type name rather than content for tagged unions such as StructureKind. The PHP e2e runner exports the verified extension path so processes it spawns under -n load the same build.
  • Upgraded rmcp to 3.3.
  • Retained tree-sitter 0.26 and the tree-sitter-language 0.1.7 pin. tree-sitter 0.27 requires tree-sitter-language 0.1.8 and removed its Package.swift, so SwiftTreeSitter cannot follow it; the upgrade also changes this crate's public API, since Language is re-exported. (#189)

Fixed

  • Publish every native NuGet runtime package required by the managed package's runtime graph.
  • Upload Dart native archives and checksums required by the generated package downloader.
  • Publish Go installer archive aliases and their required SHA256 sidecars.
  • Recorded the node e2e harness's tree-sitter floor in alef.toml and realigned test_apps/node's lockfile with its regenerated manifest, which disagreed and broke pnpm install --frozen-lockfile. Realigned the generated Go e2e module pin, which the version sync leaves behind.

[1.17.0] - 2026-09-09

Changed

  • Retain tree-sitter 0.26 and the current grammar revisions. The attempted 0.27 upgrade is deferred because SwiftTreeSitter 0.25 requires the 0.25 C runtime, which conflicts with the newer runtime in our published static Swift library. Pin the WASM shim dependency tree-sitter-language to 0.1.7 because 0.1.8 rejects the retained runtime. (#189)
  • Regenerate bindings, fixtures, documentation, and release workflows with Alef 0.85.11; upgrade Rust dependencies, including dirs 7 and zstd 0.14.

Added

... (truncated)

Commits
  • 52d94d9 chore(swift): update Package.swift with checksum for v1.18.0
  • 5840fdb chore(release): refresh the workspace lockfile for 1.18.0
  • dde5fc1 chore: retire the 1.17.0 PHP recovery scaffolding
  • 71d000d chore(release): prepare 1.18.0
  • b102120 chore(alef): regenerate with alef 0.85.15
  • 88a2f39 chore(grammars): refresh 22 grammar pins
  • 64cecb4 chore(deps): upgrade rmcp to 3.3
  • 17fae14 feat(intel): SQL, Justfile, Dockerfile, C, Cedar, dotenv and plist declaratio...
  • cd3c2a7 build(node): migrate to pnpm 12 and refresh in-range dependencies
  • 3dc108b fix(release): recover Intel macOS PHP packages
  • Additional commits viewable in compare view

Updates ruff from 0.16.6 to 0.16.7

Release notes

Sourced from ruff's releases.

0.16.7

Release Notes

Released on 2026-09-10.

Preview features

  • [ruff] Add rule for default values on method receivers (RUF077) (#26700)
  • [ruff] Recognize re.prefixmatch (RUF039, RUF055) (#28311)

Bug fixes

  • Alternate nested quotes inside format spec interpolations (#28259)
  • [flake8-implicit-str-concat] Mark fix unsafe when it creates a docstring (ISC003) (#27981)
  • [flake8-tidy-imports] Skip fixes for multi-member imports (TID254) (#26584)
  • [pylint] Gate ImportCycleError on Python 3.15 (PLW0133) (#28310)

Rule changes

  • Correct D211 and D203 rule conflict diagnostic (#28444)
  • Recognize slice and frozendict generics (#28477)
  • Stop defining __cached__ for Python 3.15 (#28476)
  • [pyupgrade] Stop recommending removed typing.no_type_check_decorator (UP035) (#28475)

Performance

  • Reuse parser name lookups when interning (#28399)
  • Speed up inherited configuration resolution (#28299)

Documentation

  • Fix line-length path in --config example (#28392)
  • Remove the "Who’s Using Ruff?" list (#28455)

Other changes

  • Embed archive checksums in the shell installer (#28281)

Contributors

... (truncated)

Changelog

Sourced from ruff's changelog.

0.16.7

Released on 2026-09-10.

Preview features

  • [ruff] Add rule for default values on method receivers (RUF077) (#26700)
  • [ruff] Recognize re.prefixmatch (RUF039, RUF055) (#28311)

Bug fixes

  • Alternate nested quotes inside format spec interpolations (#28259)
  • [flake8-implicit-str-concat] Mark fix unsafe when it creates a docstring (ISC003) (#27981)
  • [flake8-tidy-imports] Skip fixes for multi-member imports (TID254) (#26584)
  • [pylint] Gate ImportCycleError on Python 3.15 (PLW0133) (#28310)

Rule changes

  • Correct D211 and D203 rule conflict diagnostic (#28444)
  • Recognize slice and frozendict generics (#28477)
  • Stop defining __cached__ for Python 3.15 (#28476)
  • [pyupgrade] Stop recommending removed typing.no_type_check_decorator (UP035) (#28475)

Performance

  • Reuse parser name lookups when interning (#28399)
  • Speed up inherited configuration resolution (#28299)

Documentation

  • Fix line-length path in --config example (#28392)
  • Remove the "Who’s Using Ruff?" list (#28455)

Other changes

  • Embed archive checksums in the shell installer (#28281)

Contributors

... (truncated)

Commits

Updates pyright from 1.1.411 to 1.1.414

Commits

Updates build from 1.6.0 to 1.6.1

Release notes

Sourced from build's releases.

1.6.1

What's Changed

Full Changelog: pypa/build@1.6.0...1.6.1

Changelog

Sourced from build's changelog.

#################### 1.6.1 (2026-09-10) ####################


Bugfixes


  • Avoid trying to detect symlinks on Windows, regression in 1.6.0 - by :user:henryiii (:issue:1175) (:issue:1175)

Documentation


  • Fix doubled backslashes in the Windows pip config path (%APPDATA%\pip\pip.ini) in the docs - by :user:aroh3006 (:issue:1149)

Miscellaneous


  • :issue:1168, :issue:1170, :issue:1178

#################### 1.6.0 (2026-08-27) ####################


Features


  • Add --report=PATH to write a machine-readable JSON report of built artifacts; --metadata now also accepts .whl files - by :user:gaborbernat (:issue:198)
  • The srcdir argument now accepts .tar.gz source distributions, extracting and building from them - by :user:gaborbernat (:issue:311)
  • The "Unmet dependencies" error from --no-isolation builds now shows the wanted version, found version, and interpreter - by :user:gaborbernat (:issue:504)
  • Add --sdist-extract-dir to extract the intermediate sdist into a persistent directory, enabling compiler cache reuse across rebuilds - by :user:gaborbernat (:issue:614)
  • Add --env-dir to place the isolated build environment at a fixed path, enabling compiler cache reuse across builds
    • by :user:gaborbernat (:issue:655)
  • Print a summary of resolved dependency versions (name==version) after installing them in isolated builds - by :user:gaborbernat (:issue:959)
  • On build failure, print a tip pointing to --env-dir and --sdist-extract-dir for debugging and link to the "Debug a failed build" how-to - reported by :user:dimpase, implemented by :user:gaborbernat (:issue:966)

Bugfixes


... (truncated)

Commits
  • 89cccef chore: prepare for 1.6.1
  • a6f707a ci: support releases from v* branches (#1178)
  • 7785161 docs: fix doubled backslashes in Windows pip config path (#1149)
  • 244b250 fix: always use copies for the isolated venv on Windows (#1176)
  • c93ca6f build(deps): bump re-actors/alls-green from 1.2.2 to 1.3.0 in the github-acti...
  • e02ffd3 pre-commit: bump repositories (#1173)
  • aad39a8 docs: fix changelog page heading levels and sidebar (#1171)
  • 5c3fd46 docs: use PyPI ref directly (#1172)
  • 1c5bd6c 🐛 fix(release): format generated changelog (#1170)
  • 7f0cc7e 🔧 build(type): replace mypy with pyrefly (#1168)
  • See full diff in compare view

Updates filelock from 3.32.5 to 3.32.6

Release notes

Sourced from filelock's releases.

3.32.6

What's Changed

New Contributors

Full Changelog: tox-dev/filelock@3.32.5...3.32.6

Changelog

Sourced from filelock's changelog.

########### Changelog ###########

.. towncrier-draft-entries:: Unreleased

.. towncrier release notes start


3.32.6 (2026-09-08)


  • SoftFileLease and AsyncSoftFileLease now reject a boolean or non-finite lease_duration, which used to publish an owner record their own owner property reads back as malformed. :pr:723
  • Reject non-finite heartbeat, stale, and polling intervals in SoftReadWriteLock and AsyncSoftReadWriteLock, including cached singleton construction and overflow in the default stale threshold. :pr:724
  • Honor acquisition timeouts and blocking=False during SoftReadWriteLock state-mutex contention, including failed writer cleanup. Cross-host recovery of an abandoned .state marker remains unsupported. :pr:726
  • Allow acquiring existing lock files that grant write access through group permissions or an ACL even when their owner-write mode bit is unset. :pr:728
  • Preserve exception notes and custom attributes when copying or pickling Timeout and SoftFileLockProtocolError. :pr:729

3.32.5 (2026-08-31)


  • SoftFileLease.token and AsyncSoftFileLease.token now read None after a failed acquisition, so a contender turned away by a live holder no longer reports a token for a claim it never published. :pr:721
  • Document that mode has no setter: unlike poll_interval, timeout, blocking and lifetime, it is fixed at construction and lock.mode = ... raises AttributeError. :pr:716

3.32.4 (2026-08-23)


  • StrictSoftFileLock always retries a claim read whose first attempt reports the claim as pending, so a first read that itself outlasts the retry grace no longer fails closed on a claim it could have read. :pr:705
  • WindowsFileLock waits out a transient STATUS_ACCESS_DENIED from NtCreateFile for up to half a second before raising PermissionError, since a peer unlinking the lock file as it releases can answer that for a moment; a real denial still fails fast. :pr:705
  • Every lock class now escapes the hostname it publishes, so a host whose socket.gethostname() carries a space, a newline or a byte outside UTF-8 no longer writes a marker it reads back as malformed. Such a host used to lose a held SoftReadWriteLock read slot to a peer and could not take a write slot or a StrictSoftFileLock at all. :pr:709

3.32.3 (2026-08-13)


  • The fork-safety audit hook no longer prints Exception ignored in audit hook with a TypeError when an audit event fires during interpreter shutdown, after CPython has already cleared the module globals. :pr:701

... (truncated)

Commits
  • 4efd93e Release 3.32.6
  • 7b7b7a8 Fix SoftReadWriteLock state lock timeout (#726)
  • f2f7b86 fix: respect ACL write access when the owner write bit is absent (#728)
  • e947a69 test(soft-rw): reuse existing test module (#730)
  • da3ae2b fix: preserve exception notes when copying and pickling (#729)
  • ae9cb5b 🐛 fix(soft-rw): reject non-finite timing options (#724)
  • d00f9bb [pre-commit.ci] pre-commit autoupdate (#727)
  • 82f66d7 🐛 fix(lease): reject a duration no marker can carry (#723)
  • 1d9e9e7 [pre-commit.ci] pre-commit autoupdate (#722)
  • See full diff in compare view

Updates fsspec from 2026.6.0 to 2026.7.0

Commits

Updates huggingface-hub from 1.30.0 to 1.31.0

Release notes

Sourced from huggingface-hub's releases.

[v1.31.0] Custom labels for Sandboxes, More resilient downloads and more

🏷️ Custom labels for Sandboxes

Dedicated sandboxes now accept custom labels, attached to the underlying Job. This is useful for cost attribution, bookkeeping, or finding and reconnecting to the sandboxes created by a given controller run. Labels use the same -l / --label KEY=VALUE syntax as hf jobs run. They are merged with the labels the SDK uses internally, and invalid or reserved labels are rejected before a billable Job is started. Pool-based sandboxes are unchanged: custom labels are only accepted for dedicated sandboxes.

>>> from huggingface_hub import Sandbox
>>> sandbox = Sandbox.create(image="python:3.12", labels={"controller-run": "run-42"})
hf sandbox create --label controller-run=run-42 --label team=data-infra

📥 More resilient downloads

A batch of fixes makes downloads more robust to unusual server responses, network hiccups and concurrent usage:

  • A timeout while waiting for the response headers of a streamed download is now retried and resumed like a body read failure, instead of escaping http_get() while retries remain.

  • Regular HTTP downloads no longer fail when the HEAD response has no Content-Length. The file size is validated against the GET response when available.

  • snapshot_download now writes the refs/ cache file atomically, reusing the logic already used by hf_hub_download. This fixes a long-standing race when many concurrent snapshot_download calls target the same repo (seen in vLLM / llm-compressor).

  • hf download --dry-run --local-dir ... no longer copies files from the Hub cache into the destination. On large files and slow disks this looked like a hang and could leave an incomplete file behind.

  • [Download] Share retry handling for stream entry and body failures by @​Wauplin in #4826

  • [Download] Tolerate missing HEAD Content-Length by @​Wauplin in #4805

  • [Download] Write cache ref file atomically in snapshot_download by @​Wauplin in #4829

  • [Download] Prevent cached file copies during local-dir dry runs by @​wakamex in #4817

🔌 httpx re-exported for library integrators

huggingface_hub now re-exports the HTTP library it uses as huggingface_hub.utils.httpx. Libraries built on top of huggingface_hub that need httpx types or exceptions (typically to catch errors) should import it from there rather than importing httpx directly. v1.x is built on httpx, and v2.x will move to its successor httpx2, so importing through huggingface_hub.utils keeps your code compatible with both. This is only for types and exceptions: to make requests to the Hub, keep using get_session().

from huggingface_hub.utils import httpx
try:
...
except httpx.HTTPError:
...

📚 Documentation: Utilities — The httpx module

  • [httpx migration] Expose httpx as a huggingface_hub submodule by @​Wauplin in #4803

🔒 Security

HfFileSystem.get() now validates remote filenames before writing anything locally. A server-side filename such as folder/..\..\outside.txt could previously escape the destination directory on Windows during a recursive download. The same check already protected hf_hub_download, snapshot_download and bucket sync. Unsafe filenames now raise ValueError on all platforms, including when downloading to an explicitly named file or a file object.

... (truncated)

Commits
  • 495b17c Release: v1.31.0
  • 0f50db0 Release: v1.31.0.rc1
  • d592df8 Revert "[Jobs] Add network groups to hf jobs run (#4833)"
  • 3c08b69 Release: v1.31.0.rc0
  • f148666 [CLI] Fix truncated command descriptions in the CLI reference (#4849)
  • c4f076c (LFS)Fix SliceFileObj.iter yielding only the first 4MB chunk (#4844)
  • 22fe960 Fix dotenv parser truncating unquoted values containing '#' (#4842)
  • 6cae778 [Jobs] Add network groups to hf jobs run (#4833)
  • 063b37b [CLI] Raise explicit error for shell-script extensions on Windows (#4846)
  • b9c14d9 [Download] Write cache ref file atomically in snapshot_download (#4829)
  • Additional commits viewable in compare view

Updates mcp-types from 2.1.1 to 2.2.0

Release notes

Sourced from mcp-types's releases.

v2.2.0

pip install -U mcp. Docs: https://py.sdk.modelcontextprotocol.io/

A few defaults changed in this release. If you run a server or client on 2.x, skim these first:

Behaviour changes

HTTP client redirects are only followed within the endpoint's origin (#3397)

  • Client("https://..."), streamable_http_client and sse_client follow a redirect only if it stays on the same scheme, host and port (or upgrades http to https on the same host).
  • A redirect anywhere else is not followed: the call fails with MCPError and the session stays usable (an SSE connect fails with httpx2.HTTPStatusError). If that other URL is the server you meant, use it as the endpoint URL.
  • The follow_redirects setting on an httpx2.AsyncClient you pass in is no longer used for MCP requests, so you don't need it for the trailing-slash redirect any more.
  • The OAuth providers apply the same rule to their own requests.

Idle Streamable HTTP sessions now expire (legacy <=2025-11-25 spec( (#3395)

  • 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. Neither are stateless servers or 2026-07-28 connections.
  • A server also holds at most 10 000 sessions at once; beyond that, new sessions get a 503.
  • To turn either off: mcp.run(transport="streamable-http", session_idle_timeout=None, max_sessions=None) (also on streamable_http_app() and run_streamable_http_async()).

The OAuth client checks the authorization server's issuer on the legacy path too (#3398)

  • For servers without protected resource metadata, authorization server metadata whose issuer isn't the server's own origin is now rejected with OAuthFlowError: Authorization server metadata issuer mismatch. The protected-resource-metadata path has done this since 2.0.
  • A 403 that isn't an insufficient_scope challenge is returned to the caller instead of retried.
  • 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 MCPDeprecationWarnings (#3435, #3447)

  • ClientCredentialsOAuthProvider / PrivateKeyJWTOAuthProvider without issuer=. Pass your authorization server's issuer URL; 3.0 will require it.
  • AuthSettings with resource_server_url set but validate_token_resource unset. Set it to True or False; 3.0 defaults it to True.
  • Both keep working as before in 2.x; this mostly matters if your tests turn warnings into errors.

New

  • AuthSettings.validate_token_resource: only accept tokens your TokenVerifier reports as issued for this server (#3447).
  • issuer= on ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider (#3398).
  • session_idle_timeout= and max_sessions= on the Streamable HTTP server entry points (#3395).

Fixes

  • A client DELETE frees its session immediately, and a refused opening request no longer leaves a session behind (#2455, #3228, #3300).
  • $refs in a tool's outputSchema resolve within that schema only; an unresolvable one surfaces as RuntimeError: Invalid schema for tool ... (#3394).

Known gaps

The tasks extension (SEP-2663), DPoP (SEP-1932) and the jwt-bearer grant are not implemented yet; https://github.com/modelcontextprotocol/python-sdk/blob/main/ROADMAP.md tracks them.

What's Changed

... (truncated)

Commits
  • 9972c21 Replace RootModel wrappers with type aliases and TypeAdapter validation (

Bumps the minor-and-patch group with 16 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `2.1.1` | `2.2.0` |
| [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack) | `1.16.1` | `1.18.0` |
| [ruff](https://github.com/astral-sh/ruff) | `0.16.6` | `0.16.7` |
| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.411` | `1.1.414` |
| [build](https://github.com/pypa/build) | `1.6.0` | `1.6.1` |
| [filelock](https://github.com/tox-dev/py-filelock) | `3.32.5` | `3.32.6` |
| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.6.0` | `2026.7.0` |
| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.30.0` | `1.31.0` |
| [mcp-types](https://github.com/modelcontextprotocol/python-sdk) | `2.1.1` | `2.2.0` |
| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.25.0` | `2.26.0` |
| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.5` | `2.49.0` |
| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.14.0` |
| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.9.3` | `2026.9.10` |
| [tqdm](https://github.com/tqdm/tqdm) | `4.70.0` | `4.70.1` |
| [transformers](https://github.com/huggingface/transformers) | `5.16.1` | `5.17.0` |
| [multidict](https://github.com/aio-libs/multidict) | `6.7.1` | `6.8.0` |



Updates `mcp` from 2.1.1 to 2.2.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](modelcontextprotocol/python-sdk@v2.1.1...v2.2.0)

Updates `tree-sitter-language-pack` from 1.16.1 to 1.18.0
- [Release notes](https://github.com/xberg-io/tree-sitter-language-pack/releases)
- [Changelog](https://github.com/xberg-io/tree-sitter-language-pack/blob/main/CHANGELOG.md)
- [Commits](xberg-io/tree-sitter-language-pack@v1.16.1...v1.18.0)

Updates `ruff` from 0.16.6 to 0.16.7
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.16.6...0.16.7)

Updates `pyright` from 1.1.411 to 1.1.414
- [Release notes](https://github.com/RobertCraigie/pyright-python/releases)
- [Commits](RobertCraigie/pyright-python@v1.1.411...v1.1.414)

Updates `build` from 1.6.0 to 1.6.1
- [Release notes](https://github.com/pypa/build/releases)
- [Changelog](https://github.com/pypa/build/blob/main/CHANGELOG.rst)
- [Commits](pypa/build@1.6.0...1.6.1)

Updates `filelock` from 3.32.5 to 3.32.6
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst)
- [Commits](tox-dev/filelock@3.32.5...3.32.6)

Updates `fsspec` from 2026.6.0 to 2026.7.0
- [Commits](fsspec/filesystem_spec@2026.6.0...2026.7.0)

Updates `huggingface-hub` from 1.30.0 to 1.31.0
- [Release notes](https://github.com/huggingface/huggingface_hub/releases)
- [Commits](huggingface/huggingface_hub@v1.30.0...v1.31.0)

Updates `mcp-types` from 2.1.1 to 2.2.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](modelcontextprotocol/python-sdk@v2.1.1...v2.2.0)

Updates `narwhals` from 2.25.0 to 2.26.0
- [Release notes](https://github.com/narwhals-dev/narwhals/releases)
- [Commits](narwhals-dev/narwhals@v2.25.0...v2.26.0)

Updates `pydantic-core` from 2.46.5 to 2.49.0
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/commits)

Updates `pyjwt` from 2.13.0 to 2.14.0
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](jpadilla/pyjwt@2.13.0...2.14.0)

Updates `regex` from 2026.9.3 to 2026.9.10
- [Changelog](https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt)
- [Commits](mrabarnett/mrab-regex@2026.9.3...2026.9.10)

Updates `tqdm` from 4.70.0 to 4.70.1
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](tqdm/tqdm@v4.70.0...v4.70.1)

Updates `transformers` from 5.16.1 to 5.17.0
- [Release notes](https://github.com/huggingface/transformers/releases)
- [Commits](huggingface/transformers@v5.16.1...v5.17.0)

Updates `multidict` from 6.7.1 to 6.8.0
- [Release notes](https://github.com/aio-libs/multidict/releases)
- [Changelog](https://github.com/aio-libs/multidict/blob/master/CHANGES.rst)
- [Commits](aio-libs/multidict@v6.7.1...v6.8.0)

---
updated-dependencies:
- dependency-name: mcp
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: tree-sitter-language-pack
  dependency-version: 1.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: ruff
  dependency-version: 0.16.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: pyright
  dependency-version: 1.1.414
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: build
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: filelock
  dependency-version: 3.32.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: fsspec
  dependency-version: 2026.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: huggingface-hub
  dependency-version: 1.31.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: mcp-types
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: narwhals
  dependency-version: 2.26.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: pydantic-core
  dependency-version: 2.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: pyjwt
  dependency-version: 2.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: regex
  dependency-version: 2026.9.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: tqdm
  dependency-version: 4.70.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: transformers
  dependency-version: 5.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: multidict
  dependency-version: 6.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Sep 15, 2026
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.

0 participants