Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Safe Google Workspace admin for AI agents: read-only by default, confirm-gated deletes, audit log.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
作者没有在注册中心列出安装信息。请查看下方作者的 README。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 antct11 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.3.0)于3个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。
同一分类中有:Spec Driven Development, Remote Desktop Commander, ScienceShot science reference
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Sourced, citable answers in radiation and particle physics, photonics, electronics and quantum.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
MCP client ──stdio──► gws-admin-mcp ──service account JWT (impersonates an admin)──► admin.googleapis.com / groupssettings.googleapis.com
Runs entirely on your machine. No third-party service, no telemetry, no data leaves your laptop except the Google API calls themselves.
This server assumes the agent driving it is fallible. Three layers:
--allow-write (or GWS_ADMIN_ALLOW_WRITE=1).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.~/.config/gws-admin-mcp/audit.log (mode 600), with passwords and secrets redacted. Disable with GWS_ADMIN_AUDIT=0 if 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.
| Area | Read-only tools | Write tools (require --allow-write) |
|---|---|---|
| Users | users_list, users_get | users_create, users_update, users_suspend, users_unsuspend, users_reset_password, users_make_admin, users_move_ou, users_delete* |
| Groups | groups_list, groups_get, groups_list_members | groups_create, groups_update, groups_delete*, groups_add_member, groups_remove_member, groups_update_member |
| Org units | orgunits_list, orgunits_get | orgunits_create, orgunits_update, orgunits_delete* |
| Roles | roles_list, role_assignments_list | role_assignment_create, role_assignment_delete* |
| Domains / customer | domains_list, customer_get | — |
| Devices | devices_list_mobile, devices_list_chromeos | devices_action_mobile*, devices_action_chromeos*, devices_move_chromeos |
| Reports | reports_activities (audit log), reports_usage_user, reports_usage_customer | — |
| Group settings | groupsettings_get | groupsettings_update |
\* 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*, ...).
You need a service account whose key the server uses to impersonate a Workspace super-admin. Two paths:
gcloud)gcloud auth login admin@yourdomain.com
scripts/setup-service-account.sh admin@yourdomain.com your-project-id
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).
~/.config/gws-admin-mcp/service-account.json with chmod 600.https://www.googleapis.com/auth/admin.directory.user,https://www.googleapis.com/auth/admin.directory.group,https://www.googleapis.com/auth/admin.directory.group.member,https://www.googleapis.com/auth/admin.directory.orgunit,https://www.googleapis.com/auth/admin.directory.rolemanagement,https://www.googleapis.com/auth/admin.directory.domain.readonly,https://www.googleapis.com/auth/admin.directory.customer.readonly,https://www.googleapis.com/auth/admin.directory.device.mobile,https://www.googleapis.com/auth/admin.directory.device.chromeos,https://www.googleapis.com/auth/admin.reports.audit.readonly,https://www.googleapis.com/auth/admin.reports.usage.readonly,https://www.googleapis.com/auth/apps.groups.settings
~/.config/gws-admin-mcp/config.json:{
"delegatedAdmin": "admin@yourdomain.com", "customerId": "my_customer" }
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.
npm install
npm run build node dist/cli.js doctor
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:
npm run smoke # spawns the real server over stdio, checks tool registration + live reads
~/.cursor/mcp.json)Read-only — the recommended default:
{
"mcpServers": { "gws-admin": { "command": "node", "args": ["/ABSOLUTE/PATH/TO/gws-admin-mcp/dist/cli.js", "serve"] } } }
Write-enabled (use deliberately, ideally as a second entry you toggle on):
{
"mcpServers": { "gws-admin-write": { "command": "node", "args": ["/ABSOLUTE/PATH/TO/gws-admin-mcp/dist/cli.js", "serve", "--allow-write"] } } }
claude_desktop_config.json)macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": { "gws-admin": { "command": "node", "args": ["/ABSOLUTE/PATH/TO/gws-admin-mcp/dist/cli.js", "serve"] } } }
Restart the client after editing. You should see the gws-admin server with 17 tools (read-only) or 40 (write-enabled).
| Symptom | Cause / fix |
|---|---|
unauthorized_client when minting a token | The domain-wide delegation grant is missing, uses the wrong client ID, or its scope list doesn't cover every scope the server requests. Re-paste the full scope string from above against the SA's OAuth2 client ID. Grants can take a few minutes to propagate. |
Service-account key not found at ... | Put the JSON key at ~/.config/gws-admin-mcp/service-account.json or set GOOGLE_SA_KEY to its path. |
DELEGATED_ADMIN ... is not set | Add delegatedAdmin to config.json or set the DELEGATED_ADMIN env var. |
403 Not Authorized to access this resource/api | The impersonated user is not a super-admin, or the Admin SDK API isn't enabled in the Cloud project. |
404 from Groups Settings calls | The *Groups Settings API* isn't enabled in the project (it's separate from the Admin SDK). |
| Write tools don't appear in the client | Working as intended — start the server with --allow-write or GWS_ADMIN_ALLOW_WRITE=1. |
A delete/wipe call returns Refused: ... destructive/irreversible | Working as intended — re-issue the call with "confirm": true. |
| Client shows the server as failed on startup | Run node dist/cli.js doctor in a terminal; it prints the exact failing check. Also confirm the args path in your MCP config is absolute. |
service-account.json like a domain-admin password: keep it out of git (this repo's .gitignore already excludes key files, .env, and config.json), keep it chmod 600, and rotate it periodically.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.
gws-admin-mcp.See LICENSE for the exact terms (no redistribution, no offering it as a hosted service).