BOND MCP Server 集成实现
使用说明(Markdown格式)
- 项目简介
- BOND 仓库中实现了基于 MCP 的后端服务体系,包含多个独立的 MCP 服务器(如 QAIS、ISS),以及面板端用于资源、工具和会话管理的前后端系统。核心目标是以标准化的 JSON-RPC 协议向 LLM 客户端提供上下文、工具调用和提示渲染能力,确保跨组件的安全、可扩展协作。
- 主要功能点
- MCP 服务器实现
- 通过 JSON-RPC 提供初始化、工具列表、工具调用等接口,支持与 Claude 等 LLM 客户端互操作。
- 提供工具授权/能力约束,确保不同实体(doctrine/project/perspective/library 等)在运行时具备合适的能力集合。
- 面板与管理
- 面板端使用 Express/Node.js 实现,提供 Doctrine API、状态管理、链接关系、模块化插件等特性,帮助管理与监控后端 MCP 服务。
- 资源与工具治理
- 资源以“实体/种类”形式托管,工具分权限、可切换,具有日志广播与状态通知能力。
- 智能存储与记忆机制
- QAIS/ISS 等组件实现记忆、语义检索、情感/执念向量等能力,支持对话上下文的持续性与上下文管理。
- 跨模块协作
- 面板和 MCP 服务器通过统一的接口进行交互,支持多种传输协议(如 STDIO、WebSocket),方便不同前端/后端组件对接。
- MCP 服务器实现
- 安装与运行步骤
- 依赖安装
- Node.js 及相关依赖(panel、server 等)。
- Python 运行环境(用于各 MCP 服务器脚本,如 qais_mcp_server.py、iss_mcp_server.py,以及 mcp_invoke.py 等)。
- 启动 MCP 服务器
- 逐个启动 MCP 服务器:QAIS、ISS 等。示例(以理解为目的,具体路径请结合实际环境执行):
- python QAIS/qais_mcp_server.py
- python ISS/iss_mcp_server.py
- 启动 Panel(面板端):
- 启动 Node.js/Express 服务器,监听端口 3000,并连接相应 MCP 服务器地址。
- 逐个启动 MCP 服务器:QAIS、ISS 等。示例(以理解为目的,具体路径请结合实际环境执行):
- 启动面板前端
- 在 panel 目录下安装并运行前端构建/开发服务器(如 npm install、npm run build 或相似流程,具体以实际项目为准)。
- 配置与调试
- 根据需要在环境变量中配置 BOND_ROOT、MCP_URL 等以便 Panel 与 MCP 服务器正确对接。
- 确认面板的 MCP URL 指向正确的 MCP 服务端点(如 http://localhost:3002/ 等)。
- 依赖安装
- 服务器配置(MCP 客户端需要的配置信息)
以下为示例描述性信息,实际配置请以客户端使用说明中的 JSON 配置结构为准。MCP 客户端需要提供服务器启动命令及参数,以便与 MCP 服务器建立连接:
- QAIS-MCP
- server name: "QAIS-MCP"
- command: "python"
- args: ["QAIS/qais_mcp_server.py"]
- 注释: 启动 QAIS 的 MCP 服务,提供 qais_resonate、qais_exists、qais_store 等工具的对外调用入口
- ISS-MCP
- server name: "ISS-MCP"
- command: "python"
- args: ["ISS/iss_mcp_server.py"]
- 注释: 启动 ISS 的 MCP 服务,提供 iss_analyze、iss_compare、iss_limbic、iss_status 等工具入口
- 说明
- 以上命令仅为示意,实际环境需确保 Python 环境可执行且路径正确,必要时设置 BOND_ROOT/数据目录等环境变量。
- 客户端通过 JSON 配置将 server_name、command、args 等信息组合成一个连接/启动项,以便在运行时启动对应的 MCP 服务进程,并通过 JSON-RPC 与之通信。
- QAIS-MCP
- 基本使用方法
- 启动后,通过 MCP 客户端向 QAIS/ISS 等服务器发起请求,执行工具、获取分析结果、检索语义信息等。
- 面板通过 /api/mcp 接口与各 MCP 服务交互,进行工具调用、状态查询、以及汇总展示。
- 使用 Warm Restore、记忆检索等能力时,请确保相应的数据路径(handoffs、state、data)可写入并具备正确的权限。