mcpField
G
Google Chat MCP

Google Chat MCP

ローカル
github.comコミュニケーション04 週間前に更新

Google Chat MCP について

Google Chat MCPは、AIアプリから自然言語でスペースの検索、メッセージの閲覧・送信、リアクションやメンバーの管理を行うサービスです。ログイン中のユーザーとして動作し、自分のメッセージとリアクションだけを編集・削除できます。

主な機能

  1. 01スペースとダイレクトメッセージの検索
  2. 02メッセージとスレッドの閲覧
  3. 03メッセージ送信とスレッド返信
  4. 04絵文字リアクションの管理
  5. 05添付ファイルのメタデータ確認
  6. 06スペースのメンバー管理

活用シーン

  1. 01チームスペースの当日の議論を要約
  2. 02特定のスレッドに返信
  3. 03添付ファイルの名前と種類を確認
  4. 04メンバー追加やスペース内の役割変更

MCP 対応

MCP サーバーとして、Google Chatのスペース、メッセージ、スレッド、リアクション、添付ファイルのメタデータ、メンバーを扱うツールをMCPクライアントに提供します。Google Chat APIとOAuthを通じ、ログイン中のユーザーとして動作します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"a1-x-tech-mcp-google-chat": {
"command": "npx",
"args": [
"-y",
"mcp-google-chat"
],
"env": {
"GOOGLE_CHAT_CLIENT_ID": "<GOOGLE_CHAT_CLIENT_ID>",
"GOOGLE_CHAT_CLIENT_SECRET": "<GOOGLE_CHAT_CLIENT_SECRET>",
"GOOGLE_CHAT_REFRESH_TOKEN": "<GOOGLE_CHAT_REFRESH_TOKEN>",
"GOOGLE_CHAT_ACCESS_TOKEN": "<GOOGLE_CHAT_ACCESS_TOKEN>",
"GOOGLE_CHAT_OAUTH_PORT": "<GOOGLE_CHAT_OAUTH_PORT>",
"GOOGLE_CHAT_API_BASE": "<GOOGLE_CHAT_API_BASE>",
"GOOGLE_CHAT_TIMEOUT_MS": "<GOOGLE_CHAT_TIMEOUT_MS>",
"GOOGLE_CHAT_MAX_RETRIES": "<GOOGLE_CHAT_MAX_RETRIES>"
}
}
}
}
起動コマンドnpx -y mcp-google-chat
設定が必要な環境変数
GOOGLE_CHAT_CLIENT_IDGoogle OAuth2 client id (refresh-token flow).
GOOGLE_CHAT_CLIENT_SECRETシークレットGoogle OAuth2 client secret (refresh-token flow). Treat it as a secret.
GOOGLE_CHAT_REFRESH_TOKENシークレットGoogle OAuth2 refresh token, exchanged for access tokens automatically. Treat it as a secret.
GOOGLE_CHAT_ACCESS_TOKENシークレットStatic OAuth2 access token (~1h lifetime) — alternative to the refresh-token trio, e.g. a service-account (Chat app) token or for testing.
GOOGLE_CHAT_OAUTH_PORTシークレットFixed port for the loopback listener of the in-chat login (127.0.0.1 + PKCE). Set it when the client runs over SSH port forwarding; otherwise a free port is picked per login.
GOOGLE_CHAT_API_BASEAPI root override.
GOOGLE_CHAT_TIMEOUT_MSPer-request timeout in milliseconds.
GOOGLE_CHAT_MAX_RETRIESRetries on transient errors (429 always; 5xx/network for reads).

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

パッケージ
npmmcp-google-chat1.0.0

ツール

20

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

A1 Google Chat MCP

日本語 | Русский

npm Glama CI License: MIT

A1 Google Chat MCP を使うと、AI アプリから自然な言葉で Google Chat を操作できます。目的のスペースやダイレクトメッセージを探し、会話の内容を確認し、スレッドに返信し、絵文字でリアクションし、スペースのメンバーを管理できます。

