Tasks

by flesler

527 downloads Not rated yet

About

An efficient task manager. Designed to minimize tool confusion and maximize LLM budget efficiency while providing powerful search, filtering, and organization capabilities across multiple file formats (Markdown, JSON, YAML)

Explore

- ⚡ Ultra-efficient design: Minimal tool count (5 tools) to reduce AI confusion
- 🎯 Budget-optimized: Batch operations, smart defaults and auto-operations minimize LLM API calls
- 🚀 Multi-format support: Markdown (.md), JSON (.json), and YAML (.yml) task files
- 🔍 Powerful search: Case-insensitive text/status filtering with OR logic, and ID-based lookup
- 📊 Smart organization: Status-based filtering with customizable workflow states
- 🎯 Position-based indexing: Easy task ordering with 0-based insertion
- 📁 Multi-source support: Manage multiple task files simultaneously
- 🔄 Real-time updates: Changes persist automatically to your chosen format
- 🤖 Auto WIP management: Automatically manages work-in-progress task limits
- 🚫 Duplicate prevention: Automatically prevents duplicate tasks
- 🛡️ Type-safe: Full TypeScript support with Zod validation
- 🔒 Ultra-safe: AI has no way to rewrite or delete your tasks (unless you enable it), only add and move them

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Tasks
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

- Node.js ≥20 - This package requires Node.js version 20 or higher

{
"mcpServers": {
"mcp-tasks": {
"command": "npx",
"args": ["-y", "mcp-tasks"]
}
}
}


Basic setup:
json
{
"mcpServers": {
"mcp-tasks": {
"command": "npx",
"args": ["-y", "mcp-tasks"]
}
}
}

| Variable | Default | Description |
|----------|---------|-------------|
| TRANSPORT | stdio | Transport mode: stdio or http |
| PORT | 4680 | HTTP server port (when TRANSPORT=http) |
| PREFIX_TOOLS | true | Prefix tool names with tasks_ |
| STATUS_WIP | In Progress | Work-in-progress status name |
| STATUS_TODO | To Do | ToDo status name |
| STATUS_DONE | Done | Completed status name |
| STATUS_NOTES | Notes | Optional notes/non-actionable status name |
| STATUSES | Backlog | Comma-separated additional statuses |
| AUTO_WIP | true | One WIP moves rest to To Do, first To Do to WIP when no WIP's |
| KEEP_DELETED | true | Retain deleted tasks (AI can't lose you tasks!) |
| INSTRUCTIONS | ... | Included in all tool responses, for the AI to follow |
| SOURCES_PATH | ./sources.json | File to store source registry (internal) |
| DEBUG | false | if true, enable the tasks_debug tool |

Optional, the WIP/ToDo/Done statuses can be included to control their order.

Custom workflow statuses:

json
{
"env": {
"STATUSES": "WIP,Pending,Archived,Done,To Review",
"STATUS_WIP": "WIP",
"STATUS_TODO": "Pending",
"AUTO_WIP": "false"
}
}

yaml
groups:
"In Progress":
- Write user registration
"To Do":
- Implement authentication
- Set up CI/CD pipeline
Backlog:
- Plan architecture
- Design database schema
Done:
- Set up project structure
- Initialize repository

bash

STATUS_WIP="Working" AUTO_WIP=false mcp-tasks


You can also use mcp-tasks (or npx mcp-tasks) as a command-line tool for quick task management:

bash

mcp-tasks setup tasks.md $PWD # Setup with workspace

git clone https://github.com/flesler/mcp-tasks
cd mcp-tasks
npm install

tasks_setup

Initializes a source from a file path. It must be absolute. Creates file if it does not exist. Returns the source ID for further use

tasks_search

Search tasks from specific statuses with optional text & ID filtering

tasks_add

Add new tasks with a specific status. It's faster and cheaper if you use this in batch, add all at once

tasks_update

Update tasks by ID to a different status. It's faster and cheaper if you use this in batch, update all at once

tasks_summary

Get count of tasks in each status and the work-in-progress tasks

When PREFIX_TOOLS=true (default), all tools are prefixed with tasks_:

| Tool | Description | Parameters |
|------|-------------|------------|
| tasks_setup | Initialize a task file (creates if missing, supports .md, .json, .yml) | source_path, workspace? |
| tasks_search | Search tasks with filtering | source_id, statuses?, terms?, ids? |
| tasks_add | Add new tasks to a status | source_id, texts[], status, index? |
| tasks_update | Update tasks by ID | source_id, ids[], status, index? |
| tasks_summary | Get task counts and work-in-progress | source_id |

ID Format: Both source_id (from file path) and task id (from task text) are 4-character alphanumeric strings (e.g., "xK8p", "m3Qw").

Setup a task file:

tasks_setup({
workspace: "/path/to/project",
source_path: "tasks.md" // relative to workspace or absolute
// source_path: "tasks.json"
// source_path: "tasks.yml"
})
// Returns: {"source":{"id":"xK8p","path":"/path/to/project/tasks.md"},"Backlog":0,"To Do":0,"In Progress":0,"Done":0,"inProgress":[]}
// Source ID (4-char alphanumeric) is used for all subsequent operations

Add tasks:

tasks_add({
source_id: "xK8p", // From setup response
texts: ["Implement authentication", "Write tests"],
status: "To Do",
index: 0 // Add at top (optional)
})
// Returns: {"source":{"id":"xK8p","path":"/absolute/path/to/tasks.md"},"Backlog":0,"To Do":2,"In Progress":0,"Done":0,"inProgress":[],"tasks":[{"id":"m3Qw","text":"Implement authentication","status":"To Do","index":0},{"id":"p9Lx","text":"Write tests","status":"To Do","index":1}]}

Search and filter:

tasks_search({
source_id: "xK8p", // From setup response
terms: ["auth", "deploy"], // Search terms (text or status, OR logic)
statuses: ["To Do"], // Filter by status
ids: ["m3Qw", "p9Lx"] // Filter by specific task IDs
})
// Returns: [{"id":"m3Qw","text":"Implement authentication","status":"To Do","index":0}]

Update tasks status:

tasks_update({
source_id: "xK8p", // From setup response
ids: ["m3Qw", "p9Lx"], // Task IDs from add/search responses
status: "Done" // Use "Deleted" to remove
})
// Returns: {"source":{"id":"xK8p","path":"/absolute/path/to/tasks.md"},"Backlog":0,"To Do":0,"In Progress":0,"Done":2,"inProgress":[],"tasks":[{"id":"m3Qw","text":"Implement authentication","status":"Done","index":0},{"id":"p9Lx","text":"Write tests","status":"Done","index":1}]}

Get overview:

tasks_summary({
source_id: "xK8p" // From setup response
})
// Returns: {"source":{"id":"xK8p","path":"/absolute/path/to/tasks.md"},"Backlog":0,"To Do":0,"In Progress":1,"Done":2,"inProgress":[{"id":"r7Km","text":"Fix critical bug","status":"In Progress","index":0}]}

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "tasks": {
            "mcp-tasks": {
                "command": "npx",
                "args": [
                    "-y",
                    "mcp-tasks"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-tasks": {
        "command": "npx",
        "args": [
            "-y",
            "mcp-tasks"
        ]
    }
}

MCP Tasks 📋

Install MCP Server
npm version
Node.js
License: MIT
Docker

A comprehensive and efficient Model Context Protocol (MCP) server for task management that works seamlessly with Claude, Cursor, and other MCP clients. Designed to minimize tool confusion and maximize LLM budget efficiency while providing powerful search, filtering, and organization capabilities across multiple file formats.

📚 Table of Contents

- ✨ Features
- 🚀 Quick Start
- 🤖 AI Integration Tips
- 🔧 Installation Examples
- 📁 Supported File Formats
- 🛠️ Available Tools
- 🎛️ Environment Variables
- 📊 File Formats
- 🖥️ Server Usage
- 💻 CLI Usage
- 🧪 Development
- 🛠️ Troubleshooting
- Why not let AI edit files directly?
- 🤝 Contributing
- 📄 License
- 🔗 Links

✨ Features

- ⚡ Ultra-efficient design: Minimal tool count (5 tools) to reduce AI confusion
- 🎯 Budget-optimized: Batch operations, smart defaults and auto-operations minimize LLM API calls
- 🚀 Multi-format support: Markdown (.md), JSON (.json), and YAML (.yml) task files
- 🔍 Powerful search: Case-insensitive text/status filtering with OR logic, and ID-based lookup
- 📊 Smart organization: Status-based filtering with customizable workflow states
- 🎯 Position-based indexing: Easy task ordering with 0-based insertion
- 📁 Multi-source support: Manage multiple task files simultaneously
- 🔄 Real-time updates: Changes persist automatically to your chosen format
- 🤖 Auto WIP management: Automatically manages work-in-progress task limits
- 🚫 Duplicate prevention: Automatically prevents duplicate tasks
- 🛡️ Type-safe: Full TypeScript support with Zod validation
- 🔒 Ultra-safe: AI has no way to rewrite or delete your tasks (unless you enable it), only add and move them

🚀 Quick Start

Option 1: NPX (Recommended)

```bash
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.