apple-reminders について
apple-remindersは、EventKitを介してClaudeなどのMCPクライアントからApple Remindersを操作する、macOSネイティブのMCPサーバーです。安定したリマインダーIDと構造化JSONを提供し、配布形態を問わず同じ13個のツールを利用できます。
主な機能
- 01リマインダーの一覧・管理を行う13個のツール
- 02SwiftとEventKitによるネイティブ実装
- 03セッションをまたいで安定したリマインダーUUID
- 04構造化JSONレスポンス
- 05読み取り専用・変更操作の安全性注釈
- 06実行時のネットワーク通信なしでローカル動作
活用シーン
- 01今日の期限や期限超過のリマインダー確認
- 02複数リストを横断したリマインダー検索
- 03MCPクライアントからのリマインダー作成・更新
- 04クライアントの確認を伴うリマインダーの完了・削除
MCP 対応
リマインダーの一覧、検索、作成、更新、完了、削除を行う13個のツールを公開します。Claude Desktopバンドル、Claude Codeプラグイン、または他のMCPクライアント向けnpmパッケージとして利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Claude 用 Apple Reminders
Claude から Apple Reminders に高速かつネイティブにアクセスできます。Claude Desktop、Claude Cowork、Claude Code(CLI)で動作します。署名済みの Swift/EventKit バイナリ 1 つに、3 種類の配布パッケージを用意しています。
リマインダー ID はセッションをまたいで安定しています。300 件以上のリマインダーがあるデータベースでも、CRUD の一連の処理は 1 秒未満で完了します。ウムラウト、アクセント記号、CJK 文字、絵文字も変更されずに扱えます。
high5 ventures GmbH が公開 — Developer ID Application: high5 ventures GmbH で署名し、Apple による公証を受けています。
クイックスタート
macOS 11 以降を搭載した Mac(Apple Silicon または Intel)と、Claude Desktop が必要です。
- 最新リリースから
apple-reminders.mcpbをダウンロードします。 - ダブルクリックします。Claude Desktop でインストールダイアログが開くので、Install をクリックします。
- Claude に 「今日のリマインダーには何がある?」 のように尋ねます。
最初の質問時に、macOS がリマインダーへのアクセスを求めます。許可すると、Claude がリマインダーを読み取り、変更できるようになります。
設定は不要です。バンドルにはサーバーと署名済みバイナリが含まれており、Claude Desktop がインストール時にパスを設定します。
更新も、新しい .mcpb を使って同じ 3 つの手順で行えます。
Claude Desktop を使っていませんか?Claude Code やその他の MCP クライアントについては、インストールをご覧ください。
目次
説明
Claude 用 Apple Reminders を使うと、Claude から macOS の Reminders アプリにフル CRUD アクセスできます。Apple のネイティブな EventKit フレームワークを署名済みの Swift バイナリでラップし、安定した UUID と構造化 JSON を返します。配布方法は 3 種類です。
| 対象 | 配布物 | 入手先 |
|---|---|---|
| Claude Desktop / Cowork | .mcpb バンドル | リリース |
| Claude Code(CLI) | スキル付きプラグイン | このリポジトリに対して /plugin marketplace add を実行 |
| 任意の MCP クライアント | npm パッケージ | npm install -g @high5ventures/apple-reminders-mcp |
3 種類すべてに同じバイナリと同じ 13 個のツールが含まれているため、動作に違いはありません。
機能
- 13 個の MCP ツールでリマインダーのライフサイクル全体を網羅します。リスト一覧、リマインダー一覧(未完了/完了/すべて)、全文検索、今日/期限超過/予定済みのスマートクエリ、個々のリマインダーの CRUD に対応します。
- ネイティブな EventKit — AppleScript でも、リバースエンジニアリングした SQLite のスクレイピングでもありません。
- 安定した UUID — AppleScript URI や CLI の位置インデックスと異なり、リマインダー ID はセッションをまたいで維持されます。
- ツールの安全性アノテーション — すべてのツールが
readOnlyHint/destructiveHintを宣言するため、Claude クライアントはクエリを自動実行し、変更操作では確認を求められます。 - 言語に依存しない設計 — スキルはキーワードではなく意図に基づいて動作します。ドイツ語、フランス語、スペイン語、日本語など、どの言語でも同じように使えます。
- 速度 — 10 個のリストにある 300 件以上のリマインダーを対象とした CRUD のスモークテストは、1 秒未満で完了します。
- 署名済み+公証済み — Gatekeeper の警告は表示されず、MDM による配備にも対応します。
- 100% ローカル — ネットワーク I/O はありません。PRIVACY.mdをご覧ください。
使用例
Claude Desktop と Cowork ではツールは Apple Reminders の下に表示されます。Claude Code では、リマインダーに言及するとスキルが読み込まれます。以下の例では、それぞれの回答の裏で実行されるツール呼び出しを示します。
例 1 —「今日は何をすればいい?」
あなた: 今日は何をすればいいですか?
Claude(
get_todayを呼び出す):{ "status": "ok", "data": { "reminders": [ { "id": "A1B2…", "name": "歯医者の予約を確認", "list": "個人", "due_date": "2026-04-14T10:00:00" }, { "id": "C3D4…", "name": "請求書 #2026-0412 を確認", "list": "仕事", "due_date": "2026-04-14T14:00:00" } ] } }Claude: 今日は未完了のリマインダーが 2 件あります。10:00 に歯医者の予約(個人)、14:00 に請求書の確認(仕事)です。
例 2 —「買い物リストにリマインダーを追加」
あなた: 明日の午後 6 時にオーツミルクを買うようにリマインドしてください。
Claude(
create_reminderを呼び出す):{ "list": "Groceries", "title": "Buy oat milk", "dueDate": "2026-04-15T18:00:00" }応答:
{ "status": "ok", "data": { "reminder": { "id": "E5F6…", "name": "Buy oat milk", "due_date": "2026-04-15T18:00:00" } } }Claude: 完了しました。明日の 18:00 に「Buy oat milk」を Groceries に追加しました。
例 3 —「期限切れの項目を整理」
あなた: 期限切れのものをすべて表示してから、Slack の DM の項目を完了済みにしてください。
Claude(
get_overdueを呼び出す):{ "status": "ok", "data": { "reminders": [ { "id": "G7H8…", "name": "Slack の DM で Alex に返信", "list": "Work", "due_date": "2026-04-12T17:00:00" }, { "id": "I9J0…", "name": "PR #482 をレビュー", "list": "Work", "due_date": "2026-04-13T12:00:00" } ] } }Claude(
id: "G7H8…"を指定してcomplete_reminderを呼び出す):{ "status": "ok", "data": { "reminder": { "id": "G7H8…", "completed": true, "completion_date": "2026-04-14T18:22:01" } } }Claude: 期限切れの項目が 2 件あります。Slack への返信(完了済み)と PR #482 のレビュー(未完了)です。
インストール
Claude Desktop / Cowork
Releases から apple-reminders.mcpb をダウンロードし、ダブルクリックしてください。Claude Desktop にインストールダイアログが表示されたら、Install をクリックします。その後、最初のツール呼び出し時に表示される macOS のプライバシー設定画面で、リマインダーへのアクセスを許可してください。
更新もまったく同じ手順です。新しいバージョンの .mcpb をダウンロードし、ダブルクリックしてください。
この方法で拡張機能をインストールできます。以下の 2 つのセクションでは、その他の MCP クライアントについて説明します。Claude Desktop を使用する Mac では、これらの手順は必要ありません。
Claude Code(CLI)
/plugin marketplace add high5-ventures/apple-reminders-for-claude
次の手順に進む前に Claude Code を再読み込みしてください。マーケットプレイスが読み込まれるまで、プラグインは表示されません。
/plugin install apple-reminders@high5-apple-reminders-for-claude
この方法では新しいバージョンが自動的に提供されますが、自動インストールはされません。更新ごとに確認が必要です。
その他の MCP クライアント(Cursor、Zed、…)
npm install -g @high5ventures/apple-reminders-mcp
次に、クライアントの MCP 設定に追加します。
{
"mcpServers": {
"apple-reminders": {
"command": "apple-reminders-mcp"
}
}
}
または、グローバルにインストールせず、クライアントに必要に応じて取得させることもできます。
{
"mcpServers": {
"apple-reminders": {
"command": "npx",
"args": ["-y", "@high5ventures/apple-reminders-mcp"]
}
}
}
ファイルの場所はクライアントごとに異なります。
ソースからビルド
git clone https://github.com/high5-ventures/apple-reminders-for-claude.git
cd apple-reminders-for-claude
./build.sh
dist/reminders-eventkit(Apple Silicon と Intel 用のユニバーサルバイナリ)、dist/skill/(Claude Code スキル)、dist/apple-reminders.mcpb(Claude Desktop バンドル)が生成されます。ビルドには署名がありません。署名付きリリースのワークフローについては、CONTRIBUTING.md を参照してください。
ビルド要件:macOS 11 以降、Xcode Command Line Tools、Node.js 18 以降。Xcode 15 より前のツールチェーンでも動作します。その場合、macOS 14 の権限 API を使わずにコンパイルし、旧式のリクエストにフォールバックします。使用しているアーキテクチャのみをビルドするには、ARCHS を設定します。例:ARCHS=x86_64 ./build.sh。
構成
通常の使用に構成は不要です。この拡張機能は以下のデフォルト設定で動作します。
| 設定 | デフォルト | 備考 |
|---|---|---|
| リマインダーの権限 | 初回使用時に確認 | システム設定 → プライバシーとセキュリティ → リマインダーで取り消し可能 |
| バイナリのタイムアウト(Node ラッパー) | 30 s | ハードコードされた上限値です。MCP クライアントのタイムアウトより十分に短く設定されています |
| レスポンスのペイロード上限 | 16 MB | 数千件のリマインダーを含むデータベースにも対応します |
npm で配布されているサーバーを標準外の MCP クライアントで使用する場合は、REMINDERS_BINARY に reminders-eventkit バイナリの絶対パスを設定してください。
export REMINDERS_BINARY=/absolute/path/to/reminders-eventkit
.mcpb と Claude Code プラグインのインストールでは、この変数が自動的に設定されます。
MCP ツール
13 個すべてのツールは、安定した JSON エンベロープを返します。成功時は { "status": "ok", "data": ... }、失敗時は { "status": "error", "code": "...", "message": "..." } です。
| ツール | アノテーション | 目的 |
|---|---|---|
get_lists | 読み取り専用 | すべてのリマインダーリストを、未完了・完了件数とともに一覧表示 |
get_list_info | 読み取り専用 | 名前または ID を指定して、1 つのリストのメタデータを取得 |
list_reminders | 読み取り専用 | リスト内のリマインダーを一覧表示(未完了/完了/すべて) |
search_reminders | 読み取り専用 | すべてのリストを対象に全文検索 |
get_today | 読み取り専用 | 今日が期限のリマインダーを取得 |
get_overdue | 読み取り専用 | 期限を過ぎた未完了のリマインダーを取得 |
get_scheduled | 読み取り専用 | 期限が設定されたすべての未完了リマインダーを取得 |
get_reminder | 読み取り専用 | ID を指定してリマインダーを 1 件取得 |
create_reminder | 追加 | 新しいリマインダーを作成 |
update_reminder | 破壊的、冪等 | 既存のリマインダーを更新 |
complete_reminder | 破壊的、冪等 | 完了としてマーク |
uncomplete_reminder | 破壊的、冪等 | 完了マークを解除 |
delete_reminder | 破壊的、冪等 | 完全に削除 |
ここでの「破壊的」は MCP の仕様に沿った用語です。ユーザーの観点から、既存の状態を不可逆的に変更する操作を意味します。Claude クライアントはこれらのヒントを使って、確認を求めるタイミングを判断します。
プライバシーポリシー
この拡張機能は、実行時に 100% ローカルで動作し、この拡張機能を通じて Mac の外部にデータが送信されることはありません。high5 ventures GmbH はサーバーを運営しておらず、テレメトリも収集しません。唯一のネットワーク通信は、インストール時に GitHub Releases から署名済み Swift バイナリを 1 回ダウンロードすることです(Apple Developer ID 署名によって検証され、不一致の場合はインストールされません)。
ポリシー全文はこちらをご覧ください:PRIVACY.md。
トラブルシューティング
Binary crashed (exit 1): spawn Unknown system error -86 — バイナリが別の Mac 向けにビルドされています。v1.0.4 までのリリースには Apple Silicon 専用のバイナリのみが含まれており、macOS 14 も必要です。v1.0.5 以降のバイナリはユニバーサルで、macOS 11 以降の Apple Silicon と Intel で動作します。最新リリースに更新してください。
PERMISSION_DENIED — あなた(またはデバイスポリシー)によって、リマインダーへのアクセスがオフにされています。システム設定 → プライバシーとセキュリティ → リマインダーで再度有効にしてから、もう一度お試しください。
PERMISSION_UNAVAILABLE — macOS がダイアログを表示せずにリクエストを拒否したため、プライバシー設定パネルは空のままで、有効にする項目がありません。許可を付与したり、tccutil resetを実行したりしても、付与またはリセットできるエントリが存在しないため解決しません。
macOS は、プライバシーリクエストを、通常はサーバーを起動したアプリケーションなど、自身が責任を負うプロセスに帰属させます。そのアプリケーションにリマインダーの使用目的を説明する記述がない場合、リクエストは EventKit に届く前に拒否されます。v1.0.4 以降、バイナリが自身でその責任を担うため、プロンプトがホストに依存しなくなりました。エラーが続く場合は、帰属先を確認してください。
log show --last 3m --predicate 'process == "tccd"' --info --debug | grep -i reminder
AttributionChainの行で、responsibleとしてreminders-eventkitが指定されているはずです。代わりにホストアプリケーションが指定されている場合は、自己帰属が適用されていません。イシューを作成する際に、このログ行を添付してください。
初回起動時にバイナリが隔離される — リリースには署名と公証が行われているため、この問題は発生しないはずです。確認するには、次を実行してください。
BIN=~/Library/Application\ Support/Claude/Claude\ Extensions/local.mcpb.high5-ventures-gmbh.apple-reminders/bin/reminders-eventkit
codesign --verify --verbose "$BIN"
spctl --assess --type execute "$BIN"
どちらかが失敗する場合、コピーが改ざんされている可能性があります。リリースから再ダウンロードしてください。
「リストが見つかりません」または「同じ名前のリストが複数あります」 — リマインダーリストは名前の完全一致で照合されます。まずget_listsを使って、利用可能な名前を確認してください。重複がある場合、エラーレスポンスには安定したcalendar_identifiersを含むcandidates配列が含まれます。リスト引数にid:<calendar_identifier>を指定して、もう一度呼び出してください。
フラグ付きリマインダーが空で返される — EventKit はflagged属性を公開していません。このクエリが必要なユーザー向けに、Claude Code スキルには AppleScript の代替手段(skills/apple-reminders/scripts/get_flagged.applescript)が含まれています。Claude Desktop はシェルにアクセスできないため、.mcpbバンドルにはこの代替手段が含まれていません。
解決しませんか? イシューを作成してください → サポート。
サポート
- バグ報告と機能リクエスト: https://github.com/high5-ventures/apple-reminders-for-claude/issues
- セキュリティの脆弱性:
[email protected]— SECURITY.mdをご覧ください - 一般のお問い合わせ:
[email protected]
アーキテクチャ
Claude Desktop / Cowork Claude Code CLI Any MCP client (Cursor, Zed, …)
│ │ │
│ (stdio MCP) │ (Bash via plugin) │ (stdio MCP)
▼ ▼ ▼
Node wrapper reminders-eventkit Node wrapper
(server/index.js) (Swift binary, direct) (npm @high5ventures/…)
│ │ │
▼ │ ▼
reminders-eventkit │ reminders-eventkit
(same Swift binary) │ (downloaded on install)
│ │ │
└────────────────────────────────┴───────────────────────────────────┘
│
▼
Apple EventKit framework
│
▼
macOS Reminders database
1 つの Swift ソース → 1 つのバイナリ → 3 つの配布方法。ビルドの内部についてはCONTRIBUTING.mdをご覧ください。
ライセンス
Copyright © 2026 high5 ventures GmbH。MIT ライセンスに基づいて公開されています。LICENSEをご覧ください。
このプロジェクトは Apple Inc. または Anthropic PBC と提携しておらず、両社から承認を受けているものでもありません。
「Apple」と「Reminders」は Apple Inc. の商標です。「Claude」は Anthropic PBC の商標です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。