mcpField
G
Google Calendar AutoAuth MCP Server

Google Calendar AutoAuth MCP Server

ローカル
github.com/falgom4生産性276 週間前に更新

Google Calendar AutoAuth MCP Server について

Google Calendar AutoAuth MCP Serverは、AIアシスタントからGoogle Calendarの予定やカレンダーを管理するサーバーです。自然言語の日付に対応し、ブラウザーを開くOAuth認証で認証情報を共通保存します。

主な機能

  1. 01予定の作成・更新・削除
  2. 02予定の取得と一覧表示
  3. 03キーワードによる予定検索
  4. 04利用可能なカレンダーの一覧表示
  5. 05自然言語の日付解析
  6. 06ブラウザー経由のOAuth認証

活用シーン

  1. 01自然言語の指示による予定作成
  2. 02期間を指定した予定の検索
  3. 03カレンダー項目の更新や削除

MCP 対応

MCPクライアントにGoogle Calendarの予定・カレンダー管理ツールを公開し、予定の作成、検索、一覧表示などを可能にします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"calendar-mcp-falgom4": {
"command": "npx",
"args": [
"-y",
"@nchufa/calendar"
]
}
}
}
起動コマンドnpx -y @nchufa/calendar

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@nchufa/calendar

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Google Calendar AutoAuth MCP Server

smithery badge

Claude Desktop で Google Calendar と連携するための Model Context Protocol(MCP)サーバーです。自動認証に対応しています。このサーバーを使うと、AI アシスタントが自然言語でのやり取りを通じて Google Calendar を管理できます。

MCP Server

機能

  • タイトル、説明、場所、参加者を指定してカレンダーの予定を作成
  • 既存のカレンダーの予定を更新
  • カレンダーの予定を削除
  • 予定の詳細を取得
  • 指定した期間内の予定を一覧表示
  • キーワードで予定を検索
  • 利用可能なすべてのカレンダーを一覧表示
  • 自然言語での日付/時刻の入力に対応(例:「明日の午後2時」、「次の月曜日」)
  • Google Calendar API と完全に連携
  • ブラウザーを自動起動するシンプルな OAuth2 認証フロー
  • デスクトップアプリとウェブアプリケーションの両方の認証情報に対応
  • 利便性のため、認証情報をグローバルに保存

インストールと認証

Smithery 経由でインストール

Smithery 経由で Claude Desktop 用の Google Calendar Integration Server を自動的にインストールするには:

npx -y @smithery/cli install @falgom4/calendar-mcp --client claude
手動でインストール
  1. Google Cloud プロジェクトを作成し、認証情報を取得します:

    a. Google Cloud プロジェクトを作成します:

    • Google Cloud Console にアクセスします
    • 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
    • プロジェクトで Google Calendar API を有効にします

    b. OAuth 2.0 認証情報を作成します:

    • 「APIs & Services」>「Credentials」に移動します
    • 「Create Credentials」>「OAuth client ID」をクリックします
    • アプリケーションの種類として「Desktop app」または「Web application」を選択します
    • 名前を付けて「Create」をクリックします
    • Web application の場合は、承認済みのリダイレクト URI に http://localhost:3000/oauth2callback を追加します
    • クライアントの OAuth キーを含む JSON ファイルをダウンロードします
    • キーファイルの名前を gcp-oauth.keys.json に変更します
  2. 認証を実行します:

    次の2つの方法で認証できます:

    a. グローバル認証(推奨):

    # First time: Place gcp-oauth.keys.json in your home directory's .calendar-mcp folder
    mkdir -p ~/.calendar-mcp
    mv gcp-oauth.keys.json ~/.calendar-mcp/
    
    # Run authentication from anywhere
    npx @nchufa/calendar auth
    

    b. ローカル認証:

    # Place gcp-oauth.keys.json in your current directory
    # The file will be automatically copied to global config
    npx @nchufa/calendar auth
    

    認証プロセスでは、次の処理が行われます:

    • 現在のディレクトリまたは ~/.calendar-mcp/ で gcp-oauth.keys.json を探します
    • 現在のディレクトリで見つかった場合は、~/.calendar-mcp/ にコピーします
    • Google 認証のために既定のブラウザーを開きます
    • 認証情報を ~/.calendar-mcp/credentials.json として保存します

    注:

    • 認証に成功すると、認証情報は ~/.calendar-mcp/ にグローバルに保存され、どのディレクトリからでも使用できます
    • デスクトップアプリとウェブアプリケーションの両方の認証情報に対応しています
    • ウェブアプリケーションの認証情報を使う場合は、承認済みのリダイレクト URI に http://localhost:3000/oauth2callback を追加してください
  3. Claude Desktop で設定します:

Claude Desktop の設定ファイルに次の内容を追加します:

{
  "mcpServers": {
    "calendar": {
      "command": "npx",
      "args": [
        "@nchufa/calendar"
      ]
    }
  }
}

利用可能なツール

このサーバーでは、Claude Desktop から使用できる次のツールを提供しています:

1. 予定を作成(create_event)

新しいカレンダーの予定を作成します。

{
  "summary": "Team Meeting",
  "description": "Weekly team sync to discuss project progress",
  "location": "Conference Room A",
  "start": "2025-04-01T14:00:00",
  "end": "2025-04-01T15:00:00",
  "attendees": ["[email protected]", "[email protected]"],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 30
      },
      {
        "method": "popup",
        "minutes": 10
      }
    ]
  }
}

自然言語での日付/時刻の指定にも対応しています:

{
  "summary": "Coffee with John",
  "location": "Starbucks Downtown",
  "start": "tomorrow at 2:30pm",
  "end": "tomorrow at 3:30pm"
}
2. 予定を取得(get_event)

特定のカレンダーの予定の詳細を取得します。

{
  "eventId": "abc123xyz456",
  "calendarId": "primary"
}
3. 予定を更新(update_event)

既存のカレンダーの予定を更新します。

{
  "eventId": "abc123xyz456",
  "summary": "Updated Meeting Title",
  "location": "New Location",
  "start": "2025-04-01T15:00:00",
  "end": "2025-04-01T16:00:00"
}
4. 予定を削除(delete_event)

カレンダーの予定を削除します。

{
  "eventId": "abc123xyz456",
  "calendarId": "primary"
}
5. 予定を一覧表示(list_events)

指定した期間内のカレンダーの予定を一覧表示します。

{
  "calendarId": "primary",
  "timeMin": "2025-04-01T00:00:00",
  "timeMax": "2025-04-07T23:59:59",
  "maxResults": 10,
  "orderBy": "startTime"
}
6. 予定を検索(search_events)

クエリに一致する予定を検索します。

{
  "query": "meeting",
  "calendarId": "primary",
  "timeMin": "2025-04-01T00:00:00",
  "maxResults": 5
}
7. カレンダーを一覧表示(list_calendars)

利用可能なすべてのカレンダーを一覧表示します。

{}

自然言語による日付と時刻の指定

サーバーは、日付と時刻をさまざまな自然言語形式で指定できます。

  • 特定の日付:「2025-04-01T14:00:00」(ISO 形式)
  • 簡単な指定:「today」、「tomorrow」、「now」
  • 相対的な時刻:「2 hours later」、「3 days later」
  • 曜日の指定:「next monday」、「next tuesday」
  • 組み合わせた形式:「tomorrow at 2pm」、「monday at 15:30」

これにより、自然言語の指示を使ってイベントを簡単に作成・更新できます。

セキュリティに関する注意事項

  • OAuth 認証情報はローカル環境(~/.calendar-mcp/)に安全に保存されます
  • サーバーは認証状態を維持するため、オフラインアクセスを使用します
  • 認証情報を共有したり、バージョン管理にコミットしたりしないでください
  • Google アカウントの設定で、使用していないアクセス権を定期的に確認し、取り消してください

トラブルシューティング

  1. OAuth キーが見つからない

    • gcp-oauth.keys.json が現在のディレクトリまたは ~/.calendar-mcp/ にあることを確認してください
    • ファイルの権限を確認してください
  2. 認証情報の形式が無効

    • OAuth キーファイルに web または installed の認証情報が含まれていることを確認してください
    • ウェブアプリケーションの場合は、リダイレクト URI が正しく設定されていることを確認してください
  3. ポートがすでに使用されている

    • ポート 3000 がすでに使用されている場合は、認証を実行する前にポートを解放してください
    • そのポートを使用しているプロセスを見つけて停止できます

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

MIT

謝辞

この実装の基盤となった GongRzhe と、そのプロジェクト Calendar-Autoauth-MCP-Server に特別な感謝を申し上げます。

サポート

問題が発生した場合や質問がある場合は、GitHub リポジトリでイシューを作成してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。