mcpField
A
Apple Reminders MCP Server

Apple Reminders MCP Server

ローカル
github.com/FradSer生産性2306 日前に更新

Apple Reminders MCP Server について

Apple Reminders MCP Serverは、EventKitを介してMCPクライアントをmacOSのリマインダーとカレンダーに接続します。リマインダーやリスト、サブタスク、予定を管理でき、検索条件の指定とmacOSの権限処理にも対応します。

主な機能

  1. 01リマインダーの作成、取得、更新、削除
  2. 02リスト、サブタスク、予定の管理
  3. 03日付、優先度、タグ、テキストによる絞り込み
  4. 04EventKitデータを構造化結果で保持

活用シーン

  1. 01タグや優先度を付けたリマインダーとサブタスクの整理
  2. 02期限などの条件によるリマインダー検索
  3. 03MCPクライアントからのカレンダー予定の作成や更新

MCP 対応

リマインダー、リスト、サブタスク、予定を操作するMCPツールを公開し、構造化JSON結果を返します。読み書きにはmacOSのEventKit権限を使用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"apple-reminders": {
"command": "npx",
"args": [
"-y",
"mcp-server-apple-events"
]
}
}
}
起動コマンドnpx -y mcp-server-apple-events

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-server-apple-events

ツール

5

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
actionenumはい実行する操作。read | create | update | delete
idstringいいえリマインダーの一意の識別子(更新・削除時は必須、単一のリマインダーを読み取る場合は任意)。
titlestringいいえリマインダーのタイトル(作成時は必須、更新時は任意)。
dueDatestringいいえ期限。推奨形式:'YYYY-MM-DD HH:mm:ss'(タイムゾーンなしの現地時刻。例:'2025-11-04 18:00:00')。'YYYY-MM-DD'、'YYYY-MM-DDTHH:mm:ss'、またはタイムゾーン付きの ISO 8601(例:'2025-10-30T04:00:00Z')にも対応しています。タイムゾーンが指定されていない場合、時刻は現地時刻として解釈されます。
notestringいいえリマインダーの追加メモ。
urlstringいいえリマインダーに関連付ける URL。
completedbooleanいいえリマインダーを完了/未完了としてマークします(更新のみ)。
priorityenumいいえ優先度:0=なし、1=高、5=中、9=低(作成/更新時)。0 | 1 | 5 | 9
targetListstringいいえ作成または更新操作で使用するリスト名。
filterListstringいいえ指定したリスト名でリマインダーを絞り込みます。
showCompletedbooleanいいえ結果に完了済みのリマインダーを含めます。
searchstringいいえタイトルまたはメモでリマインダーを絞り込む検索語(取得後に TS で適用)。
dueWithinenumいいえ期限の範囲でリマインダーを絞り込みます(取得後に TS で適用)。today | tomorrow | this-week | overdue | no-date
startDatestringいいえ開始日。action='update' の場合:リマインダーの開始日を設定します(CLI では作成時に設定できません)—形式は 'YYYY-MM-DD'、'YYYY-MM-DD HH:mm:ss'、または ISO 8601 です。action='read' の場合:期限日の範囲の開始日で、CLI に `--start` として渡されます(開始日を含む)。read では日付部分のみが使用されます — 時刻/タイムゾーン部分は日付の接頭辞に切り詰められるため、範囲は日単位で解決されます。read で startDate/endDate のどちらか一方のみが指定された場合、もう一方は 14 日間の範囲になるよう補完されます。
endDatestringいいえ期限ウィンドウの終了日(読み取り専用、action='read')。`--end` として CLI に渡されます。終了日は含まれません。日付部分のみが使用され、時刻/タイムゾーン部分は日付の接頭部分に切り詰められます(日単位)。startDate/endDate の一方だけが指定された場合、もう一方は 14 日間のウィンドウとして補われます。
filterPriorityenumいいえ優先度でリマインダーを絞り込みます。high | medium | low | none
filterRecurringbooleanいいえtrue の場合、繰り返しリマインダーのみを表示します。
filterLocationBasedbooleanいいえtrue の場合、位置情報に基づくリマインダーのみを表示します。
filterTagsarrayいいえタグでリマインダーを絞り込みます(指定したすべてのタグが必要です)。例:["work", "urgent"]
tagsarrayいいえリマインダーに設定するタグ(作成時)。既存のタグをすべて置き換えます。例:["work", "urgent"]
addTagsarrayいいえリマインダーに追加するタグ(更新時)。既存のタグに追加します。例:["followup"]
removeTagsarrayいいえリマインダーから削除するタグ(更新時)。例:["urgent"]
subtasksarrayいいえリマインダーとともに作成する初期サブタスク(create 操作)。サブタスクのタイトルを配列で指定してください。例:["Buy milk", "Get eggs", "Pick up bread"]

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

