mcp server taskwarrior
Node.js server implementing Model Context Protocol that enables interaction with TaskWarrior through natural language to view, filter, add, and complete tasks.
Node.js server implementing Model Context Protocol that enables interaction with TaskWarrior through natural language to view, filter, add, and complete tasks.
Node.js server implementing Model Context Protocol (MCP) for TaskWarrior operations.
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.
Optional filters:
project
: Filter by project nametags
: Filter by one or more tagsadd_task
description
: Task description textOptional:
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
identifier
: Task ID or UUIDAdd this to your claude_desktop_config.json
:
{
"mcpServers": {
"taskwarrior": {
"command": "npx",
"args": [
"-y",
"mcp-server-taskwarrior"
]
}
}
}
npm install -g mcp-server-taskwarrior
Make sure you have TaskWarrior (task
) installed and configured on your system.
task project:work next
task add priority:H Call my sister
task done 1
This MCP server is licensed under the MIT License. See the LICENSE file for details.
[
{
"description": "Get a list of all pending tasks",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"project": {
"pattern": "^[a-z.]+$",
"type": "string"
},
"tags": {
"items": {
"pattern": "^a-z$",
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "get_next_tasks"
},
{
"description": "Mark a task as done (completed)",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"identifier": {
"type": "string"
}
},
"required": [
"identifier"
],
"type": "object"
},
"name": "mark_task_done"
},
{
"description": "Add a new task",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"due": {
"type": "string"
},
"priority": {
"enum": [
"H",
"M",
"L"
],
"type": "string"
},
"project": {
"pattern": "^[a-z.]+$",
"type": "string"
},
"tags": {
"items": {
"pattern": "^a-z$",
"type": "string"
},
"type": "array"
}
},
"required": [
"description"
],
"type": "object"
},
"name": "add_task"
}
]