使用说明
项目简介
mcp-go 是一个用 Go 语言实现的 Model Context Protocol (MCP) SDK。它旨在帮助开发者快速构建 MCP 服务器和客户端,以便在大型语言模型 (LLM) 应用中标准化地提供上下文信息和功能。该仓库主要关注 MCP 协议的 Go 语言实现,并提供了一些示例服务器,展示如何使用 SDK 构建 MCP 服务器。
主要功能点
- 资源管理: 支持 MCP 协议中的资源 (Resources) 功能,允许服务器托管和管理各种类型的数据资源,并提供客户端访问能力。例如,'examples/fs' 示例展示了如何将本地文件系统作为资源暴露给客户端。
- 工具注册与执行: 支持 MCP 协议中的工具 (Tools) 功能,允许服务器注册和执行外部功能,并使 LLM 客户端能够调用这些工具。例如,'examples/weather' 示例展示了如何注册一个天气查询工具。
- Prompt 模板: 虽然代码中包含了 Prompt 相关的结构定义,但仓库的示例和 Roadmap 中没有明确提及 Prompt 模板的具体实现和示例。不过,从代码结构来看,具备支持 Prompt 模板的基础框架。
- JSON-RPC 协议: 使用 JSON-RPC 协议进行客户端和服务器之间的通信,符合 MCP 规范。
- Stdio 传输: 默认支持 Stdio (标准输入输出) 作为传输协议,方便本地部署和测试。
- 可扩展性: 通过拦截器 (Interceptors) 设计,允许用户自定义请求处理逻辑,增强服务器的功能和灵活性。
安装步骤
由于 'mcp-go' 主要是一个 SDK 库,安装步骤主要是将其作为依赖引入到你的 Go 项目中。如果你只是想运行示例服务器,可以按照以下步骤操作:
- 安装 Go 环境: 确保你的机器上已经安装了 Go 语言环境 (建议 Go 1.20 或更高版本)。
- 获取仓库: 使用 'git clone' 命令克隆 'mcp-go' 仓库到本地:
git clone https://github.com/riza-io/mcp-go.git cd mcp-go - 运行示例服务器: 'examples' 目录下包含了一些示例服务器。例如,运行 'fs' 示例服务器:
或者运行 'weather' 示例服务器 (需要设置 'OPENWEATHER_API_KEY' 环境变量):cd examples/fs go run main.go /path/to/your/directory # 将 /path/to/your/directory 替换为你想要暴露的目录
注意: 运行 'weather' 示例需要提前在 OpenWeatherMap 注册账号并获取 API Key。cd examples/weather export OPENWEATHER_API_KEY=你的OpenWeatherMap API Key # 替换为你的 API Key go run main.go
服务器配置
MCP 服务器是为 MCP 客户端设计的后端服务。客户端需要配置服务器的启动命令和参数才能连接。以下是针对 'examples/fs' 示例服务器的 MCP 客户端配置示例 (JSON 格式):
{ "mcpServers": { "fs_server": { // 服务器名称,客户端自定义 "command": "/path/to/mcp-go/examples/fs/main", // MCP 服务器可执行文件的路径 (根据你的实际路径修改) "args": [ // 传递给服务器的命令行参数 "/path/to/root/directory" // 你希望暴露为资源的根目录 (根据你的实际路径修改) ] } } }
配置参数说明:
- '"fs_server"': 服务器的名称,可以自定义,用于在客户端中标识和引用该服务器。
- '"command"': MCP 服务器可执行文件的绝对路径。你需要根据 'examples/fs/main.go' 编译生成可执行文件,并在此处填写正确的路径。如果你直接在 'examples/fs' 目录下使用 'go run main.go ...' 启动服务器,则此处应填写 'go run main.go',但更推荐先编译成可执行文件再配置。
- '"args"': 传递给服务器可执行文件的命令行参数,以数组形式提供。'examples/fs' 示例服务器接受一个目录路径作为参数,表示要暴露的根目录。请根据实际服务器的需求配置参数。
重要提示: '/path/to/mcp-go' 和 '/path/to/root/directory' 需要替换为你实际的文件路径。
基本使用方法
- 启动 MCP 服务器: 根据示例或你自定义的服务器代码,启动 MCP 服务器。服务器会监听标准输入,并通过标准输出发送响应。
- 配置 MCP 客户端: 在 MCP 客户端 (例如 Claude Desktop 或其他支持 MCP 的应用) 中,配置 MCP 服务器的连接信息,主要是服务器的启动命令和参数,参考上面的服务器配置示例。
- 客户端与服务器交互: 客户端启动后,会自动尝试连接到配置的 MCP 服务器。连接成功后,客户端可以向服务器发送 MCP 请求 (例如列出资源、调用工具等),服务器会处理请求并返回响应。
例如,使用 Claude Desktop 连接 'fs' 示例服务器:
- 按照 "安装步骤" 中的说明运行 'examples/fs/main.go' 服务器。
- 打开 Claude Desktop 的设置,找到 "MCP Servers" (MCP服务器) 配置项。
- 点击 "Add Server" (添加服务器) 或类似按钮。
- 填写服务器配置信息,将上面提供的 JSON 配置示例粘贴到配置框中,并根据你的实际路径修改 '"command"' 和 '"args"'。
- 保存配置。Claude Desktop 应该会自动连接到你的 'fs_server'。
- 在 Claude Desktop 中,你就可以使用来自 'fs_server' 提供的文件系统资源了。例如,在 Claude 的 Prompt 中,你可以使用 'read_resource://fs_server/file:///path/to/a/file.txt' 来引用服务器提供的文件资源。
注意: 具体的使用方式和客户端操作会依赖于你使用的 MCP 客户端软件。请参考 MCP 客户端的文档了解详细用法。
信息
分类
开发者工具