Apple Events MCP Server Version 1.6.0 License: MIT

X Follow

English | 简体中文

EventKit フレームワークを介して、macOS 上の Apple Reminders および Calendar とネイティブに連携する Model Context Protocol(MCP)サーバーです。標準化されたインターフェースを通じて、リマインダー、リスト、サブタスク、カレンダーイベントを公開し、完全な CRUD 操作を提供します。

EventKit バックエンドは、スタンドアロンの event Swift CLI です。git サブモジュールとしてベンダー化されており、pnpm install 中に bin/event にビルドされるため、別途 brew install を実行する必要はありません。v1.5.0 でのバックエンド切り替えと、event ではまだ公開されていない書き込みフィールドの一覧については、docs/migration-to-event-cli.md をご覧ください。

目次

機能

  • リマインダー、サブタスク、リマインダーリスト、カレンダーイベントの完全な CRUD 操作
  • 優先度(高/中/低/なし)、タグ、進捗を追跡できるチェックリスト形式のサブタスク
  • 複数条件によるフィルタリング:完了状況、期限の範囲、優先度、タグ、全文検索、繰り返し、位置情報
  • タイムゾーンに対応した柔軟な日付形式(YYYY-MM-DD、YYYY-MM-DD HH:mm:ss、ISO 8601)
  • EventKit による macOS とのネイティブ連携 — Reminders.app/Calendar.app で設定した値は、読み取り結果に反映されます
  • macOS の権限を自動検出して要求
  • 包括的な入力検証による Unicode の完全サポート

前提条件

  • Node.js 20 以降
  • macOS(EventKit に必要)
  • Xcode Command Line Tools(ソースからビルドする場合のみ)
  • pnpm(推奨)

公開されている npm パッケージには、ビルド済みのユニバーサルなコード署名済み bin/event バイナリが含まれているため、npx を使う場合は Xcode も Swift ツールチェーンも不要です。git clone からビルドする場合は、上記の項目が必要です。

クイックスタート

npx mcp-server-apple-events

設定

MCP クライアントにサーバーを追加します。以下のどのクライアントでも npx 形式を使用できます。ローカルビルドの場合は、command/args を dist/index.js を指す node に置き換えてください。

Cursor

Settings → MCP → Add new global MCP server:

{
  "mcpServers": {
    "apple-reminders": {
      "command": "npx",
      "args": ["-y", "mcp-server-apple-events"]
    }
  }
}
ChatWise

Settings → Tools →「+」の順に選択し、次のように設定します。

  • 種類:stdio
  • ID:apple-reminders
  • コマンド:mcp-server-apple-events
  • Args:(空欄)
Claude Desktop

claude_desktop_config.json を編集します(Settings → Developer Option → Edit Config から開くか、macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json を直接開きます)。

{
  "mcpServers": {
    "apple-reminders": {
      "command": "npx",
      "args": ["-y", "mcp-server-apple-events"]
    }
  }
}

ローカルビルドの場合:

{
  "mcpServers": {
    "apple-reminders": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server-apple-events/dist/index.js"]
    }
  }
}

ローカルサーバーへの接続方法については、公式 MCP ドキュメントをご覧ください。変更を反映するには、Claude Desktop を完全に再起動してください(ウィンドウを閉じるだけでなく、終了してください)。

macOS の権限

サーバーは同梱された event CLI を直接起動します。macOS はサーバーを起動したアプリケーションへの通常の帰属を維持するため、そのホストを System Settings > Privacy & Security > Reminders / Calendars で許可してください。ホストごとに個別の承認が必要です。ターミナルで付与された権限は、別のデスクトップ MCP クライアントには適用されません。

ホストは EventKit の権限リクエストに対応し、必要な使用目的の説明を宣言している必要があります。対応していない場合、macOS はプロンプトを表示せずにアクセスを拒否することがあります。これらの権限に対応したホストを使用してください。サーバーは、公開ヘルパーに責任を負わせることでこの制限を回避しません。そうすると、無関係なローカルプロセスがそのヘルパーのカレンダーおよびリマインダーの許可を再利用できてしまいます。

event が notDetermined ステータスを検出すると、requestFullAccessToReminders / requestFullAccessToEvents を呼び出します。同じホストのコンテキストから ./check-permissions.sh を実行してアクセスを診断してください。ターミナルで実行すると、そのターミナルの権限のみが確認されます。保護されたリソースには使用目的の説明が必要です。Apple のアプリ配布に関するガイダンスを参照してください。

カレンダーの読み取りエラー、またはプロンプトが表示されない場合

Failed to read calendar events が表示された場合は、呼び出し元アプリケーションに対して System Settings > Privacy & Security > Calendars でカレンダーへのフルアクセスを有効にしてください。プロンプトが表示されない場合は、ホストが EventKit の権限に対応し、使用目的の説明を宣言していることを確認してから、ホストを再起動して再試行してください。AppleScript のオートメーションの承認は、EventKit のカレンダーおよびリマインダーの承認とは別です。

責任放棄ヘルパーからアップグレードする場合

パッケージを再インストールして、古い bin/event-disclaim アーティファクトを削除してください。ソースをチェックアウトしている場合は、再ビルドする前に生成済みのファイルを削除してください。System Settings > Privacy & Security > Reminders / Calendars で古い event の許可を取り消し、使用する各ホストを承認してください。サーバーを更新しても、既存の macOS の許可を取り消したり、別の場所にインストールされた古いコピーを削除したりすることはできません。

ヘッドレス/launchd での実行が失敗せずにハングする場合

