使用说明

项目简介

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': 服务器的描述信息,用于在客户端界面展示。

基本使用方法

  1. 编译示例服务器: 进入 'mcp-core' 仓库目录,编译示例服务器 'echo_server.rs':

    cargo build --examples

    或者,如果需要 SSE 支持,编译时启用 'sse' feature:

    cargo build --examples --features sse
  2. 运行示例服务器: 根据你选择的传输协议,运行相应的服务器程序。

    • Stdio 服务器: 直接运行编译后的 'echo_server' 可执行文件(通常位于 'target/debug/examples/echo_server')。

    • SSE 服务器: 运行编译后的 'echo_server' 可执行文件,并确保启用了 'sse' feature。服务器默认会在 'http://127.0.0.1:3000/sse' 提供 SSE 端点。

  3. 运行示例客户端: 编译并运行示例客户端 '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与计算