enter.go 810 B

12345678910111213141516171819202122232425262728293031
  1. package mcpTool
  2. import (
  3. "context"
  4. "github.com/mark3labs/mcp-go/mcp"
  5. "github.com/mark3labs/mcp-go/server"
  6. )
  7. // McpTool 定义了MCP工具必须实现的接口
  8. type McpTool interface {
  9. // Handle 返回工具调用信息
  10. Handle(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error)
  11. // New 返回工具注册信息
  12. New() mcp.Tool
  13. }
  14. // 工具注册表
  15. var toolRegister = make(map[string]McpTool)
  16. // RegisterTool 供工具在init时调用,将自己注册到工具注册表中
  17. func RegisterTool(tool McpTool) {
  18. mcpTool := tool.New()
  19. toolRegister[mcpTool.Name] = tool
  20. }
  21. // RegisterAllTools 将所有注册的工具注册到MCP服务中
  22. func RegisterAllTools(mcpServer *server.MCPServer) {
  23. for _, tool := range toolRegister {
  24. mcpServer.AddTool(tool.New(), tool.Handle)
  25. }
  26. }