使用说明
项目简介
mcp-go 是一个使用 Go 语言编写的 Model Context Protocol (MCP) 服务器库。它旨在简化 MCP 服务器的开发过程,让开发者能够轻松地构建后端服务,为大型语言模型 (LLM) 应用提供必要的上下文信息和功能支持。该库提供了构建 MCP 服务器所需的核心组件,包括资源管理、工具注册和 Prompt 模板定义等功能。
主要功能点
- 资源管理: 允许服务器托管和管理各种类型的数据资源,并向 LLM 客户端提供标准化的数据访问接口,方便 LLM 获取外部信息。
- 工具注册与执行: 支持注册可被 LLM 调用的外部功能(工具),扩展 LLM 的能力边界,例如执行计算、访问外部 API 等。
- Prompt 模板: 支持定义和渲染 Prompt 模板,实现可定制的 LLM 交互模式,提高 LLM 应用的灵活性和可控性。
- 多协议支持: 默认支持 Stdio 传输协议,并可通过扩展支持 SSE 和 WebSocket 等多种传输协议,适应不同的应用场景。
- 易于使用: 提供简洁的 API 和示例代码,降低 MCP 服务器的开发门槛,开发者可以专注于业务逻辑的实现,而无需过多关注底层协议细节。
安装步骤
使用 Go Modules 进行安装:
go get github.com/mark3labs/mcp-go
服务器配置
MCP 服务器需要 MCP 客户端通过 JSON-RPC 协议进行连接和交互。客户端需要配置以下信息以启动和连接到 mcp-go 服务器:
{ "serverName": "Demo \uD83D\uDE80", // MCP 服务器的名称,将在初始化握手时发送给客户端,可以自定义 "command": "./your-server-binary", // 启动 MCP 服务器的可执行文件路径。需要将 "your-server-binary" 替换为实际编译后的服务器程序路径。如果服务器程序在 PATH 环境变量中,则可以直接使用程序名,否则需要提供完整路径。例如,如果你的服务器程序编译为 mcp-server,且在当前目录下,则可以设置为 "./mcp-server"。 "args": [] // 启动服务器的命令行参数,以字符串数组形式提供。如果服务器启动不需要额外的命令行参数,则设置为空数组即可。 }
基本使用方法
- 创建 MCP 服务器实例: 在 Go 代码中使用 'server.NewMCPServer' 函数创建 MCP 服务器实例,并指定服务器名称和版本。
- 注册资源、工具和 Prompt: 使用 's.AddResource', 's.AddTool', 's.AddPrompt' 等方法向服务器注册资源、工具和 Prompt,并提供相应的处理函数。
- 启动服务器: 根据需要选择传输协议,使用 'server.ServeStdio(s)' 启动 Stdio 服务器,或使用 'server.NewSSEServer(s).Start(":8080")' 启动 SSE 服务器。
- 客户端连接和交互: 配置 MCP 客户端 (例如基于 mcp-go/client 库开发的客户端) 连接到运行的 MCP 服务器。客户端可以通过发送 JSON-RPC 请求来调用工具、读取资源或获取 Prompt。
示例代码
仓库的 'README.md' 文件和 'examples' 目录下提供了详细的代码示例,可以参考这些示例快速上手 mcp-go 服务器的开发。例如,'README.md' 中的 "Quickstart" 部分展示了如何创建一个简单的计算器 MCP 服务器。
信息
分类
开发者工具