{"version":"2.1.265","anchor":"sdk-mcp-servers-can-now-hand-over-a-pre-captured-manifest-in","canonical_anchor":"sdk-mcp-servers-can-now-hand-over-a-pre-captured-manifest-in","heading":"SDK-backed MCP servers can skip the handshake with a pre-captured manifest","tier":"soon","area":"MCP","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.265\/e\/sdk-mcp-servers-can-now-hand-over-a-pre-captured-manifest-in","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.265","markdown":"### SDK-backed MCP servers can skip the handshake with a pre-captured manifest\n\nMCP servers built with the SDK can now hand Claude Code a pre-captured manifest instead of doing a live handshake\n\n**What**\n\nThe `initialize` control request now accepts `sdkMcpServerManifests`: a pre-captured \"host manifest\" (an `initializeResult` plus an optional `toolsListResult`) for SDK-backed MCP servers. When present, Claude Code validates it against the required MCP protocol version and replays it instead of performing the usual live control-channel handshake for that server.\n\nIf a manifest is malformed, uses a mismatched protocol version, or contains paginated tool results it can't replay, Claude Code logs and reports this via telemetry (`mcp_sdk_manifest_invalid_initialize`, `_invalid_tools_list`, `_paginated_tools_list`, `_replay_failed`) and falls back to the normal handshake instead of applying the bad manifest.\n\n**Why**\n\nReplaying a known-good manifest avoids the cost and round-trip of a live handshake for SDK MCP servers, while the validation and fallback keep things working correctly if the supplied manifest is bad or incomplete.\n\n- Area: MCP\n- Names: `sdkMcpServerManifests`\n- Tier: Nothing to try yet\n- Useful: 3\/5\n- Signal: 3\/5\n- Present in the build but not switched on"}