Google アカウントで Google Chat API を利用し、ログイン中のユーザーとして動作します。メッセージはあなたの名前で送信され、編集または削除できるのは自分のメッセージとリアクションだけです。Chat API の制限を明確に示し、あらゆるチャット操作が可能であるかのように見せることはありません。

  • 20 個のツール。 チャットから接続し、スペースやダイレクトメッセージを探し、スレッドを制御しながらメッセージを読んで送信し、絵文字のリアクションを管理し、添付ファイルのメタデータを読み取り、メンバーシップを管理できます。
  • 会話から接続できます。 「Google Chat に接続」と伝えると、サーバーが OAuth クライアントの設定を案内し、PKCE を使って 127.0.0.1 への Google のリダイレクトを受け取り、トークンを自身で保持します。設定ファイルも再起動も必要ありません。
  • あなた自身として操作します。 送信したメッセージはあなたの名前で表示され、編集や削除ができるのは自分のメッセージとリアクションに限られます。
  • 送信を再実行することはありません。 曖昧な失敗が発生しても、サーバーは書き込みを再試行しません。再試行すると、実際のスペースにメッセージが重複して投稿される可能性があるためです。
  • Google のスコープは最小限です。 サーバーは発行されたトークンをそのまま送信します。タスクごとにスコープを許可してください。スペースやメッセージの閲覧には読み取り専用のスコープで十分です。

まずは読み取り専用の質問から始めましょう。

チームのスペースに今日投稿されたメッセージを表示して、決定事項を要約してください。

サーバーに接続 · ユースケースを見る · 技術ドキュメントを開く


1 分で動作を確認

あなた: リリースのスペースでは、今日どんな話がありましたか?

アシスタント: 今日のメッセージを送信者とスレッドとともに一覧表示します。何も変更されません。

あなた: デプロイのスレッドに、ロールアウトが完了したと返信してください。

アシスタント: 対象のスペースとスレッド、返信文の下書きを表示し、送信前に確認を求めます。

あなた: 確認します。

アシスタント: そのスレッドに、あなたの名前で返信を送信します。他のメッセージには触れません。

目次

クイックスタート

Node.js 20 以降と、Google Chat にアクセスできる Google アカウントが必要です。インストール時に認証情報を用意する必要はありません。サーバーは会話から接続します。

  1. サーバーを AI アプリに追加します。
  2. 「Google Chat に接続して」と伝えます。アシスタントが、設定ファイルの編集や再起動なしでOAuth クライアントの作成とアクセスの承認を案内します。
  3. 上記の読み取り専用の質問をします。
Codex

アプリから: Settings → MCP servers を開き、Add server を選択して、STDIO を選びます。コマンド npx -y mcp-google-chat@latest を入力し、Save を選択します。環境変数は必要ありません。追加後、チャットから接続してください。

コマンドラインから:

codex mcp add google-chat \
  -- npx -y mcp-google-chat@latest
codex mcp list

Codex MCP ドキュメント

Claude Code
claude mcp add \
  --transport stdio --scope user google-chat \
  -- npx -y mcp-google-chat@latest
claude mcp list

Claude Code MCP ドキュメント

Claude Desktop

現在の公式手順は Settings → Extensions です。カスタムのデスクトップ拡張機能を使う場合は、Advanced settings → Extension Developer → Install Extension… を開き、.mcpb ファイルを選択して、表示される手順に従ってください。

このリポジトリでは現在、npm の stdio パッケージを公開しており、.mcpb バンドルは含まれていません。ローカル設定に引き続き対応している Claude Desktop ビルドでは、代替手段として次の JSON stdio 設定を使用してください。

{
  "mcpServers": {
    "google-chat": {
      "command": "npx",
      "args": ["-y", "mcp-google-chat@latest"]
    }
  }
}

これらのビルドでは、macOS の場合は ~/Library/Application Support/Claude/claude_desktop_config.json に、Windows の場合は %APPDATA%\Claude\claude_desktop_config.json に保存してください。

Claude Desktop MCP ドキュメント

Cursor

macOS/Linux では ~/.cursor/mcp.json に、Windows では %USERPROFILE%\.cursor\mcp.json に追加してください。

{
  "mcpServers": {
    "google-chat": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-chat@latest"]
    }
  }
}

Cursor MCP ドキュメント

VS Code

MCP: Open User Configuration を実行して、次の内容を追加します。

{
  "servers": {
    "google-chat": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-chat@latest"]
    }
  }
}

MCP: List Servers を実行して確認してください。

VS Code MCP ドキュメント

依頼できること

会話の内容を確認する
  • スペースを表示して、[email protected] とのダイレクトメッセージを見つけてください。
  • 今日、リリース用スペースに投稿された内容は何ですか?決定事項を要約してください。
  • このメッセージが含まれるスレッド全体を表示してください。
メッセージを投稿・管理する
  • チーム用スペースに状況を報告してください。
  • デプロイのスレッドで、ロールアウトが完了したと返信してください。
  • 最後のメッセージの誤字を修正するか、メッセージ全体を削除してください。
リアクションと添付ファイルを確認する
  • お知らせに 👍 を追加して、ほかに誰がどんなリアクションをしたか表示してください。
  • そのメッセージへの自分のリアクションを削除してください。
  • このメッセージにはどのファイルが添付されていますか?名前と種類を表示してください。
