A task management Model Context Protocol (MCP) server for planning and executing tasks with AI assistants.
TaskFlow MCP is a specialized 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.
- π Task Planning: Break down complex requests into manageable tasks
- π Subtasks: Divide tasks into smaller, more manageable subtasks
- π Progress Tracking: Track the status of tasks, subtasks, and requests with visual progress tables
- π User Approval: Enforce user approval steps to ensure quality and control
- πΎ Persistence: Save tasks and requests to disk for persistence across sessions
- π Flexible Management: Add, update, or delete tasks and subtasks as needed
- π Detailed Reporting: View task details and progress tables
- π€ Export Options: Export task plans and status reports in Markdown, JSON, or HTML formats
- π¦ Dependencies: Track project and task-level dependencies with version information
- π Notes: Add project-level notes for important information and preferences
npm install -g @pinkpixel/taskflow-mcp
npm install @pinkpixel/taskflow-mcp
If installed globally:
taskflow-mcp
If installed locally:
npx taskflow-mcp
By default, TaskFlow MCP saves tasks to ~/Documents/tasks.json
. You can change this by setting the TASK_MANAGER_FILE_PATH
environment variable:
TASK_MANAGER_FILE_PATH=/path/to/tasks.json taskflow-mcp
To use TaskFlow MCP with AI assistants, you need to configure your MCP client to use the server. Create an mcp_config.json
file with the following content:
{
"mcpServers": {
"taskflow": {
"command": "npx",
"args": ["-y", "@pinkpixel/taskflow-mcp"],
"env": {
"TASK_MANAGER_FILE_PATH": "/path/to/tasks.json"
}
}
}
}
TaskFlow MCP enforces a specific workflow:
- Plan Tasks: Break down a user request into tasks (with optional subtasks)
- Get Next Task: Retrieve the next pending task
- Complete Subtasks: If the task has subtasks, complete each subtask before marking the task as done
- Mark Task Done: Mark a task as completed (requires all subtasks to be completed first)
- Wait for Approval: Wait for user approval of the completed task
- Repeat: Continue with the next task until all tasks are complete
- Final Approval: Get user approval for the entire request
For AI assistants to consistently follow this workflow, see the example-system-prompt.md file for system prompts you can add to your assistant's instructions.
TaskFlow MCP exposes the following tools to AI assistants:
Register a new user request and plan its associated tasks (with optional subtasks).
{
"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"
}
]
}
]
}
Retrieve the next pending task for a request.
{
"requestId": "req-1"
}
Mark a task as completed.
{
"requestId": "req-1",
"taskId": "task-1",
"completedDetails": "Created a modern design with a clean layout"
}
Approve a completed task.
{
"requestId": "req-1",
"taskId": "task-1"
}
Approve an entire request as completed.
{
"requestId": "req-1"
}
Get details about a specific task.
{
"taskId": "task-1"
}
List all requests in the system.
{}
Add more tasks to an existing request.
{
"requestId": "req-1",
"tasks": [
{
"title": "Add contact form",
"description": "Create a contact form with validation"
}
]
}
Update a task's title or description.
{
"requestId": "req-1",
"taskId": "task-1",
"title": "Design responsive homepage",
"description": "Create a responsive design for the homepage"
}
Delete a task from a request.
{
"requestId": "req-1",
"taskId": "task-1"
}
Add subtasks to an existing task.
{
"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 a subtask as completed.
{
"requestId": "req-1",
"taskId": "task-1",
"subtaskId": "subtask-1"
}
Update a subtask's title or description.
{
"requestId": "req-1",
"taskId": "task-1",
"subtaskId": "subtask-1",
"title": "Design modern logo",
"description": "Create a modern logo that represents the business brand"
}
Delete a subtask from a task.
{
"requestId": "req-1",
"taskId": "task-1",
"subtaskId": "subtask-1"
}
Export the current status of all tasks in a request to a file. It's recommended to use absolute paths for more reliable file creation.
{
"requestId": "req-1",
"outputPath": "C:/Users/username/Documents/task-status.md",
"format": "markdown"
}
Add a note to a request.
{
"requestId": "req-1",
"title": "Package Manager Preference",
"content": "User prefers pnpm over npm for package management."
}
Update an existing note.
{
"requestId": "req-1",
"noteId": "note-1",
"title": "Package Manager Preference",
"content": "User prefers pnpm over npm and yarn for package management."
}
Delete a note from a request.
{
"requestId": "req-1",
"noteId": "note-1"
}
Add a dependency to a request or task.
{
"requestId": "req-1",
"taskId": "task-1",
"dependency": {
"name": "react",
"version": "^18.2.0",
"description": "JavaScript library for building user interfaces",
"url": "https://reactjs.org"
}
}
For more detailed information about the project architecture and implementation, see the OVERVIEW.md file.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines.
See the CHANGELOG.md file for a history of changes to this project.
- Built with Model Context Protocol (MCP)
- Created by Pink Pixel
Made with β€οΈ by Pink Pixel