Model Context Protocol (MCP) Implementation in Go

Model Context Protocol (MCP) Implementation in Go

site icon
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 或更高版本

安装教程

  1. 克隆仓库或下载代码。
  2. 设置 MCP 服务器 URL(可选): bash export MCP_SERVER_URL=http://your-mcp-server/jsonrpc
  3. 运行示例: bash go run examples/mcp_client_example.go

调试方式

  1. 创建客户端: go client := mcp.NewClient("http://your-mcp-server/jsonrpc")
  2. 初始化客户端: go err := client.Initialize(clientInfo, capabilities)
  3. 使用客户端方法进行调试,如 ListResourcesReadResourceCallTool 等。

许可证

该项目遵循 MIT 开源许可条款。