An MCP server for managing tasks with priorities and dependencies.
Tasks are persisted to a local tasks.json file (defaults to the current working directory — override with the MCPTASKS_DATA_DIR env var).
npm install
npm run build{
"mcpServers": {
"tasks": {
"command": "node",
"args": ["/Users/rumpl/hack/mcptasks/dist/index.js"]
}
}
}You can optionally set MCPTASKS_DATA_DIR in the env block to control where tasks.json lives.
| Tool | Description |
|---|---|
| create_task | Create a task with a title + description (or a path to a markdown file). Set priority & dependencies. |
| get_task | Get full details of a task by ID, including its effective status (blocked if deps aren't done). |
| update_task | Update any field on a task: title, description/path, priority, status, dependencies. |
| delete_task | Delete a task. Automatically cleans it from other tasks' dependency lists. |
| list_tasks | List all tasks sorted by priority (critical → low), blocked tasks last. Filter by status or priority. |
| next_task | Get the single highest-priority task that is actionable (not blocked, not done). |
| add_dependency | Make task A depend on task B (A is blocked until B is done). Cycle detection included. |
| remove_dependency | Remove a dependency link between two tasks. |
critical > high > medium (default) > low
| Status | Meaning |
|---|---|
pending |
Not started |
in_progress |
Being worked on |
done |
Complete |
blocked |
Derived — at least one dependency is not done |
A task's effective status is automatically blocked when any of its dependencies aren't done, regardless of its stored status.
When creating or updating a task you can pass path pointing to a markdown file instead of (or in addition to) description. The file's contents will be read and stored as the task description. This is useful for detailed specs or requirements docs.