mcpField
G
gws-connector

gws-connector

ローカル
orieg.github.io生産性24 週間前に更新

gws-connector について

gws-connectorは、互換クライアントから複数のGoogle Workspaceアカウントを利用するためのMCPサーバーです。アカウントのラベル、メールアドレス、ドメインでGmail、Calendar、Drive、Sheets、Docsなどのリクエストを振り分け、アカウントごとのOAuth認証情報とOSキーチェーン保存に対応します。

主な機能

  1. 01複数のGoogleアカウントを接続
  2. 02ラベル、メールアドレス、ドメインによる振り分け
  3. 03アカウントごとに異なるOAuth認証情報を使用
  4. 04認証情報をOSキーチェーンに保存
  5. 05アカウントとデフォルト設定の管理
  6. 06メール、カレンダー、ファイル、生産性ツールの利用

活用シーン

  1. 01個人用と仕事用のGoogleアカウントを併用
  2. 02特定の顧客や組織のアカウントへリクエストを振り分け
  3. 03組織ごとに認証情報を分けて管理
  4. 04MCP対応クライアントからGoogle Workspaceデータを管理

MCP 対応

MCPサーバーは標準入出力で通信し、Google Workspaceサービスとアカウント管理のツールを公開します。互換クライアントはラベルまたはメールアドレスでリクエストのアカウントを指定できます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbgws-mcp.mcpb0.4.3

ツール

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

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

詳細

GWS Connector

CI Release Go License: MIT

複数アカウントに対応した Google Workspace MCP サーバー — 複数の Gmail、Google Calendar、Google Drive アカウントをスマートにルーティングして接続します。

Claude Code、Gemini CLI、GitHub Copilot、Cursor、OpenAI Codex、および MCP 互換クライアントで使用できます。

このサーバーを選ぶ理由

ほとんどの AI コーディングアシスタントがサポートする Google アカウントは 1 つだけです。複数の Google アカウント(個人用と仕事用、複数のクライアント、異なる組織など)を使用する場合、アカウントを手動で切り替える必要があります。この MCP サーバーを使えば、すべてのアカウントを一度に接続し、ラベル、メールアドレス、またはドメインでリクエストをルーティングできます。

機能

  • 複数アカウント — Gmail と Google Workspace のアカウントを無制限に接続できます
  • スマートルーティング — ラベル(work)、メールアドレス、またはドメインでアカウントを指定できます
  • アカウントごとの OAuth — 組織ごとに独自の GCP 認証情報を使用できます
  • 安全なストレージ — クライアントシークレットとトークンは OS のキーチェーンに保存されます(GNOME Keyring のない Linux ではファイルにフォールバックします)
  • 49 個のツール — Mail(11)、Calendar(7)、Drive(3)、Sheets(8)、Docs(4)、Contacts(2)、Tasks(5)、Slides(3)、アカウント管理(6)
  • アカウント管理 — アカウントの追加、削除、デフォルト設定、一覧表示ができます
  • クロスプラットフォーム — 標準的な MCP サーバーとして、互換性のある任意のクライアントで動作します

他のサーバーとの比較

Google Workspace MCP サーバーには、優れたものがいくつかあります。複数アカウントと運用のシンプルさを重視するなら、GWS Connector がおすすめです。

多くの GWS MCP サーバーGWS Connector
アカウントサーバーインスタンスごとに 1 アカウント1 つのインスタンスでアカウント数無制限。ラベル/メールアドレス/ドメインでルーティング
複数の組織OAuth アプリを共有アカウントごとの OAuth — 各組織が独自の GCP 認証情報を使用
認証情報の保存.env/平文のトークンファイルOS のキーチェーン(Keychain/GNOME Keyring/Credential Manager)
ランタイムPython/Node と依存関係静的な Go バイナリ 1 つ。ランタイムのインストールは不要
クライアント通常 1 つClaude Code、Gemini CLI、Copilot、Cursor、Codex、任意の MCP クライアント
インストール手動設定Claude Code プラグイン、Gemini 拡張機能、ワンクリックの .mcpb、MCP Registry

