项目简介

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 提供了多种安装方式:

  1. Homebrew (macOS):

    brew tap go-go-golems/go-go-go
    brew install go-go-golems/go-go-go/go-go-mcp
  2. 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
  3. 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
  4. go get:

    go get -u github.com/go-go-golems/go-go-mcp/cmd/go-go-mcp
  5. 直接下载: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: 服务器描述,方便客户端用户理解服务器用途。

基本使用方法

  1. 启动服务器: 使用 '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'
  2. 配置客户端: 在 MCP 客户端中,配置连接到 go-go-mcp 服务器,指定服务器启动命令和参数 (如上面的 JSON 配置示例)。

  3. 客户端操作: 使用 '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与计算