
Gws Connector
io.github.oriegPublished by GitHub account oriegv0.4.3Updated Oct 24, 2026
Multi-account Google Workspace MCP — Gmail, Calendar, Drive, Sheets, Docs with smart routing.
Overview
Lets an assistant read and act on multiple Gmail, Calendar, Drive, Sheets, Docs, Contacts, Tasks and Slides accounts with routing by label, email or domain.
- What you can do
- GWS Connector is a local MCP server exposing 49 tools across Google Workspace: Gmail search, reading, drafts and labels; Calendar events and free/busy; Drive search and file reading; Sheets read/write/append; Docs read and edit; Contacts search; Tasks; and Slides. Every tool takes an optional account parameter, so requests can be routed to a specific account by label, email address or domain, otherwise the default account is used. Account management tools add, reauthorize, list, remove and set default accounts.
- When to use it
- Useful when one person or team works across several Google accounts, such as personal plus work or several client organizations, and wants a single assistant session to query and update all of them. Less compelling if only one Google account is ever used.
- Requirements
- Runs as a local process over stdio; a prebuilt Go binary, Claude Code plugin, Gemini extension, .mcpb bundle or Docker image is available. Requires a Google Cloud project with the relevant APIs enabled, an OAuth consent screen with the listed scopes, test users added, and Desktop-app OAuth client credentials. Optional environment variables: GWS_GOOGLE_CLIENT_ID, GWS_GOOGLE_CLIENT_SECRET, GWS_STATE_DIR. Interactive OAuth opens a browser and needs host access.
Installation
In SourceWeft
- Open Gws Connector in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
GWS Connector
[CI] [Release] [Go] [License: MIT]
Multi-account Google Workspace MCP server — connect multiple Gmail, Google Calendar, and Google Drive accounts with smart routing.
Works with Claude Code, Gemini CLI, GitHub Copilot, Cursor, OpenAI Codex, and any MCP-compatible client.
Why
Most AI coding assistants support a single Google account. If you use multiple Google accounts (personal + work, multiple clients, different orgs), you need to switch between them manually. This MCP server lets you connect them all at once and route requests by label, email, or domain.
Features
- Multi-account — connect unlimited Gmail and Google Workspace accounts
- Smart routing — target accounts by label (
work), email, or domain - Per-account OAuth — different orgs can use their own GCP credentials
- Secure storage — client secrets and tokens stored in OS keychain (file fallback on Linux without GNOME Keyring)
- 49 tools — Mail (11), Calendar (7), Drive (3), Sheets (8), Docs (4), Contacts (2), Tasks (5), Slides (3), account management (6)
- Account management — add, remove, set default, list accounts
- Cross-platform — standard MCP server works with any compatible client
How it compares
There are several good Google Workspace MCP servers. GWS Connector is the one to pick when multiple accounts and operational simplicity matter:
If you only ever use a single Google account and want the widest possible tool surface (Forms, Chat, Vault, …), a single-account server like taylorwilsdon/google_workspace_mcp may fit better. GWS Connector focuses on doing multi-account Gmail / Calendar / Drive / Sheets / Docs / Contacts / Tasks / Slides cleanly and securely.
Upgrading (Google Tasks)
The Google Tasks tools (gws.tasks.*) are added behind one new OAuth scope
(tasks). Existing users must re-authorize each connected account so new
tokens are minted with this scope:
Before approving the browser consent screen, review what the new scope grants — full read and write access to the account's Google Tasks lists and tasks. See the scope rationale table below for details.
You must also add the tasks scope and enable the Tasks API in your GCP
project's OAuth consent screen configuration before re-auth, or the consent
screen will reject the request. Until an account is re-authorized, the
gws.tasks.* tools return an insufficient-scope error naming the reauth tool
to run.
Upgrading — Contacts / People API
The Contacts tools (gws.contacts.search, gws.contacts.directory_search)
add two new read-only OAuth scopes (contacts.readonly, directory.readonly).
Existing users must re-authorize each connected account so new tokens are
minted with these scopes:
Before approving the browser consent screen, review what the new scopes grant — read-only access to your Google Contacts and (for Workspace accounts) the organization directory. See the scope rationale table below for details.
You must also enable the People API and add the two new scopes in your GCP
project's OAuth consent screen configuration before re-auth, or the consent
screen will reject the request. gws.contacts.directory_search requires a
Google Workspace account — personal Gmail accounts have no organization
directory and receive a clear explanatory message instead of results.
Upgrading (Google Slides tools)
The Slides tools (gws.slides.*) add one new OAuth scope,
https://www.googleapis.com/auth/presentations. Existing users must
re-authorize each connected account so new tokens are minted with the
Slides scope:
You must also enable the Slides API and add the presentations scope in
your GCP project's OAuth consent screen configuration before re-auth, or the
consent screen will reject the request (see Google Cloud
Setup). Until you re-authorize, gws.slides.* calls
return a scope error telling the agent to run gws.accounts.reauth; all other
tools keep working.
Upgrading from v0.2.x
v0.3.0 adds native Google Sheets and Google Docs tools behind two new OAuth
scopes (spreadsheets, documents). Existing users must re-authorize
each connected account so new tokens are minted with these scopes:
Before approving the browser consent screen, review what the new scopes grant — full read and write access to every spreadsheet and document in that account's Google Drive, including files shared with the account. See the scope rationale table below for details.
You must also add the two new scopes (and enable the Sheets and Docs APIs) in your GCP project's OAuth consent screen configuration before re-auth, or the consent screen will reject the request.
Quick Start (Claude Code)
1. Install the plugin — run these two commands inside Claude Code:
2. Set up Google Cloud credentials — the interactive wizard walks you through everything:
This creates a GCP project, enables APIs, and connects your first account. See Google Cloud Setup if you prefer manual steps.
3. Connect additional accounts:
Each account can use different OAuth credentials from different GCP projects.
Gemini CLI
The binary is downloaded automatically on first use. Then connect accounts inside Gemini:
Other clients
GitHub Copilot / Cursor / Codex / Any MCP client
Download a prebuilt binary or build from source:
Then configure your client:
Connect accounts via MCP tool call:
Environment variables (all optional): GWS_GOOGLE_CLIENT_ID, GWS_GOOGLE_CLIENT_SECRET, GWS_STATE_DIR
The --use-dot-names flag uses gws.mail.search naming; without it, tools use gws_mail_search.
Local development / testing
Use /reload-plugins inside the session after making changes. Run claude --debug --plugin-dir ./ to troubleshoot plugin loading.
Claude Desktop / MCPB bundle
Each release attaches a
one-click gws-mcp.mcpb bundle. Download it and open it with Claude Desktop
(Settings → Extensions → install from file), or drag it in. The bundle contains
the binaries for macOS and Linux and picks the right one for your machine
automatically. You still complete the Google Cloud setup
and connect accounts on first use.
The server is also published to the
official MCP Registry as
io.github.orieg/gws-connector, so MCP clients that browse the registry can find
and install it directly.
Docker
A multi-arch image is published to GHCR on each release:
The server speaks MCP over stdio. Interactive OAuth (accounts.add / reauth)
opens a browser and stores secrets in the OS keychain, so it needs host access —
day-to-day use is best via the native binary, the Claude Code plugin, or the
Gemini extension. The image is well suited to headless stdio integrations and to
registry/introspection checks. Persist the account registry across runs by
mounting a volume and pointing GWS_STATE_DIR at it:
Usage
All gws.* tools accept an optional account parameter:
Available tools
Skills
Interactive workflows available in both Claude Code and Gemini CLI:
Recipes
Once accounts are connected, just ask your assistant in plain language — it picks the tools and the account. Examples:
- Morning triage across accounts — "Summarize my unread email from the last 24 hours across all accounts, grouped by account, and flag anything that needs a reply today."
- Draft a reply in a thread — "Find the thread with Acme about the Q3 invoice on my work account and draft a reply confirming the new date. Don't send it."
- Turn an email into a calendar event — "Read the latest message from the events team and create a calendar event on my personal calendar with the date and location from it."
- Cross-account digest — "What meetings do I have tomorrow across my work and personal calendars? List them in one timeline."
- Find and summarize a doc — "Search my client-acme Drive for the latest 'statement of work' and give me the key deliverables and dates."
- Log to a spreadsheet — "Append a row to the 'Expenses' sheet in my personal Drive: today's date, 'AWS', 42.50."
- Keep inbox tidy — "Label all unread messages from newsletters@ as 'Newsletters' and mark them read on my personal account."
Tips:
- Target an account explicitly with its label ("on my work account"), by email, or by domain — otherwise the default account is used.
- Write operations (drafts, events, sheet/doc edits) are previewed for your confirmation before anything is sent or changed.
Google Cloud Setup
One-time setup:
-
Go to Google Cloud Console and create a new project (e.g., "GWS Connector")
-
Enable APIs — click each link and hit "Enable":
-
Configure the OAuth consent screen:
- Choose "External" (or "Internal" for Google Workspace orgs)
- Fill in the app name (e.g., "Claude GWS") and your email for support contact
- Click "Save"
-
Add scopes — go to Data Access:
- Click "Add or Remove Scopes"
- Add these 11 scopes (paste into the "Manually add scopes" box):
https://www.googleapis.com/auth/gmail.modifyhttps://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/spreadsheetshttps://www.googleapis.com/auth/documentshttps://www.googleapis.com/auth/contacts.readonlyhttps://www.googleapis.com/auth/directory.readonlyhttps://www.googleapis.com/auth/taskshttps://www.googleapis.com/auth/presentationshttps://www.googleapis.com/auth/userinfo.emailhttps://www.googleapis.com/auth/userinfo.profile
- Click "Update", then "Save"
Why each scope is requested:
-
Add test users — go to Audience:
- Add each Google email address you plan to connect
- ⚠️ This is required — without this you'll get "Access blocked: has not completed the Google verification process" (error 403) during OAuth
-
Create OAuth credentials — go to Clients:
- Click "+ Create Client" → "OAuth client ID"
- Application type: Desktop app
- Click "Create"
- Download the JSON file (click the download icon) — this contains your Client ID and Client Secret
Multiple organizations
If you connect accounts from different Google Workspace orgs, each org needs its own GCP project. Create OAuth credentials in each project and provide them when connecting:
Client secrets are stored in the OS keychain. Client IDs are stored in the account registry.
Architecture
- Token storage: OS keychain (macOS Keychain, GNOME Keyring, Windows Credential Manager) with automatic file fallback
- Client secrets: OS keychain per account (not stored in config files)
- Account registry: JSON file at
~/.claude/channels/gws/accounts.json(contains client IDs and metadata, no secrets) - Credential resolution: per-account credentials (keychain) → global env var fallback
- Protocol: MCP (Model Context Protocol) over stdio — compatible with any MCP client
Development
License
MIT — see LICENSE.
Source: README.md at commit 0b6364b
Tools
0Version history
4- v0.4.3LatestSep 25, 2026
- v0.4.2Sep 25, 2026
- v0.4.1Sep 25, 2026
- v0.3.5Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
