mcpField
G
Google Workspace MCP Server

Google Workspace MCP Server

ローカル
github.com/KaranThink41AI・エージェント082 週間前に更新

Google Workspace MCP Server について

MCPを通じてGmail、Google Calendar、Google Chatを操作するサーバーです。メールや予定の管理に加え、Chatのメッセージ、スペース、メンバーシップを扱えます。

主な機能

  1. 01メールの検索・一覧・送信・変更
  2. 02カレンダー予定の一覧と管理
  3. 03Chatメッセージの投稿と取得
  4. 04スペースとメンバーシップの参照
  5. 05自然言語によるメッセージの絞り込み

活用シーン

  1. 01受信トレイのメール検索と整理
  2. 02カレンダー予定の作成や更新
  3. 03Google Chatスペースへの投稿と確認

MCP 対応

Gmail、Google Calendar、Google Chat APIを操作するツールをMCPクライアントに提供します。メールや予定の操作、メッセージ管理、スペースとメンバーシップの照会に対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"Google_chat_mcp_server": {
"command": "npx",
"args": [
"-y",
"spinai-mcp"
]
}
}
}
起動コマンドnpx -y spinai-mcp

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

パッケージ
npmspinai-mcp

ツール

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

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

詳細

Google Workspace MCP サーバー

smithery badge

Gmail API および Calendar API と連携するためのツールを提供する Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、MCP インターフェースを通じてメールやカレンダーの予定をプログラムから管理できます。

機能

Gmail ツール
  • list_emails:受信トレイの最近のメールを、任意のフィルタリング条件を指定して一覧表示します
  • search_emails:Gmail のクエリ構文を使った高度なメール検索を行います
  • send_email:CC と BCC に対応した新しいメールを送信します
  • modify_email:メールのラベルを変更します(アーカイブ、ゴミ箱への移動、既読/未読の設定)
Calendar ツール
  • list_events:日付範囲で絞り込み、今後のカレンダー予定を一覧表示します
  • create_event:参加者を指定して新しいカレンダー予定を作成します
  • update_event:既存のカレンダー予定を更新します
  • delete_event:カレンダー予定を削除します

前提条件

  1. Node.js:バージョン 14 以上の Node.js をインストールします
  2. Google Cloud Console のセットアップ:
    • Google Cloud Console にアクセスします
    • 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
    • Gmail API と Google Calendar API を有効にします:
      1. 「API とサービス」>「ライブラリ」に移動します
      2. 「Gmail API」を検索して有効にします
      3. 「Google Calendar API」を検索して有効にします
    • OAuth 2.0 認証情報を設定します:
      1. 「API とサービス」>「認証情報」に移動します
      2. 「認証情報を作成」>「OAuth クライアント ID」をクリックします
      3. 「ウェブアプリケーション」を選択します
      4. 「承認済みのリダイレクト URI」に http://localhost:3000/auth/callback を含めます
      5. クライアント ID とクライアントシークレットを控えておきます
Smithery 経由でのインストール

Smithery の CLI を使ってサーバーをインストールします:

npx spinai-mcp install @KaranThink41/gsuite-mcp-server --provider smithery --config '{"googleClientId":"your_google_client_id","googleClientSecret":"your_google_client_secret","googleRefreshToken":"your_google_refresh_token"}'

または、次の設定を使用できます:

// smithery.config.js
export default {
  KaranThink41_google_chat_mcp_server: {
    command: 'npx',
    args: [
      '-y',
      '@smithery/cli@latest',
      'run',
      '@KaranThink41/google_chat_mcp_server'
    ]
  },
};
ローカル開発(任意)

サーバーをローカルで実行する場合:

  1. リポジトリをクローンします:
git clone https://github.com/KaranThink41/Google_workspace_mcp_server.git
cd Google_workspace_mcp_server
  1. 依存関係をインストールします:
npm install
  1. プロジェクトをビルドします:
npm run build
  1. サーバーを実行します:
node build/index.js

使用例

Gmail の操作
  1. 最近のメールを一覧表示:

    {
      "maxResults": 5,
      "query": "is:unread"
    }
    
  2. メールを検索:

    {
      "query": "from:[email protected] has:attachment",
      "maxResults": 10
    }
    
  3. メールを送信:

    {
      "to": "[email protected]",
      "subject": "Hello",
      "body": "Message content",
      "cc": "[email protected]",
      "bcc": "[email protected]"
    }
    
  4. メールを変更:

    {
      "id": "message_id",
      "addLabels": ["UNREAD"],
      "removeLabels": ["INBOX"]
    }
    
Calendar の操作
  1. 予定を一覧表示:

    {
      "maxResults": 10,
      "timeMin": "2024-01-01T00:00:00Z",
      "timeMax": "2024-12-31T23:59:59Z"
    }
    
  2. 予定を作成:

    {
      "summary": "Team Meeting",
      "location": "Conference Room",
      "description": "Weekly sync-up",
      "start": "2024-01-24T10:00:00Z",
      "end": "2024-01-24T11:00:00Z",
      "attendees": ["[email protected]"]
    }
    
  3. 予定を更新:

    {
      "eventId": "event_id",
      "summary": "Updated Meeting Title",
      "location": "Virtual",
      "start": "2024-01-24T11:00:00Z",
      "end": "2024-01-24T12:00:00Z"
    }
    
  4. 予定を削除:

    {
      "eventId": "event_id"
    }
    

トラブルシューティング

  1. 認証の問題:

    • 必要な OAuth スコープがすべて許可されていることを確認します
    • クライアント ID とクライアントシークレットが正しいことを確認します
    • リフレッシュトークンが有効か確認します
  2. API エラー:

    • Google Cloud Console で API の割り当てと上限を確認します
    • プロジェクトで API が有効になっていることを確認します
    • リクエストのパラメーターが必須の形式と一致していることを確認します

