Labsco
MCP SERVER

TaskChampion MCP

by GabiUp2

Taskwarrior and Timewarrior from an assistant, with a permission role that decides whether it can only read, also create, or also complete and delete.

Project & Task Management
Summary
The role setting is the reason this is safe to connect.

Giving a model access to your task database is a real decision, and a cumulative role that a server enforces — rather than a prompt asking it to be careful — is the right shape for it. Start at CONTRIBUTOR and move up only when you want to. The schema presets solve the other half: Taskwarrior setups are idiosyncratic, and telling the model what your fields mean is what stops it inventing them.

What it is

An MCP server that wraps the `task` and `timew` CLI tools and exposes them as structured tools. Two things distinguish it: a role setting that caps what the LLM may do with your task database, and a schema system that teaches the model your own task structure, including Taskwarrior user-defined attributes.

What you get
  • Read and search: `list_tasks`, `get_task`, `search_tasks`, `get_task_report`, `get_projects`, `get_tags` and `get_active_context`
  • Change tasks: `create_task`, `create_subtask`, `batch_create_tasks`, `modify_task`, `bulk_modify`, `annotate_task`, `complete_task`, `delete_task` and `undo_last_action`
  • Time tracking through Timewarrior: `start_task`, `stop_task`, `get_time_status` and `get_time_summary`
  • `sync_tasks` — push and pull against a TaskChampion sync server
  • Three cumulative roles: CONTRIBUTOR can read and modify, GENERATOR can also create, MANAGER can also complete and delete — set in `config.toml` and enforced server-side
  • Schema presets that describe your workflow to the model — `minimal`, `gtd`, `scrum`, `kanban` and a detailed `authors_custom_example` — selected through `use_preset_schema`, with `get_schema_info` and `set_active_schema` to inspect and change it
  • An onboarding mode on a fresh install: every tool is listed but operational ones return a structured `schema_unset` error until a role and schema are set, which the LLM can walk you through with `get_runtime_capabilities`, `get_initialization_status` and `propose_initialization_options`
  • Safety mechanics throughout: no shell execution, allowlist validation of inputs, configurable rate limits, an audit log of every call, a `dry_run` preview on destructive operations, and redaction of fields you mark sensitive
Requirements

Taskwarrior 3.x installed, and Timewarrior if you want time tracking. Python 3.10 or higher; install with `uv tool install taskchampion-mcp` (1.0.4 in pyproject and server.json) and point the client at `taskchampion-mcp-server` over stdio. Configuration lives at `~/.config/taskchampion-mcp/config.toml` and needs two keys before operational tools work: `role`, and either `schema` or `schema_path`. `reload_configuration` picks up changes without a restart. stdio only today; HTTP and SSE are deferred.

Setup effort

One command — uv tool install taskchampion-mcp