Skip to content

fix(deps): update llm sdks (major) - #957

Open
renovate[bot] wants to merge 1 commit into
devfrom
renovate/major-llm-sdks
Open

fix(deps): update llm sdks (major)#957
renovate[bot] wants to merge 1 commit into
devfrom
renovate/major-llm-sdks

Conversation

@renovate

@renovate renovate Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
anthropic >=0.117,<1>=1.4,<2 age confidence
mcp >=1.27,<2>=2.2,<3 age confidence

Release Notes

anthropics/anthropic-sdk-python (anthropic)

v1.4.0

Compare Source

Full Changelog: v1.3.0...v1.4.0

Features
  • api: add Claude Tag category and user breakdowns to usage reports (9fce1e4)
  • api: add named types for organization compliance settings state (1de1957)
  • api: add support for sending a workspace ID on more endpoints (d1d2c01)
Bug Fixes
  • client: raise a clear error when an httpx object is passed instead of an httpx2 one (9447099)
  • repair custom-code merge in messages resources (#​580) (85454ca)
Chores
  • examples: refresh platform model IDs (#​499) (182abb5)
  • internal: bundle the mock server spec and update dev tooling (f9b0cf2)
  • internal: clean up code comments (#​578) (d202327)
  • internal: fix mypy unreachable error in detect-breaking-changes script (07834f6)
  • internal: narrower codeowners scope (daca8f1)
  • internal: revert codeowners change (41aa767)
  • tests: remove stale warning filters (ba9bf35)
  • tests: reword the skip reason on the path-level query param tests (6b5046a)
Documentation
  • api: update a few doc strings (26c509d)

v1.3.0

Compare Source

Full Changelog: v1.3.0...v1.4.0

Features
  • api: add Claude Tag category and user breakdowns to usage reports (9fce1e4)
  • api: add named types for organization compliance settings state (1de1957)
  • api: add support for sending a workspace ID on more endpoints (d1d2c01)
Bug Fixes
  • client: raise a clear error when an httpx object is passed instead of an httpx2 one (9447099)
  • repair custom-code merge in messages resources (#​580) (85454ca)
Chores
  • examples: refresh platform model IDs (#​499) (182abb5)
  • internal: bundle the mock server spec and update dev tooling (f9b0cf2)
  • internal: clean up code comments (#​578) (d202327)
  • internal: fix mypy unreachable error in detect-breaking-changes script (07834f6)
  • internal: narrower codeowners scope (daca8f1)
  • internal: revert codeowners change (41aa767)
  • tests: remove stale warning filters (ba9bf35)
  • tests: reword the skip reason on the path-level query param tests (6b5046a)
Documentation
  • api: update a few doc strings (26c509d)

v1.2.0

Compare Source

Full Changelog: v1.2.0...v1.3.0

Features
  • api: beta user profiles: add external_user_onboarded_at, remove relationship in favor of access_type (74080c3)
  • api: manual updates (1dc3ce0)
  • api: organization compliance settings, user-profile order_by, memory-store and toolset schema updates (429e719)
Bug Fixes
  • aws: resolve base_url from aws_region under skip_auth and with_options (#​564) (b6d1732)
  • batches: add results to GA raw/streaming response wrappers (cbf9715)
  • ci: don't hard-wrap detect-breaking-changes output (b5be779)
  • client: derive multipart filename for file tuples passed without one (a9f3fb4)
  • types: remove unused wire aliases from header and path params (dc0a9ab)
Chores
  • internal: drop the unused discriminator argument from PropertyInfo (3dae6fd)
  • internal: drop the unused distro dependency (a47d85f)
Documentation
  • changelog: detail the beta files/skills GA-shape change (#​1900) (7c84e13)
Refactors
  • types: mark discriminated unions with UnionDiscriminator instead of PropertyInfo (17df0bf)
  • types: use UnionDiscriminator for more discriminated unions (b44af2c)

v1.1.0

Compare Source

Full Changelog: v1.1.0...v1.2.0

Features
  • api: beta files/skills namespaces use GA shapes; drop dated beta header pins (9df4565)
Bug Fixes
  • aws,bedrock: sign raw request bytes so binary file uploads work (#​531) (f50e910)
  • ci: resolve assignment aliases in detect-breaking-changes (f2c4925)
  • sessions: make event accumulator forward-compatible with new event types (#​533) (cbbaf6e)
  • tools: let read return a view_range of a file over the size cap (#​538) (b68e876)
  • tools: preserve exact file bytes in the agent toolset and memory tool (no newline translation) (#​540) (56921a8)
  • webhooks: require headers to be passed to unwrap() (0baa902)
Documentation
  • api: clarify pagination on the organization rate-limit list endpoints (1832b27)

v1.0.0

Compare Source

Full Changelog: v0.125.0...v1.0.0

⚠ BREAKING CHANGES
  • client: upgrade to httpx2 and some minor breaking changes. See MIGRATION.md for details
Features
  • client: upgrade to httpx2 and some minor breaking changes. See MIGRATION.md for details (33e2967)
Bug Fixes
  • beta: stop warning about output_format= on the parse/stream/tool_runner helpers (59bf261)
Chores
  • streaming: restore the original event imports in lib/streaming/_types.py (87e9e01)
Documentation
  • examples: use adaptive thinking in thinking examples (b5870af)
modelcontextprotocol/python-sdk (mcp)

v2.2.0

Compare Source

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

Full Changelog: modelcontextprotocol/python-sdk@v2.1.1...v2.2.0

v2.1.1

Compare Source

What's Changed

Full Changelog: modelcontextprotocol/python-sdk@v2.1.0...v2.1.1

v2.1.0

Compare Source

Highlights

  • Client accepts StdioServerParameters directly: Client(StdioServerParameters(command="uv", args=["run", "server.py"])) (#​3321).
  • Prompt messages accept Image and Audio, prompt functions may return bare content blocks, and Message / UserMessage / AssistantMessage are exported from mcp.server.mcpserver (#​3320).
  • The 4 MiB request body limit now also covers the SSE transport and the OAuth endpoints; SseServerTransport and MCPServer.sse_app() take max_request_body_size, and the SSE message endpoint answers 405 to non-POST requests (#​3336).

Behaviour changes to be aware of

  • Handler exceptions (#​3314): an unexpected exception from a tool, resource or prompt handler is logged once at ERROR with its traceback, and the client now sees only Error executing tool <name> (or the resource/prompt equivalent) rather than the exception text. Raise ToolError / ResourceError when the message is meant for the model; those still reach the client and are logged at INFO without a traceback.
  • Content-block return annotations (#​3320): a tool annotated to return TextContent, EmbeddedResource, Image, Audio, or lists/unions of them no longer advertises outputSchema or returns structuredContent; its content is unchanged. Pass structured_output=True to keep the previous shape.

Fixes

  • TypedDict tool results: NotRequired keys are omitted instead of serialized as null, and registration no longer fails on Python 3.10 (#​3224, #​3227); recursive return types get an object-rooted outputSchema that pre-2026 clients accept (#​3337).
  • 2026-07-28 over HTTP: a POSTed notification such as notifications/cancelled is acknowledged with 202 instead of rejected with 400 (#​3324).
  • Pre-2026 sessions ignore cache-hint fields from later revisions instead of failing list_tools() (#​3223), and accept boolean sub-schemas in tool schema properties (#​3353).
  • mcp install reads and preserves a Claude Desktop config containing non-ASCII text on any Windows code page (#​3296).

What's Changed

New Contributors

Full Changelog: modelcontextprotocol/python-sdk@v2.0.0...v2.1.0

v2.0.1

Compare Source

One off backport of the FastMCP import warning for 2.0.x, this is due to a lot of people running into this error and making issues on other repos about it. Ideally either pin mcp<2 or upgrade to 2.

What's Changed

Full Changelog: modelcontextprotocol/python-sdk@v2.0.0...v2.0.1

v2.0.0

Compare Source

MCP Python SDK v2 Stable Release

This is v2.0.0, the stable v2 release of the MCP Python SDK. It supports the 2026-07-28 revision of the Model Context Protocol and serves every earlier revision from the same server. pip install mcp now installs 2.x.

pip install "mcp[cli]"

# or
uv add "mcp[cli]"
Documentation Rewrite

The documentation has the full tutorial and API reference. Coming from v1? What's new in v2 is the tour of what changed and why, and the migration guide lists every breaking change with before-and-after code.

V1 Maintenance mode

v1.x is in maintenance mode and will only receive security fixes from now on The 1.x line lives on the v1.x branch, continues to receive critical bug fixes and security patches, and is documented at https://py.sdk.modelcontextprotocol.io/v1/. If your project is not ready to migrate, keep a <2 upper bound on your requirement (for example mcp>=1.28,<2).

Highlights

One SDK, both protocol eras

v2 speaks the 2026-07-28 revision (stateless requests with no handshake, server/discover, subscriptions/listen, multi-round-trip requests) and still serves every 2025-era client from the same MCPServer, over Streamable HTTP and stdio, with nothing to configure. Client(target) negotiates the version automatically.

FastMCP is now MCPServer, and there is a first-class Client

The decorator API is unchanged; the low-level Server is rebuilt around a shared dispatcher engine, and one Client object replaces v1's transport-plus-ClientSession-plus-initialize() layering. It connects to a URL, a stdio subprocess, a custom transport, or straight to a server object in memory for tests.

Multi-round-trip requests and resolver dependency injection

At 2026-07-28 the server can no longer call the client, so tools return the question instead. A Resolve(fn) parameter is filled by your function invisibly to the model and can put a question to the user; one tool body serves both eras.

Extension APIs, OpenTelemetry, and a standalone types package

Servers and clients compose protocol extensions through pluggable extension APIs (MCP Apps built in); OpenTelemetry tracing ships on by default; every protocol type is its own package, mcp-types (imported as mcp_types), published in lock-step with mcp.

Hardened stdio and auth

stdio servers keep handler subprocesses and stray prints off the wire, and stdout is diverted to stderr while serving. OAuth adds RFC 9207 issuer validation, the SEP-990 identity-assertion flow, and the client-credentials extension.

Coming from a v2 pre-release

Since the last release candidate: the per-version wire packages are private (mcp_types._v*), mcp.types is a permanent alias for mcp_types, the auth registration request model is split from the registered-client record, cancelled requests are no longer answered, and log notifications are gated on the per-request log-level opt-in at 2026-07-28. Since the betas: Client(cache=False) is now cache=None with CacheConfig() the default; Context.client_id, RFC7523OAuthClientProvider, and OAuthClientProvider(timeout=) are removed; the client-credentials providers take scope=; message_handler receives notifications and exceptions only; FileResource(is_binary=) becomes encoding; MCP_* env vars are gone with pydantic-settings; Streamable HTTP servers reject bodies over 4 MiB with HTTP 413. The migration guide covers all of it.

Known gaps

The tasks extension (SEP-2663) is not part of this release. On the client, the DPoP proof binding (SEP-1932) and the workload-identity jwt-bearer grant are not implemented; both are additive and can land in 2.x.

Feedback

Something rough, confusing, or broken? Open an issue or find us in #python-sdk-dev on the MCP Contributors Discord.

Full Changelog: modelcontextprotocol/python-sdk@v2.0.0rc1...v2.0.0


Configuration

📅 Schedule: (in timezone America/New_York)

  • Branch creation
    • "before 9am on Monday"
  • 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.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies label Aug 3, 2026
@eous

eous commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

This is a breaking change and will require code changes to merge.

@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from ace9f21 to 690ccf6 Compare August 3, 2026 18:39
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch 2 times, most recently from 0ad86c5 to 7796d10 Compare August 12, 2026 04:59
@renovate renovate Bot changed the title fix(deps): update dependency mcp to v2 fix(deps): update llm sdks (major) Aug 12, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from 7796d10 to 0a9cd4d Compare August 12, 2026 06:32
@renovate renovate Bot changed the title fix(deps): update llm sdks (major) fix(deps): update dependency mcp to v2 Aug 12, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch 2 times, most recently from b2fe022 to 01f13ca Compare August 16, 2026 02:03
@renovate
renovate Bot changed the base branch from main to dev August 16, 2026 02:04
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch 2 times, most recently from d280107 to edf6eaa Compare August 22, 2026 21:45
@renovate renovate Bot changed the title fix(deps): update dependency mcp to v2 fix(deps): update llm sdks (major) Aug 22, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch 4 times, most recently from 9721924 to 4a11ae0 Compare August 25, 2026 23:03
@renovate renovate Bot changed the title fix(deps): update llm sdks (major) fix(deps): update dependency anthropic to v1 Aug 25, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from 4a11ae0 to dbf842b Compare August 26, 2026 02:32
@renovate renovate Bot changed the title fix(deps): update dependency anthropic to v1 fix(deps): update llm sdks (major) Aug 26, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch 3 times, most recently from cef6369 to d4b1800 Compare September 1, 2026 23:40
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch 4 times, most recently from 7133c26 to 74be44b Compare September 5, 2026 01:20
@renovate renovate Bot changed the title fix(deps): update llm sdks (major) fix(deps): update dependency mcp to v2 Sep 5, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from 74be44b to 28d4777 Compare September 5, 2026 23:25
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from 28d4777 to a97827c Compare September 6, 2026 00:59
@renovate renovate Bot changed the title fix(deps): update dependency mcp to v2 fix(deps): update llm sdks (major) Sep 6, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from a97827c to 2987bf3 Compare September 6, 2026 06:16
@renovate renovate Bot changed the title fix(deps): update llm sdks (major) fix(deps): update dependency mcp to v2 Sep 6, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from 2987bf3 to f029ff8 Compare September 6, 2026 08:34
@renovate renovate Bot changed the title fix(deps): update dependency mcp to v2 fix(deps): update llm sdks (major) Sep 6, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch 3 times, most recently from f96c906 to 7d774d5 Compare September 8, 2026 18:07
@renovate renovate Bot changed the title fix(deps): update llm sdks (major) fix(deps): update dependency anthropic to v1 Sep 8, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from 7d774d5 to 8b60e26 Compare September 8, 2026 21:37
@renovate renovate Bot changed the title fix(deps): update dependency anthropic to v1 fix(deps): update llm sdks (major) Sep 8, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from 8b60e26 to 7f18f3f Compare September 9, 2026 02:52
@renovate renovate Bot changed the title fix(deps): update llm sdks (major) fix(deps): update dependency mcp to v2 Sep 9, 2026
@renovate renovate Bot changed the title fix(deps): update dependency mcp to v2 fix(deps): update llm sdks (major) Sep 9, 2026
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from 7f18f3f to 58a9b91 Compare September 9, 2026 03:37
@renovate
renovate Bot force-pushed the renovate/major-llm-sdks branch from 58a9b91 to a4ef35b Compare September 9, 2026 03:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant