Files
xinmi/internal/mcp/types.go
T

69 lines
2.2 KiB
Go
Raw Normal View History

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
}