项目简介
go-go-mcp 是 Model Context Protocol (MCP) 的 Go 语言实现,旨在帮助开发者构建能够与大型语言模型 (LLM) 客户端进行标准化通信的 MCP 服务器。该项目提供了一套完整的框架,用于管理资源、注册工具和定义 Prompt 模板,从而简化 LLM 应用的后端开发。
主要功能点
- MCP 协议实现: 完整实现了 Model Context Protocol 规范,支持客户端与服务器之间的标准化通信。
- 资源管理: 提供资源托管和数据访问能力,允许 LLM 客户端读取和使用服务器管理的资源。
- 工具注册与执行: 支持注册和执行外部工具,使 LLM 能够调用外部功能,扩展 LLM 的能力边界。
- Prompt 模板: 支持定义和渲染 Prompt 模板,方便定制 LLM 的交互模式。
- 多种传输协议: 支持 Stdio 和 SSE 传输协议,满足不同应用场景的需求。
- 配置管理: 通过 YAML 配置文件进行灵活配置,支持多环境 Profile、工具和 Prompt 源管理、参数默认值和覆盖等高级功能。
- 动态更新: 服务器能够自动监控文件变化,动态加载和更新工具,无需重启服务器。
- 桥接模式: 支持将 SSE 服务器桥接为 Stdio 服务器,方便集成不同协议的客户端。
安装步骤
go-go-mcp 提供了多种安装方式:
-
Homebrew (macOS):
brew tap go-go-golems/go-go-go brew install go-go-golems/go-go-go/go-go-mcp -
apt-get (Debian/Ubuntu):
echo "deb [trusted=yes] https://apt.fury.io/go-go-golems/ /" >> /etc/apt/sources.list.d/fury.list apt-get update apt-get install go-go-mcp -
yum (CentOS/RHEL/Fedora):
echo " [fury] name=Gemfury Private Repo baseurl=https://yum.fury.io/go-go-golems/ enabled=1 gpgcheck=0 " >> /etc/yum.repos.d/fury.repo yum install go-go-mcp -
go get:
go get -u github.com/go-go-golems/go-go-mcp/cmd/go-go-mcp -
直接下载: 从 GitHub Releases 页面下载预编译的二进制文件。
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令及其参数才能连接。以下是 go-go-mcp 服务器的配置示例 (JSON 格式,用于 MCP 客户端配置):
{ "server name": "go-go-mcp-server", "command": "mcp", "args": [ "server", "start", "--transport", "stdio" ], "description": "Go-go-mcp 服务器 (Stdio 传输)" }
参数注释:
- server name: 服务器名称,客户端用于标识和管理多个服务器连接。
- command: 启动 MCP 服务器的可执行文件路径或命令名称 ('mcp' 假设 go-go-mcp 命令已添加到系统 PATH 环境变量)。
- args: 启动服务器的命令行参数,这里配置为使用 Stdio 传输协议。其他可选参数可以包括 '--transport sse --port 3001' 以使用 SSE 协议,或者 '--config config.yaml --profile production' 指定配置文件和 Profile。
- description: 服务器描述,方便客户端用户理解服务器用途。
基本使用方法
-
启动服务器: 使用 'go-go-mcp server start' 命令启动 MCP 服务器。可以选择 Stdio 或 SSE 传输协议,例如:
- Stdio 传输 (默认): 'go-go-mcp server start --transport stdio'
- SSE 传输 (端口 3001): 'go-go-mcp server start --transport sse --port 3001'
-
配置客户端: 在 MCP 客户端中,配置连接到 go-go-mcp 服务器,指定服务器启动命令和参数 (如上面的 JSON 配置示例)。
-
客户端操作: 使用 'go-go-mcp client' 子命令与 MCP 服务器交互,例如:
- 列出 Prompt 模板: 'go-go-mcp client prompts list'
- 执行 Prompt 模板: 'go-go-mcp client prompts execute hello --args '{"name":"World"}''
- 列出工具: 'go-go-mcp client tools list'
- 调用工具: 'go-go-mcp client tools call echo --args '{"message":"Hello, MCP!"}''
更多客户端命令和参数可以使用 'go-go-mcp client --help' 查看。
信息
分类
AI与计算