GUI セッションのないコンテキスト(SSH、launchd エージェント/デーモン)からサーバーを実行すると、最初の EventKit 呼び出しが、表示できない権限プロンプトを待って永久にブロックされることがあります。その結果、MCP リクエストは完了せず、呼び出しのたびに子プロセスがリークします。サーバーは、30 秒を超える event 呼び出しを強制終了(SIGKILL)し、代わりに読みやすいエラーを返すようになりました。EVENTKIT_CLI_TIMEOUT_MS 環境変数(ミリ秒単位)で調整できます。無効な値やゼロの値の場合はデフォルト値が使用され、タイムアウトを無効にはできません。ただし、2^31-1 ms までの非常に大きな値は指定できます。同梱された event CLI(FradSer/event#15 で固定)は、GUI セッションがない場合に加えて、回答できないプロンプトを 15 秒後に諦めるようにもなりました(EVENT_PERMISSION_TIMEOUT_MS)。これにより、サーバーによる強制終了が行われる前にホストが権限に関するメッセージを表示できるよう、Permission denied: Timed out waiting for ... を報告します(15 秒 < 30 秒)。issue #113を参照してください。

macOS 26(Tahoe)での could not build module 'Foundation'

pnpm build が could not build module 'Foundation'(または SDK is not supported by the compiler)で失敗する場合、Swift ツールチェーンが macOS 26 SDK の要件より古い状態です。Swift 6.3 以降が必要ですが、macOS 26 の初期リリースに付属する Command Line Tools には Swift 6.2.x が含まれています。pnpm build:event はこれを検出し、同じ対処方法を表示します。issue #85を参照してください。App Store から Xcode 26.x をインストールするか、Command Line Tools を Swift 6.3 以降のバージョンに更新して解決してください。

softwareupdate --list
sudo softwareupdate -i "Command Line Tools for Xcode-<latest>"
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer   # if full Xcode is installed
xcrun swiftc --version    # should report Apple Swift version 6.3 or newer

使用例

設定後、Claude に Apple Reminders と Calendar の操作を依頼できます。プロンプトの例:

Create a reminder to "Buy groceries" for tomorrow at 5 PM with tags shopping and errands.
Add a high-priority reminder to "Finish quarterly report" due Friday in my "Work" list.
Create "Grocery shopping" with subtasks: milk, eggs, bread, butter.
Show me all high-priority reminders due today tagged "urgent".
Show subtasks for my "Grocery shopping" reminder and mark "milk" as complete.
Update "Buy groceries" — change the title to "Buy organic groceries" and set priority to high.
Show reminders from my "Work" list, and list all my reminder lists.
Create a calendar event "Team standup" tomorrow from 9:00 to 9:30 in "Work".
Show my calendar events for the next week.
Invite [email protected] to my "Team standup" event.
Cancel just the September 21 occurrence of my weekly "Team standup".

サーバーは自然言語のリクエストを処理し、Apple 純正の Reminders アプリおよび Calendar アプリを操作して、構造化された結果を返します。

アラーム、繰り返しルール、場所のトリガーは、このサーバーでは読み取り専用です。Reminders.app / Calendar.app で設定してください。読み取りツールは、基盤となるアプリから値が提供される場合、それらの値を構造化レコードに保持します。

書き込み確認と信頼できないデータ

サーバーの書き込み確認はデフォルトで無効です。 MCP フォームの引き出しに対応していないクライアントでも書き込みが可能です。作成、更新、削除、サブタスクの切り替え/並べ替え、出席者への招待、リンクされたイベントの変更は、サーバーの確認フォームなしで実行されます。削除によってアイテムが削除される場合があり、招待やカレンダーの変更によって他の人に通知される場合があります。この変更により、v1.6.0 のデフォルトが変更され、プロンプトインジェクションを防ぐための書き込みごとの確認がなくなりました。ホストのユーザー認可ポリシーと macOS アカウントの権限は引き続き適用されます。

すべての書き込みに対して、その都度ユーザーの確認を必須にするには、MCP サーバーの引数に起動フラグを追加します。

{
  "command": "npx",
  "args": ["-y", "mcp-server-apple-events", "--require-write-confirmation"]
}

ローカルビルドでは、node dist/index.js --require-write-confirmation を使用してください。デフォルトを使用するには、このフラグを省略します。このフラグに値は不要で、否定形もありません。--require-write-confirmation=false、別個の false 引数、--no-require-write-confirmation はエラーになります。未知のオプションもエラーになります。ヘルプを表示するには、mcp-server-apple-events --help(または -h)を実行してください。このポリシーを制御する環境変数はありません。ポリシーはインスタンスごとにサーバーの起動時に固定されます。ツールの引数やレコードの内容によって変更することはできません。起動時の警告は stderr に出力されます。stdout は MCP の通信専用です。

有効にすると、クライアントの MCP フォーム引き出しインターフェースに、その操作のツール名と完全な引数のスナップショットが表示されます。confirm: true を含む承認済みの応答のみが、その書き込みを許可します。拒否、キャンセル、不正な応答、クライアントとの接続切断、フォーム機能の未対応の場合は書き込みがブロックされます。その場合、フォームの引き出しに対応していないクライアントは読み取り専用になります。どちらのモードでも、読み取りに確認は不要です。入力検証、実行境界、信頼できない結果のエンベロープは両方のモードで有効ですが、これらは削除された確認の仕組みの代わりにはなりません。

ツールの結果は、structuredContent 内の JSON レコードとして返されます。また、テキストを使用するクライアント向けに JSON テキストのミラーも返されます。エンベロープは、レコードに provenance.source = "apple-calendar-reminders" および provenance.trust = "untrusted" のマークを付けます。タイトル、メモ、識別子、URL、リスト名、主催者、出席者、サブタスクは、同期または共有されたコンテンツに由来する場合があります。ホストはこの境界を維持する必要があります。レコードの内容によって、別のツールの呼び出し、無関係なデータの開示、ユーザーの指示の上書きが認可されることはありません。信頼度スコアは、推奨の順位付けにのみ使用されます。

サーバーの確認が有効な場合、サーバーはクライアントが人間にフォームを表示し、その判断を返すものと信頼します。フォームを自動承認するクライアントでは、この境界が無効になります。JSON エンコードと来歴情報だけでは、LLM が注入されたテキストに従うことを防げません。macOS アカウントの権限は引き続き必要であり、操作ごとのユーザー確認とは別のものです。

利用可能な MCP ツール

サービスごとのツールは、Apple Reminders と Calendar のドメインに対応しています。すべてのツールで action フィールドと、アクション固有のパラメーターを指定します(MCP クライアントが完全な Zod スキーマを参照します。ここではアクションのみを記載しています)。日付フィールドには、YYYY-MM-DD、YYYY-MM-DD HH:mm:ss(ローカル時間)、またはタイムゾーン付きの ISO 8601 を指定できます。

ツールアクション備考
reminders_tasksread、create、update、delete優先度、タグ、サブタスクに対応しています。startDate は create ではなく update で設定します。read では endDate とともに期限日の範囲を指定します。リスト間の移動には対応していません。
reminders_subtasksread、create、update、delete、toggle、reorderメモ欄に保存されます(Reminders.app で人が読める形式です)。
reminders_listsread、create、update、deletename → newName で名前を変更します。
calendar_eventsread、create、update、delete日付の形式から終日イベントかどうかを判定します。カレンダー間の移動には対応していません。span で定期イベントの削除範囲を指定します。attendees(更新)は宛先を招待し、occurrenceDate(削除)はシリーズ内の1回のイベントを除外します。どちらも追加のセットアップが必要です。出席者と単一のイベントを参照してください。
calendar_calendarsread日付範囲を指定しない場合、EventKit が報告するすべてのカレンダーが、source と書き込み権限とともに返されます。startDate/endDate を指定すると、期間内に1件以上のイベントがあるカレンダーが、イベント数とともに返されます。

呼び出し例:

{
  "action": "create",
  "title": "Buy groceries",
  "dueDate": "2024-03-25 18:00:00",
  "targetList": "Shopping",
  "note": "Don't forget milk and eggs",
  "priority": 1,
  "tags": ["shopping", "errands"],
  "subtasks": ["Milk", "Eggs", "Bread"]
}
{ "action": "read", "filterList": "Work", "dueWithin": "today", "filterPriority": "high", "filterTags": ["urgent"] }
{ "action": "read", "startDate": "2026-08-01", "endDate": "2026-08-31" }
{ "action": "update", "id": "reminder-123", "completed": false, "addTags": ["followup"] }
{ "action": "toggle", "reminderId": "reminder-123", "subtaskId": "a1b2c3d4" }
{ "action": "create", "name": "Project Alpha" }
{ "action": "create", "title": "Team standup", "startDate": "2026-05-04 09:00:00", "endDate": "2026-05-04 09:30:00", "targetCalendar": "Work" }
{ "action": "update", "id": "event-123", "attendees": ["[email protected]", "[email protected]"] }
{ "action": "delete", "id": "event-123", "occurrenceDate": "2026-09-21T09:00:00" }
出席者と単一のイベント

これら2つの calendar_events パラメーターは、EventKit ではどちらも指定できないため、event CLI を経由しない唯一の書き込み処理です。どちらにも、サーバーのほかの機能には不要なセットアップが必要です。

attendees(更新) — 既存のイベントにメールアドレスを招待します。EKCalendarItem.attendees は macOS SDK では読み取り専用で、EventKit に招待 API もないため、書き込みには Calendar.app のスクリプトインターフェイスを使用します。出席者をローカルで追加することで、iCloud から招待が送信されます。

  • オートメーションの許可が必要です。初回の呼び出し時に確認が表示され、設定は System Settings > Privacy & Security > Automation に表示されます。GUI セッションが必要なため、ヘッドレス環境では動作しません。
  • 出席者は単独で更新する必要があります。出席者は Calendar.app 経由で処理され、ほかのすべてのフィールドは EventKit 経由で処理されます。また、両者には共通の同時実行トークンがないため、更新をまとめると安全な順序を保証できず、拒否されます。2回に分けて呼び出してください。
  • タイトルと開始日が同じイベントが2件ある場合は、推測せずに拒否されます。Calendar.app ではタイトルと日付でしか検索できず、誤ったイベントに書き込むと、そのイベントについて実際に招待が送信されてしまいます。

occurrenceDate(削除) — 定期イベントのシリーズから1回分のイベントを除外します。すべてのイベントは同じ EventKit 識別子を共有するため、span: "this-event" で除外できるのはシリーズの開始回だけです。後の回を指定すると、何も書き込まれないまま成功が報告されます。occurrenceDate を指定すると、インスタンスを直接指定できる CalDAV 経由で削除します。

  • iCloud の認証情報が必要です。ICLOUD_APPLE_ID と ICLOUD_APP_PASSWORD を設定するか、ICLOUD_APPLE_ID を設定し、パスワードを Keychain に保存してください。

    security add-generic-password -a "[email protected]" -s "icloud-caldav-mcp" -w
    

    App 用パスワードを使用し、アカウントのパスワードは絶対に使用しないでください。認証情報は、まず環境変数から読み込まれ、次に Keychain から読み込まれます。MCP クライアントの設定から読み込まれることはなく、ログにも記録されません。

  • iCloud と同期されたイベントのみが対象です。外部識別子のないイベントには、特定するための CalDAV リソースがありません。

  • CalDAV リクエストには、リダイレクトとレスポンスの読み込みを含めて30秒の期限があり、レスポンスの上限は2 MiB です。カレンダー編集では、物理行/内容行は20000行、折り返し解除後の UTF-8 行は1行あたり64 KiB、ネストしたコンポーネントは16個、イベントは2000件、反復 ID は1000個までに制限されています。サイズ超過または複雑すぎるリソースは、カレンダーへの書き込み前に、対処方法を示すエラーとともに失敗します。シリアライズされた出力にも、同じサイズと行数の上限が適用されます。

Read のレスポンス形式

Read ツールは、ツールから返されたドメインオブジェクトを含む records 配列を持つ structuredContent エンベロープを返します。数値のリマインダー優先度(0、1、5、9 など)も、表示用ラベルではなくネイティブ値のまま保持されます。例:

{
  "provenance": {
    "source": "apple-calendar-reminders",
    "trust": "untrusted"
  },
  "records": [
    {
      "id": "reminder-123",
      "title": "Buy groceries",
      "isCompleted": false,
      "list": "Shopping",
      "notes": "Don't forget milk and eggs",
      "url": "https://example.com",
      "dueDate": "2024-03-25T18:00:00Z",
      "priority": 1,
      "tags": ["shopping", "errands"],
      "subtasks": [
        { "id": "a1b2c3d4", "title": "Milk", "isCompleted": true },
        { "id": "e5f6a7b8", "title": "Eggs", "isCompleted": false },
        { "id": "c9d0e1f2", "title": "Bread", "isCompleted": false }
      ],
      "subtaskProgress": { "completed": 1, "total": 3, "percentage": 33 }
    }
  ]
}

付属の content 配列には、まず静的なテキスト要約(例:Read reminders.)が含まれ、その後に同じ structuredContent オブジェクトをシリアライズした JSON がテキスト項目として含まれます。テキストを扱うクライアントは2つ目の項目を解析できます。構造化された結果に対応するクライアントは structuredContent を使用してください。

url フィールドはネイティブの url プロパティ(Reminders.app の「i」アイコンから確認できます)に保存されるほか、解析と複数 URL のサポートのため、構造化された URLs: ブロックとしてメモにも追加されます。URL では、有効な URI スキーム(http、https、mailto、tel、obsidian、shortcuts など)を使用できます。file、javascript、data などの危険なスキームは拒否され、http(s) のホスト名は SSRF ブロックリストに照らして検証されます。

読み取り専用フィールド:アラーム、繰り返しルール、場所トリガー、構造化された場所、カレンダーの url/availability/isAllDay、およびカレンダー間の移動は、このサーバーから書き込めません。Reminders.app/Calendar.app で設定された値は、取得時にそのまま返されます。削除されたフィールドの一覧と回避策については、docs/migration-to-event-cli.md を参照してください。

構造化プロンプトライブラリ

このサーバーには、MCP の ListPrompts/GetPrompt エンドポイントを通じて公開されるプロンプトレジストリが付属しています。各テンプレートには、ミッション、コンテキスト入力、番号付きの手順、制約、出力形式、品質基準が共通して含まれているため、後続のアシスタントは予測しやすい枠組みを利用できます。

  • daily-task-organizer — 任意の today_focus を指定できます。同日の実行計画を作成し、優先度の高い作業と休息のバランスを取り、期限が当日のリマインダー用にカレンダーの時間ブロックを自動作成します。
  • smart-reminder-creator — 任意の task_idea を指定できます。最適なスケジュールのリマインダー構成を生成します。
  • reminder-review-assistant — 任意の review_focus(例:overdue またはリスト名)を指定できます。既存のリマインダーを監査し、最適化します。
  • weekly-planning-workflow — 任意の user_ideas を指定できます。既存のリストに紐づいた時間ブロックを使って、月曜日から日曜日までの計画を見直す手順を案内します。

プロンプトは Apple Reminders のネイティブ機能に限定されており、取り消せない操作の前には不足しているコンテキストを確認するよう求めます。プロンプトの文面を変更した後は、pnpm test -- src/server/prompts.test.ts を実行してください。

開発

pnpm install        # postinstall builds bin/event from vendor/event on macOS
pnpm build          # TypeScript + vendored event CLI
pnpm test           # Jest suite: repositories, schemas, build script, prompt templates
pnpm exec biome check   # lint + format

CLI のエントリーポイントは最大10階層上まで package.json を探すため、ネストされたパス(例:dist/ やエディターのタスクランナー)からでも、bin/event を見失わずにサーバーを起動できます。フォルダー構成をカスタマイズする場合は、この階層内からマニフェストにアクセスできる状態を維持してください。

スクリプト
  • pnpm build — TypeScript と同梱の event CLI をビルドします(ソースから実行する前に必要です)
  • pnpm build:ts — TypeScript のみをビルドします
  • pnpm build:event — 同梱の event CLI のみをビルドします(swift build -c release → bin/event)
  • pnpm build:release — ビルドと公証を実行します(リリースパッケージング)
  • pnpm test/pnpm test:ci — Jest スイートを実行します/カバレッジ付きで実行します
  • pnpm lint — Biome によるフォーマット/修正と TypeScript の型チェックを実行します
  • pnpm check — lint とカバレッジ付きテストを実行します

ライセンス

MIT

コントリビューション

コントリビューションを歓迎します。まずコントリビューションガイドラインをお読みください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。