絶対伝えろよリマインダー
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
絶対伝えろよリマインダー
ヒーローズ・リーグ 2026 応募作品。claude.ai で新しい会話を開くと、Claude が返事の 1 行目で「期限が来たこと」を必ず伝えてくる、自分専用のリモート MCP サーバー。
紹介動画・作品ページ: ProtoPedia(リンクは下の「リンク」)
要件定義から実装・デプロイまで Claude と Claude Code(ralphex で自動で回すループ)で作った。
docs/に開発プロセス書とプランが、履歴にレビュー指摘の修正コミットがそのまま残っている。このリポジトリは公開用の写し(コミット作者を GitHub の noreply アドレスにそろえた)。運用中の Worker の設定値(D1/KV の id)が
wrangler.jsoncに入っているが、Cloudflare にログインしないと使えない識別子で秘密値ではない。秘密値はwrangler secretにあり、リポジトリには変数名しかない。リンク
ProtoPedia: (登録後に追記)
紹介動画: (登録後に追記)
claude.ai のカスタムコネクタとして接続する個人用のリモート MCP サーバー。新しい会話の最初の応答を書く前に Claude が check_board を呼ぶと、表示時刻を過ぎた未アーカイブのリマインダーを返し、同時にアーカイブする(同じものは二度返らない)。
Claude に計算や整形をさせない。並び順・残り日数・表示用の 1 行(line)はサーバーが作って返す。利用者は本人 1 名のみ。
構成
Cloudflare Workers の Worker 1 つ(
src/index.ts、TypeScript)Cloudflare D1(binding
DB、DB 名zettai-reminder)にリマインダーと参照記録を置く。SQL はsrc/repo/にだけ書くWorkers KV(binding
OAUTH_KV)に OAuth トークンだけを置くDurable Object(binding
MCP_OBJECT、classReminderMCP)がagents/mcpのMcpAgent。Streamable HTTP の窓口は/mcp認証は
@cloudflare/workers-oauth-provider。Worker 自身が OAuth 2.1 認可サーバー(動的クライアント登録+PKCE S256)で、上流 IdP は GitHub OAuth。ALLOWED_GITHUB_USER_IDと一致する GitHub ユーザーだけ通す日時はすべて
YYYY-MM-DDTHH:MM:SS+09:00(日本時間固定)の文字列。src/lib/datetime.tsだけを使う前提は Node 24 以上(
package.jsonのengines)。テストが D1 をnode:sqliteで代替するため、これより古い Node ではnpm testが動かない
Related MCP server: reminders-mcp
ツール
応答は全ツール共通で、成功時が { content: [{ type: "text", text: <JSON> }] }、失敗時が isError: true と { error: { code, message } }。エラーコードは INVALID_DATETIME / VALIDATION_ERROR / NOT_FOUND / DB_ERROR。
この 4 コードになるのはサーバー側の処理で起きた失敗だけ。入力スキーマ違反(必須項目の欠落・enum 違反・limit の範囲外・型違い)は MCP SDK の zod 検証が先に弾くので、この封筒ではなくプロトコル側のエラーで返る。
ツール | 入力 | 返り値 |
| なし |
|
|
|
|
|
|
|
|
|
|
|
|
|
check_board の line は次の 4 形。サーバーが完成させるので Claude は整形しない。
期限なし:
・[本文]期限が先:
・[本文](期限 M/D、あと N 日)期限が当日:
・[本文](期限 M/D、今日まで)期限切れ:
・[本文](期限 M/D、N 日超過)
has_more は「黙って欠けさせない」ための印。check_board では上限ちょうどで尽きた場合も true になる(残りの見落としより過剰な通知を採る)。list_reminders(status="active") を重複確認に使うとき has_more が true なら、一覧は全件ではない。
コマンド
コマンド | 内容 |
| ローカルで Worker を起動する( |
|
|
| Vitest(D1 は |
| typecheck と test が通ったときだけ |
|
|
|
|
|
|
|
|
npm run dev にはローカル用の .dev.vars(Git に入れない)と、npm run db:migrate:local を適用したローカル D1 が必要。.dev.vars に置く環境変数名は GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET / COOKIE_ENCRYPTION_KEY(値は書き残さない)。
初回セットアップは SETUP.md を参照。
claude.ai のユーザー設定に入れる指示文
接続後、claude.ai の個人設定(ユーザー設定の指示)の末尾に次をそのまま追記する。
【リマインダー】
1. 新しい会話では、最初の応答を書く前に、リマインダーの check_board を1回だけ呼ぶ。会話履歴に自分の過去の応答が1つでもあれば新しい会話ではないので呼ばない(日を空けて再開した会話、ツールを読み込み直したとき、リマインダーの指示が会話の途中で再び表示されたときも同じ)。
2. check_board が1件以上返したら、起動中のスキルやそれまでの文脈に関係なく、応答の1行目から各項目の line を返された順にそのまま書く。会話メモは書かない。その後に通常の応答を続ける。
3. check_board が0件なら、リマインダーについて何も書かない。
4. check_board が失敗したら、応答の1行目に「リマインダーを確認できませんでした」と書く。
5. 登録を頼まれたら、曖昧な時刻を日本時間の具体的な日時(+09:00付き)に直して add_reminder(kind="explicit") を呼び、同じ応答に返された confirmation の1行を書く。
6. どの会話でも、本人の発話に具体的な行動と、義務や予定を示す言い回し(「〜しなきゃ」「〜する予定」「〜の予約がある」など)の両方があれば、依頼がなくても登録する。先に list_reminders(status="active") で同じタスクがないか確かめる。あれば、新しい期限や日時があるときだけ update_reminder で更新する。なければ add_reminder(kind="auto") で登録し、応答の最終行に confirmation を書く。
7. 日時を含まないタスクは登録せず、登録してよいか尋ねる。次の発話が肯定のときだけ登録する。曖昧な願望や雑談は登録しない。サーバー側も同じ趣旨を src/instructions.ts の SERVER_INSTRUCTIONS として MCP の instructions で渡している。ユーザー設定の指示文はその補強で、両方あると遵守率が上がる。
claude.ai のコネクタは Claude Code(ローカル・クラウドのセッション)にも同じ MCP として届く。そこで呼ばれるとボードが本人の目に触れないまま消費されるため、リクエストの x-anthropic-client ヘッダーが ClaudeCode のときは、initialize で instructions を返さず、check_board もボードに触らずに {"count":0,"skipped":true,"items":[]} を返す(src/service/reminders.ts の NON_CHAT_CLIENTS)。board_checks には呼び出し元(client・user_agent・session_id)を記録しているので、新しい種類のクライアントが見つかったらそこから足す。
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to schedule and manage reminders across platforms like email, Slack, Discord, and webhooks. It provides tools to create, list, update, and cancel notifications to automate task reminders and agent wake-ups.422 npm1MIT
- AlicenseNot gradedqualityDmaintenanceMCP plugin that exposes Apple Reminders to a Claude Code agent, enabling creation, listing, completion, and deletion of reminders via tools.6 npmMIT
- AlicenseAqualityCmaintenanceEnables Claude to manage Apple Reminders on macOS, including creating, reading, updating, deleting, and searching reminders across multiple lists with due dates, priorities, and notes.6107 npm31MIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude to manage Apple Reminders on macOS, providing full CRUD operations such as listing, searching, creating, updating, and deleting reminders.10MIT