chriscarrollsmith/taskqueue-mcp
GitHub: chriscarrollsmith/taskqueue-mcp
一个基于 MCP 协议的结构化任务队列服务器,用于约束和引导 AI 助手有序执行多步骤复杂任务并支持人工审批。
Stars: 71 | Forks: 10
# MCP Task Manager
[](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, 任务管理, 工作流编排, 开发工具, 文档结构分析, 暗色界面, 自动化攻击