
Go MCP Framework

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)提供安全访问工具和数据源的能力。
核心功能
- 工具处理器(Tool Handler):实现 LLMs 可以执行的工具。
- 资源处理器(Resource Handler):暴露 LLMs 可以读取的数据。
- 提示处理器(Prompt Handler):提供提示模板。
适用场景
- 为 LLMs 提供自定义工具执行能力。
- 为 LLMs 提供数据读取能力。
- 为 LLMs 提供提示模板管理能力。
工具列表
- Tool Handler:用于实现工具的执行和列表功能。
- Resource Handler:用于实现资源的读取和列表功能。
- Prompt Handler:用于实现提示模板的获取和列表功能。
常见问题解答
- 如何与 Claude Desktop 集成?
- 在
claude_desktop_config.json
中添加 MCP 服务器配置。 - 如何测试 MCP 服务器?
- 使用框架提供的测试工具进行单元测试。
使用教程
使用依赖
- 确保已安装 Go 环境。
安装教程
go get github.com/gomcpgo/mcp
调试方式
- 使用框架提供的测试工具进行调试。
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