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-mcp
Claude 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.
Tools (27)
Chore Management
| Tool | Description |
|---|---|
list_chores |
List chores with optional filters (active, assigned user, brief/full detail) |
get_chore |
Get full chore details including subtasks and labels |
create_chore |
Create a chore — supports usernames, day names, reminders, subtasks. Defaults to assigning to anyone in the circle (round-robin) |
update_chore |
Update any fields: name, description, schedule, assignees (by username), labels (add/remove/set by name), priority, notifications |
delete_chore |
Delete a chore (creator only) |
list_archived_chores |
List archived/hidden chores |
Chore Actions
| Tool | Description |
|---|---|
complete_chore |
Mark a chore as done |
skip_chore |
Skip without completing — schedules next occurrence for recurring chores |
archive_chore |
Soft-delete / hide a chore |
unarchive_chore |
Restore an archived chore |
approve_chore |
Approve a completion that requires approval |
reject_chore |
Reject a completion that requires approval |
update_due_date |
Quick reschedule without a full update |
Timer
| Tool | Description |
|---|---|
start_chore_timer |
Start time tracking |
pause_chore_timer |
Pause time tracking |
Subtasks
| Tool | Description |
|---|---|
create_subtask |
Add a checklist item to a chore |
delete_subtask |
Remove a subtask |
update_subtask_completion |
Mark a subtask complete/incomplete |
convert_chore_to_subtask |
Convert a standalone chore into a subtask of another (deletes the original) |
Labels
| Tool | Description |
|---|---|
list_labels |
List all labels in the circle |
create_label |
Create a new label (name + optional hex color) |
update_label |
Rename or recolor a label |
delete_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_circle_members |
List all members with IDs, roles, and points |
get_user_profile |
Current user's profile, points, and settings |
get_chore_history |
Completion history — for one chore or all (with pagination) |
get_chore_details |
Chore stats: total completions, average duration, recent history |
Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
DONETICK_BASE_URL |
Yes | — | Donetick instance URL |
DONETICK_USERNAME |
Yes | — | Donetick username |
DONETICK_PASSWORD |
Yes | — | Donetick password |
LOG_LEVEL |
No | INFO |
DEBUG, INFO, WARNING, ERROR |
RATE_LIMIT_PER_SECOND |
No | 10.0 |
API rate limit |
RATE_LIMIT_BURST |
No | 10 |
Burst capacity |
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 -d
pip
pip install donetick-mcp
donetick-mcp # requires env vars set
Development
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 vars
License
MIT
Links
- Donetick — Open source chores management
- PyPI Package
- MCP Protocol
Metadata
Release files for donetick-mcp 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| donetick_mcp-0.4.2.tar.gz | 55.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| donetick_mcp-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 87.4 kB
Release files / donetick_mcp-0.4.2.tar.gz
| Download URL | donetick_mcp-0.4.2.tar.gz |
|---|---|
| Size | 55.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
81740c34b51f04b6b09fdc0a2dca9a868cae03d9ac5ec0f6fbc2a206370e7f78
|
|
BLAKE2b-256 checksum How to use checksums |
3cbc80a1b5f346b50dd8d5731e37a466b4aeb8bfaaf270f814c4d513311cbe85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / donetick_mcp-0.4.2-py3-none-any.whl
| Download URL | donetick_mcp-0.4.2-py3-none-any.whl |
|---|---|
| Size | 31.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f38416842b91e902c306df228321bf5ed25aef62358670025ae32cd2034da487
|
|
BLAKE2b-256 checksum How to use checksums |
91e93a236fd0703408b98a735eb7e8673a7b8f15b5fe01d9e541c296aafb754e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Security for donetick-mcp 0.4.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.