Google アカウントを 1 つしか使わず、できるだけ幅広いツール(Forms、Chat、Vault、…)を利用したい場合は、taylorwilsdon/google_workspace_mcp のような単一アカウント用サーバーのほうが適しているかもしれません。GWS Connector は、複数アカウントの Gmail/Calendar/Drive/Sheets/Docs/Contacts/Tasks/Slides をシンプルかつ安全に扱うことに重点を置いています。

アップグレード(Google Tasks)

Google Tasks のツール(gws.tasks.*)は、新しい OAuth スコープ(tasks)を追加して提供されます。既存ユーザーは、接続済みの各アカウントを再認証する必要があります。これにより、このスコープを含む新しいトークンが発行されます。

/gws:reauth

ブラウザーの同意画面で承認する前に、新しいスコープで許可される内容を確認してください。アカウントの Google Tasks のリストとタスクへの読み取りおよび書き込みの完全なアクセス権が付与されます。詳細は、以下のスコープの理由の表を参照してください。

再認証の前に、GCP プロジェクトの OAuth 同意画面の設定で tasks スコープを追加し、Tasks API を有効にする必要があります。そうしないと、同意画面でリクエストが拒否されます。アカウントを再認証するまでは、gws.tasks.* ツールを実行すると、実行すべき再認証ツール名を示すスコープ不足エラーが返されます。

アップグレード — 連絡先 / People API

連絡先ツール(gws.contacts.search、gws.contacts.directory_search)に、読み取り専用の OAuth スコープが 2 つ(contacts.readonly、directory.readonly)追加されます。既存のユーザーは、各接続済みアカウントを再認証して、これらのスコープを含む新しいトークンを発行する必要があります。

/gws:reauth

ブラウザーの同意画面で承認する前に、新しいスコープで許可される内容を確認してください。Google Contacts と(Workspace アカウントの場合は)組織のディレクトリへの読み取り専用アクセスです。詳細は以下のスコープの理由に関する表をご覧ください。

再認証の前に、GCP プロジェクトの OAuth 同意画面の設定で People API を有効にし、新しいスコープを 2 つ追加する必要があります。そうしないと、同意画面でリクエストが拒否されます。gws.contacts.directory_search を利用するには Google Workspace アカウントが必要です。個人の Gmail アカウントには組織のディレクトリがないため、検索結果の代わりに分かりやすい説明メッセージが表示されます。

アップグレード(Google Slides ツール)

Slides ツール(gws.slides.*)に、新しい OAuth スコープ https://www.googleapis.com/auth/presentations が追加されます。既存のユーザーは、Slides スコープを含む新しいトークンを発行するため、各接続済みアカウントを再認証する必要があります。

/gws:reauth

再認証の前に、GCP プロジェクトの OAuth 同意画面の設定で Slides API を有効にし、presentations スコープを追加する必要があります。そうしないと、同意画面でリクエストが拒否されます(Google Cloud Setupをご覧ください)。再認証するまでは、gws.slides.* の呼び出しで、エージェントに gws.accounts.reauth の実行を促すスコープエラーが返されます。それ以外のツールは引き続き動作します。

v0.2.x からのアップグレード

v0.3.0 では、新しい OAuth スコープ(spreadsheets、documents)を使用するネイティブの Google Sheets ツールと Google Docs ツールが追加されます。既存のユーザーは、これらのスコープを含む新しいトークンを発行するため、各接続済みアカウントを再認証する必要があります。

/gws:reauth

ブラウザーの同意画面で承認する前に、新しいスコープで許可される内容を確認してください。該当アカウントの Google Drive にあるすべてのスプレッドシートとドキュメント(そのアカウントと共有されているファイルを含む)への完全な読み取りおよび書き込みアクセスです。詳細は以下のスコープの理由に関する表をご覧ください。

再認証の前に、GCP プロジェクトの OAuth 同意画面の設定で新しいスコープを 2 つ追加し、Sheets API と Docs API を有効にする必要があります。そうしないと、同意画面でリクエストが拒否されます。

