Google Workspace MCP サーバー
Gmail およびカレンダー API と連携するためのツールを提供するモデルコンテキストプロトコル(MCP)サーバーです。このサーバーを使用すると、MCP インターフェースを介してメールやカレンダーの予定をプログラムで管理できます。
特徴
Gmailツール
list_emails
: 受信トレイから最近のメールを一覧表示します(オプションでフィルタリング可能)search_emails
: Gmail クエリ構文を使用した高度なメール検索send_email
: CC と BCC をサポートして新しいメールを送信しますmodify_email
: メールラベルを変更する(アーカイブ、ゴミ箱、既読/未読としてマーク)
カレンダーツール
list_events
: 日付範囲でフィルタリングして今後のカレンダーイベントを一覧表示しますcreate_event
: 参加者を指定した新しいカレンダーイベントを作成するupdate_event
: 既存のカレンダーイベントを更新するdelete_event
: カレンダーイベントを削除する
前提条件
- Node.js : Node.jsバージョン14以降をインストールします
- Google Cloud Console のセットアップ:
- Google Cloud Consoleに移動
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択してください
- Gmail API と Google カレンダー API を有効にします。
- 「APIとサービス」>「ライブラリ」に移動します
- 「Gmail API」を検索して有効にします
- 「Google カレンダー API」を検索して有効にします
- OAuth 2.0 資格情報を設定します。
- 「APIとサービス」>「認証情報」に移動します
- 「認証情報を作成」>「OAuthクライアントID」をクリックします
- 「Webアプリケーション」を選択
- 「承認済みリダイレクト URI」に次の URL を含めるように設定します:
http://localhost:4100/code
- クライアントIDとクライアントシークレットを書き留めます
セットアップ手順
Smithery経由でインストール
Smithery経由で Claude Desktop 用の gsuite-mcp を自動的にインストールするには:
npx -y @smithery/cli install @rishipradeep-think41/gsuite-mcp --client claude
手動でインストールする
- クローンとインストール:
git clone https://github.com/epaproditus/google-workspace-mcp-server.git
cd google-workspace-mcp-server
npm install
- OAuth 資格情報の作成: ルート ディレクトリに
credentials.json
ファイルを作成します。{
"web": {
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"redirect_uris": ["http://localhost:4100/code"],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token"
}
}
- リフレッシュトークンを取得:
node get-refresh-token.js
これにより、次のようになります。- Google OAuth認証のためにブラウザを開きます
- 次の権限を要求します。
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/gmail.send
- 資格情報を
token.json
に保存します - コンソールにリフレッシュトークンを表示する
- MCP 設定を構成する: MCP 設定ファイルにサーバー構成を追加します。
- VSCode Claude 拡張機能の場合:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Claude デスクトップ アプリの場合:
~/Library/Application Support/Claude/claude_desktop_config.json
これをmcpServers
オブジェクトに追加します。
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["/path/to/google-workspace-server/build/index.js"],
"env": {
"GOOGLE_CLIENT_ID": "your_client_id",
"GOOGLE_CLIENT_SECRET": "your_client_secret",
"GOOGLE_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
- ビルドと実行:
使用例
Gmailの操作
- 最近のメールの一覧:
{
"maxResults": 5,
"query": "is:unread"
}
- メールを検索:
{
"query": "from:example@gmail.com has:attachment",
"maxResults": 10
}
- メールを送信:
{
"to": "recipient@example.com",
"subject": "Hello",
"body": "Message content",
"cc": "cc@example.com",
"bcc": "bcc@example.com"
}
- メールアドレスの変更:
{
"id": "message_id",
"addLabels": ["UNREAD"],
"removeLabels": ["INBOX"]
}
カレンダー操作
- イベント一覧:
{
"maxResults": 10,
"timeMin": "2024-01-01T00:00:00Z",
"timeMax": "2024-12-31T23:59:59Z"
}
- イベントを作成:
{
"summary": "Team Meeting",
"location": "Conference Room",
"description": "Weekly sync-up",
"start": "2024-01-24T10:00:00Z",
"end": "2024-01-24T11:00:00Z",
"attendees": ["colleague@example.com"]
}
- 更新イベント:
{
"eventId": "event_id",
"summary": "Updated Meeting Title",
"location": "Virtual",
"start": "2024-01-24T11:00:00Z",
"end": "2024-01-24T12:00:00Z"
}
- イベントを削除:
{
"eventId": "event_id"
}
トラブルシューティング
- 認証の問題:
- 必要なすべてのOAuthスコープが付与されていることを確認する
- クライアントIDとシークレットが正しいことを確認する
- リフレッシュトークンが有効かどうかを確認する
- APIエラー:
- API の割り当てと制限については、Google Cloud Console で確認してください。
- プロジェクトで API が有効になっていることを確認する
- リクエストパラメータが必要な形式と一致していることを確認する
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています。