Documentation
¶
Index ¶
- type Client
- type ClientInfo
- type ClientOptions
- type ClientSession
- func (cs *ClientSession) CallTool(ctx context.Context, params *protocol.CallToolParams) (*protocol.CallToolResult, error)
- func (cs *ClientSession) Close() error
- func (cs *ClientSession) Complete(ctx context.Context, params *protocol.CompleteRequest) (*protocol.CompleteResult, error)
- func (cs *ClientSession) GetPrompt(ctx context.Context, params *protocol.GetPromptParams) (*protocol.GetPromptResult, error)
- func (cs *ClientSession) ID() string
- func (cs *ClientSession) InitializeResult() *protocol.InitializeResult
- func (cs *ClientSession) ListPrompts(ctx context.Context, params *protocol.ListPromptsParams) (*protocol.ListPromptsResult, error)
- func (cs *ClientSession) ListResourceTemplates(ctx context.Context, params *protocol.ListResourcesParams) (*protocol.ListResourcesResult, error)
- func (cs *ClientSession) ListResources(ctx context.Context, params *protocol.ListResourcesParams) (*protocol.ListResourcesResult, error)
- func (cs *ClientSession) ListTools(ctx context.Context, params *protocol.ListToolsParams) (*protocol.ListToolsResult, error)
- func (cs *ClientSession) NotifyCancelled(ctx context.Context, params *protocol.CancelledNotificationParams) error
- func (cs *ClientSession) NotifyProgress(ctx context.Context, params *protocol.ProgressNotificationParams) error
- func (cs *ClientSession) NotifyRootsListChanged(ctx context.Context) error
- func (cs *ClientSession) Ping(ctx context.Context, params *protocol.PingParams) error
- func (cs *ClientSession) ReadResource(ctx context.Context, params *protocol.ReadResourceParams) (*protocol.ReadResourceResult, error)
- func (cs *ClientSession) SetLoggingLevel(ctx context.Context, params *protocol.SetLoggingLevelParams) error
- func (cs *ClientSession) SubscribeResource(ctx context.Context, params *protocol.SubscribeParams) error
- func (cs *ClientSession) UnsubscribeResource(ctx context.Context, params *protocol.UnsubscribeParams) error
- func (cs *ClientSession) Wait() error
- type ClientSessionOptions
- type CommandTransport
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶ added in v1.2.0
func NewClient(info *ClientInfo, opts *ClientOptions) *Client
func (*Client) Connect ¶ added in v1.2.0
func (c *Client) Connect(ctx context.Context, t transport.Transport, _ *ClientSessionOptions) (*ClientSession, error)
Connect 通过给定的 transport 开始 MCP 会话 返回的会话已初始化并可以使用
通常,客户端负责在不再需要时关闭连接 但是,如果连接被服务器关闭,调用或通知将返回包装 ErrConnectionClosed 的错误
func (*Client) RemoveRoot ¶ added in v1.2.0
RemoveRoot 移除一个根目录
type ClientInfo ¶ added in v1.2.0
type ClientOptions ¶ added in v1.2.0
type ClientOptions struct {
// CreateMessageHandler 处理来自服务器的 sampling/createMessage 请求
//
// 设置为非 nil 值会使客户端声明 sampling 能力
CreateMessageHandler func(context.Context, *protocol.CreateMessageRequest) (*protocol.CreateMessageResult, error)
// ElicitationHandler 处理来自服务器的 elicitation/create 请求
//
// 设置为非 nil 值会使客户端声明 elicitation 能力
ElicitationHandler func(context.Context, *protocol.ElicitationCreateParams) (*protocol.ElicitationResult, error)
// 来自服务器的通知处理器
ToolListChangedHandler func(context.Context, *protocol.ToolsListChangedNotification)
PromptListChangedHandler func(context.Context, *protocol.PromptListChangedParams)
ResourceListChangedHandler func(context.Context, *protocol.ResourceListChangedParams)
ResourceUpdatedHandler func(context.Context, *protocol.ResourceUpdatedParams)
LoggingMessageHandler func(context.Context, *protocol.LoggingMessageParams)
ProgressNotificationHandler func(context.Context, *protocol.ProgressNotificationParams)
// KeepAlive 定义定期 "ping" 请求的间隔
// 如果对等方未能响应 keepalive 检查发起的 ping,会话将自动关闭
KeepAlive time.Duration
}
ClientOptions 配置客户端的行为
type ClientSession ¶ added in v1.2.0
type ClientSession struct {
// contains filtered or unexported fields
}
ClientSession 是与 MCP 服务器的逻辑连接 可用于向服务器发送请求或通知 通过调用 Client.Connect 创建会话
调用 ClientSession.Close 关闭连接,或使用 ClientSession.Wait 等待服务器终止
func (*ClientSession) CallTool ¶ added in v1.2.0
func (cs *ClientSession) CallTool(ctx context.Context, params *protocol.CallToolParams) (*protocol.CallToolResult, error)
CallTool 调用服务器上的工具
func (*ClientSession) Close ¶ added in v1.2.0
func (cs *ClientSession) Close() error
func (*ClientSession) Complete ¶ added in v1.2.0
func (cs *ClientSession) Complete(ctx context.Context, params *protocol.CompleteRequest) (*protocol.CompleteResult, error)
Complete 请求自动补全
func (*ClientSession) GetPrompt ¶ added in v1.2.0
func (cs *ClientSession) GetPrompt(ctx context.Context, params *protocol.GetPromptParams) (*protocol.GetPromptResult, error)
GetPrompt 获取服务器上的提示
func (*ClientSession) ID ¶ added in v1.2.0
func (cs *ClientSession) ID() string
func (*ClientSession) InitializeResult ¶ added in v1.2.0
func (cs *ClientSession) InitializeResult() *protocol.InitializeResult
InitializeResult 返回初始化结果
func (*ClientSession) ListPrompts ¶ added in v1.2.0
func (cs *ClientSession) ListPrompts(ctx context.Context, params *protocol.ListPromptsParams) (*protocol.ListPromptsResult, error)
ListPrompts 列出服务器上当前可用的提示
func (*ClientSession) ListResourceTemplates ¶ added in v1.2.0
func (cs *ClientSession) ListResourceTemplates(ctx context.Context, params *protocol.ListResourcesParams) (*protocol.ListResourcesResult, error)
ListResourceTemplates 列出服务器上的资源模板
func (*ClientSession) ListResources ¶ added in v1.2.0
func (cs *ClientSession) ListResources(ctx context.Context, params *protocol.ListResourcesParams) (*protocol.ListResourcesResult, error)
ListResources 列出服务器上当前可用的资源
func (*ClientSession) ListTools ¶ added in v1.2.0
func (cs *ClientSession) ListTools(ctx context.Context, params *protocol.ListToolsParams) (*protocol.ListToolsResult, error)
ListTools 列出服务器上当前可用的工具
func (*ClientSession) NotifyCancelled ¶ added in v1.2.0
func (cs *ClientSession) NotifyCancelled(ctx context.Context, params *protocol.CancelledNotificationParams) error
NotifyCancelled 发送取消通知
func (*ClientSession) NotifyProgress ¶ added in v1.2.0
func (cs *ClientSession) NotifyProgress(ctx context.Context, params *protocol.ProgressNotificationParams) error
NotifyProgress 发送进度通知
func (*ClientSession) NotifyRootsListChanged ¶ added in v1.2.0
func (cs *ClientSession) NotifyRootsListChanged(ctx context.Context) error
NotifyRootsListChanged 通知服务器根目录列表已更改
func (*ClientSession) Ping ¶ added in v1.2.0
func (cs *ClientSession) Ping(ctx context.Context, params *protocol.PingParams) error
Ping 向服务器发送 ping 请求
func (*ClientSession) ReadResource ¶ added in v1.2.0
func (cs *ClientSession) ReadResource(ctx context.Context, params *protocol.ReadResourceParams) (*protocol.ReadResourceResult, error)
ReadResource 读取服务器上的资源
func (*ClientSession) SetLoggingLevel ¶ added in v1.2.0
func (cs *ClientSession) SetLoggingLevel(ctx context.Context, params *protocol.SetLoggingLevelParams) error
SetLoggingLevel 设置服务器的日志级别
func (*ClientSession) SubscribeResource ¶ added in v1.2.0
func (cs *ClientSession) SubscribeResource(ctx context.Context, params *protocol.SubscribeParams) error
SubscribeResource 订阅资源更新
func (*ClientSession) UnsubscribeResource ¶ added in v1.2.0
func (cs *ClientSession) UnsubscribeResource(ctx context.Context, params *protocol.UnsubscribeParams) error
UnsubscribeResource 取消订阅资源更新
func (*ClientSession) Wait ¶ added in v1.2.0
func (cs *ClientSession) Wait() error
Wait 等待连接被服务器关闭 通常,客户端应该负责关闭连接
type ClientSessionOptions ¶ added in v1.2.0
type ClientSessionOptions struct{}
type CommandTransport ¶ added in v1.2.0
type CommandTransport struct {
Command *exec.Cmd
// TerminateDuration 控制在关闭 stdin 后等待进程退出多长时间,然后发送 SIGTERM
// 如果为零或负数,则使用默认值 5 秒
TerminateDuration time.Duration
}
CommandTransport 是一个运行命令并通过 stdin/stdout 与之通信的 Transport 使用换行符分隔的 JSON
func NewCommandTransport ¶ added in v1.2.0
func NewCommandTransport(command string, args ...string) *CommandTransport
NewCommandTransport 创建一个新的 CommandTransport
func (*CommandTransport) Connect ¶ added in v1.2.0
func (t *CommandTransport) Connect(ctx context.Context) (transport.Connection, error)
Connect 启动命令并通过 stdin/stdout 连接到它