Documentation
¶
Index ¶
- type AnyRequest
- type AnyResponse
- type Argument
- type CallToolRequest
- type CallToolResponse
- type Client
- func (c *Client) CallTool(ctx context.Context, request *Request[CallToolRequest]) (*Response[CallToolResponse], error)
- func (c *Client) Completion(ctx context.Context, request *Request[CompletionRequest]) (*Response[CompletionResponse], error)
- func (c *Client) GetPrompt(ctx context.Context, request *Request[GetPromptRequest]) (*Response[GetPromptResponse], error)
- func (c *Client) Initialize(ctx context.Context, request *Request[InitializeRequest]) (*Response[InitializeResponse], error)
- func (c *Client) ListPrompts(ctx context.Context, request *Request[ListPromptsRequest]) (*Response[ListPromptsResponse], error)
- func (c *Client) ListResourceTemplates(ctx context.Context, request *Request[ListResourceTemplatesRequest]) (*Response[ListResourceTemplatesResponse], error)
- func (c *Client) ListResources(ctx context.Context, request *Request[ListResourcesRequest]) (*Response[ListResourcesResponse], error)
- func (c *Client) ListTools(ctx context.Context, request *Request[ListToolsRequest]) (*Response[ListToolsResponse], error)
- func (c *Client) Listen(ctx context.Context) error
- func (c *Client) Ping(ctx context.Context, request *Request[PingRequest]) (*Response[PingResponse], error)
- func (c *Client) ReadResource(ctx context.Context, request *Request[ReadResourceRequest]) (*Response[ReadResourceResponse], error)
- func (c *Client) ServeMCP(ctx context.Context, msg *Message) (*Message, error)
- func (c *Client) SetLogLevel(ctx context.Context, request *Request[SetLogLevelRequest]) (*Response[SetLogLevelResponse], error)
- type ClientCapabilities
- type ClientHandler
- type ClientInfo
- type ClientOption
- type CompletionArgument
- type CompletionRef
- type CompletionRequest
- type CompletionResponse
- type CompletionResult
- type Content
- type Error
- type ErrorDetail
- type GetPromptRequest
- type GetPromptResponse
- type InitializeRequest
- type InitializeResponse
- type Interceptor
- type Level
- type ListPromptsRequest
- type ListPromptsResponse
- type ListResourceTemplatesRequest
- type ListResourceTemplatesResponse
- type ListResourcesRequest
- type ListResourcesResponse
- type ListToolsRequest
- type ListToolsResponse
- type LogMessageRequest
- type Logging
- type Message
- type Method
- type Option
- type PingRequest
- type PingResponse
- type Prompt
- type PromptMessage
- type Prompts
- type ReadResourceRequest
- type ReadResourceResponse
- type Request
- type Resource
- type ResourceContent
- type ResourceTemplate
- type Resources
- type Response
- type Roots
- type Sampling
- type SamplingRequest
- type SamplingResponse
- type Server
- func (s *Server) Listen(ctx context.Context) error
- func (s *Server) LogMessage(ctx context.Context, request *Request[LogMessageRequest]) error
- func (s *Server) Ping(ctx context.Context, request *Request[PingRequest]) (*Response[PingResponse], error)
- func (s *Server) PromptsListChanged(ctx context.Context) error
- func (s *Server) ResourcesListChanged(ctx context.Context) error
- func (s *Server) ServeMCP(ctx context.Context, msg *Message) (*Message, error)
- func (s *Server) ToolsListChanged(ctx context.Context) error
- type ServerCapabilities
- type ServerHandler
- type ServerInfo
- type ServerOption
- type SetLogLevelRequest
- type SetLogLevelResponse
- type Stream
- type Tool
- type Tools
- type UnaryFunc
- type UnaryInterceptorFunc
- type UnimplementedClient
- func (u *UnimplementedClient) LogMessage(ctx context.Context, request *Request[LogMessageRequest])
- func (c *UnimplementedClient) Ping(ctx context.Context, req *Request[PingRequest]) (*Response[PingResponse], error)
- func (u *UnimplementedClient) Sampling(ctx context.Context, request *Request[SamplingRequest]) (*Response[SamplingResponse], error)
- type UnimplementedServer
- func (s *UnimplementedServer) CallTool(ctx context.Context, req *Request[CallToolRequest]) (*Response[CallToolResponse], error)
- func (s *UnimplementedServer) Completion(ctx context.Context, req *Request[CompletionRequest]) (*Response[CompletionResponse], error)
- func (s *UnimplementedServer) GetPrompt(ctx context.Context, req *Request[GetPromptRequest]) (*Response[GetPromptResponse], error)
- func (s *UnimplementedServer) Initialize(ctx context.Context, req *Request[InitializeRequest]) (*Response[InitializeResponse], error)
- func (s *UnimplementedServer) ListPrompts(ctx context.Context, req *Request[ListPromptsRequest]) (*Response[ListPromptsResponse], error)
- func (s *UnimplementedServer) ListResourceTemplates(ctx context.Context, req *Request[ListResourceTemplatesRequest]) (*Response[ListResourceTemplatesResponse], error)
- func (s *UnimplementedServer) ListResources(ctx context.Context, req *Request[ListResourcesRequest]) (*Response[ListResourcesResponse], error)
- func (s *UnimplementedServer) ListTools(ctx context.Context, req *Request[ListToolsRequest]) (*Response[ListToolsResponse], error)
- func (s *UnimplementedServer) Ping(ctx context.Context, req *Request[PingRequest]) (*Response[PingResponse], error)
- func (s *UnimplementedServer) ReadResource(ctx context.Context, req *Request[ReadResourceRequest]) (*Response[ReadResourceResponse], error)
- func (s *UnimplementedServer) SetLogLevel(ctx context.Context, req *Request[SetLogLevelRequest]) (*Response[SetLogLevelResponse], error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnyRequest ¶
type AnyRequest interface { Any() any ID() string Method() string Metadata() map[string]string // contains filtered or unexported methods }
AnyRequest is the common method set of every Request, regardless of type parameter. It's used in unary interceptors.
To preserve our ability to add methods to this interface without breaking backward compatibility, only types defined in this package can implement AnyRequest.
type AnyResponse ¶
AnyResponse is the common method set of every Response, regardless of type parameter. It's used in unary interceptors.
Headers and trailers beginning with "Connect-" and "Grpc-" are reserved for use by the gRPC and Connect protocols: applications may read them but shouldn't write them.
To preserve our ability to add methods to this interface without breaking backward compatibility, only types defined in this package can implement AnyResponse.
type CallToolRequest ¶
type CallToolRequest struct { Name string `json:"name"` Arguments json.RawMessage `json:"arguments"` }
type CallToolResponse ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶ added in v0.2.0
func NewClient(stream Stream, handler ClientHandler, opts ...Option) *Client
func (*Client) CallTool ¶
func (c *Client) CallTool(ctx context.Context, request *Request[CallToolRequest]) (*Response[CallToolResponse], error)
func (*Client) Completion ¶
func (c *Client) Completion(ctx context.Context, request *Request[CompletionRequest]) (*Response[CompletionResponse], error)
func (*Client) GetPrompt ¶
func (c *Client) GetPrompt(ctx context.Context, request *Request[GetPromptRequest]) (*Response[GetPromptResponse], error)
func (*Client) Initialize ¶
func (c *Client) Initialize(ctx context.Context, request *Request[InitializeRequest]) (*Response[InitializeResponse], error)
func (*Client) ListPrompts ¶
func (c *Client) ListPrompts(ctx context.Context, request *Request[ListPromptsRequest]) (*Response[ListPromptsResponse], error)
func (*Client) ListResourceTemplates ¶
func (c *Client) ListResourceTemplates(ctx context.Context, request *Request[ListResourceTemplatesRequest]) (*Response[ListResourceTemplatesResponse], error)
func (*Client) ListResources ¶
func (c *Client) ListResources(ctx context.Context, request *Request[ListResourcesRequest]) (*Response[ListResourcesResponse], error)
func (*Client) ListTools ¶
func (c *Client) ListTools(ctx context.Context, request *Request[ListToolsRequest]) (*Response[ListToolsResponse], error)
func (*Client) Ping ¶ added in v0.2.0
func (c *Client) Ping(ctx context.Context, request *Request[PingRequest]) (*Response[PingResponse], error)
func (*Client) ReadResource ¶
func (c *Client) ReadResource(ctx context.Context, request *Request[ReadResourceRequest]) (*Response[ReadResourceResponse], error)
func (*Client) SetLogLevel ¶ added in v0.2.0
func (c *Client) SetLogLevel(ctx context.Context, request *Request[SetLogLevelRequest]) (*Response[SetLogLevelResponse], error)
type ClientCapabilities ¶
Capabilities represents the available feature capabilities
type ClientHandler ¶ added in v0.2.0
type ClientHandler interface { Sampling(ctx context.Context, request *Request[SamplingRequest]) (*Response[SamplingResponse], error) Ping(ctx context.Context, request *Request[PingRequest]) (*Response[PingResponse], error) LogMessage(ctx context.Context, request *Request[LogMessageRequest]) }
type ClientInfo ¶
ClientInfo contains information about the connected client
type ClientOption ¶
type ClientOption interface {
// contains filtered or unexported methods
}
type CompletionArgument ¶
type CompletionRef ¶
type CompletionRequest ¶
type CompletionRequest struct { Ref CompletionRef `json:"ref"` Argument CompletionArgument `json:"argument"` }
type CompletionResponse ¶
type CompletionResponse struct {
Completion CompletionResult `json:"completion"`
}
type CompletionResult ¶
type ErrorDetail ¶ added in v0.2.0
type ErrorDetail struct { Code int `json:"code"` Message string `json:"message"` Data json.RawMessage `json:"data"` }
type GetPromptRequest ¶
type GetPromptResponse ¶
type GetPromptResponse struct { Description string `json:"description"` Messages []PromptMessage `json:"messages"` }
type InitializeRequest ¶
type InitializeRequest struct { ProtocolVersion string `json:"protocolVersion"` Capabilities ClientCapabilities `json:"capabilities"` ClientInfo ClientInfo `json:"clientInfo"` }
type InitializeResponse ¶
type InitializeResponse struct { ProtocolVersion string `json:"protocolVersion"` Capabilities ServerCapabilities `json:"capabilities"` ServerInfo ServerInfo `json:"serverInfo"` }
type Interceptor ¶
type ListPromptsRequest ¶
type ListPromptsRequest struct {
Cursor string `json:"cursor,omitempty"`
}
type ListPromptsResponse ¶
type ListResourceTemplatesRequest ¶
type ListResourceTemplatesRequest struct {
Cursor string `json:"cursor,omitempty"`
}
type ListResourceTemplatesResponse ¶
type ListResourceTemplatesResponse struct { Templates []ResourceTemplate `json:"resourceTemplates"` NextCursor string `json:"nextCursor,omitempty"` }
type ListResourcesRequest ¶
type ListResourcesRequest struct {
Cursor string `json:"cursor,omitempty"`
}
type ListResourcesResponse ¶
type ListToolsRequest ¶
type ListToolsRequest struct {
Cursor string `json:"cursor,omitempty"`
}
type ListToolsResponse ¶
type LogMessageRequest ¶ added in v0.2.0
type LogMessageRequest struct { Level Level `json:"level"` Logger string `json:"logger"` Data json.RawMessage `json:"data"` }
type Message ¶
type Message struct { ID *json.Number `json:"id,omitempty"` JsonRPC *string `json:"jsonrpc"` Method *string `json:"method,omitempty"` Params *json.RawMessage `json:"params,omitempty"` Result *json.RawMessage `json:"result,omitempty"` Error *ErrorDetail `json:"error,omitempty"` // Metadata is used to store additional information about the message for // processing by the client or server. It is never sent across the wire. Metadata map[string]string `json:"-"` }
type Method ¶ added in v0.4.3
type Method string
const ( MethodInitialize Method = "initialize" MethodCompletion Method = "completion/complete" MethodListTools Method = "tools/list" MethodCallTool Method = "tools/call" MethodListPrompts Method = "prompts/list" MethodGetPrompt Method = "prompts/get" MethodListResources Method = "resources/list" MethodReadResource Method = "resources/read" MethodListResourceTemplates Method = "resources/templates/list" MethodPing Method = "ping" MethodSetLogLevel Method = "logging/setLevel" MethodNotificationsMessage Method = "notifications/message" )
type Option ¶
type Option interface { ClientOption ServerOption }
func WithInterceptors ¶
func WithInterceptors(interceptors ...Interceptor) Option
type PingRequest ¶ added in v0.2.0
type PingRequest struct { }
type PingResponse ¶ added in v0.2.0
type PingResponse struct { }
type PromptMessage ¶ added in v0.2.0
type ReadResourceRequest ¶
type ReadResourceRequest struct {
URI string `json:"uri"`
}
type ReadResourceResponse ¶
type ReadResourceResponse struct {
Contents []ResourceContent `json:"contents"`
}
type Request ¶
type Request[T any] struct { Params *T // contains filtered or unexported fields }
func NewRequest ¶
func (*Request[_]) Any ¶
Any returns the concrete request params as an empty interface, so that *Request implements the AnyRequest interface.
type ResourceContent ¶
type ResourceTemplate ¶
type Response ¶
type Response[T any] struct { Result *T // contains filtered or unexported fields }
func NewResponse ¶
func (*Response[_]) Any ¶
Any returns the concrete result as an empty interface, so that *Response implements the AnyResponse interface.
type Roots ¶
type Roots struct {
ListChanged bool `json:"listChanged"`
}
Roots contains root-level capabilities
type Sampling ¶
type Sampling struct{}
Sampling represents sampling-related capabilities Currently empty but structured for future expansion
type SamplingRequest ¶ added in v0.2.0
type SamplingRequest struct {
MaxTokens int `json:"maxTokens"`
}
type SamplingResponse ¶ added in v0.2.0
type SamplingResponse struct {
Role string `json:"role"`
}
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewServer ¶ added in v0.2.0
func NewServer(stream Stream, handler ServerHandler, opts ...Option) *Server
func (*Server) LogMessage ¶ added in v0.2.0
func (*Server) Ping ¶ added in v0.2.0
func (s *Server) Ping(ctx context.Context, request *Request[PingRequest]) (*Response[PingResponse], error)
func (*Server) PromptsListChanged ¶ added in v0.3.0
func (*Server) ResourcesListChanged ¶ added in v0.3.0
type ServerCapabilities ¶
type ServerCapabilities struct { Logging *Logging `json:"logging,omitempty"` Tools *Tools `json:"tools,omitempty"` Resources *Resources `json:"resources,omitempty"` Prompts *Prompts `json:"prompts,omitempty"` }
Capabilities represents the available feature capabilities
type ServerHandler ¶ added in v0.2.0
type ServerHandler interface { Initialize(ctx context.Context, req *Request[InitializeRequest]) (*Response[InitializeResponse], error) ListTools(ctx context.Context, req *Request[ListToolsRequest]) (*Response[ListToolsResponse], error) CallTool(ctx context.Context, req *Request[CallToolRequest]) (*Response[CallToolResponse], error) ListPrompts(ctx context.Context, req *Request[ListPromptsRequest]) (*Response[ListPromptsResponse], error) GetPrompt(ctx context.Context, req *Request[GetPromptRequest]) (*Response[GetPromptResponse], error) ListResources(ctx context.Context, req *Request[ListResourcesRequest]) (*Response[ListResourcesResponse], error) ReadResource(ctx context.Context, req *Request[ReadResourceRequest]) (*Response[ReadResourceResponse], error) ListResourceTemplates(ctx context.Context, req *Request[ListResourceTemplatesRequest]) (*Response[ListResourceTemplatesResponse], error) Completion(ctx context.Context, req *Request[CompletionRequest]) (*Response[CompletionResponse], error) Ping(ctx context.Context, req *Request[PingRequest]) (*Response[PingResponse], error) SetLogLevel(ctx context.Context, req *Request[SetLogLevelRequest]) (*Response[SetLogLevelResponse], error) }
type ServerInfo ¶
ClientInfo contains information about the connected client
type ServerOption ¶
type ServerOption interface {
// contains filtered or unexported methods
}
type SetLogLevelRequest ¶ added in v0.2.0
type SetLogLevelRequest struct {
Level Level `json:"level"`
}
type SetLogLevelResponse ¶ added in v0.2.0
type SetLogLevelResponse struct { }
type Tool ¶
type Tool struct { Name string `json:"name"` Description string `json:"description"` InputSchema json.RawMessage `json:"inputSchema"` }
type UnaryFunc ¶
type UnaryFunc func(context.Context, AnyRequest) (AnyResponse, error)
type UnaryInterceptorFunc ¶
func (UnaryInterceptorFunc) WrapUnary ¶
func (f UnaryInterceptorFunc) WrapUnary(next UnaryFunc) UnaryFunc
type UnimplementedClient ¶ added in v0.2.0
type UnimplementedClient struct{}
func (*UnimplementedClient) LogMessage ¶ added in v0.2.0
func (u *UnimplementedClient) LogMessage(ctx context.Context, request *Request[LogMessageRequest])
func (*UnimplementedClient) Ping ¶ added in v0.2.0
func (c *UnimplementedClient) Ping(ctx context.Context, req *Request[PingRequest]) (*Response[PingResponse], error)
func (*UnimplementedClient) Sampling ¶ added in v0.2.0
func (u *UnimplementedClient) Sampling(ctx context.Context, request *Request[SamplingRequest]) (*Response[SamplingResponse], error)
type UnimplementedServer ¶
type UnimplementedServer struct{}
func (*UnimplementedServer) CallTool ¶
func (s *UnimplementedServer) CallTool(ctx context.Context, req *Request[CallToolRequest]) (*Response[CallToolResponse], error)
func (*UnimplementedServer) Completion ¶
func (s *UnimplementedServer) Completion(ctx context.Context, req *Request[CompletionRequest]) (*Response[CompletionResponse], error)
func (*UnimplementedServer) GetPrompt ¶
func (s *UnimplementedServer) GetPrompt(ctx context.Context, req *Request[GetPromptRequest]) (*Response[GetPromptResponse], error)
func (*UnimplementedServer) Initialize ¶
func (s *UnimplementedServer) Initialize(ctx context.Context, req *Request[InitializeRequest]) (*Response[InitializeResponse], error)
func (*UnimplementedServer) ListPrompts ¶
func (s *UnimplementedServer) ListPrompts(ctx context.Context, req *Request[ListPromptsRequest]) (*Response[ListPromptsResponse], error)
func (*UnimplementedServer) ListResourceTemplates ¶
func (s *UnimplementedServer) ListResourceTemplates(ctx context.Context, req *Request[ListResourceTemplatesRequest]) (*Response[ListResourceTemplatesResponse], error)
func (*UnimplementedServer) ListResources ¶
func (s *UnimplementedServer) ListResources(ctx context.Context, req *Request[ListResourcesRequest]) (*Response[ListResourcesResponse], error)
func (*UnimplementedServer) ListTools ¶
func (s *UnimplementedServer) ListTools(ctx context.Context, req *Request[ListToolsRequest]) (*Response[ListToolsResponse], error)
func (*UnimplementedServer) Ping ¶ added in v0.2.0
func (s *UnimplementedServer) Ping(ctx context.Context, req *Request[PingRequest]) (*Response[PingResponse], error)
func (*UnimplementedServer) ReadResource ¶
func (s *UnimplementedServer) ReadResource(ctx context.Context, req *Request[ReadResourceRequest]) (*Response[ReadResourceResponse], error)
func (*UnimplementedServer) SetLogLevel ¶ added in v0.2.0
func (s *UnimplementedServer) SetLogLevel(ctx context.Context, req *Request[SetLogLevelRequest]) (*Response[SetLogLevelResponse], error)