
Model Context Protocol (MCP) Implementation in Go

2025.04.01
0
GoLLM 通信协议JSON-RPC开发效率
Model Context Protocol (MCP) 是一个基于 JSON-RPC 的协议,用于在 LLM 驱动的应用程序中实现客户端与服务器之间的交互。该 Go 实现提供了 MCP 协议的客户端功能,支持与 MCP 服务器的通信,包括资源管理、工具调用、提示获取等核心功能。
View on GitHub
Overview
基本能力
产品定位
MCP 是一个用于增强 LLM 能力的通信协议,通过提供上下文信息、工具、提示和资源,帮助 LLM 客户端更好地完成任务。
核心功能
- 资源管理:支持读取文件、文档等数据。
- 工具调用:提供函数调用能力,客户端可以代表模型调用这些工具。
- 提示获取:支持获取预定义的提示模板或消息序列。
- 根目录操作:支持对文件系统或数据根目录进行操作。
适用场景
- LLM 客户端需要与服务器交互以获取上下文信息或工具支持。
- 需要动态加载资源或提示模板的 LLM 应用。
- 开发基于 LLM 的复杂应用时,需要与后端服务进行高效通信。
工具列表
- ListResources:列出可用资源。
- ReadResource:读取指定资源。
- CallTool:调用指定工具。
- GetPrompt:获取指定提示模板。
常见问题解答
- 如何设置 MCP 服务器 URL?:通过环境变量
MCP_SERVER_URL
设置。 - 如何初始化客户端?:使用
NewClient
创建客户端,并通过Initialize
方法初始化。 - 如何调用工具?:使用
CallTool
方法,传入工具名称和参数。
使用教程
使用依赖
- Go 1.18 或更高版本
安装教程
- 克隆仓库或下载代码。
- 设置 MCP 服务器 URL(可选):
bash export MCP_SERVER_URL=http://your-mcp-server/jsonrpc
- 运行示例:
bash go run examples/mcp_client_example.go
调试方式
- 创建客户端:
go client := mcp.NewClient("http://your-mcp-server/jsonrpc")
- 初始化客户端:
go err := client.Initialize(clientInfo, capabilities)
- 使用客户端方法进行调试,如
ListResources
、ReadResource
、CallTool
等。