package mcp // InitializeResult represents the result of initialize request type InitializeResult struct { ProtocolVersion string `json:"protocolVersion"` Capabilities ServerCapabilities `json:"capabilities"` ServerInfo ServerInfo `json:"serverInfo"` } // ServerCapabilities represents server capabilities type ServerCapabilities struct { Tools *ToolsCapability `json:"tools,omitempty"` Resources *ResourcesCapability `json:"resources,omitempty"` Prompts *PromptsCapability `json:"prompts,omitempty"` Logging map[string]interface{} `json:"logging,omitempty"` Experimental map[string]interface{} `json:"experimental,omitempty"` } // ToolsCapability represents tools capability type ToolsCapability struct { ListChanged bool `json:"listChanged,omitempty"` } // ResourcesCapability represents resources capability type ResourcesCapability struct { Subscribe bool `json:"subscribe,omitempty"` ListChanged bool `json:"listChanged,omitempty"` } // PromptsCapability represents prompts capability type PromptsCapability struct { ListChanged bool `json:"listChanged,omitempty"` } // ServerInfo represents information about the server type ServerInfo struct { Name string `json:"name"` Version string `json:"version"` Title string `json:"title,omitempty"` Description string `json:"description,omitempty"` } // CallToolResult represents the result of tools/call request type CallToolResult struct { Content []ContentItem `json:"content"` IsError bool `json:"isError,omitempty"` } // ContentItem represents a content item in tool result type ContentItem struct { Type string `json:"type"` // "text", "image", "resource" Text string `json:"text,omitempty"` Data string `json:"data,omitempty"` MimeType string `json:"mimeType,omitempty"` } // ReadResourceResult represents the result of resources/read request type ReadResourceResult struct { Contents []ResourceContent `json:"contents"` } // ResourceContent represents resource content type ResourceContent struct { URI string `json:"uri"` MimeType string `json:"mimeType,omitempty"` Text string `json:"text,omitempty"` Blob string `json:"blob,omitempty"` // Base64 encoded }