pinkpixel-dev

TaskFlow MCP ๐Ÿ”„โœ…

Community pinkpixel-dev
Updated

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.

TaskFlow MCP ๐Ÿ”„โœ…

A task management Model Context Protocol (MCP) server for planning and executing tasks with AI assistants.

VersionLicense

๐ŸŒŸ Overview

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.

โœจ Features

  • ๐Ÿ“‹ 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

๐Ÿš€ Installation

Global Installation

npm install -g @pinkpixel/taskflow-mcp

Local Installation

npm install @pinkpixel/taskflow-mcp

๐Ÿ› ๏ธ Usage

Starting the Server

If installed globally:

taskflow-mcp

If installed locally:

npx taskflow-mcp

Configuration

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

MCP Configuration

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"
      }
    }
  }
}

๐Ÿ”„ Workflow

TaskFlow MCP enforces a specific workflow:

  1. Plan Tasks: Break down a user request into tasks (with optional subtasks)
  2. Get Next Task: Retrieve the next pending task
  3. Complete Subtasks: If the task has subtasks, complete each subtask before marking the task as done
  4. Mark Task Done: Mark a task as completed (requires all subtasks to be completed first)
  5. Wait for Approval: Wait for user approval of the completed task
  6. Repeat: Continue with the next task until all tasks are complete
  7. 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.

๐Ÿงฐ Available Tools

TaskFlow MCP exposes the following tools to AI assistants:

plan_task

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"
        }
      ]
    }
  ]
}

get_next_task

Retrieve the next pending task for a request.

{
  "requestId": "req-1"
}

mark_task_done

Mark a task as completed.

{
  "requestId": "req-1",
  "taskId": "task-1",
  "completedDetails": "Created a modern design with a clean layout"
}

approve_task_completion

Approve a completed task.

{
  "requestId": "req-1",
  "taskId": "task-1"
}

approve_request_completion

Approve an entire request as completed.

{
  "requestId": "req-1"
}

open_task_details

Get details about a specific task.

{
  "taskId": "task-1"
}

list_requests

List all requests in the system.

{}

add_tasks_to_request

Add more tasks to an existing request.

{
  "requestId": "req-1",
  "tasks": [
    {
      "title": "Add contact form",
      "description": "Create a contact form with validation"
    }
  ]
}

update_task

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_task

Delete a task from a request.

{
  "requestId": "req-1",
  "taskId": "task-1"
}

add_subtasks

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_subtask_done

Mark a subtask as completed.

{
  "requestId": "req-1",
  "taskId": "task-1",
  "subtaskId": "subtask-1"
}

update_subtask

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_subtask

Delete a subtask from a task.

{
  "requestId": "req-1",
  "taskId": "task-1",
  "subtaskId": "subtask-1"
}

export_task_status

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_note

Add a note to a request.

{
  "requestId": "req-1",
  "title": "Package Manager Preference",
  "content": "User prefers pnpm over npm for package management."
}

update_note

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_note

Delete a note from a request.

{
  "requestId": "req-1",
  "noteId": "note-1"
}

add_dependency

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"
  }
}

๐Ÿ“š Documentation

For more detailed information about the project architecture and implementation, see the OVERVIEW.md file.

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿค Contributing

Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines.

๐Ÿ“œ Changelog

See the CHANGELOG.md file for a history of changes to this project.

๐Ÿ™ Acknowledgements

Made with โค๏ธ by Pink Pixel

MCP Server ยท Populars

MCP Server ยท New

    logotype

    fixparser

    FIX5.0SP2 parser.

    Community logotype
    lucitra

    Linear MCP Server

    Enables AI agents to manage issues, projects, and teams on the Linear platform. MCP server.

    Community lucitra
    M-Pineapple

    Claude Project Coordinator

    Claude Project Coordinator is a Swift-powered MCP (Model Context Protocol) server designed to streamline multi-project Xcode development. It lets you track project status, auto-detect frameworks, search code patterns, and maintain a structured development knowledge base โ€” all locally, with Claude Desktop as your assistant.

    Community M-Pineapple
    KOBA789

    Human-in-the-Loop MCP Server

    An MCP (Model Context Protocol) server that allows AI assistants to ask questions to humans via Discord.

    Community KOBA789
    chaitin

    SafeLine MCP Server

    SafeLine is a self-hosted WAF(Web Application Firewall) / reverse proxy to protect your web apps from attacks and exploits.

    Community chaitin