项目简介

Neva 是一个使用 Rust 语言编写的 Model Context Protocol (MCP) 服务器 SDK。它提供了一套框架,用于快速搭建 MCP 服务器,支持工具 (Tools) 注册、资源 (Resources) 管理和 Prompt 模板 (Prompts) 定义等核心 MCP 功能。开发者可以利用 Neva SDK 轻松创建能够与 MCP 客户端(如支持 MCP 协议的 LLM 应用)进行交互的后端服务。

主要功能点

  • MCP 协议实现: 实现了 MCP 协议的核心框架,包括请求处理、响应生成以及 JSON-RPC 通信。
  • 工具 (Tools) 注册与调用: 支持注册和管理工具,允许 MCP 客户端通过标准协议调用服务端提供的工具函数。示例代码展示了如何定义和注册简单的工具函数,并支持不同类型的参数和返回值。
  • 可扩展的传输协议: 目前实现了基于标准输入输出 (Stdio) 的传输协议,为 MCP 服务器与客户端的通信提供基础。架构设计上预留了扩展到其他传输协议(如 WebSocket, SSE)的可能性。
  • 能力声明: 服务器能够声明自身支持的工具等能力,供客户端发现和使用。
  • 基础框架: 提供了应用 (App) 结构体作为服务器的入口,简化了服务器的初始化、配置和运行流程。

注意: 资源 (Resources) 和 Prompt 模板 (Prompts) 的管理功能在当前版本中仅实现了列表接口 ('list'),具体的读取 ('read' 和 'get') 功能尚未完全实现,可能在后续版本中完善。

安装步骤

  1. 安装 Rust 环境: 确保你的开发环境中已安装 Rust 编程语言和 Cargo 包管理器。你可以访问 Rust 官网 按照指引进行安装。

  2. 下载仓库代码: 使用 Git 克隆 'neva' 仓库到本地:

    git clone https://github.com/RomanEmreis/neva.git
    cd neva

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 以建立连接。对于 'neva' 示例服务器,配置信息如下 (JSON 格式):

{
  "serverName": "sample mcp server",  //  服务器名称,在示例代码中被设置为 "sample mcp server"
  "command": "cargo",               //  启动服务器的命令,这里使用 cargo 运行 Rust 项目
  "args": [                       //  传递给 cargo 的参数
    "run",                         //  cargo run 命令用于运行项目
    "--example",                   //  指定运行示例
    "server"                      //  指定运行 examples 目录下的 server 示例
  ]
}

参数注释:

  • 'serverName': MCP 服务器的名称,客户端可能会显示此名称。
  • 'command': 启动 MCP 服务器的可执行文件或命令。对于 Rust 项目,通常使用 'cargo' 命令。
  • 'args': 传递给 'command' 的命令行参数列表。上述配置是针对运行仓库中 'examples/server.rs' 示例服务器的配置。

基本使用方法

  1. 运行示例服务器: 在仓库根目录下,使用 'npx @modelcontextprotocol/inspector cargo run --example server' 命令可以启动示例 MCP 服务器。这个命令会使用 MCP Inspector 工具('npx @modelcontextprotocol/inspector')来辅助运行和测试服务器。

  2. 使用 MCP 客户端连接: 配置好上述服务器配置信息后,在任何兼容 MCP 协议的客户端(例如 MCP Inspector 或其他 LLM 应用)中,即可连接到 Neva SDK 构建的 MCP 服务器。客户端会通过标准输入输出 (Stdio) 与服务器进行 JSON-RPC 通信,从而发现服务器提供的工具,并可以调用这些工具来增强 LLM 应用的功能。

注意: 示例服务器默认只注册了一些简单的工具函数 ('say_hello', 'say_hello_to', 'say_json', 'v2/say_json'),开发者需要根据自身需求,在 'examples/server.rs' 或自定义的项目中添加和配置更复杂的工具、资源和 Prompt 模板。

信息

分类

开发者工具