Wraps the Taskwarrior CLI so Claude can read and write tasks without flooding context with thousands of unrelated items. Every operation is project-scoped by default: you specify a project name and the server automatically filters queries to that subset. Exposes add, list, search, modify, complete, delete, and annotate operations with support for due dates, tags, priorities, and Taskwarrior's virtual tag filters like +OVERDUE and +BLOCKED. Useful if you already keep tasks in Taskwarrior and want an LLM to help manage specific project backlogs without dumping your entire task database into every prompt. Ships as a prebuilt binary, requires the task CLI on your PATH.
A Model Context Protocol server that wraps the Taskwarrior CLI. Gives Claude (or any MCP client) structured, project-scoped access to your tasks.
Every read and write operation requires a project field. The server automatically prepends project:<name> to all Taskwarrior queries. Without this, a single task next call can dump thousands of unrelated tasks into your LLM's context — slow, expensive, and useless. An explicit all_projects boolean opt-out exists for the rare cases that genuinely need a global view.
task on $PATH)Find task-warrior-mcp on the MCP Registry and follow the installation prompt in your MCP client. No build step required.
Requires Rust (stable).
git clone https://github.com/<you>/task-warrior-mcp
cd task-warrior-mcp
cargo build --release
The binary lands at target/release/task-warrior-mcp.
If installed via the MCP registry, your client handles configuration automatically. For a local build:
claude mcp add --scope user taskwarrior /path/to/task-warrior-mcp/target/release/task-warrior-mcp
Merge the snippet below into your claude_desktop_config.json (replace <INSTALL_DIR> with the absolute path to this repo):
{
"mcpServers": {
"taskwarrior": {
"command": "<INSTALL_DIR>/target/release/task-warrior-mcp",
"args": []
}
}
}
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
| Tool | Required | Optional |
|---|---|---|
add_task | description, project | due, tags, priority, wait, scheduled |
list_tasks | project | filter, report, all_projects |
search_tasks | pattern, project | filter, all_projects |
get_task | id | — |
modify_task | id, modifications | — |
complete_task | id | — |
delete_task | id | — |
annotate_task | id, note | — |
today · tomorrow · eow · eom · friday · 2025-06-15 · 2025-06-15T14:30 · today+3d · later
+OVERDUE · +DUE · +TODAY · +READY · +ACTIVE · +BLOCKED · +BLOCKING · +WAITING
next (default, urgency-sorted) · list · all · completed · waiting · blocked
H (high) · M (medium) · L (low)
just build # cargo build --release
just test # run all tests (each isolated in a temp taskwarrior DB)
just lint # clippy + fmt check
Or use cargo directly:
cargo test
cargo clippy
cargo fmt
A pre-push hook runs fmt + clippy + tests automatically — no setup needed after cloning.
CI runs the same checks on every push and PR via GitHub Actions.
Requires: just, gh, jq, openssl, and cargo-edit (just setup).
just setup # install cargo-edit (one-time)
just release # bump patch, build, push tag, create GitHub release, update server.json
just release minor # bump minor version
just release-version 1.2.3 # explicit version
just publish # push server.json to the MCP registry (after mcp-publisher login)
gongrzhe/office-powerpoint-mcp-server
gongrzhe/office-word-mcp-server
io.github.mindstone/mcp-server-office
greirson/mcp-todoist
henilcalagiya/mcp-apple-notes
ankimcp/anki-mcp-server-addon