TaskFlow MCP 🔄✅
@pinkpixel-dev
关于 TaskFlow MCP 🔄✅
A task management Model Context Protocol (MCP) server that helps AI assistants break down user requests into manageable tasks with subtasks, dependencies, and notes. Enforces a structured workflow with user approval steps.
基本信息
配置
使用下面的配置,将此服务器添加到你的 MCP 客户端。
{
"mcpServers": {
"taskflow": {
"command": "npx",
"args": [
"-y",
"@pinkpixel/taskflow-mcp"
],
"env": {
"TASK_MANAGER_FILE_PATH": "/path/to/tasks.json"
}
}
}
}工具
17Register a new user request and plan its associated tasks. You must provide 'originalRequest' and 'tasks', and optionally 'splitDetails'. Tasks can now include subtasks, which are smaller units of work that make up a task. All subtasks must be completed before a task can be marked as done. You can also include: - 'dependencies': List of project or task-specific dependencies (libraries, tools, etc.) - 'notes': General notes about the project (preferences, guidelines, etc.) - 'outputPath': Path to save a Markdown file with the task plan for reference. It's recommended to use absolute paths (e.g., 'C:/Users/username/Documents/task-plan.md') rather than relative paths for more reliable file creation. This tool initiates a new workflow for handling a user's request. The workflow is as follows: 1. Use 'plan_task' to register a request and its tasks (with optional subtasks, dependencies, and notes). 2. After adding tasks, you MUST use 'get_next_task' to retrieve the first task. A progress table will be displayed. 3. Use 'get_next_task' to retrieve the next uncompleted task. 4. If the task has subtasks, complete each subtask using 'mark_subtask_done' before marking the task as done. 5. **IMPORTANT:** After marking a task as done, a progress table will be displayed showing the updated status of all tasks. The assistant MUST NOT proceed to another task without the user's approval. The user must explicitly approve the completed task. 6. Once a task is approved, you can proceed to 'get_next_task' again to fetch the next pending task. 7. Repeat this cycle until all tasks are done. 8. After all tasks are completed (and approved), 'get_next_task' will indicate that all tasks are done and that the request awaits approval for full completion. 9. The user must then approve the entire request's completion. If the user does not approve and wants more tasks, you can again use 'plan_task' to add new tasks and continue the cycle. The critical point is to always wait for user approval after completing each task and after all tasks are done, wait for request completion approval. Do not proceed automatically.
Given a 'requestId', return the next pending task (not done yet). If all tasks are completed, it will indicate that no more tasks are left and that you must ask the user what to do next. A progress table showing the current status of all tasks will be displayed with each response. If the same task is returned again or if no new task is provided after a task was marked as done, you MUST NOT proceed. In such a scenario, you must prompt the user for approval before calling 'get_next_task' again. Do not skip the user's approval step. In other words: - After calling 'mark_task_done', do not call 'get_next_task' again until 'approve_task_completion' is called by the user. - If 'get_next_task' returns 'all_tasks_done', it means all tasks have been completed. At this point, confirm with the user that all tasks have been completed, and optionally add more tasks via 'plan_task'.
Mark a given task as done after you've completed it. Provide 'requestId' and 'taskId', and optionally 'completedDetails'. After marking a task as done, a progress table will be displayed showing the updated status of all tasks. After this, DO NOT proceed to 'get_next_task' again until the user has explicitly approved this completed task using 'approve_task_completion'.
Get details of a specific task by 'taskId'. This is for inspecting task information at any point.
List all requests with their basic information and summary of tasks. This provides a quick overview of all requests in the system.
Add new tasks to an existing request. This allows extending a request with additional tasks. Tasks can include subtasks and dependencies. A progress table will be displayed showing all tasks including the newly added ones.
Update an existing task's title and/or description. Only uncompleted tasks can be updated. A progress table will be displayed showing the updated task information.
Delete a specific task from a request. Only uncompleted tasks can be deleted. A progress table will be displayed showing the remaining tasks after deletion.
Add subtasks to an existing task. Provide 'requestId', 'taskId', and 'subtasks' array. Subtasks are smaller units of work that make up a task. All subtasks must be completed before a task can be marked as done. A progress table will be displayed showing the updated task with its subtasks.
Mark a subtask as done. Provide 'requestId', 'taskId', and 'subtaskId'. A progress table will be displayed showing the updated status of all tasks and subtasks. All subtasks must be completed before a task can be marked as done.
Update a subtask's title or description. Provide 'requestId', 'taskId', 'subtaskId', and optionally 'title' and/or 'description'. Only uncompleted subtasks can be updated. A progress table will be displayed showing the updated task with its subtasks.
Delete a subtask from a task. Provide 'requestId', 'taskId', and 'subtaskId'. Only uncompleted subtasks can be deleted. A progress table will be displayed showing the updated task with its remaining subtasks.
Export the current status of all tasks in a request to a file. This tool allows you to save the current state of tasks, subtasks, dependencies, and notes to a file for reference. You can specify the output format as 'markdown', 'json', or 'html'. It's recommended to use absolute paths (e.g., 'C:/Users/username/Documents/task-status.md') rather than relative paths for more reliable file creation.
Add a note to a request. Notes can contain important information about the project, such as user preferences or guidelines. Notes are displayed in the task progress table and can be referenced when working on tasks.
Update an existing note's title or content. Provide the 'requestId' and 'noteId', and optionally 'title' and/or 'content' to update.
Delete a note from a request. Provide the 'requestId' and 'noteId' of the note to delete.
Add a dependency to a request or task. Dependencies can be libraries, tools, or other requirements needed for the project or specific tasks. If 'taskId' is provided, the dependency will be added to that specific task. Otherwise, it will be added to the request.
概览
What is TaskFlow MCP?
TaskFlow MCP is a task management Model Context Protocol (MCP) server that helps AI assistants break down user requests into manageable tasks and track their completion. It enforces a structured workflow with user approval steps to ensure tasks are properly tracked and users maintain control over the process.
How to use TaskFlow MCP?
Install it globally with npm install -g @pinkpixel/taskflow-mcp and start with taskflow-mcp, or run locally with npx @pinkpixel/taskflow-mcp. Configure the server by setting the TASK_MANAGER_FILE_PATH environment variable and add it to your MCP client’s mcp_config.json. AI assistants interact with TaskFlow MCP through tools like plan_task, get_next_task, and mark_task_done.
Key features of TaskFlow MCP?
- Break down complex requests into tasks and subtasks
- Enforce user approval steps for quality control
- Persist tasks to disk in JSON or YAML format
- Export task status reports in Markdown, JSON, or HTML
- Track project and task-level dependencies with version information
- Archive completed requests and restore full history when needed
Use cases of TaskFlow MCP?
- AI assistants managing multi-step project plans with user confirmation
- Breaking a website creation request into design, implementation, and testing tasks
- Tracking progress of complex requests with subtasks and dependencies
- Archiving finished work to keep active task lists clean while preserving history
- Exporting task status reports for sharing with team members
FAQ from TaskFlow MCP
What file formats does TaskFlow MCP support for persistence?
TaskFlow MCP supports both JSON and YAML formats, automatically detected by the file extension (.json, .yaml, .yml). YAML is recommended for better handling of multiline content and human readability.
How do I set the tasks file path?
Use the TASK_MANAGER_FILE_PATH environment variable. You can specify absolute paths (e.g., /home/user/tasks.yaml) or relative paths (e.g., ./project-tasks.yaml). A custom base directory can be set with TASK_MANAGER_BASE_DIR.
Does TaskFlow MCP require any runtime dependencies?
It runs on Node.js and is installed via npm. No additional runtime services or databases are required—all data is persisted to a local file.
How does the archive system work?
Archives can be manual (using the archive_completed_requests tool) or automatic (set ARCHIVE_MODE=auto-on-complete). Archived requests can be browsed, searched, and restored using dedicated tools like list_archived_requests and restore_archived_request.
What transport does TaskFlow MCP use?
TaskFlow MCP is a standard MCP server that communicates over stdio, as configured in the MCP client’s mcp_config.json via the command and args fields.
其他 分类下的更多 MCP 服务器
MaxKB
1Panel-dev🔥 MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。
Reactive Resume
amruthpillaiA one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
MCP Toolbox for Databases
googleapisMCP Toolbox for Databases is an open source MCP server for databases.
FastMCP v2 🚀
jlowin🚀 The fast, Pythonic way to build MCP servers and clients.
Blender
ahujasidOpen-source MCP to use Blender with any LLM
评论