
gws-admin-mcp
io.github.antct11由 GitHub 账号 antct11 发布v0.3.0更新于 Oct 25, 2026
Safe Google Workspace admin for AI agents: read-only by default, confirm-gated deletes, audit log.
概览
一个本地 MCP 服务器,为 AI 助手提供安全的 Google Workspace 管理控制台:默认只读,破坏性操作需二次确认,并留有审计日志。
- 可以做什么
- 列出并查看用户、群组、成员、组织部门、角色、域名、客户信息与群组设置,列表调用支持 Admin SDK 搜索语法并自动分页。查看审计日志活动以及按用户或按客户的用量报告。启用写入模式后,可创建、更新、暂停、重置密码、移动或删除用户,并管理群组、组织部门、角色分配与群组设置。列出移动设备与 ChromeOS 设备,写入模式下可移动设备或执行擦除、取消配置操作。
- 适用场景
- 适合让助手回答 Google Workspace 域内的问题,例如长期未登录的用户或群组成员,或在变更窗口内执行受控的管理变更。默认只读模式适合日常查询,写入模式用于有监督的明确变更。
- 运行要求
- 在本地运行,需要 Node.js 20 或更高版本。需要一个启用 Admin SDK 与 Groups Settings API 的 Google Cloud 项目、服务账号 JSON 密钥,并为该服务账号的客户端 ID 授予域范围委派。需在 config.json 的 delegatedAdmin 或 DELEGATED_ADMIN 变量中指定要模拟的 Workspace 超级管理员;还会读取 GOOGLE_SA_KEY 与 CUSTOMER_ID。仅支持桌面版 MCP 客户端。
安装
在 SourceWeft 中
- 打开 控制台中的 gws-admin-mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
gws-admin-mcp
A local Model Context Protocol (MCP) server that gives your AI agent (Cursor, Claude Desktop, or any MCP client) a safe Google Workspace admin console. It talks to the Admin SDK (Directory, Reports, Groups Settings) through a service account with domain-wide delegation, so the agent can answer questions like "which users haven't logged in for 90 days?" or "who is in the Finance group?" — and, only when you explicitly allow it, make changes.
Runs entirely on your machine. No third-party service, no telemetry, no data leaves your laptop except the Google API calls themselves.
Safety model
This server assumes the agent driving it is fallible. Three layers:
- Read-only by default. Out of the box only the 17 read tools are
registered — write tools are not hidden behind a runtime check, they simply
do not exist in the tool list, so the agent cannot call them. Mutations
require starting the server with
--allow-write(orGWS_ADMIN_ALLOW_WRITE=1). - Confirm gate on destructive calls. Even with writes enabled, the
irreversible operations —
users_delete,groups_delete,orgunits_delete,role_assignment_delete, mobile device wipe actions, and ChromeOS deprovision — are refused unless the call includes"confirm": true. The agent has to make the destructive intent explicit a second time. - Audit log. Every tool call is appended as JSON lines to
~/.config/gws-admin-mcp/audit.log(mode 600), with passwords and secrets redacted. Disable withGWS_ADMIN_AUDIT=0if you must.
Recommended pattern: run the read-only instance permanently, and start a second, write-enabled instance only for the duration of a change window.
Tools (40 total; 17 in read-only mode)
* Destructive — additionally requires "confirm": true in the call
(device tools only for wipe/deprovision actions).
List tools auto-paginate up to a maxResults cap, and users_list supports
the full Admin SDK search syntax (orgUnitPath='/Sales', isAdmin=true,
email:jdoe*, ...).
Requirements
- Node.js >= 20
- Super-admin access to a Google Workspace domain (to grant domain-wide delegation)
- A Google Cloud project (free — the Admin SDK has no usage cost)
Google Cloud setup
You need a service account whose key the server uses to impersonate a Workspace super-admin. Two paths:
Path A — scripted (needs gcloud)
The script creates/reuses the project, enables the Admin SDK + Groups
Settings APIs, creates the service account, writes the key and config to
~/.config/gws-admin-mcp/, and prints the client ID + scope string for the
final manual step (step 5 below — Google provides no API for that part).
Path B — manual (Cloud console)
- Create a project at console.cloud.google.com (or reuse one dedicated to admin tooling).
- Enable APIs: Admin SDK API and Groups Settings API (APIs & Services → Library).
- Create a service account (IAM & Admin → Service Accounts → Create). No project-level IAM roles are needed — its power comes entirely from the delegation grant in the next steps.
- Create a JSON key for it (Keys tab → Add key → JSON) and save it as
~/.config/gws-admin-mcp/service-account.jsonwithchmod 600. - Grant domain-wide delegation — this is the step people miss:
- Copy the service account's OAuth 2 client ID (a long number, shown on the service account details page).
- In the Admin console (admin.google.com): Security → Access and data control → API controls → Domain-wide delegation → Add new.
- Paste the client ID, and paste this exact scope list as one comma-separated line:
- Tell the server which admin to impersonate. Create
~/.config/gws-admin-mcp/config.json:
delegatedAdmin must be a super-admin of the domain. my_customer
resolves to that admin's own organization.
Environment variables override the config files: GOOGLE_SA_KEY (key path),
DELEGATED_ADMIN, CUSTOMER_ID, GWS_ADMIN_CONFIG_DIR (alternate config
directory). See .env.example.
Build and verify
doctor checks the key, mints a delegated token, and runs sample reads
against users, domains, roles, and the audit reports API. All four should say
PASS. Then optionally:
MCP client configuration
Cursor (~/.cursor/mcp.json)
Read-only — the recommended default:
Write-enabled (use deliberately, ideally as a second entry you toggle on):
Claude Desktop (claude_desktop_config.json)
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json ·
Windows: %APPDATA%\Claude\claude_desktop_config.json
Restart the client after editing. You should see the gws-admin server with
17 tools (read-only) or 40 (write-enabled).
Troubleshooting
Security notes
- The service-account key impersonates a super-admin with org-wide power.
Treat
service-account.jsonlike a domain-admin password: keep it out of git (this repo's.gitignorealready excludes key files,.env, andconfig.json), keep itchmod 600, and rotate it periodically. - Prefer a dedicated Cloud project for this service account so the key is easy to audit and revoke.
- Keep the permanent instance read-only. Enable writes in a separate instance only when you actually intend to change things, and turn it off after.
License & purchase
This repository is source-available, not open source: the code is public so you can read and audit every line before trusting it with a super-admin credential, but using it requires a license.
- Buy a license ($34): antchoutine.gumroad.com/l/gws-admin-mcp — perpetual, includes the full write-enabled edition and updates.
- Try it free: the read-only edition (17 tools, no mutating code) is on
npm as
gws-admin-mcp.
See LICENSE for the exact terms (no redistribution, no offering it as a hosted service).
来源:README.md,提交 e941550
工具
0版本历史
1- v0.3.0最新Sep 16, 2026
评分
已满足适用检查项的 40%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
请在仓库或注册中心条目中声明许可证。

