使用说明
项目简介
mcp-golang 是一个使用 Go 语言编写的 Model Context Protocol (MCP) 的非官方实现库。它旨在帮助开发者快速构建兼容 MCP 协议的服务器和客户端应用。该库提供了类型安全、模块化和低样板代码的特性,支持自定义传输协议,并内置了 Stdio 和 HTTP 等常用传输方式。
主要功能点
- MCP 服务器实现: 提供构建 MCP 服务器所需的核心组件和接口,用于托管资源、注册工具和管理 Prompt 模板。
- MCP 客户端实现: 提供与 MCP 服务器交互的客户端库,方便调用工具、获取 Prompt 和读取资源。
- 类型安全: 工具和 Prompt 的参数可以使用 Go 结构体定义,并自动生成 JSON Schema,确保数据类型的一致性和减少错误。
- 多种传输协议: 内置 Stdio, HTTP, Gin 等传输协议支持,满足不同场景的需求,并允许自定义传输协议。
- 模块化设计: 库被分解为传输 (transport)、协议 (protocol) 和服务器/客户端 (server/client) 组件,可以根据需要灵活使用。
- 双向通信: 通过 Stdio 传输协议实现全双工通信,支持服务器向客户端发送通知。
- 示例丰富: 提供多个示例,包括 Stdio 和 HTTP 服务器、客户端以及与 Gin 框架集成的示例,方便用户快速上手。
安装步骤
使用 'go get' 命令安装 mcp-golang 库:
go get github.com/metoro-io/mcp-golang
服务器配置
要将 mcp-golang 服务器配置为 MCP 客户端(例如 Claude Desktop)的后端,您需要提供服务器的启动命令。以下是一个 JSON 格式的配置示例,您需要根据您的实际情况进行修改:
{ "mcpServers": { "golang-mcp-server": { // 服务器名称,可以自定义 "command": "<Go MCP 服务器可执行文件的路径>", // 指向您编译后的 Go MCP 服务器程序的可执行文件路径,例如:/path/to/your/server "args": [], // 启动服务器时需要传递的命令行参数,如果不需要可以为空数组 "env": {} // 启动服务器所需的环境变量,如果不需要可以为空对象 } } }
请注意:
- 将 '<Go MCP 服务器可执行文件的路径>' 替换为您实际编译生成的 Go MCP 服务器程序的可执行文件路径。您需要先使用 mcp-golang 库编写并编译一个 Go 程序作为 MCP 服务器。仓库的 'examples' 目录下提供了多个服务器示例,您可以参考这些示例代码。
- 'args' 字段用于配置服务器启动时的命令行参数,根据您的服务器程序是否需要参数来决定是否需要配置。通常情况下,如果服务器程序不需要额外的命令行参数,可以配置为空数组 '[]'。
- 'env' 字段用于设置服务器程序运行时的环境变量,通常情况下可以为空对象 '{}'。
基本使用方法
- 编写 MCP 服务器代码: 使用 mcp-golang 库,在 Go 代码中注册工具 (Tools)、Prompt 模板 (Prompts) 和资源 (Resources),并选择合适的传输协议 (如 Stdio 或 HTTP) 启动服务器。参考仓库 'examples' 目录下的示例服务器代码。
- 编译服务器程序: 使用 'go build' 命令将您的 Go 服务器代码编译成可执行文件。
- 配置 MCP 客户端: 在 MCP 客户端的配置文件中(例如 Claude Desktop 的 'claude_desktop_config.json'),按照上述 "服务器配置" 示例,配置您编译的服务器可执行文件的路径 ('command') 和其他相关参数。
- 启动 MCP 客户端: 启动您的 MCP 客户端,客户端将根据配置连接到您的 mcp-golang 服务器,并可以使用您在服务器中注册的功能。
信息
分类
开发者工具