Skip to content

Support MCP Python SDK v2 for in-process SDK MCP servers #1150

Description

@RonShub

Summary

claude-agent-sdk==0.2.128 requires mcp>=1.23.0,<2.0.0, so an application that must run the now-stable mcp==2.0.0 server cannot install the Agent SDK in the same environment. Overriding the constraint is not a working workaround: the in-process bridge still targets MCP v1 low-level registration and dispatch APIs.

Minimal reproduction

from claude_agent_sdk import create_sdk_mcp_server, tool

@tool("echo", "Echo text", {"text": str})
async def echo(args):
    return {"content": [{"type": "text", "text": args["text"]}]}

create_sdk_mcp_server(name="demo", tools=[echo])

In a Python 3.13 environment with mcp==2.0.0 and claude-agent-sdk==0.2.128 installed with dependencies overridden, this fails with:

AttributeError: Server object has no attribute list_tools

The next incompatibility is in Query._handle_sdk_mcp_request, which accesses server.request_handlers; MCP v2 exposes constructor handlers and get_request_handler() instead.

Requested direction

Please migrate the in-process SDK MCP bridge to MCP v2 public APIs and then relax the upper bound. A supported solution could construct mcp.server.Server with on_list_tools / on_call_tool, and route through the v2 public handler or client/transport API instead of request_handlers.

This blocks applications that host a standards-current MCP v2 HTTP server and also use Agent SDK in-process tools in the same runtime. A compatibility timeline or recommended supported isolation pattern would also help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions