| 12345678910111213141516171819202122232425262728293031 |
- package mcpTool
- import (
- "context"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
- )
- // McpTool 定义了MCP工具必须实现的接口
- type McpTool interface {
- // Handle 返回工具调用信息
- Handle(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error)
- // New 返回工具注册信息
- New() mcp.Tool
- }
- // 工具注册表
- var toolRegister = make(map[string]McpTool)
- // RegisterTool 供工具在init时调用,将自己注册到工具注册表中
- func RegisterTool(tool McpTool) {
- mcpTool := tool.New()
- toolRegister[mcpTool.Name] = tool
- }
- // RegisterAllTools 将所有注册的工具注册到MCP服务中
- func RegisterAllTools(mcpServer *server.MCPServer) {
- for _, tool := range toolRegister {
- mcpServer.AddTool(tool.New(), tool.Handle)
- }
- }
|