Neural Mastery
← Practice
MCP Client Handshake & Initializationmedium

MCP Client Handshake & Initialization

mediumAgents & Applications⏱ 15 min
Libraries allowed · Pure Python earns +10 bonus XP
🎯 Mission
Implement the MCP client handshake request generator for session initialization.

Task

Implement `mcp_client_initialize` returning JSON-RPC 2.0 initialize request string.

Function Signature

mcp_client_initialize(client_info: dict, protocol_version: str) -> str

Examples

Example 1: Initialize Payload
Input: {"client_info":{"name":"ClaudeDesktop","version":"1.0"},"protocol_version":"2024-11-05"}
Output: "{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"initialize\", \"params\": {\"protocolVersion\": \"2024-11-05\", \"capabilities\": {\"roots\": {\"listChanged\": true}, \"sampling\": {}}, \"clientInfo\": {\"name\": \"ClaudeDesktop\", \"version\": \"1.0\"}}}"

Constraints

  • Return valid JSON-RPC 2.0 payload with method "initialize".
  • Include protocolVersion, clientInfo, and capabilities in params.
Python3Saved ✓
import json

def mcp_client_initialize(client_info, protocol_version="2024-11-05"):
"""
Constructs standard MCP initialize JSON-RPC request.
"""
# Your implementation here
pass

Case 1: Initialize Payload
Input: {"client_info":{"name":"ClaudeDesktop","version":"1.0"},"protocol_version":"2024-11-05"}
Expected: "{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"initialize\", \"params\": {\"protocolVersion\": \"2024-11-05\", \"capabilities\": {\"roots\": {\"listChanged\": true}, \"sampling\": {}}, \"clientInfo\": {\"name\": \"ClaudeDesktop\", \"version\": \"1.0\"}}}"