MCP任务管理器(npm包:taskqueue-mcp)是一个用于人工智能任务管理的Model Context Protocol (MCP)服务器。此工具帮助AI助手以结构化的方式处理多步骤任务,并可选地设置用户审批检查点。
通常您会在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"
}
}
}
}
任务管理器现在使用直接工具接口,每个操作都有特定的目的构建工具:
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:标记任务已完成并提供详细信息任务有一个状态字段,可以是以下之一:
未开始:任务尚未开始进行中:任务正在被处理已完成:任务已完成(需要completedDetails)系统强制执行以下任务状态转换规则:
未开始:只能移动到进行中进行中:可以移动到已完成或返回未开始已完成:如果需要额外工作,可以返回进行中completedDetails字段来记录已完成的内容这些规则有助于维护任务进度的完整性,并确保正确记录已完成的工作。
使用此任务管理器的LLM典型工作流程如下:
create_project:启动带有初始任务的项目get_next_task:获取第一个待办任务mark_task_done:标记任务已完成并提供详细信息approve_task)get_next_task:获取下一个待办任务finalize_project:完成项目(需要用户审批)要使用CLI,您需要全局安装该包:
npm install -g taskqueue-mcp
或者,您可以使用npx运行CLI,并使用--package=taskqueue-mcp标志告诉npx来自哪个包。
npx --package=taskqueue-mcp taskqueue --help
默认情况下,当AI代理标记任务为“已完成”时,所有任务和项目都将自动批准。要要求手动的人工任务审批,在创建项目时将autoApprove设置为false。
任务审批完全由人类用户通过CLI控制:
npx taskqueue approve-task -- <projectId> <taskId>
选项:
-f, --force:即使任务未标记为已完成,也强制批准注意:任务必须先由AI代理标记为“已完成”并提供完成细节,然后才能被批准(除非使用--force)。
CLI提供了一个命令来列出所有项目和任务:
npx taskqueue list-tasks
要查看特定项目的详细信息:
npx taskqueue list-tasks -- -p <projectId>
此命令显示系统中所有项目或特定项目的相关信息,包括:
任务管理器将数据存储在一个JSON文件中,该文件必须对服务器和CLI都可访问。
默认平台特定位置为:
~/.local/share/taskqueue-mcp/tasks.json~/Library/Application Support/taskqueue-mcp/tasks.json%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 # 任务状态:"未开始"、"进行中"或"已完成"
├── approved: boolean # 任务审批状态
├── completedDetails: string # 完成信息(当状态为"已完成"时需要)
├── toolRecommendations: string # 对于此任务可能有用的建议工具
└── ruleRecommendations: string # 对于此任务应遵循的建议规则/指南
MIT