Model Context Protocol (MCP) Python SDK 已发布 2.1.0 版本,引入了对多模态内容的支持并简化了客户端配置。主要更新包括:
- 提示消息现在接受 `Image` 和 `Audio`,且提示函数可以返回裸内容块。
- `Client` 类直接接受 `StdioServerParameters`,允许像 `Client(StdioServerParameters(command="uv", args=["run", "server.py"]))` 这样进行实例化。
- 4 MiB 的请求体限制现在通过 `max_request_body_size` 在 SSE 传输和 OAuth 端点上强制执行。
- 处理程序异常以 ERROR 级别记录堆栈跟踪,而客户端看到通用错误消息;抛出 `ToolError` 或 `ResourceError` 可保留模型的详细信息。
- 内容块的工具返回注解不再默认提供 `outputSchema` 或返回 `structuredContent`;设置 `structured_output=True` 可恢复之前的行为。
- TypedDict 工具结果省略 `NotRequired` 键,而不是将其序列化为 `null`,修复了 Python 3.10 上的注册失败问题。
这些更改通过限制跨传输的请求大小来提高安全性,通过更简单的客户端设置来增强开发者体验,并确保与 2026 年之前的 MCP 会话有更好的兼容性。