Skip to main content
Glama
trash-panda-v91-beta

Donetick MCP Server

README.md
# Donetick MCP

An MCP server that turns your Donetick instance into tools. Create, list, update, complete, and skip chores, manage things, and check circle members and completion history.

Authenticated with a Donetick API token (no username or password). Built with FastMCP.

## Run with Docker

You need a Donetick instance and an access token (settings > Advanced > API).

```bash
docker build -t donetick-mcp .
docker run -e DONETICK_BASE_URL=https://donetick.example.com \
  -e DONETICK_API_TOKEN=your-token \
  donetick-mcp
```

## Settings

| name | default | notes |
| ---- | ------- | ----- |
| `DONETICK_BASE_URL` | - | required, https only |
| `DONETICK_API_TOKEN` | - | required, from Donetick settings |
| `LOG_LEVEL` | INFO | |
| `RATE_LIMIT_PER_SECOND` | 10 | |
| `RATE_LIMIT_BURST` | 10 | |

Values can come from a `.env` file in the working directory.

## Serve over HTTP

By default the server talks stdio (one process per client). To expose it as an
HTTP MCP endpoint behind a gateway (e.g. LiteLLM), set the FastMCP transport
env vars - no code change required:

| env | default |
| --- | ------- |
| `FASTMCP_TRANSPORT` | `stdio` |
| `FASTMCP_HOST` | `127.0.0.1` |
| `FASTMCP_PORT` | `8000` |
| `FASTMCP_STREAMABLE_HTTP_PATH` | `/mcp` |

Example - serve streamable-http on all interfaces:

```bash
FASTMCP_TRANSPORT=streamable-http FASTMCP_HOST=0.0.0.0 FASTMCP_PORT=8000 \
  donetick-mcp
```

## Tools

Chores: `list_chores`, `get_chore`, `create_chore`, `complete_chore`, `update_chore`, `delete_chore`, `update_chore_priority`, `update_chore_assignee`, `skip_chore`, `update_subtask_completion`, `archive_chore`, `unarchive_chore`, `undo_chore`, `approve_chore`, `reject_chore`, `start_chore`, `pause_chore`

Things: `list_things`, `get_thing`, `get_thing_state`, `change_thing_state`, `create_thing`, `update_thing`, `delete_thing`, `get_thing_history`

Circle: `get_circle_members`, `list_circles`, `get_join_requests`, `accept_join_request`, `join_circle`, `leave_circle`, `change_member_role`, `delete_circle_member`, `redeem_points`

Projects: `list_projects`, `create_project`, `update_project`, `delete_project`

History: `get_chore_history`, `get_all_chores_history`, `get_chore_details`

## License

MIT

TDQS

B3.3/5.0

Scored across 41 tools

Disambiguation4/5

Most tools have distinct purposes, but a few overlap: get_chore and get_chore_details both retrieve a single chore (the latter with stats), and get_chore_history vs get_all_chores_history could be confused. However, descriptions generally clarify scope, so agents can usually pick correctly.

Naming Consistency4/5

The majority follow a consistent verb_noun snake_case pattern (e.g., list_chores, create_chore, update_chore, delete_chore). Minor deviations include change_thing_state and redeem_points, but they are readable and do not break the overall pattern.

Tool Count2/5

With 41 tools, the server far exceeds the typical well-scoped range. While the domain spans chores, circles, things, projects, and history, the sheer number makes the surface heavy and harder to navigate, and many tools could potentially be consolidated.

Completeness4/5

The tool set covers CRUD for chores, things, and projects, plus circle management, history, timers, approval flows, and rewards. A few potential gaps exist (e.g., no create_circle or delete_circle), but the core workflows appear well-supported without obvious dead ends.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive