TaskFlow MCP🔄✅
用于与 AI 助手一起规划和执行任务的任务管理模型上下文协议 (MCP) 服务器。


🌟 概述
TaskFlow MCP 是一款专用服务器,可帮助 AI 助手将用户请求分解为可管理的任务并跟踪其完成情况。它强制执行结构化的工作流,并包含用户审批步骤,以确保任务得到正确跟踪,并保持用户对流程的控制。
Related MCP server: Divide and Conquer MCP Server
✨ 特点
📋任务规划:将复杂的请求分解为可管理的任务
🔍子任务:将任务划分为更小、更易于管理的子任务
📊进度跟踪:使用可视化进度表跟踪任务、子任务和请求的状态
👍用户批准:强制用户批准步骤以确保质量和控制
💾持久性:将任务和请求保存到磁盘,以便在会话之间持久化
🔄灵活管理:根据需要添加、更新或删除任务和子任务
📝详细报告:查看任务详细信息和进度表
📤导出选项:以 Markdown、JSON 或 HTML 格式导出任务计划和状态报告
📦依赖关系:使用版本信息跟踪项目和任务级依赖关系
📌注释:为重要信息和偏好添加项目级注释
🚀 安装
全局安装
npm install -g @pinkpixel/taskflow-mcp
本地安装
npm install @pinkpixel/taskflow-mcp
🛠️ 使用方法
启动服务器
如果全局安装:
如果本地安装:
配置
默认情况下,TaskFlow MCP 将任务保存到~/Documents/tasks.json 。您可以通过设置TASK_MANAGER_FILE_PATH环境变量来更改此设置:
TASK_MANAGER_FILE_PATH=/path/to/tasks.json taskflow-mcp
MCP 配置
要将 TaskFlow MCP 与 AI 助手配合使用,您需要配置 MCP 客户端以使用服务器。创建一个包含以下内容的mcp_config.json文件:
{
"mcpServers": {
"taskflow": {
"command": "npx",
"args": ["-y", "@pinkpixel/taskflow-mcp"],
"env": {
"TASK_MANAGER_FILE_PATH": "/path/to/tasks.json"
}
}
}
}
🔄 工作流程
TaskFlow MCP 强制执行特定的工作流程:
计划任务:将用户请求分解为任务(带有可选的子任务)
获取下一个任务:检索下一个待处理的任务
完成子任务:如果任务有子任务,则在将任务标记为完成之前完成每个子任务
标记任务完成:将任务标记为已完成(需要先完成所有子任务)
等待批准:等待用户批准已完成的任务
重复:继续下一个任务,直到所有任务完成
最终批准:获得用户对整个请求的批准
为了让 AI 助手始终遵循此工作流程,请参阅example-system-prompt.md文件,了解可以添加到助手指令中的系统提示。
🧰 可用工具
TaskFlow MCP 向 AI 助手公开了以下工具:
plan_task
注册新的用户请求并计划其相关任务(带有可选的子任务)。
{
"originalRequest": "Create a new website for my business",
"outputPath": "C:/Users/username/Documents/website-project-plan.md",
"dependencies": [
{
"name": "Node.js",
"version": ">=14.0.0",
"description": "JavaScript runtime"
},
{
"name": "npm",
"version": ">=6.0.0",
"description": "Package manager"
}
],
"notes": [
{
"title": "Package Manager Preference",
"content": "User prefers pnpm over npm for package management."
},
{
"title": "Design Guidelines",
"content": "Follow the company's brand guidelines for colors and typography."
}
],
"tasks": [
{
"title": "Design homepage",
"description": "Create a design for the homepage with logo, navigation, and hero section",
"dependencies": [
{
"name": "Figma",
"description": "Design tool"
}
],
"subtasks": [
{
"title": "Design logo",
"description": "Create a logo that represents the business brand"
},
{
"title": "Design navigation",
"description": "Create a user-friendly navigation menu"
}
]
},
{
"title": "Implement HTML/CSS",
"description": "Convert the design to HTML and CSS",
"dependencies": [
{
"name": "HTML5",
"description": "Markup language"
},
{
"name": "CSS3",
"description": "Styling language"
}
]
}
]
}
get_next_task
检索请求的下一个待处理任务。
mark_task_done
将任务标记为已完成。
{
"requestId": "req-1",
"taskId": "task-1",
"completedDetails": "Created a modern design with a clean layout"
}
approve_task_completion
批准已完成的任务。
{
"requestId": "req-1",
"taskId": "task-1"
}
approve_request_completion
批准整个请求并认为其已完成。
open_task_details
获取有关特定任务的详细信息。
list_requests
列出系统中的所有请求。
add_tasks_to_request
向现有请求添加更多任务。
{
"requestId": "req-1",
"tasks": [
{
"title": "Add contact form",
"description": "Create a contact form with validation"
}
]
}
update_task
更新任务的标题或描述。
{
"requestId": "req-1",
"taskId": "task-1",
"title": "Design responsive homepage",
"description": "Create a responsive design for the homepage"
}
delete_task
从请求中删除任务。
{
"requestId": "req-1",
"taskId": "task-1"
}
add_subtasks
将子任务添加到现有任务。
{
"requestId": "req-1",
"taskId": "task-1",
"subtasks": [
{
"title": "Design logo",
"description": "Create a logo that represents the business brand"
},
{
"title": "Design navigation",
"description": "Create a user-friendly navigation menu"
}
]
}
mark_subtask_done
将子任务标记为已完成。
{
"requestId": "req-1",
"taskId": "task-1",
"subtaskId": "subtask-1"
}
update_subtask
更新子任务的标题或描述。
{
"requestId": "req-1",
"taskId": "task-1",
"subtaskId": "subtask-1",
"title": "Design modern logo",
"description": "Create a modern logo that represents the business brand"
}
delete_subtask
从任务中删除子任务。
{
"requestId": "req-1",
"taskId": "task-1",
"subtaskId": "subtask-1"
}
export_task_status
将请求中所有任务的当前状态导出到文件。建议使用绝对路径,以便更可靠地创建文件。
{
"requestId": "req-1",
"outputPath": "C:/Users/username/Documents/task-status.md",
"format": "markdown"
}
add_note
为请求添加注释。
{
"requestId": "req-1",
"title": "Package Manager Preference",
"content": "User prefers pnpm over npm for package management."
}
update_note
更新现有注释。
{
"requestId": "req-1",
"noteId": "note-1",
"title": "Package Manager Preference",
"content": "User prefers pnpm over npm and yarn for package management."
}
delete_note
从请求中删除注释。
{
"requestId": "req-1",
"noteId": "note-1"
}
add_dependency
向请求或任务添加依赖项。
{
"requestId": "req-1",
"taskId": "task-1",
"dependency": {
"name": "react",
"version": "^18.2.0",
"description": "JavaScript library for building user interfaces",
"url": "https://reactjs.org"
}
}
📚 文档
有关项目架构和实施的更多详细信息,请参阅OVERVIEW.md文件。
📝 许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
🤝 贡献
欢迎贡献!请参阅CONTRIBUTING.md文件以获取相关指南。
📜 更新日志
请参阅CHANGELOG.md文件了解该项目的变更历史记录。
🙏 致谢
由 Pink Pixel 用❤️制作