Google Calendar MCP Server

Integrations

  • Enables reading, creating, and managing Google Calendar events, including listing available calendars, creating/updating/deleting events, and processing events from screenshots and images.

Google カレンダー MCP サーバー

これは、Googleカレンダーとの統合を提供するモデルコンテキストプロトコル(MCP)サーバーです。LLMは、標準化されたインターフェースを通じてカレンダーイベントの読み取り、作成、管理を行うことができます。

特徴

  • 利用可能なカレンダーを一覧表示する
  • カレンダーからイベントを一覧表示する
  • 新しいカレンダーイベントを作成する
  • 既存のイベントを更新する
  • イベントを削除する
  • スクリーンショットや画像からイベントを処理する

要件

  1. Node.js 16以上
  2. TypeScript 5.3以上
  3. カレンダー API が有効になっている Google Cloud プロジェクト
  4. OAuth 2.0 認証情報 (クライアント ID とクライアント シークレット)

プロジェクト構造

google-calendar-mcp/ ├── src/ # TypeScript source files ├── build/ # Compiled JavaScript output ├── llm/ # LLM-specific configurations and prompts ├── package.json # Project dependencies and scripts └── tsconfig.json # TypeScript configuration

Google Cloud のセットアップ

  1. Google Cloud Consoleにアクセスします
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
  3. プロジェクトでGoogleカレンダーAPIを有効にしてください。APIを有効にする前に、上部のバーで適切なプロジェクトが選択されていることを確認してください。
  4. OAuth 2.0 認証情報を作成します。
    • 資格情報へ移動
    • 「認証情報を作成」>「OAuthクライアントID」をクリックします
    • アプリがアクセスするデータの種類として「ユーザーデータ」を選択します
    • アプリ名と連絡先情報を追加します
    • 次のスコープを追加します (オプション)。
      • https://www.googleapis.com/auth/calendar.events
    • アプリケーションの種類として「デスクトップアプリ」を選択します
    • OAuth同意画面でテストユーザーとしてメールアドレスを追加します
      • 注: テストユーザーの追加には数分かかる場合があります。テストユーザーが承認されるまで、OAuth 同意による処理は続行できません。

インストール

  1. リポジトリをクローンする
  2. 依存関係をインストールします:
    npm install
  3. TypeScript コードをビルドします。
    npm run build
  4. Google Cloud Console (「認証情報」の下) から Google OAuth 認証情報をダウンロードし、ファイルの名前をgcp-oauth.keys.jsonに変更して、プロジェクトのルート ディレクトリに配置します。

利用可能なスクリプト

  • npm run build - TypeScriptコードをビルドする
  • npm run build:watch - 開発用にウォッチモードで TypeScript をビルドする
  • npm run dev - ts-node を使用して開発モードでサーバーを起動します
  • npm run auth - Google OAuthフローの認証サーバーを起動します

認証

サーバーは自動認証フローと手動認証フローの両方をサポートしています。

自動認証(推奨)

  1. Google OAuth 認証情報を、プロジェクトのルート ディレクトリにあるgcp-oauth.keys.jsonという名前のファイルに配置します。
  2. MCP サーバーを起動します。
    npm start
  3. 有効な認証トークンが見つからない場合、サーバーは自動的に次の処理を実行します。
    • 認証サーバーを起動する(ポート3000~3004)
    • OAuthフローのブラウザウィンドウを開く
    • 認証後はトークンを安全に保存する
    • 認証サーバーをシャットダウンする
    • 通常のMCPサーバーの運用を継続

サーバーは必要に応じてトークンの更新と再認証を自動的に管理します。

  • トークンは有効期限前に自動的に更新されます
  • 更新に失敗した場合は、明確なエラーメッセージが表示され、再認証を案内します。
  • トークンファイルは制限された権限で安全に保存されます

手動認証

上級ユーザーまたはトラブルシューティングの場合は、認証フローを手動で実行できます。

npm run auth

これにより、次のようになります。

  1. 認証サーバーを起動する
  2. OAuthフローのブラウザウィンドウを開く
  3. トークンを保存して終了する

セキュリティノート

  • OAuth認証情報はgcp-oauth.keys.jsonに保存されます
  • 認証トークンは 600 の権限で.gcp-saved-tokens.jsonに保存されます。
  • トークンはバックグラウンドで自動的に更新されます
  • トークンの整合性は各API呼び出しの前に検証されます
  • 認証が成功すると認証サーバーは自動的にシャットダウンします
  • OAuth 認証情報やトークン ファイルをバージョン管理にコミットしないでください

使用法

サーバーは次のツールを公開します。

  • list-calendars : 利用可能なすべてのカレンダーを一覧表示する
  • list-events : カレンダーからイベントを一覧表示する
  • create-event : 新しいカレンダーイベントを作成する
  • update-event : 既存のカレンダーイベントを更新する
  • delete-event : カレンダーイベントを削除する

Claude Desktopでの使用

  1. この設定をClaude Desktopの設定ファイルに追加します。例/Users/<user>/Library/Application Support/Claude/claude_desktop_config.json
    { "mcpServers": { "google-calendar": { "command": "node", "args": ["path/to/build/index.js"] } } }
  2. Claudeデスクトップを再起動します

使用例

カレンダー統合に期待される通常の機能に加えて、スクリーンショットや画像からイベントを追加するなど、非常に動的な操作も実行できます。

  1. スクリーンショットや画像からイベントを追加します。
    Add this event to my calendar based on the attached screenshot.
    サポートされている画像形式: PNG、JPEG、GIF 画像には、日付、時間、場所、説明などのイベントの詳細を含めることができます
  2. 出席確認:
    Which events tomorrow have attendees who have not accepted the invitation?
  3. 自動座標イベント:
    Here's some available that was provided to me by someone I am interviewing. Take a look at the available times and create an event for me to interview them that is free on my work calendar.
  4. ご自身の空き時間を入力してください:
    Please provide availability looking at both my personal and work calendar for this upcoming week. Choose times that work well for normal working hours on the East Coast. Meeting time is 1 hour

発達

トラブルシューティング

よくある問題と解決策:

  1. OAuthトークンは1週間(7日)後に期限切れになります
    • 本番環境ではなくテストモードにあるアプリは、1 週間後に再度 OAuth フローを実行する必要があります。
  2. OAuthトークンエラー
    • gcp-oauth.keys.jsonが正しくフォーマットされていることを確認してください
    • .gcp-saved-tokens.jsonを削除して再認証してみてください
  3. TypeScriptビルドエラー
    • すべての依存関係がインストールされていることを確認してください: npm install
    • Node.jsのバージョンが前提条件と一致していることを確認してください
    • ビルドディレクトリをクリアします: rm -rf build/
  4. 画像処理の問題
    • 画像形式がサポートされていることを確認する
    • 画像に明確で読みやすいテキストが含まれていることを確認する

セキュリティノート

  • サーバーはローカルで実行され、OAuth認証が必要です
  • OAuth 認証情報はプロジェクト ルートのgcp-oauth.keys.jsonに保存する必要があります。
  • 認証トークンは、ファイル権限が制限された.gcp-saved-tokens.jsonに保存されます。
  • トークンは期限が切れると自動的に更新されます
  • OAuth 認証情報やトークン ファイルをバージョン管理にコミットしないでください
  • 本番環境での使用には、OAuth アプリケーションを Google で検証する必要があります。

ライセンス

マサチューセッツ工科大学

-
security - not tested
F
license - not found
-
quality - not tested

LLM が標準化されたインターフェースを通じて Google カレンダーのイベントを読み取り、作成、管理できるようにします。これには、カレンダーの一覧表示、イベントの管理、スクリーンショットや画像からのカレンダー情報の処理などの機能が含まれます。

  1. Features
    1. Requirements
      1. Project Structure
        1. Google Cloud Setup
          1. Installation
            1. Available Scripts
              1. Authentication
                1. Automatic Authentication (Recommended)
                2. Manual Authentication
                3. Security Notes
              2. Usage
                1. Using with Claude Desktop
                  1. Example Usage
                    1. Development
                      1. Troubleshooting
                    2. Security Notes
                      1. License
                        ID: px6ag3jhqj