MCP (Model Context Protocol) is how the Agent SDK extends beyond its built-in tools. You launch an MCP server (your code, or third-party) and the SDK connects, learns the server's tools, and exposes them to the model. Same protocol Claude Code uses; same protocol Cursor and Windsurf use. Build once, use everywhere.
Three transport options
MCP servers run over stdio (subprocess), SSE (HTTP server-sent events), or HTTP (request/response). stdio is the cheapest and most common — your server is a child process the SDK spawns. SSE and HTTP fit when the server runs separately (containers, remote services).
cwkPippa exposes capabilities through MCP
Pippa's vault, weather data, image generation, and other personal-data capabilities run as MCP servers. The Claude brain (Agent SDK) connects to all of them. The same MCP servers can be wired into Claude Code or Cursor for the same Pippa capabilities in any client.
Principle: Build capabilities as MCP servers and your code outlives any single client. The protocol is the durable surface.
# From a shell: the MCP servers Claude Code has configured, and whether they connect.
claude mcp list
# Inside an interactive Claude Code session:
# /mcp
#
# Programmatically with the SDK, on a connected ClaudeSDKClient:
# status = await client.get_mcp_status()
# for server in status["mcpServers"]:
# print(server["name"], server["status"], [t["name"] for t in server.get("tools", [])])
Identify one capability your agent currently calls inline. Build a small MCP server for it (stdio is fine). Wire it into the Agent SDK options. Verify the model can call it just like a built-in tool.
Hint
If you have an HTTP API you wrote yourself, MCP is a thin wrapper that makes it Claude-callable across clients — usually 50-100 lines of glue code.
Progress
Progress is local-only — sign in to sync across devices.