ライセンス

このプロジェクトは MIT License のもとでライセンスされています。

Google Chat MCP サーバー

Google Chat API と連携するための Model Context Protocol(MCP)サーバー実装です。このサーバーは、Google Chat のメッセージ、スペース、メンバーシップを管理するツールを提供します。

機能

  • Google Chat のスペースにテキストメッセージを投稿します
  • スペースの詳細を取得し、スペースを一覧表示します
  • メンバーシップを管理します(一覧表示、メンバーの詳細取得)
  • フィルタリング機能を使ってメッセージを一覧表示・取得します
  • 自然言語によるフィルタリングに対応しています

セットアップ手順

1. Google Cloud プロジェクトのセットアップ
  1. Google Cloud Console にアクセスします
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
  3. Google Chat API を有効にします
  4. OAuth 2.0 認証情報を作成します:
    • API とサービス > 認証情報に移動します
    • 「認証情報を作成」> OAuth クライアント ID をクリックします
    • 「ウェブアプリケーション」を選択します
    • 「承認済みのリダイレクト URI」に http://localhost:3000/auth/callback を含めます
    • クライアント ID とクライアントシークレットを控えておきます
2. リフレッシュトークンの取得
  1. 一時的な認証情報ファイルを作成します:
cp temp-credentials.json.example temp-credentials.json
  1. temp-credentials.json を更新し、クライアント ID とクライアントシークレットを設定します

  2. リフレッシュトークンのスクリプトを実行します:

node get-refresh-token.js
  1. ブラウザーでの認証フローに従って、リフレッシュトークンを取得します
3. Smithery 経由でインストールする

Smithery の CLI を使用してサーバーをインストールします:

npx spinai-mcp install @KaranThink41/google_chat_mcp_server --provider smithery --config '{"spaceId":"your_space_id","googleClientId":"your_google_client_id","googleClientSecret":"your_google_client_secret","googleRefreshToken":"your_google_refresh_token"}'

または、次の設定を使用できます:

export default {
  KaranThink41_google_chat_mcp_server: {
    command: 'npx',
    args: [
      '-y',
      '@smithery/cli@latest',
      'run',
      '@KaranThink41/google_chat_mcp_server'
    ]
  },
};
4. ローカルでの開発(任意)

サーバーをローカルで実行する場合:

  1. リポジトリをクローンします:
git clone https://github.com/KaranThink41/Google_chat_mcp_server.git
cd Google_chat_mcp_server
  1. 依存関係をインストールします:
npm install
  1. プロジェクトをビルドします:
npm run build
  1. サーバーを実行します:
node build/index.js

利用可能なツール

メッセージ管理
  • post_text_message:Google Chat のスペースにテキストメッセージを投稿します

    {
      "method": "tools/call",
      "params": {
        "name": "post_text_message",
        "arguments": {
          "spaceId": "AAAAfkdUqxE",
          "text": "Hello, this is a test message!"
        }
      }
    }
    
  • fetch_message_details:特定のメッセージの詳細情報を取得します

    {
      "method": "tools/call",
      "params": {
        "name": "fetch_message_details",
        "arguments": {
          "spaceId": "AAAAfkdUqxE",
          "messageId": "cpwLU-2f_z8.cpwLU-2f_z8"
        }
      }
    }
    
  • list_space_messages:任意のフィルタリングを適用して、スペース内のメッセージを一覧表示します

    {
      "method": "tools/call",
      "params": {
        "name": "list_space_messages",
        "arguments": {
          "spaceId": "AAAAfkdUqxE",
          "pageSize": 10,
          "orderBy": "createTime"
        }
      }
    }
    
スペース管理
  • fetch_space_details:スペースの詳細情報を取得します

    {
      "method": "tools/call",
      "params": {
        "name": "fetch_space_details",
        "arguments": {
          "spaceId": "AAAAfkdUqxE"
        }
      }
    }
    
  • list_joined_spaces:呼び出し元がメンバーになっているすべてのスペースを一覧表示します

    {
      "method": "tools/call",
      "params": {
        "name": "list_joined_spaces",
        "arguments": {
          "pageSize": 10
        }
      }
    }
    
メンバーシップ管理
  • list_space_memberships:スペース内のすべてのメンバーシップを一覧表示します

    {
      "method": "tools/call",
      "params": {
        "name": "list_space_memberships",
        "arguments": {
          "spaceId": "AAAAfkdUqxE",
          "pageSize": 10
        }
      }
    }
    
  • fetch_member_details:特定のメンバーの詳細情報を取得します

    {
      "method": "tools/call",
      "params": {
        "name": "fetch_member_details",
        "arguments": {
          "spaceId": "AAAAfkdUqxE",
          "memberId": "user_123"
        }
      }
    }
    
自然言語によるフィルタリング
  • apply_natural_language_filter:自然言語のクエリを API のフィルター文字列に変換します
    {
      "method": "tools/call",
      "params": {
        "name": "apply_natural_language_filter",
        "arguments": {
          "filterText": "messages from Monday"
        }
      }
    }
    

エラー処理

サーバーは、説明的なエラーメッセージを含む適切なエラー処理を実装しています。一般的なエラーは次のとおりです:

  • 認証の失敗
  • 無効なスペース ID
  • レート制限
  • API クォータ超過

セキュリティ

  • 機密性の高い認証情報はすべて環境変数に保存されます
  • OAuth リフレッシュトークンは安全に管理されます
  • API キーがコード内に公開されることはありません

コントリビューション

  1. リポジトリをフォークします
  2. 機能ブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add some amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. プルリクエストを作成します

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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