Calendar App MCP について
Calendar App MCP は、macOS Calendar.app の予定やリマインダーを Claude などの MCP 対応 AI アシスタントに提供します。カレンダーの照会、絞り込み、検索、出力形式の指定ができるコマンドラインツールも備えています。
主な機能
- 01予定とリマインダーの取得
- 02日付とカレンダーによる絞り込み
- 03カレンダー項目の検索
- 04JSON または Markdown 出力
- 05ツール、リソース、デイリーアジェンダ用プロンプト
活用シーン
- 01当日の予定とリマインダーの確認
- 02期間内の空き時間の検索
- 03キーワードによる予定の検索
MCP 対応
MCP サーバーはカレンダーと時刻のツール、カレンダーと日時のリソース、デイリーアジェンダ用プロンプトを提供します。MCP クライアントは macOS Calendar.app のデータを取得、絞り込み、検索できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Calendar App MCP
Claude やその他の AI アシスタントで使用できるよう、macOS の Calendar.app のイベントとリマインダーへのアクセスを提供する MCP(Model Context Protocol)サーバーです。
MCP 連携
このパッケージは、MCP プロトコルに対応する Claude やその他の AI アシスタントと連携するために、MCP サーバーとして実行できます。これにより、macOS のカレンダーデータへのアクセスや操作が可能になります。
# Run as MCP server for AI assistant integration
uvx calendar-app-mcp # Automatically runs as MCP server with no arguments
uvx calendar-app-mcp mcp # Explicitly runs the MCP server
実行すると、Claude は MCP プロトコルを通じてカレンダーデータを操作でき、次のことが可能になります。
- 予定されているイベントを確認する
- 空き時間を見つける
- イベントの詳細を表示する
- リマインダーにアクセスする
- カレンダー、日付範囲などでイベントを絞り込む
MCP ツールとリソース
このパッケージは、複数の MCP ツールとリソースを提供します。
ツール
get_events:指定した日付範囲のイベントを取得しますget_reminders:指定した日付範囲のリマインダーを取得しますlist_calendars:利用可能なすべてのカレンダーを一覧表示しますget_today_summary:今日のイベントとリマインダーの概要を取得しますsearch:指定した語句を含むイベントとリマインダーを検索しますget_current_time:任意のタイムゾーンで現在の日付と時刻を取得しますconvert_time:時刻をあるタイムゾーンから別のタイムゾーンに変換しますlist_timezones:地域で絞り込める、利用可能なタイムゾーンの一覧を表示します
リソース
calendar://events/{date}:指定した日付のイベントにアクセスしますcalendar://calendars:利用可能なカレンダーの一覧にアクセスしますdatetime://current/{timezone}:指定したタイムゾーンの現在時刻を取得します
プロンプト
daily_agenda:毎日のスケジュールを確認するためのプロンプトを生成します
機能
- macOS の Calendar.app のイベントとリマインダーにアクセスします
- 日付範囲、カレンダー名、終日/予定ありのステータスで絞り込みます
- 出力を JSON または Markdown 形式にします
- カレンダーデータに安全にローカルアクセスします
インストール
# Install from PyPI
pip install calendar-app-mcp
# Using uv
uv pip install calendar-app-mcp
# Using uvx (direct execution without installation)
uvx calendar-app-mcp calendars
uvx calendar-app-mcp mcp
利用可能なコマンド名
インストール後、このパッケージでは 2 つのコマンドライン実行ファイルを利用できます。
# General-purpose calendar app tool - shows help when run without arguments
calendar-app
# MCP-focused variant - defaults to running the MCP server when no arguments are provided
calendar-app-mcp
どちらのコマンドも同じサブコマンドに対応していますが、calendar-app-mcp は MCP サーバーとしての使用に最適化されています。
開発用インストール
# Clone the repository
git clone https://github.com/rygwdn/calendar-app-mcp.git
cd calendar-app-mcp
# Install uv package manager if not already installed
# https://github.com/astral-sh/uv
# Install the package in development mode
uv install -e .
# Install with development dependencies (for testing)
uv install -e '.[dev]'
CLI の使用方法
MCP サーバーとして機能するだけでなく、このパッケージはカレンダーデータに直接アクセスするコマンドラインツールとしても使用できます。
# List available calendars
uvx calendar-app-mcp calendars
# Get today's events and reminders
uvx calendar-app-mcp today
# Get only events
uvx calendar-app-mcp events
# Get only reminders
uvx calendar-app-mcp reminders
# Get both events and reminders
uvx calendar-app-mcp all
# Show JSON schema
uvx calendar-app-mcp schema
# Check version
uvx calendar-app-mcp --version
# or
uvx calendar-app-mcp version
コマンドオプション
ほとんどのサブコマンドでは、次のオプションを指定できます。
# Output in JSON format (default is markdown)
uvx calendar-app-mcp events --json
# Filter by date range
uvx calendar-app-mcp events --from 2024-12-01 --to 2024-12-31
# Filter by specific calendars
uvx calendar-app-mcp events --calendars "Work" "Personal"
# Only show all-day events
uvx calendar-app-mcp events --all-day-only
# Only show busy events
uvx calendar-app-mcp events --busy-only
# Include completed reminders
uvx calendar-app-mcp reminders --include-completed
開発
パブリック PyPI レジストリで UV を使用する
ローカルで設定されているリポジトリではなく、UV がパブリック PyPI レジストリを使用するようにするには、次の手順を実行します。
# Generate a lock file using only PyPI
UV_NO_CONFIG=1 uv lock
# Install dependencies using only PyPI
UV_NO_CONFIG=1 uv install
UV_NO_CONFIG=1 環境変数は、UV にシステムレベルの設定を無視し、パブリック PyPI レジストリのみを使用するよう指示します。
PyPI への公開
新しいバージョンを PyPI に公開するには、次の手順を実行します。
pyproject.tomlのバージョン番号を更新します- テストを実行してすべて正常に動作することを確認します:
uv run pytest --black --ruff - パッケージをビルドします:
UV_NO_CONFIG=1 uv run python -m build - PyPI にアップロードします:
X.Y.Z を実際のバージョン番号に置き換えます。UV_NO_CONFIG=1 uv run twine upload dist/calendar_app_mcp-X.Y.Z* - パッケージをインストールできることを確認します:
uvx calendar-app-mcp@latest --version - バージョンタグを作成してプッシュします:
git tag vX.Y.Z && git push origin vX.Y.Z
詳しい手順については、CLAUDE.md ファイルを参照してください。
テストの実行
すべてのテストを実行します:
python -m pytest
カバレッジレポート付きでテストを実行します:
python -m pytest --cov=calendar_app
特定のテストファイルを実行します:
python -m pytest tests/unit/utils/test_date_utils.py
特定のテストを実行します:
python -m pytest tests/unit/utils/test_date_utils.py::TestParseDate::test_valid_date
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。