Project Orchestrator MCP 服务端
使用说明(Markdown 格式)
-
项目简介
- Project Orchestrator 提供一个 MCP 服务器端实现,核心职责是通过标准化的 JSON-RPC 方式向 LLM 客户端暴露并管理资源(Resources)、注册与执行工具(Tools)、以及定义和渲染 Prompt 模板(Prompts)。服务器端负责会话管理、能力声明,以及对外提供多种传输协议(如 Stdio、SSE、WebSocket)的接入能力,确保安全可扩展的上下文服务。
-
主要功能点
- MCP 协议核心处理:接收并处理 MCP 请求与响应,按照 Model Context Protocol 的约定进行资源、工具与提示相关操作。
- 资源与工具管理:托管、读取、写入资源,注册和执行 相关 Tools,供 LLM 客户端调用外部功能。
- Prompt 定义与渲染:定义 Prompts/模板,渲染出与 LLM 交互的提示内容。
- 数据存储与检索整合:通过 Neo4j 图数据库管理知识图谱、Meilisearch 提供语义检索能力,支持高效的资源发现与工具选择。
- 实时事件与多实例同步:通过 NATS 实现跨进程/多实例的 CRUD 事件与聊天/通知同步。
- 多传输协议支持:MCP 服务器对外提供基于标准传输的连接,兼容 Stdio、SSE、WebSocket 等传输方式,以满足不同客户端的接入需求。
- 安全与认证:提供会话管理与能力声明,支持多种认证方式并具备 deny-by-default 的默认安全策略。
-
安装与运行
- 运行前提
- 确保 Neo4j、Meilisearch、NATS 等组件在本地或指定地址可用。
- 构建与启动
- 本仓库在文档中描述了包含 MCP 服务端的二进制文件 mcp_server,以及客户端集成示例。通常的工作流包括获取源代码、编译生成可执行文件、配置依赖环境变量后启动服务。请参考仓库的 Quick Start 与 CI/Audit 指南完成构建与部署。
- 客户端接入
- MCP 客户端(如 Claude Code、OpenAI Agent、Cursor 等)需在本地配置 MCP 服务器启动命令及环境变量,以建立连接。配置项通常包括服务器名称、执行命令与必要的环境变量(Neo4j、Meilisearch、NATS 等连接信息)。
- 运行前提
-
服务器配置(给 MCP 客户端的配置信息描述)
- 配置目的:MCP 客户端通过该配置项知道要连接的 MCP 服务器的启动命令及参数,以便建立 JSON-RPC 通信并使用服务器暴露的资源、工具与 Prompts。
- 重要字段与含义(按仓库信息整理):
- server_name:服务器在客户端配置中的唯一标识,如 "project-orchestrator"。
- command:启动 MCP 服务器的可执行文件路径,如 "/path/to/mcp_server"。
- args:启动命令的参数数组。若无额外参数可留空,或使用 "serve" 等默认操作参数。
- env:启动时注入的环境变量集合,包含以下必要变量(示例说明,不是实际代码块):
- NEO4J_URI:Neo4j Bolt 连接地址,例如 bolt://localhost:7687
- NEO4J_USER:Neo4j 用户名,通常为 neo4j
- NEO4J_PASSWORD:Neo4j 密码
- MEILISEARCH_URL:Meilisearch 服务地址,例如 http://localhost:7700
- MEILISEARCH_KEY:Meilisearch API Key
- NATS_URL:用于跨实例事件同步的 NATS 服务地址,例如 nats://localhost:4222
- transports:服务器对外暴露的传输协议集合,如 ["stdio", "sse", "websocket"]。
- description:对该 MCP 服务器实例的简短描述,便于在客户端环境中区分与管理。
注:MCP 客户端本身不需要包含服务器的实现细节代码,只需要知道服务器的启动命令、参数与连接信息即可与之通信。
-
基本使用方法
- 启动与连接
- 在服务器准备就绪且 Neo4j/Meilisearch/NATS 服务正常运行时,使用客户端配置将 server_name 对应的命令与环境变量注入客户端环境,客户端即可通过 MCP 协议与服务器建立通信,将资源、工具和 prompts 暴露给 LLM。
- 使用流程
- 客户端调用资源相关 API 读取、创建或更新资源。
- 客户端调用工具,执行外部功能并接收返回数据。
- 客户端获取或渲染 Prompts,结合上下文与工具输出继续对话。
- 运行维护
- 如需横向扩展,可以通过 NATS 实现多实例间事件同步,确保全局上下文一致性。
- 监控日志、错误与性能指标,确保服务器稳定性。
- 启动与连接