mustdo-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MUSTDO_HOME | No | Where `config.json` and `auth.json` live. | ~/.mustdo |
| MUSTDO_CK_ENV | No | `production` for App Store data. `development` is only useful for the MustDo developers. Config.json key: environment. | development |
| MUSTDO_CK_ZONE | No | CloudKit zone name. Leave as is. Config.json key: zoneName. | MustDo |
| MUSTDO_LOG_LEVEL | No | `DEBUG` / `INFO` / `WARN` / `ERROR` (JSON lines on stderr). | INFO |
| MUSTDO_CK_API_TOKEN | Yes | CloudKit API Token for the MustDo container (required). Use the value shown on https://ltng.jp/mustdo/mcp. Environment variables win over ~/.mustdo/config.json (config.json key: apiToken). | |
| MUSTDO_CK_CONTAINER | No | CloudKit container. Leave as is. Config.json key: container. | iCloud.jp.lightning.mustdo |
| MUSTDO_CALLBACK_PORT | No | Port the sign-in callback listens on. Config.json key: callbackPort. | 51234 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sign_inA | Apple のサインイン画面をブラウザで開き、戻ってきた ckWebAuthToken を ~/.mustdo/auth.json に保存する。他のツールが NOT_SIGNED_IN を返したときに使う。ユーザーがブラウザ操作できるときだけ呼ぶこと。 |
| get_meA | Account レコード(trialStartedAt / subscribedUntil / timeZone / defaultTime)と、その時間帯での今日の日付・曜日、due を省略したときに使われる「明日の既定時刻」(defaultDueNext、ISO8601)を返す。日付を扱う前に呼ぶ。 |
| list_todosA | TODO を一覧する。date(1 日)か from/to(両端含む、YYYY-MM-DD、Account の timeZone)で絞る。省略で全期間。status の既定は pending。削除済み(deletedAt あり)は含めない。繰り返しは展開せず repeating にテンプレートとして返し、範囲内の Occurrence(回ごとの done / skipped / スヌーズ)を添える。展開はアプリ側で MCP はしない。規則(repeat): kind × interval(1=毎、2=隔)。daily は interval 日ごと、weekly は weekdays(1=日…7=土。空なら dueAt の曜日)の曜日、monthly は dueAt の日(dayOfMonth。無い月は月末)か第 n 曜日(weekdayOrdinal、ordinal -1 = 最終)、yearly は dueAt の月日。終了は end(never / until = その日を含む / count = 開始からの回数)。初回は dueAt、各回の時刻は dueAt の時分(timeZone の時計)。 |
| add_todoA | TODO を追加する(source=mcp)。ひとことで TODO を言われたら title だけ渡す。due を省略すると明日の既定時刻(Account の timeZone での今日の翌日、Account.defaultTime、既定 09:00)になる。「明日 9 時」「今日 15 時」など利用者が時刻を言ったときだけ due を渡す(YYYY-MM-DDTHH:mm は Account の timeZone の時計、ISO8601 も可)。日付だけ言われたら due に YYYY-MM-DD を渡すと「その日の既定時刻」になる。繰り返しは repeat で(iOS カレンダーと同じ語彙: 毎日 / 毎週 月水 / 隔週 / 毎月 5 日 / 毎月 第 1 月曜 / 最終金曜 / 毎年 / 3 日ごと / 10 回で終了 / 12/31 まで)。初回は due(毎月 5 日なら due を 5 日に、毎年なら due の月日)。試用(30 日)も購読も切れていると isError + code=PAYMENT_REQUIRED。 |
| update_todoA | TODO の題名・時刻・繰り返し・メモ・音・状態を変える。渡した項目だけ変わる。repeat は丸ごと置き換え(省略した項目は既定値)。repeat: null か {kind: none} で繰り返しを外す。notes: null でメモを消す。繰り返し TODO の status は変えられない(complete_todo / snooze_todo を使う)。 |
| complete_todoA | やった、にする。単発は status=done と completedAt。繰り返しは occurrenceDate(YYYY-MM-DD、省略で TODO の timeZone での今日)の回を Occurrence に done で記録する。 |
| snooze_todoC | until(YYYY-MM-DDTHH:mm は TODO の timeZone、または ISO8601)まで鳴らさない。繰り返しは occurrenceDate の回だけ。 |
| delete_todoB | deletedAt を書く soft delete。アプリ側で 14 日後に物理削除される。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct operation: auth (sign_in, get_me), CRUD (add/update/delete/list_todo), and special status actions (complete_todo, snooze_todo). The only mild overlap is that update_todo can also change status, but the description explicitly redirects recurring occurrences to complete_todo/snooze_todo, keeping boundaries clear.
Consistent snake_case verb_noun pattern throughout: sign_in, get_me, add_todo, update_todo, complete_todo, snooze_todo, delete_todo, list_todos. No mixed conventions or vague verbs.
8 tools is well-scoped for a personal TODO server. Auth, account info, CRUD, and recurring-occurrence actions each earn their place without redundancy.
Covers the full TODO lifecycle including soft delete, completion, snooze, recurrence, and listing with filters. Minor gaps: no restore-undelete, no single-todo get, and no explicit unsnooze, but agents can work around these.