スペースのメンバーを管理する
  • このスペースには誰がいますか?管理者は誰ですか?
  • [email protected] をスペースに追加して、管理者にしてください。
  • 元チームメンバーをスペースから削除してください。

Chat でのサーバーの動作

  1. OAuth の更新用認証情報を使うと、サーバーはサインイン中のユーザーとして動作します。メッセージはあなたの名前で送信され、編集や削除の対象となるのは、あなた自身のメッセージとリアクションのみです。メンバーシップの変更には、スペースの管理者であることも必要です。
  2. スペースには ID のみを指定できますが、メッセージ、スレッド、メンバー、リアクション、添付ファイルは、API が返す完全なリソース名で指定します。まず一覧を取得し、その後、正確な名前を指定して操作してください。
  3. 返信では、名前またはスレッドキーを使ってスレッドを指定します。デフォルトでは、指定した対象でスレッドを作成できない場合、送信時に新しいスレッドを開始します。代わりに失敗させるよう指定することもできます。
  4. Chat アプリとして動作させる機能(カード、アプリからのダイレクトメッセージ、専用の添付ファイルエンドポイント、強制削除)は、別途 Google Cloud の設定が必要です。ここで利用できる連携手段は、GOOGLE_CHAT_ACCESS_TOKEN としてサービスアカウントのアクセストークンを渡す方法のみです。

Chat API ではメッセージ本文を検索できません。メッセージに指定できるフィルターは、作成時刻とスレッドのみです。find_direct_message は既存の DM を検索しますが、新規作成はしません。また、このサーバーを介してファイルの内容をダウンロードまたはアップロードすることはできません。スペースの作成や、ここで扱っていないその他の API メソッドは raw_request を使用します。

変更される内容

操作実行される内容確認の境界
スペース、メッセージ、メンバー、リアクション、添付ファイルのメタデータを読み取る会話とメタデータを読み取ります変更なし
メッセージを送信するあなたの名前で実際のスペースに投稿します会話を変更します
メッセージを更新するあなた自身のメッセージのテキストを置き換えます会話を変更します
リアクションを追加または削除するメッセージに対するあなた自身のリアクションを変更します会話を変更します
メッセージを削除するメッセージを完全に削除します破壊的な操作です
メンバーシップを管理するスペースのメンバーを追加、ロール変更、または削除します破壊的な操作となる可能性があります
Raw API リクエスト専用ツールを使わずに API メソッドを呼び出せます破壊的な操作となる可能性があります

確認プロンプトは AI クライアントが制御します。サーバーは読み取り、書き込み、破壊的な操作を行うツールを識別できるようにし、クライアントが会話の確認と投稿を区別できるようにします。

アクセスの取得

Google Chat には OAuth 2.0 が必要です。API キーだけでは利用できません。アクセス方法は 2 つあり、1 つ目は設定ファイルが不要です。

チャットから接続する(推奨)

「Google Chat に接続して」と伝えると、アシスタントが一緒に手順を進めます。

  1. setup_instructions でチェックリストを表示します。Google Cloud プロジェクトを作成または選択し、Google Chat API を有効にして、同意画面を設定し、デスクトップアプリの OAuth クライアントを作成します。
  2. そのクライアントの JSON(「Download JSON」)をダウンロードし、そのパスをアシスタントに渡します。set_client がファイルを所有者のみアクセス可能な状態で保存します。シークレットが会話を通じて送信されることはありません。
  3. start_login が Google の同意画面へのリンクを返します。このマシン上でリンクを開いて承認してください。認証コードは 127.0.0.1 のワンショットリスナーに返されます(PKCE)。チャットを経由することはありません。
  4. finish_login がコードを交換し、トークンを ~/.config/mcp-google-chat/credentials.json(モード 0600)に保存して、実際の Chat API 呼び出しで検証します。そのため、Chat API がまだ有効になっていない場合、最初の質問で初めて判明するのではなく、その場で検出できます。

トークンは呼び出しのたびに再読み込みされるため、AI アプリを再起動せずにすぐ接続を利用できます。接続状況は auth_status で確認でき、logout で認証を取り消してトークンを削除できます。ログインでは chat.spaces.readonly、chat.messages、chat.messages.reactions、chat.memberships.readonly のスコープが要求されます。search_spaces が必要とする管理者スコープは要求されません。必要な場合は、環境変数を使用する方法を利用してください。