クイックスタート(Claude Code)

1. プラグインをインストールする — Claude Code 内で次の 2 つのコマンドを実行します。

/plugin marketplace add orieg/gws-connector
/plugin install gws@gws-connector

2. Google Cloud の認証情報を設定する — 対話型ウィザードの案内に沿って設定します。

/gws:configure

これにより GCP プロジェクトが作成され、API が有効になり、最初のアカウントが接続されます。手動で設定する場合は、Google Cloud Setupをご覧ください。

3. 追加のアカウントを接続する:

/gws:add-account

アカウントごとに、異なる GCP プロジェクトの OAuth 認証情報を使用できます。

Gemini CLI
gemini extensions install https://github.com/orieg/gws-connector

バイナリは初回使用時に自動的にダウンロードされます。その後、Gemini 内でアカウントを接続します。

gws.accounts.add(label: "personal", clientId: "your-client-id", clientSecret: "your-secret")
その他のクライアント
GitHub Copilot / Cursor / Codex / 任意の MCP クライアント

ビルド済みバイナリをダウンロードするか、ソースからビルドします。

git clone https://github.com/orieg/gws-connector && cd gws-connector && make build

次に、クライアントを設定します。

クライアント設定
GitHub Copilot.vscode/mcp.json から自動検出するか、VS Code の MCP 設定に "command": "/path/to/gws-mcp" を追加します
Cursor.cursor/mcp.json から自動検出するか、設定 → MCP サーバーから追加します
Codex CLIcodex.json から自動検出します
Claude Code(MCP のみ)claude mcp add --transport stdio gws-connector --scope user -- /path/to/gws-mcp --use-dot-names
任意の MCP クライアントstdio 経由で gws-mcp [--use-dot-names] を実行します

MCP ツールの呼び出しでアカウントを接続します。

gws.accounts.add(label: "personal", clientId: "your-client-id", clientSecret: "your-secret")

環境変数(すべて任意):GWS_GOOGLE_CLIENT_ID、GWS_GOOGLE_CLIENT_SECRET、GWS_STATE_DIR

--use-dot-names フラグを指定すると gws.mail.search 形式の名前を使用します。指定しない場合、ツール名は gws_mail_search になります。

ローカル開発/テスト
git clone https://github.com/orieg/gws-connector
cd gws-connector
make build
claude --plugin-dir ./

変更後、セッション内で /reload-plugins を使用します。プラグインの読み込みをトラブルシューティングするには、claude --debug --plugin-dir ./ を実行します。

Claude Desktop/MCPB バンドル

各リリースには、ワンクリックで使える gws-mcp.mcpb バンドルが添付されています。ダウンロードして Claude Desktop で開くか(設定 → 拡張機能 → ファイルからインストール)、ドラッグして追加します。バンドルには macOS と Linux 用のバイナリが含まれており、お使いのマシンに適したものが自動的に選ばれます。初回使用時には、引き続きGoogle Cloud のセットアップを完了し、アカウントを接続する必要があります。

このサーバーは、io.github.orieg/gws-connector として公式 MCP レジストリにも公開されています。そのため、レジストリを参照する MCP クライアントから直接検索してインストールできます。

Docker

各リリースで、複数アーキテクチャ対応のイメージが GHCR に公開されます。

docker run -i --rm ghcr.io/orieg/gws-connector:latest

このサーバーは stdio 経由で MCP を使用します。インタラクティブな OAuth(accounts.add/reauth)ではブラウザーを開き、シークレットを OS のキーチェーンに保存するため、ホストへのアクセスが必要です。日常的な使用には、ネイティブバイナリ、Claude Code プラグイン、または Gemini 拡張機能が最適です。このイメージは、ヘッドレスの stdio 統合やレジストリ/イントロスペクションの確認に適しています。実行間でアカウントレジストリを保持するには、ボリュームをマウントし、GWS_STATE_DIR の参照先をそのボリュームに設定します。

docker run -i --rm -v gws-state:/state -e GWS_STATE_DIR=/state \
  ghcr.io/orieg/gws-connector:latest

