client

package
v1.1.6 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CancelledHandler added in v1.1.6

type CancelledHandler func(requestID any, reason string)

CancelledHandler 定义处理取消通知的接口

type Client

type Client interface {
	Initialize(ctx context.Context, clientInfo protocol.ClientInfo) (*protocol.InitializeResult, error)
	SendInitialized(ctx context.Context) error

	ListTools(ctx context.Context, cursor string) (*protocol.ListToolsResult, error)
	CallTool(ctx context.Context, name string, args map[string]interface{}) (*protocol.CallToolResult, error)

	ListResources(ctx context.Context, cursor string) (*protocol.ListResourcesResult, error)
	ReadResource(ctx context.Context, uri string) (*protocol.ReadResourceResult, error)
	ListResourceTemplates(ctx context.Context, cursor string) (*protocol.ListResourceTemplatesResult, error)
	SubscribeResource(ctx context.Context, uri string) error
	UnsubscribeResource(ctx context.Context, uri string) error

	ListPrompts(ctx context.Context, cursor string) (*protocol.ListPromptsResult, error)
	GetPrompt(ctx context.Context, name string, args map[string]string) (*protocol.GetPromptResult, error)

	SendRequest(ctx context.Context, method string, params interface{}) (*protocol.JSONRPCMessage, error)
	SendNotification(ctx context.Context, method string, params interface{}) error

	Ping(ctx context.Context) error
	SetLoggingLevel(ctx context.Context, level protocol.LoggingLevel) error

	SetElicitationHandler(handler ElicitationHandler)
	SetSamplingHandler(handler SamplingHandler)
	SetRootsProvider(provider RootsProvider)
	SetProgressHandler(handler ProgressHandler)
	SetCancelledHandler(handler CancelledHandler)
	SetLoggingHandler(handler LoggingHandler)

	NotifyRootsChanged(ctx context.Context) error

	Close() error
}

func New

func New(options ...Option) (Client, error)

New 创建MCP客户端

type ElicitationHandler added in v1.1.1

type ElicitationHandler func(ctx context.Context, params *protocol.ElicitationCreateParams) (*protocol.ElicitationResult, error)

ElicitationHandler 定义处理 elicitation 请求的接口

type LoggingHandler added in v1.1.6

type LoggingHandler func(level protocol.LoggingLevel, data any, logger string)

LoggingHandler 定义处理日志消息的接口

type MCPClient

type MCPClient struct {
	// contains filtered or unexported fields
}

MCPClient 实现MCP客户端

func (*MCPClient) CallTool

func (c *MCPClient) CallTool(ctx context.Context, name string, args map[string]interface{}) (*protocol.CallToolResult, error)

CallTool 调用工具

func (*MCPClient) Close

func (c *MCPClient) Close() error

Close 关闭客户端连接

func (*MCPClient) GetCapabilities

func (c *MCPClient) GetCapabilities() *protocol.ServerCapabilities

GetCapabilities 获取服务器能力

func (*MCPClient) GetPrompt

func (c *MCPClient) GetPrompt(ctx context.Context, name string, args map[string]string) (*protocol.GetPromptResult, error)

GetPrompt 获取提示模板

func (*MCPClient) GetServerInfo

func (c *MCPClient) GetServerInfo() *protocol.ServerInfo

GetServerInfo 获取服务器信息

func (*MCPClient) Initialize

func (c *MCPClient) Initialize(ctx context.Context, clientInfo protocol.ClientInfo) (*protocol.InitializeResult, error)

Initialize MCP初始化握手

func (*MCPClient) IsInitialized

func (c *MCPClient) IsInitialized() bool

IsInitialized 检查是否已初始化

func (*MCPClient) ListPrompts

func (c *MCPClient) ListPrompts(ctx context.Context, cursor string) (*protocol.ListPromptsResult, error)

ListPrompts 获取提示模板列表

func (*MCPClient) ListResourceTemplates added in v1.1.2

func (c *MCPClient) ListResourceTemplates(ctx context.Context, cursor string) (*protocol.ListResourceTemplatesResult, error)

ListResourceTemplates 获取资源模板列表

func (*MCPClient) ListResources

func (c *MCPClient) ListResources(ctx context.Context, cursor string) (*protocol.ListResourcesResult, error)

ListResources 获取资源列表

func (*MCPClient) ListTools

func (c *MCPClient) ListTools(ctx context.Context, cursor string) (*protocol.ListToolsResult, error)

ListTools 获取工具列表

func (*MCPClient) NotifyRootsChanged added in v1.1.2

func (c *MCPClient) NotifyRootsChanged(ctx context.Context) error

NotifyRootsChanged 通知服务器根目录列表已变更

func (*MCPClient) Ping added in v1.1.6

func (c *MCPClient) Ping(ctx context.Context) error

Ping 发送 ping 请求以检测连接状态

func (*MCPClient) ReadResource

func (c *MCPClient) ReadResource(ctx context.Context, uri string) (*protocol.ReadResourceResult, error)

