使用说明

项目简介

Hello MCP Go Server 是一个使用 Go 语言编写的 MCP (Model Context Protocol) 服务器示例。它演示了如何使用 'mcp-golang' 库构建符合 MCP 协议的服务端应用,为 LLM 客户端提供资源访问、工具调用和 Prompt 模板渲染等功能。

主要功能点

  • 工具 (Tools) 注册与执行: 服务器注册了两个简单的工具:
    • 'hello': 接收调用者名称,返回问候语。
    • 'calculate': 接收两个数字,返回它们的和。
  • Prompt 模板 (Prompts) 定义: 服务器注册了一个名为 'promt_test' 的 Prompt 模板,可以根据输入的标题生成包含问候语的用户角色消息。
  • 资源 (Resources) 托管: 服务器注册了一个名为 'resource_test' 的资源,URI 为 'test://resource',内容为简单的 JSON 文本。
  • 基于 Stdio 的传输协议: 使用标准输入/输出 (Stdio) 作为 MCP 服务器与客户端之间的通信通道。
  • JSON-RPC 协议: 遵循 MCP 协议规范,使用 JSON-RPC 格式进行请求和响应的交互。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/softchris/hello-mcp-go.git
    cd hello-mcp-go
  2. 安装依赖:

    go mod tidy
  3. 构建项目:

    go build main.go

    构建成功后,会在当前目录下生成可执行文件 'main' (或 'main.exe' 在 Windows 下)。

服务器配置

MCP 客户端需要配置连接到此 MCP 服务器的命令。以下是一个 'mcp.json' 配置示例,适用于 Copilot Agent 等 MCP 客户端。请注意将 'command' 字段的值替换为 'main' 可执行文件的绝对路径

{
  "servers": [
    {
      "name": "hello-mcp-go",
      "command": "/path/to/your/hello-mcp-go/main",
      "args": []
    }
  ]
}

配置参数说明:

  • 'name': 服务器名称,可以自定义,用于在客户端中标识该服务器。
  • 'command': 必填。MCP 服务器可执行文件的绝对路径。请根据你的实际路径进行修改。例如,如果你的 'hello-mcp-go' 仓库在 '/home/user/repos/hello-mcp-go' 目录下,且构建后的可执行文件为 'main',则应配置为 '/home/user/repos/hello-mcp-go/main'。
  • 'args': 启动服务器时需要传递的命令行参数,本项目示例中不需要额外的参数,因此为空数组 '[]'。

基本使用方法

  1. 启动服务器: 在终端中,导航到项目根目录,运行以下命令启动 MCP 服务器:

    ./main

    go run main.go

    服务器启动后,会输出 "Server started, waiting for requests...",表示服务器已准备好接收客户端请求。

  2. 配置 MCP 客户端并连接: 根据你的 MCP 客户端 (例如 GitHub Copilot Agent) 的文档,配置 'mcp.json' 文件,指定服务器的 'command' 和其他必要信息。确保 'command' 配置正确指向已构建的 'main' 可执行文件。

  3. 在 MCP 客户端中测试工具和 Prompt: 连接成功后,你可以在 MCP 客户端中尝试调用已注册的工具和 Prompt。例如,在 Copilot Agent 中,你可以输入类似于 "calculate 2 and 4" 的指令来测试 'calculate' 工具,或尝试使用配置的 Prompt 模板进行交互。

注意: 本示例服务器使用 Stdio 作为传输协议,客户端和服务器通过标准输入输出进行通信。确保你的 MCP 客户端支持 Stdio 协议。

信息

分类

开发者工具