環境変数(CI、無人インストール)
  1. Google Cloud プロジェクトを作成または選択し、Google Chat API を有効にします。

  2. OAuth 同意画面を設定し、デスクトップアプリの OAuth クライアントを作成します。

  3. チャットに使用する Google アカウントを承認します。OAuth 2.0 Playground では、独自の OAuth 認証情報を使用を有効にすると、リフレッシュトークンを取得できます。

  4. セッションに必要なスコープだけをリクエストします。読み取りと送信には、次のスコープで十分です。

    https://www.googleapis.com/auth/chat.spaces.readonly
    https://www.googleapis.com/auth/chat.messages.readonly
    https://www.googleapis.com/auth/chat.messages.create
    

    タスクごとの全項目を記載した表(自分のメッセージの編集と削除、リアクション、メンバーシップ、管理者検索)は、docs/TOOLS.md にあります。

テストモードの OAuth リフレッシュトークンは、7 日後に期限切れになる場合があります。長期間アクセスする必要がある場合は、OAuth アプリを公開するか、Workspace ドメイン内で内部アプリを使用してください。クライアントシークレットとリフレッシュトークンはパスワードとして扱ってください。

手早くセッションを開始する場合は、GOOGLE_CHAT_ACCESS_TOKEN に短期間有効なトークンを設定しても動作します。たとえば、Chat スコープを付与した gcloud auth print-access-token の出力を使用できます。アプリ専用機能が必要な場合に、サービスアカウントの Chat アプリトークンをサーバーに渡す方法も、同じ変数を使います。

設定

すべての変数は任意です。いずれも設定しなくても、サーバーはチャットから接続します。

変数必須説明
GOOGLE_CHAT_CLIENT_IDいいえ*OAuth クライアント ID。
GOOGLE_CHAT_CLIENT_SECRETいいえ*OAuth クライアントシークレット。
GOOGLE_CHAT_REFRESH_TOKENいいえ*OAuth リフレッシュトークン。
GOOGLE_CHAT_ACCESS_TOKENいいえ*OAuth の 3 つの変数に代わる短期間有効なトークン。サービスアカウントまたは Chat アプリのトークンを使用できます。
GOOGLE_CHAT_OAUTH_PORTいいえチャット内ログインに使用する固定ループバックポート。SSH ポートフォワーディングで便利です。
GOOGLE_CHAT_API_BASEいいえGoogle Chat API のベース URL の上書き値。
GOOGLE_CHAT_TIMEOUT_MSいいえリクエストごとのタイムアウト。デフォルトは 60000 ms です。
GOOGLE_CHAT_MAX_RETRIESいいえ一時的なエラーの再試行回数。デフォルトは 3 です。

* 環境変数を使用する場合は、OAuth の 3 つの変数、またはアクセストークンのいずれかを指定してください。これらが設定されている場合は、保存済みのチャット内ログインより優先され、サーバーがそれらを更新または削除することはありません。

認証情報がない状態で起動しても、サーバーは MCP ハンドシェイクを完了します。その後、手順と最初のツール呼び出しで、チャット内ログイン(再起動不要)と環境変数(再起動が必要)の両方の解決方法が示されます。

データ、制限、バックグラウンド処理

  • リクエストは Google Chat に送信されます。 ローカルサーバーは Google OAuth トークンを更新し、Chat API を呼び出します。トークンが他のホストに送信されることはありません。匿名テレメトリに含まれるのは、インストール ID、パッケージのバージョン、AI クライアントとプラットフォームのバージョン、ツール名のみです。OAuth トークン、メッセージの内容、ツールの引数、プロンプトは含まれません。オプトアウトするには、ASKADS_TELEMETRY=0 を設定してください。
  • Google はプロジェクトごとおよびユーザーごとにクォータを適用します。 429 が返された場合、サーバーはバックオフを行います。読み取りではネットワークエラーと 5xx エラーの後にも再試行しますが、書き込みは失敗が不確かな場合に再実行されません。送信を再実行すると、実際のルームに重複したメッセージが送られてしまうためです。send_message では、送信先を指定して重複を防止できるカスタムメッセージ ID を指定できます。
  • バックグラウンドポーリングはありません。 サーバーは呼び出されたときのみ動作します。AI アプリがスケジュールされたタスクに対応している場合、list_messages で作成時刻を基準にスペースを差分ポーリングできます。スペースのイベントサブスクリプションには raw_request を使用します。

技術ドキュメント

サポート

バグを見つけた場合や、実現したいシナリオがある場合は、イシューを作成するか、Telegramに投稿してください。


2人のモナがハイタッチしています

最後まで読んでいただき、ありがとうございます!

コメント

MCP は初めてですか?

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

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