使用说明

项目简介

gomcp 是一个用 Go 语言实现的 Model Context Protocol (MCP) 服务器,它允许开发者构建后端应用,为支持 MCP 协议的 LLM 客户端(如 Claude 桌面应用)提供上下文信息和外部功能。该项目基于 Anthropic 官方定义的 MCP 协议,并提供了资源管理、工具注册与执行以及 Prompt 模板渲染等核心功能。

主要功能点

  • 资源管理 (Resources): 虽然文档和代码中没有明确提及资源管理功能的实现细节,但 MCP 服务器定义中包含资源管理,理论上 gomcp 应该支持资源的托管和数据访问能力,具体实现可能需要进一步的代码分析或扩展。
  • 工具注册和执行 (Tools): gomcp 允许开发者注册 Go 语言实现的工具,并通过 MCP 协议暴露给 LLM 客户端。仓库提供了详细的代码示例,展示了如何定义工具的配置、上下文以及处理函数,并将其注册到 MCP 服务器。
  • Prompt 模板渲染 (Prompts): gomcp 支持从 YAML 文件加载和管理 Prompt 模板。开发者可以定义带参数的 Prompt,并由 MCP 服务器根据客户端请求渲染后提供给 LLM,实现可定制的 LLM 交互模式。
  • JSON-RPC 通信: gomcp 使用 JSON-RPC 协议与客户端通信,处理客户端的请求并返回响应。
  • Stdio 传输协议: gomcp 默认支持 Stdio 传输协议,方便与 Claude 桌面应用等通过标准输入输出进行集成。
  • 可扩展性: 通过模块化的设计,gomcp 允许开发者扩展工具和 Prompt,构建功能丰富的 MCP 服务器。

安装步骤

  1. 安装 Go 环境: 确保你的开发环境中已安装 Go 语言 (>= 1.16)。
  2. 获取仓库: 使用 'go get' 命令下载 gomcp 仓库:
    go get github.com/llmcontext/gomcp
  3. 构建服务器: 进入 'cmd' 目录,执行 'go build' 命令编译 'main.go' 文件,生成可执行文件 'main' (或 'main.exe' 在 Windows 下)。

服务器配置

MCP 服务器需要一个 JSON 格式的配置文件来启动。以下是一个示例配置,你需要根据实际情况修改:

{
  "serverInfo": {
    "name": "gomcp-server",  // MCP 服务器的名称,客户端会显示这个名称
    "version": "0.1.0"     // MCP 服务器的版本,用于版本管理
  },
  "logging": {
    "file": "/var/log/gomcp/mcp_server.log", // 日志文件路径,根据实际情况修改
    "level": "debug",       // 日志级别,可选 "debug", "info", "warn", "error"
    "withStderr": false     // 是否将日志输出到标准错误流
  },
  "prompts": {
    "file": "/etc/gomcp/prompts.yaml"     // Prompt 模板定义文件路径,根据实际情况修改为你的 prompts.yaml 文件路径
  },
  "tools": [
    {
      "name": "example-tool-provider", // 工具提供者的名称,用于组织工具
      "description": "Example tools provided by gomcp", // 工具提供者的描述
      "configuration": {
        // 工具提供者的配置信息,根据你的工具实现定义,示例中可能不需要配置
      }
    }
  ]
}

MCP 客户端配置 (以 Claude 客户端为例):

为了让 MCP 客户端(例如 Claude 桌面应用)连接到 gomcp 服务器,你需要在客户端中配置服务器信息。配置信息通常是 JSON 格式,包含服务器的启动命令及其参数。

{
  "servers": [
    {
      "serverName": "gomcp-server",   // 必须与 gomcp 服务器配置文件中的 serverInfo.name 一致
      "command": "/path/to/gomcp/cmd/main", // gomcp 服务器可执行文件的绝对路径,根据你的实际路径修改
      "args": [
        "--configFile",
        "/path/to/gomcp/config.json"  // gomcp 服务器配置文件的绝对路径,根据你的实际路径修改
      ]
    }
  ]
}

参数说明:

  • 'serverName': MCP 服务器的名称,必须与 gomcp 服务器配置文件中的 'serverInfo.name' 字段值完全一致。
  • 'command': gomcp 服务器可执行文件 'main' 的绝对路径。你需要将其替换为你编译后的 'main' 文件在你的系统中的实际位置。
  • 'args': 启动 gomcp 服务器时需要传递的命令行参数。示例中使用了 '--configFile' 参数,指向 gomcp 服务器的配置文件 'config.json' 的绝对路径。你需要根据你的配置文件路径进行修改。

注意: '/path/to/gomcp/cmd/main' 和 '/path/to/gomcp/config.json' 均为占位符,你需要根据 gomcp 项目在你系统中的实际存储路径以及配置文件的位置进行替换。

基本使用方法

  1. 准备配置文件: 根据 "服务器配置" 部分的说明,创建并配置 'config.json' 文件,包括服务器信息、日志配置、Prompt 文件路径和工具配置等。
  2. 准备 Prompt 模板文件: 如果需要使用 Prompt 功能,创建 'prompts.yaml' 文件,并按照仓库 README 中 "prompts definition file" 部分的示例定义 Prompt 模板。
  3. 实现工具: 如果需要扩展工具功能,参考仓库 README 中 "Usage" 部分的示例代码,实现 Go 语言的工具处理函数,并在 'tools.RegisterTools' 函数中注册你的工具。
  4. 启动服务器: 在 'cmd' 目录下,使用以下命令启动 gomcp 服务器:
    ./main --configFile config.json  # 假设配置文件名为 config.json
    请将 'config.json' 替换为你实际配置文件的名称,并确保命令在 'cmd' 目录下执行,或者使用 'main' 可执行文件的绝对路径执行。
  5. 配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端(如 Claude 桌面应用)中,根据 "MCP 客户端配置" 部分的说明,配置 gomcp 服务器的连接信息。
  6. 使用 LLM 客户端: 启动 LLM 客户端,客户端应该能够自动连接到 gomcp 服务器,并发现服务器提供的工具和 Prompt。你可以在 LLM 客户端中调用已注册的工具或使用 Prompt 功能。

详细使用方法: 请参考仓库的 README.md 文件以及 'mcpnotion' 示例项目,以获取更详细的工具和 Prompt 定义、注册和使用方法。

信息

分类

AI与计算