Google Calendar について
Google Calendar は、Google Calendar のカレンダーや予定を管理する MCP サーバーです。予定調整、空き時間の確認、招待への対応、予定の更新に対応し、トークンや状態を保持せず OAuth をプロキシします。
主な機能
- 01カレンダーの一覧表示と管理
- 02予定の作成、更新、移動、削除
- 03招待への返信
- 04空き時間と予定の照会
- 05カレンダーのアクセス権と設定の管理
活用シーン
- 01会議の空き時間を探して招待を送る
- 02保留中の招待を承諾または辞退する
- 03当日の予定と空き時間を確認する
- 04予定を変更または集中時間を確保する
MCP 対応
カレンダー、予定、空き時間、招待、共有を管理するツールを MCP クライアントに提供します。Google への OAuth リクエストをプロキシし、トークンや状態は保持しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y google-cal-mcpGOOGLE_ACCESS_TOKENシークレットGoogle OAuth access token with Calendar scopes.MCP_TRANSPORTTransport type.GOOGLE_CLIENT_IDGoogle OAuth client ID.GOOGLE_CLIENT_SECRETシークレットGoogle OAuth client secret.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
google-cal-mcp
Google Calendar 用の MCP サーバーです。カレンダーの予定の一覧表示、作成、更新、管理を行えます。
ユースケース
会議をスケジュールする:「来週、Sarah と 30 分の打ち合わせを設定して」→ 空き時間を見つけ、Meet のリンク付きで予定を作成し、招待を送信します。
招待に出欠を返信する:「チームのオフサイトには参加、ベンダーのデモは辞退して」→ 未返信の招待に自動で返信します。
空き時間を確認する:「今週の木曜の午後はいつ空いている?」→ カレンダーを照会し、空き時間を返します。
予定を変更する:「Alex との 1 対 1 を金曜の午後 2 時に移動して」→ 予定を更新し、参加者に通知します。
毎日の予定を確認する:「今日のカレンダーには何が入っている?」→ すべての予定を時刻、場所、参加者とともに一覧表示します。
集中作業の時間を確保する:「明日の午前中に、集中して作業するための時間を 2 時間確保して」→ 時間を確保するカレンダー予定を作成します。
(これらはあくまで例です。カレンダーへのアクセスが必要なワークフローであれば、どれでも利用できます。)
セットアップ
1. Google OAuth 認証情報を作成する
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成します(または既存のプロジェクトを使用します)
- Google Calendar API を有効にします
- APIs & Services → OAuth consent screen に移動し、同意画面を設定します
- APIs & Services → Credentials → Create Credentials → OAuth client ID に移動します
- Web application を選択します
- Authorized redirect URIs に
http://localhost:3000/callbackを追加します - Client ID と Client Secret を控えておきます
2. サーバーを起動する
GOOGLE_CLIENT_ID='your-client-id' \
GOOGLE_CLIENT_SECRET='your-client-secret' \
MCP_TRANSPORT=http \
npm start
サーバーはデフォルトで http://localhost:3000 で実行されます。PORT=3001 で変更できます。
3. MCP クライアントに追加する
サーバーを起動した状態で、install-mcp の手順に従ってください。MCP クライアント(Claude Code、Claude Desktop、Cursor、Cline、VS Code など)に適した設定が生成されます。
アーキテクチャ
このサーバーは、Google への OAuth プロキシとして動作します。
graph LR
A[MCP client] <--> B[google-cal-mcp] <--> C[Google OAuth/API]
- サーバーは
/.well-known/oauth-authorization-serverを通じて、自身を OAuth 認可サーバーとして通知します /registerは Google OAuth クライアントの認証情報を返します/authorizeはクライアントのコールバック URL を state に含めて、Google にリダイレクトします/callbackは Google からコードを受け取り、クライアントのコールバックに転送します/tokenはトークンリクエストを Google にプロキシし、クライアントの認証情報を挿入します/mcpは MCP リクエストを処理し、ベアラートークンを使って Calendar API を呼び出します
このサーバーはトークンも状態も保持せず、Google への OAuth リクエストをプロキシするだけです。
ツール
| ツール | 説明 |
|---|---|
| カレンダー | |
calendars_list | ユーザーがアクセスできるすべてのカレンダーを一覧表示する |
calendarlist_insert | 共有カレンダーを登録する |
calendarlist_update | カレンダーの設定(色、表示設定、リマインダー)を更新する |
calendarlist_delete | カレンダーの登録を解除する |
| 予定 | |
events_list | 時間範囲を指定して、検索・フィルター条件に一致する予定を一覧表示する |
event_get | 特定の予定の詳細を取得する |
event_create | 参加者と Meet のリンクを含む新しい予定を作成する |
event_update | 既存の予定を更新する |
event_delete | 予定を削除する |
event_respond | 招待に出欠を返信する(参加/辞退/未定) |
event_move | 予定を別のカレンダーに移動する |
event_instances | 繰り返し予定の各回を取得する |
| 空き時間 | |
freebusy_query | スケジュール調整のために、空き時間と予定ありの時間を調べる |
| 共有 | |
acl_list | カレンダーへのアクセス権を持つユーザーを一覧表示する |
| 色 | |
colors_get | カレンダーや予定に使用できるカラーパレットを取得する |
Calendar API のスコープ
calendar- カレンダーへのフルアクセスcalendar.events- 予定の読み取りと書き込み
コントリビューション
GitHub でのプルリクエストを歓迎します。始めるには、次の手順に従ってください。
- Git と Node.js をインストールします
- リポジトリをクローンします
npm installで依存関係をインストールしますnpm run testを実行してテストを実行しますnpm run buildでビルドします
リリース
バージョンはセマンティックバージョニング仕様に従います。
リリースするには:
npm version <major | minor | patch>を使用してバージョンを更新しますgit push --follow-tagsを実行してタグとともにプッシュします- GitHub Actions が NPM レジストリに公開するまで待ちます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。