chriscarrollsmith/taskqueue-mcp

GitHub: chriscarrollsmith/taskqueue-mcp

一个基于 MCP 协议的结构化任务队列服务器,用于约束和引导 AI 助手有序执行多步骤复杂任务并支持人工审批。

Stars: 71 | Forks: 10

# MCP Task Manager [![smithery badge](https://smithery.ai/badge/@chriscarrollsmith/taskqueue-mcp)](https://smithery.ai/server/@chriscarrollsmith/taskqueue-mcp) MCP Task Manager ([npm package: taskqueue-mcp](https://www.npmjs.com/package/taskqueue-mcp)) 是一个用于 AI 任务管理的 Model Context Protocol (MCP) 服务器。该工具帮助 AI 助手以结构化的方式处理多步骤任务,并带有可选的用户批准检查点。 ## 功能 - 包含多个步骤的任务规划 - 进度跟踪 - 用户对已完成任务的批准 - 项目完成批准 - 任务详情可视化 - 任务状态状态管理 - 用于任务检查和管理的增强版 CLI ## 基本设置 通常,您将在 Claude Desktop、Cursor 或其他 MCP 客户端中进行如下工具配置: ``` { "tools": { "taskqueue": { "command": "npx", "args": ["-y", "taskqueue-mcp"] } } } ``` 要使用 CLI 实用程序,您可以全局安装该 package,然后使用以下命令: ``` 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 现在使用一个直接的 tools 接口,为每个操作提供特定的、专用的工具: ### 项目管理工具 - `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,您需要全局安装该 package: ``` npm install -g taskqueue-mcp ``` 或者,您可以使用 `--package=taskqueue-mcp` 标志通过 `npx` 运行 CLI,以告知 `npx` 它来自哪个 package。 ``` npx --package=taskqueue-mcp taskqueue --help ``` #### 任务批准 默认情况下,当 AI agent 将所有任务和项目标记为“done”时,它们将被自动批准。若需要人工手动批准任务,请在创建项目时将 `autoApprove` 设置为 `false`。 任务批准完全由人类用户通过 CLI 控制: ``` npx taskqueue approve-task -- ``` 选项: - `-f, --force`:即使任务未被标记为 done 也强制批准 注意:AI agent 必须先将任务标记为“done”并附上完成详情,然后才能对其进行批准(除非使用 `--force`)。 #### 列出任务和项目 CLI 提供了一个命令来列出所有项目和任务: ``` npx taskqueue list-tasks ``` 查看特定项目的详情: ``` npx taskqueue list-tasks -- -p ``` 此命令显示有关系统中的所有项目或特定项目的信息,包括: - 项目 ID 和初始 prompt - 完成状态 - 任务详情(标题、描述、状态、批准情况) - 进度指标(已批准/已完成/总任务数) ## 数据 Schema 和存储 ### 文件位置 任务管理器将数据存储在一个 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" ``` ### 数据 Schema JSON 文件使用以下结构: ``` TaskManagerFile ├── projects: Project[] ├── projectId: string # Format: "proj-{number}" ├── initialPrompt: string # Original user request text ├── projectPlan: string # Additional project details ├── completed: boolean # Project completion status ├── autoApprove: boolean # Set `false` to require manual user approval └── tasks: Task[] # Array of tasks ├── id: string # Format: "task-{number}" ├── title: string # Short task title ├── description: string # Detailed task description ├── status: string # Task status: "not started", "in progress", or "done" ├── approved: boolean # Task approval status ├── completedDetails: string # Completion information (required when status is "done") ├── toolRecommendations: string # Suggested tools that might be helpful for this task └── ruleRecommendations: string # Suggested rules/guidelines to follow for this task ``` ## 许可证 MIT
标签:AI代理, Homebrew安装, MCP, MITM代理, SOC Prime, 任务管理, 工作流编排, 开发工具, 文档结构分析, 暗色界面, 自动化攻击