使用说明

项目简介

MCP Orchestrator Server (Orchestrator Server) 是一款基于 Model Context Protocol (MCP) 的任务编排服务器,旨在帮助用户在多个支持 MCP 协议的 LLM 客户端(例如 Claude Desktop 或 Cline)之间管理和协调任务。它允许 AI 智能体创建、共享和执行具有依赖关系的任务,从而实现更复杂的工作流程自动化。

主要功能点

  • 任务创建与依赖管理:支持创建具有依赖关系的任务,确保任务按序执行。
  • 多客户端协调:允许多个 MCP 客户端实例协同工作,分配和执行任务。
  • 任务持久化存储:任务数据被持久化存储,服务器重启后任务状态得以保留。
  • 任务状态跟踪:实时跟踪任务的状态,包括待处理、进行中和已完成等状态。
  • 工具列表:提供全面的工具文档,方便客户端了解可用的操作。
  • 任务更新与安全删除:允许修改待处理任务,并安全删除没有依赖项的任务。
  • 循环依赖检测:防止任务依赖关系中出现循环,确保任务流程的正确性。

安装步骤

  1. 确保已安装 Node.js 和 npm。
  2. 克隆或下载 Orchestrator Server 仓库到本地。
  3. 打开终端,进入仓库根目录。
  4. 运行以下命令安装项目依赖:
    npm install
  5. 运行以下命令构建项目:
    npm run build

服务器配置

要让 MCP 客户端连接到 Orchestrator Server,您需要在 MCP 客户端的服务器配置中添加以下 JSON 对象。请根据实际情况修改 'command' 和 'args' 中的路径。

{
  "serverName": "orchestrator",  // 服务器名称,可以自定义,用于在客户端中识别
  "command": "node",             // 启动服务器的命令,这里使用 Node.js 运行
  "args": [                     // 传递给命令的参数
    "path/to/orchestrator-server/dist/index.js" // 指向构建后的服务器入口文件,请替换为实际路径,例如:/path/to/orchestrator-server/dist/index.js
  ]
}

配置参数说明:

  • 'serverName': 为服务器自定义的名称,在 MCP 客户端配置中用于标识该服务器连接。例如,您可以将其命名为 "orchestrator" 或 "task-server"。
  • 'command': 指定用于启动 MCP 服务器的命令。由于 Orchestrator Server 是一个 Node.js 应用,这里设置为 'node'。
  • 'args': 一个字符串数组,包含了传递给 'command' 的参数。
    • 数组中的第一个元素 '"path/to/orchestrator-server/dist/index.js"' 必须替换为 您在本地构建 Orchestrator Server 后 'dist/index.js' 文件的绝对路径。 例如,如果您的仓库克隆在 '/Users/yourname/orchestrator-server',并且您在仓库根目录下执行了 'npm run build',那么该路径可能类似于 '/Users/yourname/orchestrator-server/dist/index.js'。请根据您的实际文件位置进行调整。

完成配置后,MCP 客户端应该能够通过 Stdio 传输协议连接到 Orchestrator Server。

基本使用方法

  1. 启动服务器:在仓库根目录下,运行以下命令启动 Orchestrator Server (确保已完成安装和构建步骤):

    npm start

    或者直接运行构建后的入口文件:

    node dist/index.js
  2. 配置 MCP 客户端:在您的 MCP 客户端(如 Claude 或 Cline)中,根据客户端的配置方法,添加上述提供的服务器配置 JSON。确保服务器名称与配置中的 'serverName' 一致。

  3. 使用客户端调用工具:客户端连接成功后,您可以使用客户端提供的 API 或界面来调用 Orchestrator Server 提供的工具,例如:

    • 'create_task': 创建新任务。
    • 'get_next_task': 获取下一个可执行的任务。
    • 'complete_task': 标记任务为已完成。
    • 'get_task_status': 获取所有任务的状态。
    • 'get_task_details': 获取特定任务的详细信息。

    具体的工具参数和使用方法请参考仓库中的 'API Reference' 文档 ('docs/API.md')。

信息

分类

开发者工具