mcpField
G
google-chat

google-chat

github.com/sanjay3290生産性447331 回インストール7 週間前に更新
リポジトリ

google-chat について

google-chatは、Google Chatのメッセージ、スペース、スレッド、メンバーを読み取り管理するコマンドラインスキルです。MCPサーバーを使わず独立したOAuth認証を利用し、Google Workspaceアカウントが必要です。

主な機能

  1. 01メッセージ、スレッド、スペース、メンバーの閲覧
  2. 02メッセージ、ダイレクトメッセージ、メディアの送信
  3. 03メッセージの編集、削除、リアクション
  4. 04ユーザーとスペースのエイリアス設定
  5. 05dry-runによる書き込みリクエストの確認

活用シーン

  1. 01スペースの最近のメッセージを確認
  2. 02スレッドに投稿または返信
  3. 03同僚にダイレクトメッセージを送信

MCP 対応

独立したOAuth認証を使用し、MCPサーバーは不要です。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sanjay3290/ai-skills --skill google-chat

インストール後、Claude Code で/google-chatを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
directory.example.json
README.md
requirements.txt
scripts/
auth.py
chat.py

詳細

Google Chat

スタンドアロンの OAuth 認証を使用する、軽量な Google Chat 連携です。MCP サーバーは不要です。

⚠️ Google Workspace アカウントが必要です。 個人用 Gmail アカウントには対応していません。

すべてのメッセージは認証済みユーザーとして送信されるため、書き込みコマンドは外部に公開される操作として扱ってください。 スペースに投稿する前に正確なテキストをユーザーに確認し、ユーザーが指定していないチャンネルには絶対に送信しないでください。

初回セットアップ

pip install -r requirements.txt
python scripts/auth.py login     # opens browser
python scripts/auth.py status    # verify
python scripts/auth.py logout

コマンド

すべての操作は scripts/chat.py で行います。未ログインの場合は、初回使用時に自動認証されます。

読み取り
python scripts/chat.py get-messages spaces/AAAA123 --limit 10
python scripts/chat.py get-messages spaces/AAAA123 --limit 10 --raw   # full JSON
python scripts/chat.py get-message spaces/AAAA123/messages/XYZ
python scripts/chat.py list-threads spaces/AAAA123
python scripts/chat.py list-spaces
python scripts/chat.py find-space "Project Alpha"    # ignores punctuation/spacing
python scripts/chat.py list-members spaces/AAAA123

読み取り結果はデフォルトで簡潔に表示されます。メッセージごとに、タイムスタンプ、送信者、テキスト、リソース名が1つのブロックにまとめられます。これは生の API ペイロードよりおよそ14分の1のサイズで、読み取るトークンごとに料金が発生するエージェントにとって重要です。完全な JSON が必要な場合は --raw を使用してください。

書き込み
python scripts/chat.py send-message spaces/AAAA123 "Hello team!"
python scripts/chat.py send-dm [email protected] "Hey, quick question..."
python scripts/chat.py reply-in-thread spaces/AAAA123 spaces/AAAA123/threads/T "Following up."
python scripts/chat.py send-media spaces/AAAA123 "Latest mocks" --file a.png --file b.png
python scripts/chat.py edit-message spaces/AAAA123/messages/XYZ "Corrected text."
python scripts/chat.py delete-message spaces/AAAA123/messages/XYZ
python scripts/chat.py delete-message spaces/AAAA123/messages/XYZ --force   # has thread replies
python scripts/chat.py add-reaction spaces/AAAA123/messages/XYZ 👍
python scripts/chat.py setup-space "New Project" [email protected] [email protected]
python scripts/chat.py find-dm [email protected]

書き込みコマンドには --dry-run を追加すると、送信せずにリクエストを表示できます。ワークフローの構築やテスト時に使用すれば、実際のチャンネルに何も投稿されません。(send-dm の場合は、DM スペースの解決にライブ呼び出しが必要なため、DM スペースではなく解決された宛先が表示されます。)

編集と削除

send-message、send-dm、send-media は、作成したメッセージの name(spaces/X/messages/Y)を返します。これを edit-message、delete-message、add-reaction に指定します。編集または削除できるのは、自分が送信したメッセージのみです。以前のメッセージを修正するには、まず get-messages でその名前を確認してください。

添付ファイル

send-media では、繰り返し指定できる --file を使用します。Google Chat で1つのメッセージに複数の添付ファイルを指定できるのは、すべてがメディア(画像または動画)の場合のみです。メディアが混在している場合は、キャプションを最初のファイルに付けて、ファイルごとに1つのメッセージへ自動的に分割されます。単一の --file の別名として、--attachment も引き続き使用できます。

オプションのエイリアス

メールアドレス全体や spaces/AAAA... ID を入力するのは面倒です。また、エージェントが日常的に使うチャンネルを探すために list-spaces を呼び出すのも時間がかかります。directory.example.json を directory.json にコピーして、短い名前を割り当ててください。

{
  "users":  { "alex": "[email protected]" },
  "spaces": { "team": { "id": "spaces/AAAAxxxxxxx", "name": "My Team" } }
}

これで send-message team "Deploying now" と send-dm alex "..." はどちらも、API 呼び出しなしでローカルに解決されます。完全なメールアドレスと spaces/... 名は、これまでどおりどこでも使用できます。

directory.json は個人用で、gitignore の対象です。設定は完全に任意です。設定しなくてもすべてのコマンドは動作し、解決できないエイリアスはスキャンに黙ってフォールバックするのではなく、有効なエイリアスの一覧とともにすぐにエラーになります。

メッセージの書式設定

Chat は *太字*、_斜体_、~取り消し線~、`コード`、トリプルバッククォートのコードブロック、<url|label> 形式のリンクに対応しています。Markdown の見出し、表、[]( ) 形式のリンクには対応しておらず、そのまま表示されます。

トークン管理

トークンはシステムのキーリングを使用して安全に保存されます。

  • macOS:キーチェーン
  • Windows:Windows 資格情報マネージャー
  • Linux:Secret Service API(GNOME Keyring、KDE Wallet など)

サービス名:google-chat-skill-oauth。有効期限が切れたトークンは自動的に更新されます。

コメント