69 lines
2.2 KiB
Go
69 lines
2.2 KiB
Go
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
|
||
|
|
}
|