使用说明

项目简介

mcp-go-sdk 是一个用于构建 Model Context Protocol (MCP) 服务器和工具的 Go 语言 SDK。它提供了一整套构建模块,帮助开发者快速创建符合 MCP 协议的服务端应用,以便连接大型语言模型(LLM)客户端,扩展其功能和访问外部数据。该 SDK 包含服务器框架、传输层实现以及工具接口定义,并提供了一些示例工具和服务器,方便用户快速上手。

主要功能点

  • 工具注册与执行: 允许开发者注册自定义工具(Tools),这些工具可以被 LLM 客户端调用以执行特定任务,例如数据查询、代码生成等。
  • JSON-RPC 通信: 基于 JSON-RPC 协议与 MCP 客户端进行通信,处理客户端请求并返回响应。
  • Stdio 传输: 默认支持标准输入/输出 (stdio) 作为传输层,方便在命令行环境下运行和测试 MCP 服务器。
  • 灵活的传输层: 提供抽象的 'Transport' 接口,支持扩展到其他传输协议,如 WebSocket 或 SSE。
  • 示例工具和服务器: 提供了 EchoTool 示例,以及 Groq 和 DuckDB 等更复杂的工具示例,展示了如何使用 SDK 构建实际应用。

安装步骤

  1. 安装 Go 环境: 确保您的开发环境中已安装 Go 语言环境 (版本 >= 1.16)。
  2. 克隆仓库: 使用 Git 克隆 mcp-go-sdk 仓库到本地:
    git clone https://github.com/dentaku7/mcp-go-sdk
  3. 进入示例目录: 选择一个示例服务器目录,例如 'servers/example' 或 'servers/duckdb'。
    cd servers/example
  4. 构建服务器: 使用 'go build' 命令编译服务器程序。例如,在 'servers/example' 目录下:
    go build -o echo-server
    这将在当前目录下生成可执行文件 'echo-server'。

服务器配置

MCP 服务器通常需要配置在 MCP 客户端中才能使用。以 Cursor IDE 为例,您需要在项目根目录下创建 '.cursor/mcp.json' 文件,并配置您的 MCP 服务器。以下是针对 'servers/example/echo.go' 示例服务器的配置:

{
  "mcpServers": {
    "echoServer": { // 服务器名称,可以自定义,用于在客户端中标识
      "command": "./echo-server", // MCP 服务器的可执行文件路径,根据实际构建路径填写
      "args": [], // 启动服务器时需要传递的命令行参数,本例中 echo-server 不需要参数
      "env": {}  // 启动服务器所需的环境变量,本例中 echo-server 不需要环境变量
    }
  }
}

配置参数说明:

  • '"echoServer"': 服务器名称,在客户端中用于引用和管理该服务器连接。您可以自定义名称。
  • '"command": "./echo-server"': 重要参数。指定启动 MCP 服务器的命令。这里假设您在 'servers/example' 目录下构建了 'echo-server' 可执行文件,并且 '.cursor/mcp.json' 文件位于您的项目根目录,因此使用相对路径 './echo-server'。请根据您的实际情况修改路径。
  • '"args": []': 可选参数。如果您的 MCP 服务器启动时需要命令行参数,可以在这里以字符串数组的形式配置。'echo-server' 示例不需要命令行参数,因此配置为空数组 '[]'。
  • '"env": {}': 可选参数。如果您的 MCP 服务器运行依赖特定的环境变量,可以在这里以键值对的形式配置。'echo-server' 示例不需要环境变量,因此配置为空对象 '{}'。

基本使用方法

  1. 启动 MCP 服务器: 在终端中运行您构建的服务器程序。例如,在 'servers/example' 目录下运行:

    ./echo-server

    服务器将开始监听来自 MCP 客户端的请求。

  2. 配置 MCP 客户端: 在 MCP 客户端(如 Cursor IDE)中配置 '.cursor/mcp.json' 文件,确保客户端能够找到并连接到您的 MCP 服务器。

  3. 使用工具: 在 MCP 客户端中,您应该能够看到已注册的工具(例如 'echo' 工具)。通过客户端提供的界面或命令,您可以调用这些工具,并与 LLM 进行交互,利用工具提供的功能。例如,在 Cursor IDE 中,您可以使用 '@echo' 命令来调用 'echo' 工具。

注意: 不同的 MCP 客户端使用方式可能略有不同,请参考您使用的客户端的文档。

信息

分类

开发者工具