首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
MCP任务流2026-10-21251分享添加福利群:解决AI开发者的「MCP实战痛点」
用于“驯服克劳德”的MCP服务器,带有结构化任务队列。
By chriscarrollsmith
2026-10-21251
github
详情内容

MCP 任务管理器

smithery 徽章

MCP 任务管理器(npm 包:taskqueue-mcp)是一个用于 AI 任务管理的模型上下文协议(MCP)服务器。该工具帮助 AI 助手以结构化的方式处理多步骤任务,并提供可选的用户审批检查点。

功能

  • 多步骤任务规划
  • 进度跟踪
  • 用户对已完成任务的审批
  • 项目完成审批
  • 任务详情可视化
  • 任务状态管理
  • 增强的 CLI 用于任务检查和管理

基本设置

通常你会在 Claude Desktop、Cursor 或其他 MCP 客户端中设置工具配置如下:

{
  "tools": {
    "taskqueue": {
      "command": "npx",
      "args": ["-y", "taskqueue-mcp"]
    }
  }
}

要使用 CLI 工具,你可以全局安装该包,然后使用以下命令:

npx taskqueue --help

这将显示可用的命令和选项。

高级配置

任务管理器支持多个 LLM 提供商用于生成项目计划。你可以根据你想使用的提供商配置以下环境变量中的一个或多个:

  • OPENAI_API_KEY:使用 OpenAI 模型(如 GPT-4)时必需
  • GOOGLE_GENERATIVE_AI_API_KEY:使用 Google 的 Gemini 模型时必需
  • DEEPSEEK_API_KEY:使用 Deepseek 模型时必需

要使用 CLI 生成项目计划,请在 shell 中设置这些环境变量:

export OPENAI_API_KEY="your-api-key"
export GOOGLE_GENERATIVE_AI_API_KEY="your-api-key"
export DEEPSEEK_API_KEY="your-api-key"

或者你可以将它们包含在 MCP 客户端配置中,以便通过 MCP 工具调用生成项目计划:

{
  "tools": {
    "taskqueue": {
      "command": "npx",
      "args": ["-y", "taskqueue-mcp"],
      "env": {
        "OPENAI_API_KEY": "your-api-key",
        "GOOGLE_GENERATIVE_AI_API_KEY": "your-api-key",
        "DEEPSEEK_API_KEY": "your-api-key"
      }
    }
  }
}

可用的 MCP 工具

TaskManager 现在使用直接工具接口,每个操作都有特定用途的工具:

项目管理工具

  • list_projects:列出系统中的所有项目
  • read_project:获取特定项目的详细信息
  • create_project:创建带有初始任务的新项目
  • delete_project:删除项目
  • add_tasks_to_project:向现有项目添加新任务
  • finalize_project:在所有任务完成后最终确定项目

任务管理工具

  • list_tasks:列出特定项目的所有任务
  • read_task:获取特定任务的详细信息
  • create_task:在项目中创建新任务
  • update_task:修改任务的属性(标题、描述、状态)
  • delete_task:从项目中删除任务
  • approve_task:批准已完成的任务
  • get_next_task:获取项目中的下一个待处理任务
  • mark_task_done:将任务标记为已完成并附带详细信息

任务状态和工作流

任务有一个状态字段,可以是以下之一:

  • not started:任务尚未开始
  • in progress:任务当前正在处理中
  • done:任务已完成(需要 completedDetails)

状态转换规则

系统强制执行以下任务状态转换规则:

  • 任务遵循特定的工作流程,定义了有效的转换:
    • 从 not started:只能移动到 in progress
    • 从 in progress:可以移动到 done 或返回到 not started
    • 从 done:如果需要额外工作,可以返回到 in progress
  • 当任务被标记为“done”时,必须提供 completedDetails 字段以记录完成的内容
  • 已批准的任务不能修改
  • 只有当所有任务都完成并批准后,项目才能被批准