使用方法

すべての gws.* ツールでは、account パラメーターを省略できます。

# Uses default account
gws.mail.search(q: "is:unread")

# Target by label
gws.cal.list_events(account: "work")

# Target by email
gws.drive.search(account: "[email protected]", q: "quarterly report")
利用可能なツール
ツール説明
gws.accounts.list接続済みのすべてのアカウントを一覧表示します
gws.accounts.add新しいアカウントを接続します(最大約60秒待機し、それより時間がかかる場合は pendingId を返します)
gws.accounts.reauthアカウントを再認証します(最大約60秒待機し、それより時間がかかる場合は pendingId を返します)
gws.accounts.complete保留中の OAuth フローを完了します(add/reauth が pendingId を返した場合にのみ必要です)
gws.accounts.removeアカウントの接続を解除します
gws.accounts.set_defaultデフォルトのアカウントを変更します
gws.mail.searchメッセージを検索します(Gmail の検索構文)
gws.mail.read_message特定のメッセージを読み取ります
gws.mail.read_threadスレッド全体を読み取ります
gws.mail.create_draftメールの下書きを作成します
gws.mail.send_draft既存の下書きを送信します
gws.mail.forwardメッセージの転送用下書きを作成します(送信はしません)
gws.mail.get_attachmentメッセージの添付ファイルのバイトデータを取得します(base64)
gws.mail.list_labelsGmail のラベルを一覧表示します
gws.mail.create_label新しいラベルを作成します
gws.mail.modify_messageメッセージのラベルを追加または削除します
gws.mail.get_profileアカウントのプロフィール情報を取得します
gws.cal.list_eventsカレンダーの予定を一覧表示します
gws.cal.get_event予定の詳細を取得します
gws.cal.create_eventカレンダーの予定を作成します
gws.cal.update_event予定を更新または再設定します(パッチセマンティクス)
gws.cal.delete_event予定を削除またはキャンセルします
gws.cal.free_busyカレンダーの空き時間と予定ありの時間を照会します
gws.cal.list_calendars利用可能なカレンダーを一覧表示します
gws.drive.searchDrive 内のファイルを検索します
gws.drive.read_fileファイルの内容とメタデータを読み取ります
gws.drive.list_folderフォルダーの内容を一覧表示します
gws.sheets.read_rangeスプレッドシートから単一の A1 範囲を読み取ります
gws.sheets.write_range範囲にセルの値を書き込みます
gws.sheets.append表の末尾に行を追加します(追加のみで、上書きはしません)
gws.sheets.clear範囲内の値を消去します(書式はそのまま残ります)
gws.sheets.create新しいスプレッドシートを作成します
gws.sheets.list_tabsスプレッドシート内のタブ(シート)を一覧表示します
gws.sheets.duplicate_tabスプレッドシート内のタブを複製します(書式も複製されます)
gws.sheets.add_tabスプレッドシートに空のタブを追加します
gws.docs.readドキュメントをプレーンテキストとして読み取ります
gws.docs.insert_text指定した位置に文字列をそのまま挿入します
gws.docs.replace_text指定した部分文字列のすべての出現箇所を置換します
gws.docs.create新しいドキュメントを作成します
gws.contacts.search自分の連絡先を名前、メールアドレス、電話番号で検索します(名前、メールアドレス、電話番号を返します)
gws.contacts.directory_searchWorkspace の組織ディレクトリを検索します(名前とメールアドレスを返します)。Workspace アカウントのみ
gws.tasks.list_tasklistsアカウントのタスクリストを一覧表示します
gws.tasks.listリスト内のタスクを一覧表示します(完了済みのタスクを含めるには showCompleted を追加します)
gws.tasks.createタスクを作成します(due は RFC3339 形式で、日付のみが保存されます)
gws.tasks.completeタスクを完了としてマークします(取り消し可能です)
gws.tasks.deleteタスクを完全に削除します
gws.slides.getプレゼンテーションを読み取ります(スライド数とスライドごとのテキスト)
gws.slides.create新しいプレゼンテーションを作成します
gws.slides.batch_updateraw Slides API リクエストをプレゼンテーションに適用します
スキル

