项目简介
mcp-go 是 Model Context Protocol (MCP) 的 Go 语言实现,它提供了一个高效、简洁的方式来构建 MCP 服务器。MCP 服务器充当 LLM 应用的后端,负责管理和提供上下文信息、工具以及 Prompt 模板,从而帮助开发者构建功能丰富的 LLM 应用。
主要功能点
- 资源管理: 允许 MCP 服务器托管和管理各种数据资源,并向 LLM 客户端提供标准化的数据访问能力。
- 工具注册与执行: 支持注册和执行外部工具,使 LLM 能够调用外部功能,扩展 LLM 的能力边界。
- Prompt 模板: 提供 Prompt 模板的定义和渲染功能,支持定制化 LLM 交互模式,优化 LLM 的输出效果。
- JSON-RPC 协议: 采用标准的 JSON-RPC 协议与客户端通信,确保了协议的通用性和易用性。
- 多种传输协议支持: 目前主要支持 Stdio 传输协议,方便快速部署和集成。
- 会话管理与能力声明: 服务器端负责会话管理和能力声明,为 LLM 应用提供安全、可扩展的上下文服务框架。
安装步骤
-
确保已安装 Go 语言环境。
-
使用 'go get' 命令安装 mcp-go 库:
go get github.com/mark3labs/mcp-go
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令和参数才能建立连接。以下是一个基于 Stdio 传输协议的 MCP 服务器配置示例 (JSON 格式):
{ "serverName": "Demo Server", "serverVersion": "1.0.0", "transport": "stdio", "command": "your_mcp_server_binary", // 请替换为您的 mcp-go 服务器程序的可执行文件路径 "args": [] // 启动参数,本示例中无需参数 }
配置参数说明:
- 'serverName': MCP 服务器的名称,例如 "Demo Server" (可自定义)。
- 'serverVersion': MCP 服务器的版本,例如 "1.0.0" (请参考实际服务器版本)。
- 'transport': 使用的传输协议,这里配置为 "stdio" (标准输入输出)。
- 'command': 重要: MCP 服务器程序的可执行文件路径。您需要将 'your_mcp_server_binary' 替换为您编译或构建的 mcp-go 服务器程序的可执行文件路径。如果您的服务器程序在系统的 PATH 环境变量中,则只需填写可执行文件名即可。
- 'args': 启动参数列表,本示例中的服务器程序无需额外的启动参数,因此配置为空数组 '[]'。 如果您的服务器程序需要特定的启动参数,请在此处配置。
请注意: 上述 'command' 字段需要根据您实际部署 mcp-go 服务器的方式进行调整,确保 MCP 客户端能够正确找到并启动 MCP 服务器程序。
基本使用方法
- 创建 MCP 服务器实例: 使用 'server.NewMCPServer' 创建 MCP 服务器,并设置服务器名称和版本。
- 添加资源、工具和 Prompt: 使用 's.AddResource', 's.AddTool', 's.AddPrompt' 等方法向服务器注册资源、工具和 Prompt 模板,并实现相应的处理函数。
- 选择传输协议并启动服务: 使用 'server.ServeStdio' 或其他传输协议的 Serve 函数启动 MCP 服务器,例如 'server.ServeStdio(s)' 启动基于 Stdio 的服务器。
- 客户端连接: MCP 客户端根据上述 服务器配置 中的信息,配置连接到您的 mcp-go 服务器。客户端即可通过 MCP 协议与服务器进行通信,调用工具、获取资源和 Prompt。
更详细的使用方法和示例,请参考仓库中的 'README.md' 文档和 'examples/' 目录下的示例代码。
信息
分类
开发者工具