Go MCP Framework

Go MCP Framework

site icon
2025.01.10 4
GoLLM 工具集成数据访问框架开发效率
Go MCP Framework 是一个用于构建模型上下文协议(MCP)服务器的 Go 框架,旨在使大型语言模型(LLMs)能够安全地访问工具和数据源。它提供了多种类型的处理器(Tool Handler、Resource Handler、Prompt Handler),支持工具执行、数据读取和提示模板提供等功能。
View on GitHub

Overview

基本能力

产品定位

Go MCP Framework 是一个用于构建 MCP 服务器的框架,旨在为大型语言模型(LLMs)提供安全访问工具和数据源的能力。

核心功能

  1. 工具处理器(Tool Handler):实现 LLMs 可以执行的工具。
  2. 资源处理器(Resource Handler):暴露 LLMs 可以读取的数据。
  3. 提示处理器(Prompt Handler):提供提示模板。

适用场景

  1. 为 LLMs 提供自定义工具执行能力。
  2. 为 LLMs 提供数据读取能力。
  3. 为 LLMs 提供提示模板管理能力。

工具列表

  1. Tool Handler:用于实现工具的执行和列表功能。
  2. Resource Handler:用于实现资源的读取和列表功能。
  3. Prompt Handler:用于实现提示模板的获取和列表功能。

常见问题解答

  1. 如何与 Claude Desktop 集成?
  2. claude_desktop_config.json 中添加 MCP 服务器配置。
  3. 如何测试 MCP 服务器?
  4. 使用框架提供的测试工具进行单元测试。

使用教程

使用依赖

  1. 确保已安装 Go 环境。

安装教程

go get github.com/gomcpgo/mcp

调试方式

  1. 使用框架提供的测试工具进行调试。
func TestMyServer(t *testing.T) {
    myServer := &MyServer{}
    registry := handler.NewHandlerRegistry()
    registry.RegisterToolHandler(myServer)

    // Test tool listing
    tools, err := myServer.ListTools(context.Background())
    if err != nil {
        t.Fatalf("ListTools failed: %v", err)
    }

    // Test tool execution
    resp, err := myServer.CallTool(context.Background(), &protocol.CallToolRequest{
        Name: "my-tool",
        Arguments: map[string]interface{}{
            "param1": "test",
        },
    })
    if err != nil {
        t.Fatalf("CallTool failed: %v", err)
    }
}

许可证

None