ReadResource 读取资源内容

func (*MCPClient) SendInitialized

func (c *MCPClient) SendInitialized(ctx context.Context) error

SendInitialized 发送初始化完成通知

func (*MCPClient) SendNotification

func (c *MCPClient) SendNotification(ctx context.Context, method string, params interface{}) error

SendNotification 发送通知消息

func (*MCPClient) SendRequest added in v1.1.2

func (c *MCPClient) SendRequest(ctx context.Context, method string, params interface{}) (*protocol.JSONRPCMessage, error)

SendRequest 发送请求并等待响应

func (*MCPClient) SetCancelledHandler added in v1.1.6

func (c *MCPClient) SetCancelledHandler(handler CancelledHandler)

SetCancelledHandler 设置取消通知处理器

func (*MCPClient) SetElicitationHandler added in v1.1.1

func (c *MCPClient) SetElicitationHandler(handler ElicitationHandler)

SetElicitationHandler 设置elicitation处理器

func (*MCPClient) SetLoggingHandler added in v1.1.6

func (c *MCPClient) SetLoggingHandler(handler LoggingHandler)

SetLoggingHandler 设置日志消息处理器

func (*MCPClient) SetLoggingLevel added in v1.1.6

func (c *MCPClient) SetLoggingLevel(ctx context.Context, level protocol.LoggingLevel) error

SetLoggingLevel 设置服务器日志级别

func (*MCPClient) SetProgressHandler added in v1.1.6

func (c *MCPClient) SetProgressHandler(handler ProgressHandler)

SetProgressHandler 设置进度通知处理器

func (*MCPClient) SetRoots added in v1.1.2

func (c *MCPClient) SetRoots(roots ...protocol.Root)

SetRoots 设置静态根目录列表

func (*MCPClient) SetRootsProvider added in v1.1.2

func (c *MCPClient) SetRootsProvider(provider RootsProvider)

SetRootsProvider 设置根目录提供器

func (*MCPClient) SetSamplingHandler added in v1.1.1

func (c *MCPClient) SetSamplingHandler(handler SamplingHandler)

SetSamplingHandler 设置sampling处理器

func (*MCPClient) SubscribeResource added in v1.1.6

func (c *MCPClient) SubscribeResource(ctx context.Context, uri string) error

SubscribeResource 订阅资源更新

func (*MCPClient) UnsubscribeResource added in v1.1.6

func (c *MCPClient) UnsubscribeResource(ctx context.Context, uri string) error

UnsubscribeResource 取消订阅资源更新

type Option

type Option func(*MCPClient) error

Option 定义客户端配置选项

func WithClientInfo

func WithClientInfo(name, version string) Option

WithClientInfo 设置客户端信息

func WithElicitationHandler added in v1.1.1

func WithElicitationHandler(handler ElicitationHandler) Option

WithElicitationHandler 设置elicitation处理器

func WithRoots added in v1.1.2

func WithRoots(roots ...protocol.Root) Option

WithRoots 设置静态根目录列表

func WithRootsProvider added in v1.1.2

func WithRootsProvider(provider RootsProvider) Option

WithRootsProvider 设置根目录提供器

func WithSSETransport

func WithSSETransport(url string) Option

WithSSETransport 配置SSE传输层

func WithSamplingHandler added in v1.1.1

func WithSamplingHandler(handler SamplingHandler) Option

WithSamplingHandler 设置sampling处理器

func WithStdioTransport

func WithStdioTransport(command string, args []string) Option

WithStdioTransport 配置STDIO传输层

func WithStdioTransportAndEnv added in v1.1.3

func WithStdioTransportAndEnv(command string, args []string, env []string) Option

WithStdioTransportAndEnv 配置STDIO传输层并设置环境变量

func WithStdioTransportEnvAndDir added in v1.1.3

func WithStdioTransportEnvAndDir(command string, args []string, env []string, dir string) Option

WithStdioTransportEnvAndDir 配置STDIO传输层并设置环境变量和工作目录

func WithStreamableHTTPTransport

func WithStreamableHTTPTransport(url string) Option

WithStreamableHTTPTransport 配置Streamable HTTP传输层

func WithTimeout

func WithTimeout(timeout time.Duration) Option

WithTimeout 设置请求超时时间

func WithTransport

func WithTransport(t transport.Transport) Option

WithTransport 设置传输层

type ProgressHandler added in v1.1.6

type ProgressHandler func(progressToken any, progress, total float64, message string)

ProgressHandler 定义处理进度通知的接口

type RootsProvider added in v1.1.2

type RootsProvider func(ctx context.Context) ([]protocol.Root, error)

RootsProvider 定义提供根目录列表的接口

type SamplingHandler added in v1.1.1

type SamplingHandler func(ctx context.Context, request *protocol.CreateMessageRequest) (*protocol.CreateMessageResult, error)

SamplingHandler 定义处理 sampling 请求的接口

Jump to

Keyboard shortcuts

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