個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Multi-account Google Workspace (Gmail, Drive) for LLM agents — 100% local, default-deny policy, human-in-the-loop access. A macOS MCP server.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Multi-account Google Workspace for LLM agents — 100 % local. Connect Claude Desktop, Claude Code or Cursor to several Google accounts through a local MCP server. The agent can ask for access; only you grant it — every unlock, Drive grant and new account stays a human gesture.檢視完整 README ↗Quickstart · How it works · Security · Docs
Multi-account Google Workspace for LLM agents — 100 % local. Connect Claude Desktop, Claude Code or Cursor to several Google accounts through a local MCP server. The agent can ask for access; only you grant it — every unlock, Drive grant and new account stays a human gesture.
mag CLI.macOS Apple Silicon.
Prerequisite — the upstream gws CLI (the Google Workspace CLI this project wraps) and Python 3:
brew install googleworkspace-cli
1. Install — no clone needed:
curl -fsSL https://raw.githubusercontent.com/elzinko/google-mcp-multi-account/main/install.sh | bash
This puts the latest release on your machine and mag on your PATH. By default it wires no client — it prints the command to connect each one (mag wire desktop / mag wire code, Cursor manual); pass --wire to connect them during install.
2. Google setup (~10 min, once) — an OAuth project in Google Cloud: docs/setup-oauth.md. No account connects and no Google data flows until it's done — setup_status still runs to guide you.
3. Connect an account, then restart Claude Desktop (Cmd-Q):
mag add perso [email protected] # "perso" = short name · the email pins the account
mag list # profiles + state
Ask the agent: “give me a rundown of my Google setup” — it reads the state and proposes the exact command for each missing step; you run them. Update later, still clone-free: mag update. Full detail: docs/mcp-setup.md · docs/setup-oauth.md.
The LLM can never widen its own access. Every door opens by a human gesture the agent can request but not perform.
flowchart LR
USER["🧑 Human"]
LLM["LLM clients — Desktop / Code / Cursor"]
MCP["bin/google-mcp — MCP stdio"]
GW["gateway/ — enforces policy + locks"]
STATE["locks · grants · policy"]
GWSA["bin/mag"]
GOOGLE["Google APIs"]
LLM --> MCP --> GW --> GOOGLE
GW -.->|reads| STATE
USER -->|unlock / grant / policy| GWSA -->|writes| STATE
Why a wrapper, the local broker, who talks to whom: docs/architecture.md. Step-by-step walkthroughs: diagrams/.
mag command for anything it can't do itself — unlock a profile, grant a Drive folder, connect an account — and you run it. Nothing is sent or widened without your gesture. Start at Quickstart.mag admin → http://127.0.0.1:4877) or the mag CLI. See docs/admin.md and docs/policies.md.features/, run the hermetic tests, and open one PR per feature. See Contributing.Stance: don’t trust the LLM by default — it can ask, only a human opens. Per-profile locks (optional Touch ID), zoned Drive writes, no mail sending, encrypted tokens. Guarantees phase by phase, what is not yet covered, and how to report a flaw: SECURITY.md · docs/threat-model.md. Honest self-critique (strengths, limits, competition): docs/critique.md.
./scripts/test.sh # hermetic suite (policy, wrapper, gateway, broker) — no real account, no network
mag help is the index of everything. LLM-guided manual tests: tests/manuels/.mag release derives semver from conventional commits. History: CHANGELOG.md.bin/ # google-mcp (MCP server) · mag (CLI wrapper) · google-broker
gateway/ # policy, locks, MCP server, signed elicitation
scripts/ # provision-gcp · update · release · test
docs/ # setup, usage, policies, architecture, security, critique
site/ # product landing + docs hub (English, FR/EN toggle)
features/ # backlog — one card per feature/bug
Product / MCP server google-multi-account (source of truth: gateway/config.py PRODUCT_SLUG) · git repo google-mcp-multi-account · CLI mag (this project's wrapper — what you run; formerly gwsa/gma, still deprecated aliases) · MCP binary google-mcp · upstream dependency gws = the Google Workspace CLI that mag wraps (install it first).
gws and the network are stubbed):git clone https://github.com/elzinko/google-mcp-multi-account && cd google-mcp-multi-account
./scripts/test.sh
Running the tool against real accounts also needs the gws CLI (brew install googleworkspace-cli) — see Quickstart.
features/ (priority-sorted index: features/BACKLOG.md). Pick a ready card; one feature = one branch = one PR.feat:, fix:, docs:, refactor:…); mag release derives the semver tag from them../scripts/test.sh green, and walk the reviewer checklist in docs/PR_VALIDATION.md. Every PR gets an adversarial review before merge.| Topic | Where |
|---|---|
| Connect a client (Desktop, Code, Cursor); tools exposed | docs/mcp-setup.md |
| OAuth / GCP setup, IAM roles | docs/setup-oauth.md |
CLI (mag, locks, Touch ID) | docs/usage.md |
| Web admin (local webapp) | docs/admin.md |
| Policy model (default-deny, Drive zones, grants) | docs/policies.md |
MIT — built in spare time. If it helps you, buy me a coffee ☕.