client

package
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2025 License: Apache-2.0 Imports: 11 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 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)

	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

	SetElicitationHandler(handler ElicitationHandler)
	SetSamplingHandler(handler SamplingHandler)
	SetRootsProvider(provider RootsProvider)

	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 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) 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) SetElicitationHandler added in v1.1.1

func (c *MCPClient) SetElicitationHandler(handler ElicitationHandler)

SetElicitationHandler 设置elicitation处理器

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处理器

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 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 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