MCP Initialize Request and Result

Lifecycle handshake that opens an MCP session. The client sends initialize; the server responds with its capabilities; the client follows with a notifications/initialized notification.

Model Context ProtocolMCPAI AgentsToolsResourcesPromptsJSON-RPCAnthropicStandardsTopic
View JSON Schema on GitHub

JSON Schema

mcp-initialize-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/mcp/json-schema/mcp-initialize-schema.json",
  "title": "MCP Initialize Request and Result",
  "description": "Lifecycle handshake that opens an MCP session. The client sends initialize; the server responds with its capabilities; the client follows with a notifications/initialized notification.",
  "type": "object",
  "oneOf": [
    { "$ref": "#/$defs/InitializeRequest" },
    { "$ref": "#/$defs/InitializeResult" }
  ],
  "$defs": {
    "InitializeRequest": {
      "type": "object",
      "required": ["jsonrpc", "id", "method", "params"],
      "properties": {
        "jsonrpc": { "const": "2.0" },
        "id": { "oneOf": [{ "type": "string" }, { "type": "integer" }] },
        "method": { "const": "initialize" },
        "params": {
          "type": "object",
          "required": ["protocolVersion", "capabilities", "clientInfo"],
          "properties": {
            "protocolVersion": {
              "type": "string",
              "description": "Dated protocol version (e.g. 2025-11-25) the client requests."
            },
            "capabilities": { "$ref": "#/$defs/ClientCapabilities" },
            "clientInfo": { "$ref": "#/$defs/Implementation" }
          }
        }
      }
    },
    "InitializeResult": {
      "type": "object",
      "required": ["protocolVersion", "capabilities", "serverInfo"],
      "properties": {
        "protocolVersion": { "type": "string" },
        "capabilities": { "$ref": "#/$defs/ServerCapabilities" },
        "serverInfo": { "$ref": "#/$defs/Implementation" },
        "instructions": {
          "type": "string",
          "description": "Optional natural-language instructions about how the server should be used."
        }
      }
    },
    "Implementation": {
      "type": "object",
      "required": ["name", "version"],
      "properties": {
        "name": { "type": "string" },
        "version": { "type": "string" },
        "title": { "type": "string" },
        "icons": {
          "type": "array",
          "items": { "$ref": "#/$defs/Icon" }
        }
      }
    },
    "Icon": {
      "type": "object",
      "required": ["src"],
      "properties": {
        "src": { "type": "string", "format": "uri" },
        "mimeType": { "type": "string" },
        "sizes": { "type": "array", "items": { "type": "string" } },
        "theme": { "enum": ["light", "dark"] }
      }
    },
    "ClientCapabilities": {
      "type": "object",
      "properties": {
        "roots": {
          "type": "object",
          "properties": {
            "listChanged": { "type": "boolean" }
          }
        },
        "sampling": { "type": "object" },
        "elicitation": { "type": "object" },
        "experimental": { "type": "object" }
      }
    },
    "ServerCapabilities": {
      "type": "object",
      "properties": {
        "tools": {
          "type": "object",
          "properties": {
            "listChanged": { "type": "boolean" }
          }
        },
        "resources": {
          "type": "object",
          "properties": {
            "listChanged": { "type": "boolean" },
            "subscribe": { "type": "boolean" }
          }
        },
        "prompts": {
          "type": "object",
          "properties": {
            "listChanged": { "type": "boolean" }
          }
        },
        "logging": { "type": "object" },
        "completions": { "type": "object" },
        "experimental": { "type": "object" }
      }
    }
  }
}