项目简介

mcp-attr 是一个 Rust crate,专注于简化 Model Context Protocol (MCP) 服务器的开发。它通过 Rust 的声明式属性和强大的类型系统,使得开发者能够以更简洁、高效的方式构建 MCP 服务器后端,同时也方便 AI 理解和使用。该 crate 旨在降低 MCP 服务器的开发门槛,让开发者能够更专注于业务逻辑的实现。

主要功能点

  • 声明式描述: 使用 Rust 属性 (如 '#[mcp_server]', '#[prompt]', '#[resource]', '#[tool]') 以声明式的方式定义 MCP 服务器,减少代码编写量,提高可读性和可维护性。
  • 类型系统: 利用 Rust 的类型系统来表达 MCP 客户端所需的信息,减少代码冗余,并利用类型检查辅助 AI 进行代码编写。
  • 支持 MCP 核心方法: 通过属性宏自动实现 MCP 协议中定义的 'prompts/list', 'prompts/get', 'resources/list', 'resources/read', 'resources/templates/list', 'tools/list', 'tools/call' 等核心方法。
  • 易于测试: 内置 'McpClient' 用于方便地进行服务器端测试。
  • 错误处理: 提供 'mcp_attr::Error' 和 'mcp_attr::Result' 类型,方便进行规范化的错误处理。
  • 状态管理: 强调使用 'Mutex' 等线程安全类型进行状态管理,支持并发场景。

安装步骤

  1. 确保已安装 Rust 运行环境。

  2. 在你的 Rust 项目的 'Cargo.toml' 文件中,添加 'mcp-attr' 依赖:

    [dependencies]
    mcp-attr = "0.0.2"
    tokio = "1.43.0"

服务器配置

由于 'mcp-attr' 是一个 Rust library,你需要创建一个 Rust 项目并使用该库来构建 MCP 服务器。以下是一个 MCP 客户端配置示例,用于连接基于 'mcp-attr' 构建的服务器。

{
  "serverName": "example-mcp-server",
  "command": "cargo run",
  "args": [],
  "协议版本": "2024-11-05 (当前库支持的协议版本)",
  "传输协议": "stdio (当前库主要支持的传输协议,通过标准输入输出通信)"
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 启动 MCP 服务器的命令。对于 'mcp-attr' 创建的服务器,通常使用 'cargo run' 来运行 Rust 项目。
  • 'args': 传递给启动命令的参数,本例中无需额外参数。
  • '协议版本': 指示 MCP 客户端应使用的协议版本,需要与 'mcp-attr' 库支持的协议版本一致 (当前为 '2024-11-05')。
  • '传输协议': 指定 MCP 客户端和服务器之间通信的协议,'mcp-attr' 库主要支持 'stdio' 协议。

注意: 实际使用时,你需要根据你创建的 Rust 项目的实际情况调整 'command' 和 'args'。 如果你的服务器需要特定的命令行参数,请添加到 'args' 数组中。

基本使用方法

  1. 创建 Rust 项目: 使用 'cargo new your_mcp_server' 创建一个新的 Rust 项目。
  2. 添加依赖: 在 'Cargo.toml' 中添加 'mcp-attr' 和 'tokio' 依赖 (如安装步骤所示)。
  3. 编写服务器代码: 创建一个 Rust 文件 (例如 'src/main.rs'),并使用 'mcp-attr' 提供的属性宏和函数来定义你的 MCP 服务器。参考 'README.md' 中的 "Quick Start" 和 "Usage" 部分的代码示例,实现 'McpServer' trait,并使用 '#[mcp_server]' 属性、'#[prompt]'、'#[resource]'、'#[tool]' 属性来声明式地定义 MCP 方法。
  4. 启动服务器: 在 'main' 函数中使用 'serve_stdio' 函数启动服务器。
  5. 配置 MCP 客户端: 配置 MCP 客户端,指定服务器的启动命令和参数 (如上述 "服务器配置" 示例)。
  6. 测试: 使用 'mcp-attr' 提供的 'McpClient' 进行服务器端测试,确保服务器功能符合预期。

通过 'mcp-attr',你可以利用 Rust 的强大功能和声明式特性,快速构建高效、可维护的 MCP 服务器,为你的 LLM 应用提供强大的上下文服务能力。

信息

分类

开发者工具