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 的支持选项。