mcp

package
v0.0.0-...-e487a75 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2025 License: Apache-2.0 Imports: 10 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
}

Client MCP客户端实现 用于与AI提供商集成,为AI会话准备工具

func NewClient

func NewClient(manager MCPManager) *Client

NewClient 创建MCP客户端

func (*Client) BuildPrompt

func (c *Client) BuildPrompt(ctx context.Context, userPrompt string, mcpCtx *models.MCPContext) (string, error)

BuildPrompt 构建包含工具信息的提示

func (*Client) ExecuteToolCalls

func (c *Client) ExecuteToolCalls(ctx context.Context, calls []*models.ToolCall, mcpCtx *models.MCPContext) ([]*models.ToolResult, error)

ExecuteToolCalls 执行AI返回的工具调用

func (*Client) FormatToolResults

func (c *Client) FormatToolResults(results []*models.ToolResult) string

FormatToolResults 格式化工具执行结果为可读文本

func (*Client) GetToolDefinitions

func (c *Client) GetToolDefinitions(ctx context.Context, mcpCtx *models.MCPContext) ([]map[string]interface{}, error)

GetToolDefinitions 获取工具定义的JSON表示(用于AI集成)

func (*Client) PrepareTools

func (c *Client) PrepareTools(ctx context.Context, mcpCtx *models.MCPContext) ([]models.Tool, error)

PrepareTools 为AI会话准备工具

func (*Client) ValidateToolCall

func (c *Client) ValidateToolCall(call *models.ToolCall, mcpCtx *models.MCPContext) error

ValidateToolCall 验证工具调用的格式和参数

type MCPClient

type MCPClient interface {
	// PrepareTools 为AI会话准备工具
	PrepareTools(ctx context.Context, mcpCtx *models.MCPContext) ([]models.Tool, error)

	// ExecuteToolCalls 执行AI返回的工具调用
	ExecuteToolCalls(ctx context.Context, calls []*models.ToolCall, mcpCtx *models.MCPContext) ([]*models.ToolResult, error)

	// BuildPrompt 构建包含工具信息的提示
	BuildPrompt(ctx context.Context, userPrompt string, mcpCtx *models.MCPContext) (string, error)
}

MCPClient MCP客户端接口 用于与AI提供商集成

type MCPManager

type MCPManager interface {
	// RegisterServer 注册MCP服务器
	RegisterServer(name string, server MCPServer) error

	// UnregisterServer 取消注册MCP服务器
	UnregisterServer(name string) error

	// GetAvailableTools 获取可用工具列表
	GetAvailableTools(ctx context.Context, mcpCtx *models.MCPContext) ([]models.Tool, error)

	// HandleToolCall 处理工具调用
	HandleToolCall(ctx context.Context, call *models.ToolCall, mcpCtx *models.MCPContext) (*models.ToolResult, error)

	// GetServers 获取已注册的服务器列表
	GetServers() map[string]MCPServer

	// GetMetrics 获取执行指标
	GetMetrics() map[string]*models.ExecutionMetrics

	// Shutdown 关闭管理器和所有服务器
	Shutdown(ctx context.Context) error
}

MCPManager MCP管理器接口

type MCPServer

type MCPServer interface {
	// GetInfo 获取服务器信息
	GetInfo() *models.MCPServerInfo

	// GetTools 获取服务器提供的工具列表
	GetTools() []models.Tool

	// IsAvailable 检查服务器是否在当前上下文中可用
	IsAvailable(ctx context.Context, mcpCtx *models.MCPContext) bool

	// HandleToolCall 处理工具调用
	HandleToolCall(ctx context.Context, call *models.ToolCall, mcpCtx *models.MCPContext) (*models.ToolResult, error)

	// Initialize 初始化服务器
	Initialize(ctx context.Context) error

	// Shutdown 关闭服务器
	Shutdown(ctx context.Context) error
}

MCPServer MCP服务器接口

type Manager

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

Manager MCP管理器实现

func NewManager

func NewManager() *Manager

NewManager 创建MCP管理器

func (*Manager) GetAvailableTools

func (m *Manager) GetAvailableTools(ctx context.Context, mcpCtx *models.MCPContext) ([]models.Tool, error)

GetAvailableTools 获取可用工具列表

func (*Manager) GetMetrics

func (m *Manager) GetMetrics() map[string]*models.ExecutionMetrics

GetMetrics 获取执行指标

func (*Manager) GetServers

func (m *Manager) GetServers() map[string]MCPServer

GetServers 获取已注册的服务器列表

func (*Manager) HandleToolCall

func (m *Manager) HandleToolCall(ctx context.Context, call *models.ToolCall, mcpCtx *models.MCPContext) (*models.ToolResult, error)

HandleToolCall 处理工具调用

func (*Manager) RegisterServer

func (m *Manager) RegisterServer(name string, server MCPServer) error

RegisterServer 注册MCP服务器

func (*Manager) Shutdown

func (m *Manager) Shutdown(ctx context.Context) error

Shutdown 关闭管理器,停止所有服务器

func (*Manager) UnregisterServer

func (m *Manager) UnregisterServer(name string) error

UnregisterServer 取消注册MCP服务器

type ToolValidator

type ToolValidator interface {
	// ValidateCall 验证工具调用
	ValidateCall(call *models.ToolCall, tool *models.Tool) error

	// ValidatePermissions 验证权限
	ValidatePermissions(call *models.ToolCall, mcpCtx *models.MCPContext) error

	// ValidateArguments 验证参数
	ValidateArguments(args map[string]interface{}, schema *models.JSONSchema) error
}

ToolValidator 工具验证器接口

func NewToolValidator

func NewToolValidator() ToolValidator

NewToolValidator 创建工具验证器

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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