这些规则有助于维护任务进度的完整性,并确保对已完成工作的适当记录。

使用工作流

使用此任务管理器的 LLM 的典型工作流程如下:

  1. create_project:使用初始任务启动项目
  2. get_next_task:获取第一个待处理任务
  3. 处理任务
  4. mark_task_done:将任务标记为已完成并附带详细信息
  5. 等待批准(用户必须通过 CLI 调用 approve_task)
  6. get_next_task:获取下一个待处理任务
  7. 重复步骤 3-6,直到所有任务完成
  8. finalize_project:完成项目(需要用户批准)

CLI 命令

要使用 CLI,你需要全局安装该包:

npm install -g taskqueue-mcp

或者,你可以使用 npx 运行 CLI,并使用 --package=taskqueue-mcp 标志告诉 npx 它来自哪个包。

npx --package=taskqueue-mcp taskqueue --help

任务批准

默认情况下,当 AI 代理将任务和项目标记为“done”时,它们将自动批准。要要求手动人工任务批准,请在创建项目时将 autoApprove 设置为 false。

任务批准完全由人类用户通过 CLI 控制:

npx taskqueue approve-task -- <projectId> <taskId>

选项:

  • -f, --force:即使任务未标记为完成,也强制批准

注意:在任务可以被批准之前,AI 代理必须将任务标记为“done”并提供完成详细信息(除非使用 --force)。

列出任务和项目

CLI 提供了一个命令来列出所有项目和任务:

npx taskqueue list-tasks

要查看特定项目的详细信息:

npx taskqueue list-tasks -- -p <projectId>

此命令显示系统中所有项目或特定项目的信息,包括:

  • 项目 ID 和初始提示
  • 完成状态
  • 任务详细信息(标题、描述、状态、批准)
  • 进度指标(已批准/已完成/总任务数)

数据模式和存储

文件位置

任务管理器将数据存储在 JSON 文件中,该文件必须对服务器和 CLI 都可访问。

默认的平台特定位置为:

  • Linux:~/.local/share/taskqueue-mcp/tasks.json
  • macOS:~/Library/Application Support/taskqueue-mcp/tasks.json
  • Windows:%APPDATA%\taskqueue-mcp\tasks.json

不建议使用自定义文件路径存储任务数据,因为你必须记住为 MCP 服务器和 CLI 设置相同的路径,否则它们将无法相互协调。但如果你确实想使用自定义路径,你可以在 MCP 客户端配置中设置 TASK_MANAGER_FILE_PATH 环境变量:

{
  "tools": {
    "taskqueue": {
      "command": "npx",
      "args": ["-y", "taskqueue-mcp"],
      "env": {
        "TASK_MANAGER_FILE_PATH": "/path/to/tasks.json"
      }
    }
  }
}

然后,在运行 CLI 之前,你应该在 shell 中导出相同的路径:

export TASK_MANAGER_FILE_PATH="/path/to/tasks.json"

数据模式

JSON 文件使用以下结构:

TaskManagerFile
├── projects: Project[]
    ├── projectId: string            # 格式:"proj-{number}"
    ├── initialPrompt: string        # 原始用户请求文本
    ├── projectPlan: string          # 额外的项目详细信息
    ├── completed: boolean           # 项目完成状态
    ├── autoApprove: boolean         # 设置为 `false` 以要求手动用户批准
    └── tasks: Task[]                # 任务数组
        ├── id: string               # 格式:"task-{number}"
        ├── title: string            # 简短的任务标题
        ├── description: string      # 详细的任务描述
        ├── status: string           # 任务状态:"not started", "in progress", 或 "done"
        ├── approved: boolean        # 任务批准状态
        ├── completedDetails: string # 完成信息(当状态为 "done" 时必需)
        ├── toolRecommendations: string # 可能对此任务有帮助的推荐工具
        └── ruleRecommendations: string # 对此任务建议遵循的规则/指南

许可证

MIT

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档