MCP server wrapping the Taskwarrior CLI for structured, project-scoped task management.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"taskwarrior": {
"args": [],
"command": "<INSTALL_DIR>/target/release/task-warrior-mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A Model Context Protocol server that wraps the Taskwarrior CLI. Gives Claude (or any MCP client) structured, project-scoped access to your tasks.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in productivity
Dynamic problem-solving through sequential thought chains
Persistent memory using a knowledge graph
mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local
Local-first AI memory with knowledge graphs and hybrid search. 17+ AI tools via MCP. Free.
MCP Security Weekly
Get CVE alerts and security updates for io.github.KaiErikNiermann/task-warrior-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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)