AIVI MCP 服务器实现

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个基于 MCP(Model Context Protocol)的服务器端框架,用于向 LLM 客户端提供规范化的资源、工具以及提示模板的访问与执行能力。核心目标是通过统一的 JSON-RPC 接口,向 AI 客户端暴露语言规范、可执行的工具以及可定制的 Prompt 模板,从而构建可扩展的上下文服务。
  • 主要功能点

    • 资源管理(Resources):托管并管理用于数据访问的资源,提供资源的清单和读取能力。
    • 工具注册与执行(Tools):注册外部工具并支持通过 MCP 调用工具、获取执行结果及结构化内容。
    • 提示模板(Prompts):定义和渲染可定制的提示模板,以支持多种 LLM 交互模式。
    • JSON-RPC 通信:服务器通过 JSON-RPC 与客户端交互,处理初始化、读取资源、调用工具等请求,返回规范的响应。
    • 会话与能力声明:服务器在会话中声明能力、并对是否允许执行有特定策略控制(如是否允许执行有副作用的工具)。
    • 标准传输支持:以标准 MCP 预期的传输形式(如 stdio)进行通信,方便与现有 MCP 客户端集成。
  • 安装步骤

    • 安装 Rust 与 Cargo,然后在项目工作区构建 MCP 服务端组件(AIVI 的 MCP 服务可能通过命令行子命令触发:如 aivi mcp serve)。
    • 构建命令示例(说明性,不包含实际代码片段)
      • 使用 cargo 构建包含 MCP 服务的包
      • 如有 CLI,执行对应的子命令启动服务
    • 运行前提
      • 需要已安装的 Rust 开发环境,以及打包内置的 specs 资源(仓库中已包含打包的 specs)。
  • 服务器配置(MCP 客户端使用的连接信息) 注:MCP 客户端不需要直接改动服务端实现,但为方便对接,给出一个示意的配置信息格式: { "serverName": "AIVI Spec MCP Server", "command": "aivi", "args": ["mcp", "serve"] } 说明:

    • serverName:服务器对外的名称,便于标识与管理。
    • command/args:用于启动服务器的命令及参数,通常对应仓库中提供的 CLI(如 aivi mcp serve)。
    • 说明:该服务器端实现内置了 bundled specs,MCP 客户端通过初始化获得工具列表、资源列表以及对应的读取/执行能力。若需要 UI 助力,可在启动命令中追加相应参数(如 --ui)。
  • 基本使用方法

    • 启动服务器:通过指定的命令启动 MCP 服务端(如 aivi mcp serve),服务器将加载打包的规范资源。
    • 客户端交互流程:
      • 通过 initialize 请求建立会话并获取服务器能力信息。
      • 请求 resources/list、tools/list 获取资源与工具的元数据。
      • 请求 resources/read 获取指定资源内容(如规格文档)的文本。
      • 使用 tools/call 调用注册的工具,若工具具有副作用需遵循策略(如需要开启允许副作用的选项)。
      • 根据返回的内容渲染提示模板(Prompts)并在 LLM 侧接入相应的上下文信息。
    • 运行与扩展性:
      • 服务器设计支持标准的 MCP 模式扩展,便于将来扩展新的资源类型、工具及模板渲染能力。
      • 如需 UI inspector/driver,启动时可加入对 UI 的支持选项。

服务器信息