项目简介
Rust MCP SDK 是一个使用 Rust 语言开发 Model Context Protocol (MCP) 服务器和客户端的软件开发工具包 (SDK)。它提供了一系列必要的组件,旨在帮助开发者快速构建高效、可靠的 MCP 应用。该 SDK 专注于异步处理和高性能,利用 Rust 语言的优势,为 MCP 生态系统提供强大的基础设施。目前,该 SDK 主要支持标准输入/输出 (stdio) 传输协议,对 SSE (Server-Sent Events) 传输协议的支持正在开发中。
主要功能点
- MCP 服务器和客户端开发: 提供构建 MCP 服务器和客户端应用所需的全部组件。
- 资源管理: 支持 MCP 服务器托管和管理资源,并向客户端提供数据访问能力 (需开发者基于SDK实现)。
- 工具注册与执行: 允许 MCP 服务器注册和执行工具,供 LLM 客户端调用外部功能 (需开发者基于SDK实现)。
- Prompt 模板支持: 虽然文档中没有明确提及 Prompt 模板,但 MCP 的定义包含 Prompt 模板功能,SDK 框架设计上应支持,具体实现需开发者基于SDK进行。
- 异步和高性能: 基于 Rust 异步编程模型构建,提供高性能的 MCP 应用运行能力。
- 类型安全: 利用 'rust-mcp-schema' crate 确保 MCP 消息处理的类型安全。
- Stdio 传输: 当前版本支持基于标准输入/输出 (stdio) 的传输协议进行通信。
安装步骤
由于 'rust-mcp-sdk' 是一个 Rust SDK,你需要先安装 Rust 开发环境。如果已经安装,请跳过此步骤。
-
安装 Rust: 访问 Rust 官网 按照指引安装 Rust 工具链 (rustup, cargo 等)。
-
获取 SDK 代码: 你可以通过以下方式获取 'rust-mcp-sdk' 的代码:
- 作为依赖添加到你的 Rust 项目: 如果你要创建一个新的 MCP 服务器或客户端项目,可以在你的 'Cargo.toml' 文件中添加 'rust-mcp-sdk' 作为依赖。
# Cargo.toml [dependencies] rust-mcp-sdk = "latest_version" # 请替换为 crates.io 上的最新版本号- 克隆 GitHub 仓库: 如果你想查看示例代码或深入了解 SDK,可以克隆整个仓库:
git clone https://github.com/rust-mcp-stack/rust-mcp-sdk cd rust-mcp-sdk -
编译示例 (可选): 仓库中提供了示例服务器和客户端代码,你可以尝试编译并运行它们,以快速了解 SDK 的使用方法。例如,编译 'hello-world-mcp-server' 示例:
cd examples/hello-world-mcp-server cargo run
服务器配置
该 SDK 本身是用于构建 MCP 服务器的工具,不直接提供开箱即用的 MCP 服务器程序。你需要使用该 SDK 编写自己的 MCP 服务器应用。
对于基于 'rust-mcp-sdk' 构建的 MCP 服务器,客户端通常需要配置服务器的启动命令及其参数。 但由于 'rust-mcp-sdk' 仅仅是 SDK,这里无法提供具体的服务器配置信息。
示例服务器配置 (以 'examples/hello-world-mcp-server' 为例,仅供参考)
假设你基于 'rust-mcp-sdk' 构建了一个名为 'my-mcp-server' 的 MCP 服务器应用,并编译生成了可执行文件。客户端可能需要如下配置信息来启动并连接到你的服务器:
{ "serverName": "My Rust MCP Server", "command": "./my-mcp-server", // 服务器可执行文件的路径 (根据实际情况修改) "args": [] // 启动参数,示例中不需要参数 }
请注意: 上述配置仅为示例, 实际的服务器配置取决于你如何使用 'rust-mcp-sdk' 构建你的 MCP 服务器应用。你需要根据你实现的服务器的功能和需求,为 MCP 客户端提供相应的配置说明。
基本使用方法
- 定义服务器细节和能力: 使用 'InitializeResult' 结构体定义服务器的名称、版本、能力等信息。
- 创建传输通道: 使用 'StdioTransport' 创建基于标准输入/输出的传输通道。
- 实现服务器 Handler: 创建一个结构体并实现 'ServerHandler' trait,用于处理 MCP 消息。你需要重写 trait 中的方法来定义服务器的具体行为,例如处理工具列表请求、调用工具请求等。
- 创建 ServerRuntime: 使用 'server_runtime::create_server' 函数,传入服务器细节、传输通道和 Handler 实例,创建 'ServerRuntime'。
- 启动服务器: 调用 'ServerRuntime' 实例的 'start()' 方法来启动 MCP 服务器。
详细的使用方法和示例代码,请参考仓库中的 'examples' 目录,特别是 'hello-world-mcp-server' 示例。 该示例演示了如何创建一个简单的 MCP 服务器,并提供了更详细的步骤和代码说明。
信息
分类
开发者工具