Google Workspace MCP Server について
MCPを通じてGmail、Google Calendar、Google Chatを操作するサーバーです。メールや予定の管理に加え、Chatのメッセージ、スペース、メンバーシップを扱えます。
主な機能
- 01メールの検索・一覧・送信・変更
- 02カレンダー予定の一覧と管理
- 03Chatメッセージの投稿と取得
- 04スペースとメンバーシップの参照
- 05自然言語によるメッセージの絞り込み
活用シーン
- 01受信トレイのメール検索と整理
- 02カレンダー予定の作成や更新
- 03Google Chatスペースへの投稿と確認
MCP 対応
Gmail、Google Calendar、Google Chat APIを操作するツールをMCPクライアントに提供します。メールや予定の操作、メッセージ管理、スペースとメンバーシップの照会に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Google Workspace MCP サーバー
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:カレンダー予定を削除します
前提条件
- Node.js:バージョン 14 以上の Node.js をインストールします
- Google Cloud Console のセットアップ:
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
- Gmail API と Google Calendar API を有効にします:
- 「API とサービス」>「ライブラリ」に移動します
- 「Gmail API」を検索して有効にします
- 「Google Calendar API」を検索して有効にします
- OAuth 2.0 認証情報を設定します:
- 「API とサービス」>「認証情報」に移動します
- 「認証情報を作成」>「OAuth クライアント ID」をクリックします
- 「ウェブアプリケーション」を選択します
- 「承認済みのリダイレクト URI」に
http://localhost:3000/auth/callbackを含めます - クライアント 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'
]
},
};
ローカル開発(任意)
サーバーをローカルで実行する場合:
- リポジトリをクローンします:
git clone https://github.com/KaranThink41/Google_workspace_mcp_server.git
cd Google_workspace_mcp_server
- 依存関係をインストールします:
npm install
- プロジェクトをビルドします:
npm run build
- サーバーを実行します:
node build/index.js
使用例
Gmail の操作
-
最近のメールを一覧表示:
{ "maxResults": 5, "query": "is:unread" } -
メールを検索:
{ "query": "from:[email protected] has:attachment", "maxResults": 10 } -
メールを送信:
{ "to": "[email protected]", "subject": "Hello", "body": "Message content", "cc": "[email protected]", "bcc": "[email protected]" } -
メールを変更:
{ "id": "message_id", "addLabels": ["UNREAD"], "removeLabels": ["INBOX"] }
Calendar の操作
-
予定を一覧表示:
{ "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": ["[email protected]"] } -
予定を更新:
{ "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 エラー:
- Google Cloud Console で API の割り当てと上限を確認します
- プロジェクトで API が有効になっていることを確認します
- リクエストのパラメーターが必須の形式と一致していることを確認します
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。
Google Chat MCP サーバー
Google Chat API と連携するための Model Context Protocol(MCP)サーバー実装です。このサーバーは、Google Chat のメッセージ、スペース、メンバーシップを管理するツールを提供します。
機能
- Google Chat のスペースにテキストメッセージを投稿します
- スペースの詳細を取得し、スペースを一覧表示します
- メンバーシップを管理します(一覧表示、メンバーの詳細取得)
- フィルタリング機能を使ってメッセージを一覧表示・取得します
- 自然言語によるフィルタリングに対応しています
セットアップ手順
1. Google Cloud プロジェクトのセットアップ
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
- Google Chat API を有効にします
- OAuth 2.0 認証情報を作成します:
- API とサービス > 認証情報に移動します
- 「認証情報を作成」> OAuth クライアント ID をクリックします
- 「ウェブアプリケーション」を選択します
- 「承認済みのリダイレクト URI」に
http://localhost:3000/auth/callbackを含めます - クライアント ID とクライアントシークレットを控えておきます
2. リフレッシュトークンの取得
- 一時的な認証情報ファイルを作成します:
cp temp-credentials.json.example temp-credentials.json
-
temp-credentials.jsonを更新し、クライアント ID とクライアントシークレットを設定します -
リフレッシュトークンのスクリプトを実行します:
node get-refresh-token.js
- ブラウザーでの認証フローに従って、リフレッシュトークンを取得します
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. ローカルでの開発(任意)
サーバーをローカルで実行する場合:
- リポジトリをクローンします:
git clone https://github.com/KaranThink41/Google_chat_mcp_server.git
cd Google_chat_mcp_server
- 依存関係をインストールします:
npm install
- プロジェクトをビルドします:
npm run build
- サーバーを実行します:
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 キーがコード内に公開されることはありません
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。