The Model Context Protocol (MCP) Python SDK has released version 2.1.0, introducing support for multimodal content and simplifying client configuration. Key updates include the ability to pass `StdioServerParameters` directly to the `Client` constructor and accept `Image` and `Audio` in prompt messages.

  • Prompt messages now accept `Image` and `Audio`, and prompt functions may return bare content blocks.
  • The `Client` class accepts `StdioServerParameters` directly, allowing instantiation like `Client(StdioServerParameters(command="uv", args=["run", "server.py"]))`.
  • The 4 MiB request body limit is now enforced on SSE transport and OAuth endpoints via `max_request_body_size`.
  • Handler exceptions are logged at ERROR with tracebacks, while clients see generic error messages; raising `ToolError` or `ResourceError` preserves details for the model.
  • Tool return annotations for content blocks no longer advertise `outputSchema` or return `structuredContent` by default; `structured_output=True` restores previous behavior.
  • TypedDict tool results omit `NotRequired` keys instead of serializing them as `null`, fixing registration failures on Python 3.10.

These changes improve security by limiting request sizes across transports, enhance developer experience with simpler client setup, and ensure better compatibility with pre-2026 MCP sessions.