Go-MCP 使用说明

项目简介

Go-MCP 是一个使用 Go 语言开发的 SDK,旨在简化 Model Context Protocol (MCP) 的集成和使用。它提供了构建 MCP 服务器和客户端所需的核心库和工具,帮助开发者快速搭建基于 MCP 协议的 AI 应用后端服务。

主要功能点

  • MCP 协议核心实现: 完整实现了 MCP 协议规范,支持资源管理、工具注册、Prompt 模板处理等核心功能。
  • 服务端与客户端支持: 既可以作为 MCP 服务器端框架使用,也可以作为客户端 SDK 集成到其他应用中。
  • 多种传输协议: 支持 SSE (Server-Sent Events) 和 Stdio 两种传输方式,适应不同的部署环境和应用场景。
  • 灵活的架构设计: 采用分层架构,易于扩展和定制,方便开发者根据自身需求进行二次开发。
  • 完善的示例代码: 提供详细的服务器端和客户端示例,帮助开发者快速上手和理解 Go-MCP 的使用方法。

安装步骤

  1. 安装 Go 环境: 确保你的开发环境中已安装 Go 1.18 或更高版本。
  2. 获取 Go-MCP SDK: 使用 'go get' 命令下载 Go-MCP SDK:
    go get github.com/ThinkInAIXYZ/go-mcp

服务器配置

MCP 服务器需要配置启动命令和参数才能运行。以下是一个基于 Go-MCP 仓库信息生成的服务器配置示例 (JSON 格式):

{
  "server name": "go-mcp-server",
  "command": "your_server_binary",  // 请替换为你的 Go-MCP 服务器程序编译后的二进制文件路径,例如:'./your_server'
  "args": [
    "--transport", "stdio"         // 可选参数:指定传输协议,例如 "stdio" 或 "sse"。 默认为 stdio。
                                    // 如果使用 SSE 传输,可能需要额外的地址参数,具体请参考服务器程序文档。
  ],
  "description": "Go-MCP 服务器示例配置,使用 Stdio 传输协议"
}

配置说明:

  • 'server name': 服务器的名称,可以自定义。
  • 'command': 必须配置。指向 Go-MCP 服务器程序的可执行文件路径。你需要先编译 examples 或你自定义的服务器代码,然后将路径填写在此处。
  • 'args': 可选配置。服务器启动参数,以数组形式提供。
    • '--transport': 指定传输协议,可选值为 'stdio' 或 'sse'。 如果不指定,默认使用 'stdio'。 如果选择 'sse',可能还需要配置监听地址等参数,请参考具体的服务器示例代码。
  • 'description': 对该配置的描述,可以自定义。

注意:

  • 上述配置中的 'your_server_binary' 需要替换为你实际编译生成的 Go-MCP 服务器程序二进制文件路径。
  • 如果你使用了 'sse' 传输协议,并且服务器程序需要监听地址等参数,请根据服务器代码示例添加到 'args' 数组中。

基本使用方法

  1. 编写 MCP 服务器代码: 参考仓库中的 'examples' 目录,例如 'examples/current_time/main.go',实现你自己的 MCP 服务器逻辑,包括注册工具、资源和 Prompt 等。
  2. 编译服务器代码: 使用 'go build' 命令编译你的服务器代码,生成可执行文件。
  3. 配置 MCP 客户端: 在 MCP 客户端应用中,配置上述的服务器配置信息 (JSON)。客户端会根据配置信息启动服务器进程并建立连接。
  4. 客户端与服务器交互: 客户端通过 Go-MCP SDK 提供的 API,例如 'client.CallTool()'、'client.ListResources()' 等,与 MCP 服务器进行通信,调用工具、获取资源等。
  5. 运行客户端应用: 启动你的 MCP 客户端应用,即可与 Go-MCP 服务器进行交互。

简易步骤示例 (使用 Stdio 传输):

  1. 编译 'examples/current_time/main.go':
    cd examples/current_time
    go build -o current_time_server main.go
    cd ..
    cd ..
  2. 客户端配置 (JSON):
    {
      "server name": "current-time-server",
      "command": "./examples/current_time/current_time_server",
      "args": [
        "--transport", "stdio"
      ],
      "description": "Current time server example using stdio"
    }
  3. 在 MCP 客户端应用中加载上述配置,并使用 Go-MCP 客户端 SDK 与服务器交互。

通过以上步骤,你可以使用 Go-MCP 快速搭建和使用 MCP 服务器,为你的 LLM 应用提供强大的上下文服务能力。

信息

分类

开发者工具