Claude Code と Gemini CLI の両方で利用できる対話型ワークフローです。

スキル説明Claude CodeGemini CLI
configure対話型セットアップウィザード/gws:configure"run the GWS configure skill"
add-account新しいアカウントを接続します/gws:add-account"add a new GWS account"
remove-accountアカウントの接続を解除します/gws:remove-account"remove a GWS account"
list-accounts接続済みのアカウントを表示します/gws:list-accounts"list my GWS accounts"
set-defaultデフォルトのアカウントを変更します/gws:set-default"set my default GWS account"
reauthトークンとスコープを更新します/gws:reauth"reauth my GWS accounts"

レシピ

アカウントを接続したら、アシスタントに自然な言葉で頼むだけです。適切なツールとアカウントが選ばれます。例:

  • 複数アカウントをまたいだ朝の確認 — 「すべてのアカウントから過去 24 時間の未読メールをアカウントごとにまとめ、今日中に返信が必要なものに印を付けてください。」
  • スレッドへの返信を下書きする — 「work アカウントで、Acme との Q3 請求書に関するスレッドを見つけ、新しい日付を確認する返信を下書きしてください。送信はしないでください。」
  • メールをカレンダーの予定にする — 「イベントチームからの最新メッセージを読んで、そこに記載された日付と場所で、personal カレンダーに予定を作成してください。」
  • アカウント横断の予定一覧 — 「仕事用と個人用のカレンダーで、明日はどんな会議がありますか?時系列で一覧にしてください。」
  • ドキュメントを検索して要約する — 「client-acme の Drive で最新の『statement of work』を検索し、主な成果物と日付を教えてください。」
  • スプレッドシートに記録する — 「個人用 Drive の『Expenses』シートに行を追加してください。今日の日付、『AWS』、42.50。」
  • 受信トレイを整理する — 「personal アカウントで、newsletters@ からの未読メッセージすべてに『Newsletters』というラベルを付けて、既読にしてください。」

ヒント:

  • アカウントのラベル(「work アカウントで」)、メールアドレス、またはドメインを指定して、対象のアカウントを明示できます。指定しない場合は、デフォルトのアカウントが使われます。
  • 書き込み操作(下書き、予定、シートやドキュメントの編集)は、送信または変更する前にプレビューが表示され、確認を求められます。

Google Cloud の設定

