TaskWarrior MCP Server
by awwaiid
# TaskWarrior MCP Server
Node.js server implementing Model Context Protocol (MCP) for [TaskWarrior](https://taskwarrior.org/) operations.
## Features
- View pending tasks
- Filter tasks by project and tags
- Add new tasks with descriptions, due dates, priorities, projects and tags
- Mark tasks as complete
**Note**: This runs your local `task` binary, so TaskWarrior needs to be installed and configured!
> [!WARNING]
> This currently uses task `id` which is an unstable identifier; taskwarrior
> sometimes renumbers tasks when new ones are added or removed. In the future
> this should be more careful, using task UUID instead.
## API
### Tools
- **get_next_tasks**
- Get a list of all pending tasks
- Optional filters:
- `project`: Filter by project name
- `tags`: Filter by one or more tags
- **add_task**
- Add a new task to TaskWarrior
- Required:
- `description`: Task description text
- Optional:
- `due`: Due date (ISO timestamp)
- `priority`: Priority level ("H", "M", or "L")
- `project`: Project name (lowercase with dots)
- `tags`: Array of tags (lowercase)
- **mark_task_done**
- Mark a task as completed
- Required:
- `identifier`: Task ID or UUID
## Usage with Claude Desktop
Add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"taskwarrior": {
"command": "npx",
"args": [
"-y",
"mcp-server-taskwarrior"
]
}
}
}
```
## Installation
```bash
npm install -g mcp-server-taskwarrior
```
Make sure you have TaskWarrior (`task`) installed and configured on your system.
## Example usage ideas:
* What are my current work tasks?
* Executes: `task project:work next`
* TODO: Call my sister (high priority)
* Executes: `task add priority:H Call my sister`
* OK, I've called my sister
* Executes: `task done 1`
## License
This MCP server is licensed under the MIT License. See the LICENSE file for details.