client

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 9, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

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) AddRoot added in v1.2.0

func (c *Client) AddRoot(root *protocol.Root)

AddRoot 添加一个根目录

func (*Client) Connect added in v1.2.0

Connect 通过给定的 transport 开始 MCP 会话 返回的会话已初始化并可以使用

通常,客户端负责在不再需要时关闭连接 但是,如果连接被服务器关闭,调用或通知将返回包装 ErrConnectionClosed 的错误

func (*Client) ListRoots added in v1.2.0

func (c *Client) ListRoots() []*protocol.Root

ListRoots 列出所有根目录

func (*Client) RemoveRoot added in v1.2.0

func (c *Client) RemoveRoot(uri string)

RemoveRoot 移除一个根目录

type ClientInfo added in v1.2.0

type ClientInfo struct {
	Name    string
	Version string
}

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

CallTool 调用服务器上的工具

func (*ClientSession) Close added in v1.2.0

func (cs *ClientSession) Close() error

func (*ClientSession) Complete added in v1.2.0

Complete 请求自动补全

func (*ClientSession) GetPrompt added in v1.2.0

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

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

ListResources 列出服务器上当前可用的资源

func (*ClientSession) ListTools added in v1.2.0

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

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

Connect 启动命令并通过 stdin/stdout 连接到它

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL