使用说明
项目简介
mcp-core 是一个使用 Rust 语言开发的库,旨在实现 Model Context Protocol (MCP) 规范。该库提供了构建 MCP 服务器的基础框架,允许开发者快速搭建能够与 MCP 客户端通信的服务端应用。核心功能包括处理 MCP 协议消息、管理和执行工具 (Tools),并支持多种传输协议,如 Stdio 和 Server-Sent Events (SSE)。
主要功能点
- MCP 协议实现: 实现了 MCP 协议的核心消息处理机制,包括请求 (Request)、响应 (Response) 和通知 (Notification) 的处理。
- 工具 (Tools) 注册与调用: 支持注册和管理各种工具,允许 MCP 客户端通过标准化的方式调用这些工具,扩展 LLM 的能力。示例中提供了一个简单的 echo 工具。
- 多种传输协议支持:
- Stdio: 支持通过标准输入/输出流 (Stdio) 进行通信,适用于本地进程间通信或简单的命令行应用场景。
- SSE (Server-Sent Events): 支持基于 HTTP SSE 的传输协议,允许服务器向客户端推送事件流,适用于 Web 应用和需要实时通信的场景。
- 会话管理: 通过 SSE 传输协议,支持基于 Session 的连接管理,为每个客户端创建独立的会话。
- 能力声明 (Capabilities): 服务器可以声明自身支持的功能,例如是否支持工具列表更新等。
- 安全值 (Secure Values): 客户端支持安全值配置,允许在工具调用时安全地注入 API 密钥等敏感信息,避免泄露给 LLM。
安装步骤
由于 'mcp-core' 是一个 Rust 库,你需要先安装 Rust 开发环境。如果已经安装,可以使用 'cargo add' 命令将其添加到你的 Rust 项目依赖中:
cargo add mcp-core
或者,手动编辑你的 'Cargo.toml' 文件,在 '[dependencies]' 部分添加:
[dependencies] mcp-core = "0.1.42"
如果你需要使用 SSE 传输协议,请确保启用 'http' 功能:
[dependencies] mcp-core = { version = "0.1.42", features = ["sse"] }
服务器配置
MCP 服务器需要配置启动命令及其参数,以便 MCP 客户端能够连接并与之通信。以下分别针对 Stdio 和 SSE 传输协议提供配置示例。
1. Stdio 传输配置
- 服务器启动命令 (command): 'cargo run --bin echo_server' (假设你已将 'examples/echo_server.rs' 编译为 'echo_server' 可执行文件)
- 参数 (args): '[]' (空数组,因为 Stdio 传输通常不需要额外的参数)
{ "serverName": "echo-stdio-server", "command": "cargo run --bin echo_server", "args": [], "transport": "stdio", "description": "Echo server using Stdio transport" }
2. SSE 传输配置
- 服务器启动命令 (command): 'cargo run --bin echo_server --features sse' (假设你已启用 'sse' feature 编译 'examples/echo_server.rs')
- 参数 (args): '[]' (空数组,默认 SSE 服务器监听 '127.0.0.1:3000')
{ "serverName": "echo-sse-server", "command": "cargo run --bin echo_server --features sse", "args": [], "transport": "sse", "baseUrl": "http://127.0.0.1:3000", "description": "Echo server using SSE transport" }
参数注释:
- 'serverName': 服务器的名称,用于在客户端标识服务器连接。
- 'command': 启动 MCP 服务器的命令,需要确保该命令可以执行并启动服务器程序。
- 'args': 传递给服务器启动命令的参数列表,以数组形式提供。
- 'transport': 指定使用的传输协议,可以是 'stdio' 或 'sse'。
- 'baseUrl' (仅 SSE): SSE 服务器的基础 URL,客户端将连接到此 URL 以建立 SSE 连接。
- 'description': 服务器的描述信息,用于在客户端界面展示。
基本使用方法
-
编译示例服务器: 进入 'mcp-core' 仓库目录,编译示例服务器 'echo_server.rs':
cargo build --examples或者,如果需要 SSE 支持,编译时启用 'sse' feature:
cargo build --examples --features sse -
运行示例服务器: 根据你选择的传输协议,运行相应的服务器程序。
-
Stdio 服务器: 直接运行编译后的 'echo_server' 可执行文件(通常位于 'target/debug/examples/echo_server')。
-
SSE 服务器: 运行编译后的 'echo_server' 可执行文件,并确保启用了 'sse' feature。服务器默认会在 'http://127.0.0.1:3000/sse' 提供 SSE 端点。
-
-
运行示例客户端: 编译并运行示例客户端 'echo_client.rs':
cargo run --example echo_client客户端默认使用 SSE 传输协议连接到 'http://localhost:3000/sse' 的服务器。你可以通过命令行参数 '--transport stdio' 切换到 Stdio 传输。
客户端示例代码演示了如何初始化连接、列出工具、调用工具等基本操作。你可以参考示例代码,基于 'mcp-core' 库开发自己的 MCP 服务器和客户端应用。
注意: 本仓库 'mcp-core' 主要提供的是 MCP 协议的库,你需要基于此库构建具体的 MCP 服务器应用,例如资源管理服务器、Prompt 模板服务器等。示例中的 'echo_server' 只是一个简单的演示,用于展示如何使用 'mcp-core' 库搭建一个基本的工具服务。
信息
分类
AI与计算