Alaya MCP 服务器

使用说明

  • 项目简介
    • Alaya-MCP 是在 Rust 端实现的 MCP 服务端,暴露符合 MCP 标准的接口,用于向 LLM 客户端提供上下文信息、资源管理、工具执行以及提示渲染等能力。服务端核心依赖 AlayaStore(SQLite 后端)来持久化会话、记忆、知识、图谱等数据,并通过 rmcp 框架将 MCP 的工具(Tools)以 JSON-RPC 形式对外暴露。
    • 服务器实现的核心组件包括:
      • 资源与记忆管理: episodic memories、embeddings、Bjork 弱/强化等力量模型,提供记忆的读取、查询与更新。
      • 工具集合:如 remember、recall、learn、status、preferences、knowledge、neighbors、categories、node_category、purge、import_claude_mem、import_claude_code 等工具,用于与 LLM 的协作与数据治理。
      • 提示/模板:提供 Prompts 相关能力,支持在检索/生成阶段对话系统提示信息的渲染与定制。
      • MCP 通信:通过 rmcp 提供的 ServerHandler 实现,支持 MCP 的 JSON-RPC 请求/响应和工具调用。
      • 传输介质:当前实现通过标准输入输出(stdio)作为 MCP 传输通道,未来可扩展为 SSE/WebSocket 等选项。
  • 主要功能点
    • MCP 核心能力:记忆记忆(remember/recall),知识提取与学习(learn/knowledge),系统状态与分析(status/patches),类别与邻接查询(categories/neighbors),以及清理与维护(purge/transform/forget 等)。
    • 自动化扩展:可选开启 ExtractionProvider(如 LLM 提供者),实现 unconsolidated episode 的自动 consolidation。
    • 配置与安全:支持通过环境变量开启 LLM 提供者,MCP 客户端通过配置启动命令启动 MCP 服务器并与之建立连接。
    • 容错与鲁棒性:实现了幂等的工具执行、错误返回与状态报告,便于集成在实际应用中。
  • 安装与运行
    • 构建 MCP 服务器(需要开启 mcp 特性):
      • cargo build --release --features mcp
    • 如需启用自动化知识提取(LLM 支持):
      • cargo build --release --features "mcp llm"
    • 运行 MCP 服务器(二进制名称通常为 alaya-mcp):
      • 直接执行生成的二进制,服务器将监听 stdin/stdout 作为 MCP 传输。
  • MCP 客户端配置示例(配置信息以 JSON 结构描述,供 MCP 客户端读取并建立连接;实际内容根据客户端实现及环境变量而定,以下以字段说明为主,具体数值请按实际部署填写)
    • server name: alaya
    • command: 指向已构建的 MCP 服务器可执行文件的路径,例如 /path/to/alaya/target/release/alaya-mcp
    • args: 客户端可通过该字段传递启动参数(若服务器启动未依赖命令行参数,可为空数组)
    • 其他字段可包含描述性信息,便于运维识别与日志聚合 说明性描述(非代码化的 JSON 示例,字段名仅供理解)
    • serverName: "alaya"
    • command: "/path/to/alaya-mcp"
    • args: []
    • description: "Alaya MCP 服务器,提供记忆、工具、知识与类别等能力的 MCP 接入点"
  • 基本使用方法
    • 启动前准备
      • 确保数据库文件可读写,若使用持久化数据库,请正确配置 ALAYA_DB 指向数据库路径。
      • 如需开启自动 consolidation,请设置 ALAYA_LLM_API_KEY 与可选的 ALAYA_LLM_API_URL/ALAYA_LLM_MODEL,并开启 llm 特性编译。
    • 与 MCP 客户端对接
      • MCP 客户端需要一个服务器条目,包含服务器的启动命令以及必要参数。客户端通过 JSON 配置读取 serverName、command、args 以建立 RPC 通道(标准输入/输出或其他传输)。
    • 常用工作流
      • 客户端通过 remember/recall 等工具与 MCP 服务器进行交互,服务器将对记忆、图谱、嵌入等数据进行管理并返回结果。
      • 如开启 llm 提供器,客户端可请求 auto-consolidation,服务器将调用 LLM 提取知识并更新 semantic 节点。
    • 诊断与运维
      • 通过服务器提供的 get_info、status 等工具可获得当前运行状态及系统信息。
  • 重要注意
    • MCP 客户端与服务器之间的通信遵循 JSON-RPC 规范,服务器端实现应对请求进行解析、执行并返回 JSON-RPC 格式的响应。
    • 服务器实现已将核心数据结构与工具函数紧密耦合到 AlayaStore,确保数据一致性与完整性。

服务器信息