使用说明(简要、易操作的步骤):
-
项目概述
- 该仓库实现了一个 MCP 服务器框架,核心功能包括:注册并执行工具(Tools)、管理资源(Resources)与提示模板(Prompts),通过 JSON-RPC 进行请求与响应,并提供 Inspector 做在线调试与监控。
-
主要功能点
- MCP 服务器核心:处理 initialize、tools/list、tools/call、resources/list、prompts/list、prompts/get 等 MCP 请求。
- Tools、Resources、Prompts 的注册、查询与执行能力。
- ToolHandler、ResourceHandler、PromptHandler 等抽象,便于自定义后端实现。
- JSON-RPC 交互:统一的请求/响应格式,便于 LLM 客户端的统一处理。
- 多传输支持:HTTP 传输(HTTP/HTTPS)、stdio 子进程传输、以及 Inspector 调试页面。
- Inspector 调试界面:Web UI 展示工具、请求/响应历史、工具表单等,便于本地测试与演示。
- 示例与文档齐备,包含最小服务器、带工具的服务器、AI 代理演示等示例代码。
-
安装与运行
- 依赖与环境:需要 Rust(推荐 1.70 及以上)。
- 构建与运行的核心步骤通常是:
- 通过 cargo build 构建库与示例程序;
- 通过运行示例(如 server_with_tools)来启动一个 MCP 服务器(HTTP 端口 3000,Inspector 端口 8123);
- 使用 MCP 客户端(仓库内提供的 McpClient)连接到服务器(若使用 HTTP 传输则提供服务端地址,如 http://localhost:3000;若使用 stdio 传输则提供相应的命令以启动服务器进程)。
- 服务器示例通常包含:
- 一个 Minimal Server(1 tool)的演示;
- 带有 Inspector 的工具服务器(8 个工具)演示;
- 浏览器自动化等扩展示例。
-
服务器配置(JSON,适用于 MCP 客户端建立连接的描述) 注:MCP 客户端需要提供服务器启动信息来建立连接。以下配置示例分两种模式说明:
- HTTP 传输(直接通过网络连接 MCP 服务器): { "name": "Demo Tools Server", "url": "http://localhost:3000", "auto_connect": true } 注释:name 为服务器展示名称,url 指向 MCP 服务器的 HTTP 端点;auto_connect 表示客户端是否在启动后自动连接。
- stdio/Subprocess 传输(通过命令启动 MCP 服务器进程): { "name": "Demo Tools Server", "command": "cargo", "args": ["run", "--example", "server_with_tools", "--release"] } 注释:command 为用于启动服务器的命令,args 为传递给命令的参数。此模式适用于通过子进程启动服务器,例如本地开发时直接运行仓库中的示例服务器。
- 备注
- MCP 服务器的主要目标是对接 MCP 客户端,因此在实际部署时,请根据环境选择合适的传输方式(HTTP 更易于部署,stdio 适合本地开发与集成测试)。
- 服务器也提供 Inspector,用于对工具、请求与响应进行交互式测试与调试。
-
基本使用方法(简要)
- 启动 MCP 服务器(示例 1:HTTP 端口 3000):
- 进入服务器示例目录,执行 cargo run --example server_with_tools
- 配置 MCP 客户端以连接服务器:
- 若使用 HTTP 传输,配置客户端的服务器地址为 http://localhost:3000。
- 若使用 stdio 传输,使用上述 JSON 配置启动服务器作为子进程并连接。
- 客户端操作:
- 客户端可通过 MCP 协议读取工具列表、调用工具、读取资源、获取 Prompts。
- 也可以通过 Inspector 界面在浏览器中调试工具与请求。
- 启动 MCP 服务器(示例 1:HTTP 端口 3000):
-
备注与扩展
- 代码中提供了多种示例服务器和工具实现,便于快速上手与扩展。
- 如需自定义 ToolHandler、ResourceHandler、PromptHandler,可实现相应 trait 并赋予服务器实例。
信息
分类
AI与计算