donetick-mcp
This MCP server lets AI assistants manage a Donetick chores instance through 27 tools covering chores, assignments, subtasks, labels, timers, approvals, users, and history.
List, get, create, update, delete, archive, and unarchive chores, with filters for active status, assignee, and detail level.
Complete, skip, approve, or reject chores and quickly reschedule due dates.
Start and pause chore time tracking.
Create and delete subtasks, mark subtasks complete/incomplete, and convert standalone chores into subtasks.
List, create, update, and delete labels, and add/remove/set labels on chores by name.
List circle members and get the current user’s profile, points, and settings.
Retrieve completion history and chore statistics, including total completions, average duration, and recent history.
Configure recurring schedules, assignees, priorities, points, reminders, approvals, privacy, and rolling schedules when creating or updating chores.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@donetick-mcp List chores assigned to me that are due today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Donetick MCP Server
An MCP server for Donetick chores management. Gives Claude and other MCP-compatible AI assistants full control over your Donetick instance — 27 tools covering chores, subtasks, labels, timers, and more.
Quick Start
uvx donetick-mcpClaude Desktop / Claude Code
Add to your MCP config (.mcp.json, claude_desktop_config.json, etc.):
{
"mcpServers": {
"donetick": {
"command": "uvx",
"args": ["donetick-mcp"],
"env": {
"DONETICK_BASE_URL": "https://your-instance.com",
"DONETICK_USERNAME": "your_username",
"DONETICK_PASSWORD": "your_password"
}
}
}
}Note:
DONETICK_BASE_URLcan be HTTP for local/private network instances.
Related MCP server: TaskWarrior MCP Server
Tools (27)
Chore Management
Tool | Description |
| List chores with optional filters (active, assigned user, brief/full detail) |
| Get full chore details including subtasks and labels |
| Create a chore — supports usernames, day names, reminders, subtasks. Defaults to assigning to anyone in the circle (round-robin) |
| Update any fields: name, description, schedule, assignees (by username), labels (add/remove/set by name), priority, notifications |
| Delete a chore (creator only) |
| List archived/hidden chores |
Chore Actions
Tool | Description |
| Mark a chore as done |
| Skip without completing — schedules next occurrence for recurring chores |
| Soft-delete / hide a chore |
| Restore an archived chore |
| Approve a completion that requires approval |
| Reject a completion that requires approval |
| Quick reschedule without a full update |
Timer
Tool | Description |
| Start time tracking |
| Pause time tracking |
Subtasks
Tool | Description |
| Add a checklist item to a chore |
| Remove a subtask |
| Mark a subtask complete/incomplete |
| Convert a standalone chore into a subtask of another (deletes the original) |
Labels
Tool | Description |
| List all labels in the circle |
| Create a new label (name + optional hex color) |
| Rename or recolor a label |
| Delete a label (removes from all chores) |
Labels can also be managed directly on chores via
update_choreusingadd_label_names,remove_label_names, orset_label_names.
Users & History
Tool | Description |
| List all members with IDs, roles, and points |
| Current user's profile, points, and settings |
| Completion history — for one chore or all (with pagination) |
| Chore stats: total completions, average duration, recent history |
Configuration
Variable | Required | Default | Description |
| Yes | — | Donetick instance URL |
| Yes¹ | — | Donetick username |
| Yes¹ | — | Donetick password |
| No | — | Donetick API token ( |
| No |
|
|
| No |
|
|
| No |
|
|
| No |
| API rate limit |
| No |
| Burst capacity |
¹ Not needed when DONETICK_API_TOKEN is set. Donetick (v0.1.83, checked 2026-10-21) accepts the
secretkey header on every /api/v1 route, so a token gives the same access as the account that
created it, with no stored password. Tokens are stored hashed (SHA-256) server side; legacy
pre-dt_ tokens are compared raw.
Create Chore Examples
Simple one-time chore:
{"name": "Fix leaky faucet", "due_date": "2025-11-10", "priority": 3}Recurring chore on specific days:
{"name": "Take out trash", "days_of_week": ["Mon", "Thu"], "time_of_day": "19:00", "usernames": ["Alice"]}With subtasks and reminders:
{"name": "Weekly review", "frequency_type": "weekly", "subtask_names": ["Check email", "Update notes"], "remind_minutes_before": 15}If no usernames provided, the chore is assigned to everyone in the circle with round-robin rotation.
Alternative Installation
Docker
git clone https://github.com/danielrosehill/donetick-mcp.git
cd donetick-mcp
cp .env.example .env # edit with your credentials
docker-compose up -dpip
pip install donetick-mcp
donetick-mcp # requires env vars setDevelopment
git clone https://github.com/danielrosehill/donetick-mcp.git
cd donetick-mcp
python3 -m venv venv && source venv/bin/activate
pip install -e ".[dev]"
pytest # 200 tests, requires DONETICK_* env varsLicense
MIT
Links
Donetick — Open source chores management
Available Tools
27 toolsapprove_choreB
Approve a chore completion that requires approval.
Inputs: chore_id (required).
archive_choreA
Archive a chore (soft-delete / hide). Can be unarchived later.
Inputs: chore_id (required).
complete_choreC
Mark a chore as complete.
Inputs: chore_id (required), completed_by.
convert_chore_to_subtaskA
Convert a standalone chore into a subtask of another chore. Deletes the original chore and creates a subtask with its name on the target.
Inputs: source_chore_id (required), target_chore_id (required).
create_choreA
Create a new chore. Use simple inputs like usernames and day names.
EXAMPLES:
Simple: {name: 'Take out trash', days_of_week: ['Mon','Thu'], time_of_day: '19:00', usernames: ['Alice']}
One-time: {name: 'Fix faucet', due_date: '2025-11-10', priority: 3}
With subtasks: {name: 'Weekly review', subtask_names: ['Check email','Update notes']}
If no usernames provided, chore is assigned to ANYONE in the circle (round-robin).
Inputs: name (required), points, due_date, priority, +16 more.
create_labelB
Create a new label for categorizing chores.
Inputs: name (required), color.
create_subtaskB
Add a new subtask/checklist item to an existing chore.
Inputs: name (required), chore_id (required).
delete_choreA
Delete a chore permanently. Only the creator can delete.
Inputs: chore_id (required).
delete_labelA
Delete a label. Removes it from all chores.
Inputs: label_id (required).
delete_subtaskB
Remove a subtask from a chore.
Inputs: chore_id (required), subtask_id (required).
get_choreB
Get full details of a specific chore by ID, including subtasks and labels.
Inputs: chore_id (required).
get_chore_detailsA
Get chore with completion statistics: total count, last completion, average duration, recent history.
Inputs: chore_id (required).
get_chore_historyA
Get completion history. If chore_id provided, returns history for that chore. Otherwise returns all chores history with pagination.
Inputs: limit, offset, chore_id.
get_user_profileA
Get the current user's profile (points, storage, notification config).
Inputs: no named parameters.
list_archived_choresA
List all archived (hidden) chores.
Inputs: no named parameters.
list_choresA
List all chores. Filter by active status or assigned user. Use detail_level='brief' for compact output.
Inputs: detail_level, filter_active, assigned_to_user_id.
list_circle_membersA
List all members in the circle with IDs, usernames, roles, and points. Use this to find user IDs for assignment.
Inputs: no named parameters.
list_labelsA
List all labels in the circle.
Inputs: no named parameters.
pause_chore_timerB
Pause the time tracker for a chore.
Inputs: chore_id (required).
reject_choreC
Reject a chore completion that requires approval.
Inputs: chore_id (required).
skip_choreA
Skip a chore without completing. For recurring chores, schedules the next occurrence.
Inputs: chore_id (required).
start_chore_timerB
Start the time tracker for a chore.
Inputs: chore_id (required).
unarchive_choreA
Restore a previously archived chore.
Inputs: chore_id (required).
update_choreB
Update any chore fields. Only provide fields you want to change.
Supports: name, description, schedule/frequency, assignees, priority, labels (add/remove/set by name), notifications, and more.
Inputs: chore_id (required), name, points, isActive, +16 more.
update_due_dateA
Quickly reschedule a chore's due date without a full update.
Inputs: chore_id (required), due_date (required).
update_labelA
Rename a label or change its color.
Inputs: name (required), label_id (required), color.
update_subtask_completionB
Mark a subtask complete or incomplete.
Inputs: chore_id (required), completed (required), subtask_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 27 tools
Each tool targets a distinct action on a specific resource (chore, label, subtask, user, timer). Overlaps like get_chore, get_chore_details, and get_chore_history are clearly differentiated by the type of data returned. The descriptions provide enough detail to avoid confusion.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., create_chore, list_chores, delete_label). Slight variations like convert_chore_to_subtask or update_subtask_completion still adhere to the pattern, ensuring predictability.
With 27 tools, the set is comprehensive for a chore management domain, covering creation, updates, deletion, completion, approval, archiving, timers, and labels. While slightly on the higher side, each tool serves a clear purpose and none are redundant.
The tool set provides full CRUD for chores, labels, and subtasks, along with lifecycle management (completion, approval, archiving, timers, history). There are no obvious gaps for core operations in a chore management application.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Official Todoist MCP server. Manage tasks and projects. Hosted, no API key needed.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseBqualityDmaintenanceA comprehensive MCP server that provides full integration between Claude and Todoist, enabling task, project, section, and label management through 24 different tools with the complete Todoist API.3040 npm6MIT
- AlicenseNot gradedqualityBmaintenanceMCP server that wraps TaskWarrior command-line tool. Provides 22 tools for task management, GTD workflow, and habit tracking.22 npm11MIT
- AlicenseAqualityDmaintenanceMCP server for Donetick chores management, enabling AI assistants to list, create, complete, update, and delete chores with full API integration and rate limiting.2012MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for TickTick task management. Enables AI assistants to create, update, list, search, and complete tasks via natural language.21 npm30MIT