TaskFlow MCP

TaskFlow MCP

A task management Model Context Protocol server that helps break down user requests into manageable tasks with subtasks, dependencies, and notes, while enforcing a structured workflow with user approval steps.

Category
Visit Server

Tools

plan_task

Register 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.

mark_subtask_done

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_subtask

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_subtask

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_task_status

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_note

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.

get_next_task

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_task_done

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'.

open_task_details

Get details of a specific task by 'taskId'. This is for inspecting task information at any point.

list_requests

List all requests with their basic information and summary of tasks. This provides a quick overview of all requests in the system.

add_tasks_to_request

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_task

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_task

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

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.

update_note

Update an existing note's title or content. Provide the 'requestId' and 'noteId', and optionally 'title' and/or 'content' to update.

delete_note

Delete a note from a request. Provide the 'requestId' and 'noteId' of the note to delete.

add_dependency

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.

README

TaskFlow MCP 🌟

GitHub release

Welcome to TaskFlow MCP, a task management Model Context Protocol (MCP) server designed to enhance AI assistants. This project helps break down user requests into manageable tasks, complete with subtasks, dependencies, and notes. It enforces a structured workflow with user approval steps, making task management simpler and more efficient.

Table of Contents

Features

  • Task Management: Break down complex requests into simple tasks.
  • Subtasks: Organize tasks into smaller, manageable components.
  • Dependencies: Define task dependencies to maintain workflow integrity.
  • Notes: Attach notes to tasks for additional context.
  • User Approval: Ensure tasks receive user confirmation before proceeding.
  • Easy Integration: Designed to work seamlessly with AI assistants.

Getting Started

To get started with TaskFlow MCP, follow the instructions below. You can download the latest release here.

Prerequisites

Make sure you have the following installed:

  • Node.js (version 14 or higher)
  • npm (Node Package Manager)

Installation

  1. Clone the repository:

    git clone https://github.com/Aekkaratjerasuk/taskflow-mcp.git
    
  2. Navigate to the project directory:

    cd taskflow-mcp
    
  3. Install the required dependencies:

    npm install
    
  4. Start the server:

    npm start
    

Now, your TaskFlow MCP server is running and ready to manage tasks.

Usage

Once the server is running, you can interact with it through your AI assistant. Here’s how to utilize the features:

Creating Tasks

To create a new task, send a request to the server with the task details. The server will respond with a unique task ID.

Adding Subtasks

You can add subtasks to any existing task by specifying the parent task ID. This helps in organizing tasks better.

Managing Dependencies

Define dependencies between tasks to ensure they execute in the correct order. The server will handle the logic for you.

Adding Notes

Attach notes to any task for additional context. This is useful for providing background information or instructions.

User Approval

Before a task proceeds, the server will prompt for user approval. This ensures that the user is always in control.

Contributing

We welcome contributions to TaskFlow MCP! If you have ideas for improvements or features, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or fix.
  3. Make your changes.
  4. Submit a pull request.

Please ensure that your code follows our coding standards and includes tests where applicable.

License

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

Links

For more information and updates, visit the Releases section. Here, you can find the latest versions and updates for TaskFlow MCP.


Feel free to explore, contribute, and make the most out of TaskFlow MCP. We appreciate your interest and support!

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured