mcpField
C
calendar-mcp

calendar-mcp

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

calendar-mcp について

calendar-mcp は Java と Quarkus で構築された Google Calendar の MCP サーバーで、現在は開発中です。Google OAuth 認証を使い、イベントの作成や複数の方法での削除に対応します。

主な機能

  1. 01Google Calendar イベントの作成
  2. 02イベントの削除
  3. 03検索文字列や期間によるイベント削除
  4. 04繰り返しイベントの削除や全件消去
  5. 05Google OAuth による認証

活用シーン

  1. 01MCP クライアント経由でのイベント作成
  2. 02文字列や日付によるイベント削除
  3. 03繰り返しイベントの削除やカレンダーの全件消去

MCP 対応

Quarkus サーバーは MCP over SSE で MCP クライアントと通信し、Google Calendar のイベント操作を提供します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Reto 3 - MCP プロトコルの実装(クライアントとサーバー)

オプション A - MCP プロトコルの完全な開発(クライアントとサーバー)

目次

· 要件
· 設定
· プロジェクト構成
· 説明
· 技術上の注意
· 警告

要件

  • Java 17 以上
  • Maven
  • Docker
  • Quarkus
  • Google アカウント
  • Google Calendar API
  • Google Cloud Console プロジェクトの認証情報
  • MCP クライアント

設定

  1. リポジトリをクローンします
  2. Google Cloud でプロジェクトを作成します:https://console.cloud.google.com/welcome?inv=1&invt=AbzSaw&project=light-sunup-461210-i1。「my first proyect」をクリックして、新しいプロジェクトを作成します。
  3. プロジェクト内で、APIS y servicios → Biblioteca → Google Calendar API → Habilitar の順に選択します。
  4. APIs y servicios → Credenciales → Crear credenciales → Crear ID de cliente OAuth → Configurar pantalla de consentimiento → Crear cliente の順に選択します。
  5. JSON をダウンロードし、Resources フォルダーにコピーします。
  6. コンパイルします:mvn clean install。
  7. サーバーを実行します:jbang target/calendar-mcp-1.0.0-SNAPSHOT-runner.jar

プロジェクト構成

src/
├── main/
│   ├── java/
│   │   └── org.acme/
│   │       ├── GoogleAuthService.java    # Manejo de OAuth2 con Google
│   │       ├── GoogleCalendarConfig.java # Cliente Calendar configurado
│   │       └── tools/
│   │           └── DeleteEvent.java      # Comandos para borrar eventos
│   └── resources/
│       └── credentials.json              # Clave de acceso OAuth

説明

pom.xml Maven プロジェクトの中心的な設定ファイルです。 REST と Google API クライアントの依存関係を含む Quarkus プロジェクトとして宣言します。

具体的には、次の依存関係です:

<dependency>
    <groupId>io.quarkiverse.mcp</groupId>
    <artifactId>quarkus-mcp-server-sse</artifactId>
    <version>1.2.0</version>
</dependency>

MCP を介してクライアントとサーバー間の継続的な通信を維持します。

Quarkus サーバー
  • GoogleAuthService:Google OAuth、JSON、Jakarta のパッケージをインポートし、Quarkus 環境に対応させます。 定数 JSON_FACTORY と SCOPES には、カレンダーへのアクセスを許可する認証情報と権限が含まれています。

    authorize() メソッド:

    1. 認証情報を読み込み、認証処理を行います。
    2. ユーザーの認証方法を定義します。この場合、「setAccessType("offline")」を設定することで、再認証せずに再アクセスできるようにし、トークンを「tokens」というディレクトリに保存します。
    3. ローカルサーバーを起動し、HTTP を使用してポート 8888 でブラウザーを開きます。
    4. ユーザーを認証します。ユーザーがサインインすると、認証情報が保存されます。
  • GoogleCalendarConfig:依存関係の注入の設定として機能し、Google との OAuth2 認証を処理する依存関係を注入します。

@Inject
GoogleAuthService authService;

calendarService() クラスを使用すると、サービスは常に認証を行わずに、イベントの作成やカレンダーへのアクセスなどを実行できます。

ツール
  • CreateEvent:ユーザーの Google カレンダーに新しいイベントを作成します。イベント情報を含む JSON を受け取る REST エンドポイント(POST タイプの URL)を定義します。
  • DeleteEvent:ユーザーの Google カレンダーにある既存のイベントを削除します。
    • deleteEventsByQuery():検索テキストに一致するイベントを削除します。
    • deleteEventsByDateRange():2 つの日付の間に発生するすべてのイベントを削除します。
    • deleteRecurringEvent():eventId または instanceDate を指定してイベントを削除します。
    • clearAllEvents():すべてのイベントを削除します。

技術上の注意

  • 「offline」でアクセスできるよう、トークンは tokens/ に保存されます。

警告

  • イベントの削除は取り消せません。
  • カレンダーに適切な権限があることを確認してください。
  • credentials.json ファイルを共有しないでください。

コメント

MCP は初めてですか?

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

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