使用说明
项目简介
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 服务器。
安装步骤
- 安装 Go 环境: 确保你的开发环境中已安装 Go 语言 (>= 1.16)。
- 获取仓库: 使用 'go get' 命令下载 gomcp 仓库:
go get github.com/llmcontext/gomcp - 构建服务器: 进入 '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 项目在你系统中的实际存储路径以及配置文件的位置进行替换。
基本使用方法
- 准备配置文件: 根据 "服务器配置" 部分的说明,创建并配置 'config.json' 文件,包括服务器信息、日志配置、Prompt 文件路径和工具配置等。
- 准备 Prompt 模板文件: 如果需要使用 Prompt 功能,创建 'prompts.yaml' 文件,并按照仓库 README 中 "prompts definition file" 部分的示例定义 Prompt 模板。
- 实现工具: 如果需要扩展工具功能,参考仓库 README 中 "Usage" 部分的示例代码,实现 Go 语言的工具处理函数,并在 'tools.RegisterTools' 函数中注册你的工具。
- 启动服务器: 在 'cmd' 目录下,使用以下命令启动 gomcp 服务器:
请将 'config.json' 替换为你实际配置文件的名称,并确保命令在 'cmd' 目录下执行,或者使用 'main' 可执行文件的绝对路径执行。./main --configFile config.json # 假设配置文件名为 config.json - 配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端(如 Claude 桌面应用)中,根据 "MCP 客户端配置" 部分的说明,配置 gomcp 服务器的连接信息。
- 使用 LLM 客户端: 启动 LLM 客户端,客户端应该能够自动连接到 gomcp 服务器,并发现服务器提供的工具和 Prompt。你可以在 LLM 客户端中调用已注册的工具或使用 Prompt 功能。
详细使用方法: 请参考仓库的 README.md 文件以及 'mcpnotion' 示例项目,以获取更详细的工具和 Prompt 定义、注册和使用方法。
信息
分类
AI与计算