Calendar.app について
Calendar.appは、macOS上のカレンダーにMCPクライアントからアクセスするローカルMCPサーバーです。設定済みアカウントの予定を管理でき、データベースから読み取り、変更にはAppleScriptを使います。外部サービスへデータは送信しません。
主な機能
- 01カレンダーと期間内の予定を一覧表示
- 02予定の検索と詳細の取得
- 03予定の作成・更新・削除
- 04繰り返し予定の各回を展開
- 05Calendar.appの設定済みアカウントにアクセス
活用シーン
- 01複数アカウントのスケジュールを確認
- 02タイトル・説明・場所で予定を検索
- 03MCPクライアントから会議を作成・編集
- 04繰り返し予定と各回を管理
MCP 対応
stdio経由で、予定の照会、検索、作成、更新、削除を行う7つのカレンダーツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
calendar-mcp
MCP サーバーで、Claude(およびその他の MCP ホスト)から macOS の Calendar.app に完全にアクセスできます。Calendar.app で設定されているすべてのアカウント(iCloud、Google、Exchange など)のイベントを一覧表示、検索、作成、更新、削除できます。
前提条件
- macOS(Calendar.app が必要です)
- Node.js 20+
- MCP ホスト:Claude Desktop または任意の stdio MCP クライアント
インストール
Claude Desktop — ワンクリックインストール(推奨)
- 最新リリースから
calendar-mcp.mcpbをダウンロードします .mcpbファイルをダブルクリックすると、Claude Desktop が自動的にインストールします- 必要な macOS のアクセス権を許可します(以下を参照)
手動インストール/その他のホスト
npx @p-l-ta/calendar-mcp
または、グローバルにインストールします。
npm install -g @p-l-ta/calendar-mcp
calendar-mcp
MCP ホストで calendar-mcp バイナリ(stdio トランスポート)を指定します。設定例:
{
"mcpServers": {
"calendar-app": {
"command": "npx",
"args": ["@p-l-ta/calendar-mcp"]
}
}
}
必要な macOS のアクセス権
MCP ホストを実行するアプリケーション(Claude Desktop など)に、以下のアクセス権を許可してください。
| アクセス権 | 許可する場所 |
|---|---|
| フルディスクアクセス | システム設定 → プライバシーとセキュリティ → フルディスクアクセス |
| オートメーション → カレンダー | システム設定 → プライバシーとセキュリティ → オートメーション |
MCP サーバーのプロセスは、起動元のホストアプリケーションからアクセス権を継承します。
ツール
| ツール | 説明 |
|---|---|
list_calendars | 名前、色、アカウント、UUID を含むすべてのカレンダーを一覧表示します |
list_events | 繰り返しイベントの各開催分を含む、指定期間内のイベントを一覧表示します |
get_event | UUID で指定した単一イベントの詳細(参加者を含む)を取得します |
search_events | タイトル、説明、場所を対象にイベントをテキスト検索します |
create_event | 新しいカレンダーイベントを作成します |
update_event | 既存のイベントのプロパティを更新します |
delete_event | イベントを完全に削除します |
動作の仕組み
- 読み取り(
list_calendars、list_events、search_events、get_event)— Calendar の SQLite データベースを直接クエリし、すべてのアカウントを対象に高速で構造化された結果を取得します。繰り返しイベントは Calendar のOccurrenceCacheテーブルを使って正しく展開されます。 - 書き込み(
create_event、update_event、delete_event)— Calendar.app に対する AppleScript オートメーションを使うため、アプリで操作した場合と同様に、変更が接続されているすべてのアカウント(iCloud、Google、Exchange)に同期されます。
開発
npm install
npm run dev # tsx watch — live reload
npm run build # compile TypeScript → dist/
npm run mcpb # build Claude Desktop extension → build/calendar-mcp.mcpb
npm run smoke # smoke-test all 7 tools against live Calendar.app data
注:
npm run smokeを実行するには、Calendar.sqlitedb を直接読み取るため、Terminal.app(またはお使いのターミナルエミュレーター)にフルディスクアクセスを許可する必要があります。
対話形式での MCP テスト:
npm run build
npx @modelcontextprotocol/inspector node dist/server.js
プライバシーポリシー
calendar-mcp は、Mac 上で完全に動作するローカル MCP サーバーです。バックエンドやテレメトリはなく、独自にネットワークリクエストを行うこともありません。
アクセスするデータ:
- Calendar の SQLite データベース(
~/Library/Group Containers/group.com.apple.calendar/Calendar.sqlitedb)— 読み取り専用で、一覧表示/検索クエリに使用します - AppleScript 経由の Calendar.app — イベントの作成、更新、削除に使用します
行わないこと:
- Mac の外部でデータを収集、保存、送信すること
- 外部のサーバーや API に接続すること
- カレンダーデータをどこかに記録すること
すべてのカレンダーデータはデバイス上に保持され、通常のツール応答の一部として MCP ホスト(Claude Desktop または別のクライアント)に渡されるだけです。Claude が呼び出せるツールは、ユーザーが完全に制御できます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。