Skip to main content
Glama

Google Calendar MCP Server

README.md6.57 kB
# Google Calendar MCP Server Google Calendar APIを使用したMCP(Model Context Protocol)サーバーです。FastMCPフレームワークを使用してGoogleカレンダーの操作機能を提供します。 ## 機能 - **カレンダー一覧取得**: 利用可能なGoogleカレンダーの一覧を取得 - **イベント取得**: 指定したカレンダーからイベントを取得 - **イベント作成**: 新しいカレンダーイベントを作成 - **イベント削除**: カレンダーイベントを削除 ## 要件 - Python 3.12以上 - Google Cloud Platformプロジェクト - Google Calendar API有効化 - OAuth2認証情報 ## インストール 1. リポジトリをクローン ```bash git clone <repository-url> cd google-calendar-mcp ``` 2. 依存関係をインストール ```bash pip install -e . ``` またはuvを使用する場合: ```bash uv sync ``` ## 設定 ### 1. Google Cloud Platform設定 1. [Google Cloud Console](https://console.cloud.google.com/)でプロジェクトを作成 2. Google Calendar APIを有効化 3. OAuth2認証情報を作成 4. 必要な環境変数を設定 ### 2. 環境変数設定 以下の環境変数を設定してください: ```bash export GOOGLE_CLIENT_ID="your_client_id" export GOOGLE_CLIENT_SECRET="your_client_secret" export GOOGLE_PROJECT_ID="your_project_id" export GOOGLE_REFRESH_TOKEN="your_refresh_token" ``` または`.env`ファイルに設定: ```env GOOGLE_CLIENT_ID=your_client_id GOOGLE_CLIENT_SECRET=your_client_secret GOOGLE_PROJECT_ID=your_project_id GOOGLE_REFRESH_TOKEN=your_refresh_token ``` ### 3. OAuth2認証情報の取得 1. Google Cloud ConsoleでOAuth2認証情報を作成 2. 認証フローを実行してリフレッシュトークンを取得 3. 取得した値を環境変数に設定 ## 使用方法 ### MCPサーバーとして実行 ```bash python main.py ``` ### 直接実行 ```bash python -m src.google_calendar_mcp ``` ## API仕様 ### list_calendars() 利用可能なGoogleカレンダーの一覧を取得します。 **引数**: なし **戻り値**: - `success` (bool): 処理が成功したかどうか - `calendars` (List[Dict]): カレンダー情報のリスト - `count` (int): カレンダー数 - `error` (str): エラーメッセージ(失敗時) ### get_events() 指定したカレンダーからイベントを取得します。 **引数**: - `calendar_id` (str): カレンダーID(デフォルト: 'primary') - `time_min` (str): 開始時刻(ISO形式、デフォルト: 現在時刻) - `time_max` (str): 終了時刻(ISO形式、デフォルト: 7日後) - `max_results` (int): 最大取得件数(デフォルト: 10) **戻り値**: - `success` (bool): 処理が成功したかどうか - `events` (List[Dict]): イベント情報のリスト - `count` (int): イベント数 - `error` (str): エラーメッセージ(失敗時) ### create_event() 新しいカレンダーイベントを作成します。 **引数**: - `summary` (str): イベントタイトル(必須) - `start_time` (str): 開始時刻(ISO形式、必須) - `end_time` (str): 終了時刻(ISO形式、必須) - `description` (str): イベントの説明(デフォルト: '') - `location` (str): 場所(デフォルト: '') - `calendar_id` (str): カレンダーID(デフォルト: 'primary') - `attendees` (List[str]): 参加者メールアドレスのリスト(デフォルト: None) **戻り値**: - `success` (bool): 処理が成功したかどうか - `event_id` (str): 作成されたイベントのID - `event_link` (str): イベントのGoogleカレンダーリンク - `message` (str): 成功メッセージ - `error` (str): エラーメッセージ(失敗時) ### delete_event() カレンダーイベントを削除します。 **引数**: - `event_id` (str): 削除するイベントのID(必須) - `calendar_id` (str): カレンダーID(デフォルト: 'primary') **戻り値**: - `success` (bool): 処理が成功したかどうか - `message` (str): 成功メッセージ - `error` (str): エラーメッセージ(失敗時) ## テスト ### モックモードでのテスト実行 ```bash python run_tests.py --mode mock ``` ### 実際のAPIを使用したテスト実行 ```bash python run_tests.py --mode real_api ``` ### カバレッジレポート付きテスト実行 ```bash python run_tests.py --mode mock --coverage ``` ### 特定のテスト実行 ```bash python run_tests.py --mode mock --test test_calendar_tools.py::TestListCalendars ``` ## プロジェクト構造 ``` google-calendar-mcp/ ├── src/ │ ├── __init__.py │ ├── google_calendar_mcp.py # MCPサーバーのメインエントリーポイント │ ├── auth/ │ │ ├── __init__.py │ │ └── google_auth.py # Google認証処理 │ └── tools/ │ ├── __init__.py │ └── calendar_tools.py # カレンダー操作機能 ├── tests/ │ ├── __init__.py │ └── test_calendar_tools.py # テストコード ├── main.py # アプリケーションエントリーポイント ├── run_tests.py # テスト実行スクリプト ├── pyproject.toml # プロジェクト設定 ├── pytest.ini # pytest設定 └── README.md # このファイル ``` ## 依存関係 - `fastmcp`: MCPサーバーフレームワーク - `google-api-python-client`: Google APIクライアント - `google-auth-httplib2`: Google認証ライブラリ - `google-auth-oauthlib`: OAuth2認証ライブラリ - `python-dotenv`: 環境変数管理 - `pytest`: テストフレームワーク - `pytest-mock`: モックテストライブラリ ## ライセンス このプロジェクトのライセンスについては、LICENSEファイルを参照してください。 ## 貢献 プルリクエストやイシューの報告を歓迎します。 ## トラブルシューティング ### 認証エラー - 環境変数が正しく設定されているか確認 - OAuth2認証情報が有効か確認 - Google Calendar APIが有効化されているか確認 ### 権限エラー - 必要なスコープが設定されているか確認 - カレンダーへのアクセス権限があるか確認 ### テストエラー - 環境変数`USE_REAL_API`の設定を確認 - 必要な依存関係がインストールされているか確認

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/YusukeYoshiyama/google-calendar-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server