初回のみの設定:

  1. Google Cloud Console に移動し、新しいプロジェクトを作成します(例:「GWS Connector」)。

  2. API を有効にする — 各リンクをクリックし、「有効にする」をクリックします:

  3. OAuth 同意画面 を設定します:

    • 「外部」を選択します(Google Workspace 組織の場合は「内部」)。
    • アプリ名(例:「Claude GWS」)とサポート連絡先のメールアドレスを入力します。
    • 「保存」をクリックします。
  4. スコープを追加 — データアクセス に移動します:

    • 「スコープを追加または削除」をクリックします。
    • 次の 11 個のスコープを追加します(「スコープを手動で追加」ボックスに貼り付けます):
      • https://www.googleapis.com/auth/gmail.modify
      • https://www.googleapis.com/auth/calendar
      • https://www.googleapis.com/auth/drive
      • https://www.googleapis.com/auth/spreadsheets
      • https://www.googleapis.com/auth/documents
      • https://www.googleapis.com/auth/contacts.readonly
      • https://www.googleapis.com/auth/directory.readonly
      • https://www.googleapis.com/auth/tasks
      • https://www.googleapis.com/auth/presentations
      • https://www.googleapis.com/auth/userinfo.email
      • https://www.googleapis.com/auth/userinfo.profile
    • 「更新」をクリックし、「保存」をクリックします。

    各スコープが要求される理由:

    スコープ目的ツール
    gmail.modifyメッセージとラベルの読み取り、下書き作成、変更gws.mail.*
    calendarイベントの読み取り、作成、更新gws.cal.*
    driveDrive 全体のファイルとメタデータの検索と読み取りgws.drive.*
    spreadsheetsGoogle Sheets のセルデータとメタデータの読み取りと書き込みgws.sheets.*
    documentsGoogle Docs のコンテンツの読み取りと書き込みgws.docs.*
    contacts.readonly自分の Google Contacts の読み取り専用検索gws.contacts.search
    directory.readonlyWorkspace 組織ディレクトリの読み取り専用検索(Workspace アカウントのみ)gws.contacts.directory_search
    tasksGoogle Tasks のリストとタスクの読み取りと書き込みgws.tasks.*
    presentationsGoogle Slides のコンテンツの読み取りと書き込みgws.slides.*
    userinfo.email承認したアカウントを識別(再認証時のメールアドレス照合)アカウント管理
    userinfo.profileメールアドレスとともに表示名を保存アカウント管理
  5. テストユーザーを追加 — 対象ユーザー に移動します:

    • 接続する予定の Google メールアドレスをそれぞれ追加します。
    • ⚠️ これは必須です — 追加しないと、OAuth 中に「アクセスがブロックされました。このアプリは Google の確認手続きを完了していません」(エラー 403)が表示されます。
  6. OAuth 認証情報を作成 — クライアント に移動します:

    • 「+ クライアントを作成」→「OAuth クライアント ID」をクリックします。
    • アプリケーションの種類:デスクトップアプリ
    • 「作成」をクリックします。
    • JSON ファイルをダウンロードします(ダウンロードアイコンをクリック)— このファイルにはクライアント ID とクライアントシークレットが含まれています。
複数の組織

異なる Google Workspace 組織のアカウントを接続する場合は、組織ごとに GCP プロジェクトが必要です。各プロジェクトで OAuth 認証情報を作成し、接続時に指定してください:

gws.accounts.add(label: "work", clientId: "work-client-id", clientSecret: "work-secret")
gws.accounts.add(label: "personal", clientId: "personal-client-id", clientSecret: "personal-secret")

クライアントシークレットは OS のキーチェーンに保存されます。クライアント ID はアカウントレジストリに保存されます。

アーキテクチャ

gws-connector/
├── cmd/gws-mcp/                 # MCP server entrypoint
├── internal/
│   ├── accounts/                # Account registry & router
│   ├── auth/                    # OAuth flow, token store, client factory
│   ├── server/                  # MCP tool registration & dispatch
│   └── services/                # Gmail, Calendar, Drive API wrappers
│
├── .claude-plugin/              # Claude Code plugin manifest + marketplace
├── .mcp.json                    # Claude Code MCP config
├── gemini-extension.json        # Gemini CLI extension manifest
├── CONTEXT.md                   # Shared behavioral context (both agents)
├── skills/                      # Slash commands (Claude Code + Gemini CLI)
├── hooks/                       # Claude Code session hooks
├── agents/                      # Claude Code workspace agent
│
├── .vscode/mcp.json             # GitHub Copilot MCP config
├── .cursor/mcp.json             # Cursor MCP config
└── codex.json                   # OpenAI Codex CLI config
  • トークンの保存:OS のキーチェーン(macOS Keychain、GNOME Keyring、Windows Credential Manager)を使用し、自動的にファイルへフォールバックします
  • クライアントシークレット:アカウントごとに OS のキーチェーンに保存します(設定ファイルには保存されません)
  • アカウントレジストリ:~/.claude/channels/gws/accounts.json にある JSON ファイルです(クライアント ID とメタデータを含み、シークレットは含みません)
  • 認証情報の解決:アカウントごとの認証情報(キーチェーン)→ グローバル環境変数へのフォールバック
  • プロトコル:stdio 経由の MCP(Model Context Protocol) — あらゆる MCP クライアントに対応しています

開発

make build          # Build binary
make test           # Run tests with race detector
make test-verbose   # Run tests with verbose output
make lint           # Run go vet
make release        # Cross-compile for all platforms
make clean          # Remove build artifacts

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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