Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

gws-admin-mcp

by antct11version 0.3.0i★ –i–
Registry nameio.github.antct11/gws-admin-mcp

Install

Overview

Description from the maker (original English)

Safe Google Workspace admin for AI agents: read-only by default, confirm-gated deletes, audit log.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: –
  • Transport:
  • Category: Other

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

The maker has not listed install details in the registry. See the maker’s README below.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account antct11, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 18334 servers in this category
  • Published to the registry more recently than 19% of the other 18334 servers in this category
  • Basic checks equal to or better than 100% of the other 18334 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is gws-admin-mcp safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.3.0) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, ProAgentStore

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated 2 days ago
Install

ProAgentStore

by ProAgentStore

MCP-first control plane for ProAgentStore agents and private instances.

Runs in the cloudUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

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.

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.

Safety model

This server assumes the agent driving it is fallible. Three layers:

  1. 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 (or GWS_ADMIN_ALLOW_WRITE=1).
  2. 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.
  3. 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 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.

Tools (40 total; 17 in read-only mode)

AreaRead-only toolsWrite tools (require --allow-write)
Usersusers_list, users_getusers_create, users_update, users_suspend, users_unsuspend, users_reset_password, users_make_admin, users_move_ou, users_delete*
Groupsgroups_list, groups_get, groups_list_membersgroups_create, groups_update, groups_delete*, groups_add_member, groups_remove_member, groups_update_member
Org unitsorgunits_list, orgunits_getorgunits_create, orgunits_update, orgunits_delete*
Rolesroles_list, role_assignments_listrole_assignment_create, role_assignment_delete*
Domains / customerdomains_list, customer_get—
Devicesdevices_list_mobile, devices_list_chromeosdevices_action_mobile*, devices_action_chromeos*, devices_move_chromeos
Reportsreports_activities (audit log), reports_usage_user, reports_usage_customer—
Group settingsgroupsettings_getgroupsettings_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*, ...).

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)
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).

Path B — manual (Cloud console)
  1. Create a project at console.cloud.google.com (or reuse one dedicated to admin tooling).
  2. Enable APIs: *Admin SDK API* and *Groups Settings API* (APIs & Services → Library).
  3. 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.
  4. Create a JSON key for it (Keys tab → Add key → JSON) and save it as ~/.config/gws-admin-mcp/service-account.json with chmod 600.
  5. 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:
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
  1. Tell the server which admin to impersonate. Create ~/.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.

Build and verify

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

MCP client configuration

Cursor (~/.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 (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).

Troubleshooting

SymptomCause / fix
unauthorized_client when minting a tokenThe 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 setAdd delegatedAdmin to config.json or set the DELEGATED_ADMIN env var.
403 Not Authorized to access this resource/apiThe impersonated user is not a super-admin, or the Admin SDK API isn't enabled in the Cloud project.
404 from Groups Settings callsThe *Groups Settings API* isn't enabled in the project (it's separate from the Admin SDK).
Write tools don't appear in the clientWorking as intended — start the server with --allow-write or GWS_ADMIN_ALLOW_WRITE=1.
A delete/wipe call returns Refused: ... destructive/irreversibleWorking as intended — re-issue the call with "confirm": true.
Client shows the server as failed on startupRun 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.

Security notes

  • The service-account key impersonates a super-admin with org-wide power. Treat 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.
  • 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.

See LICENSE for the exact terms (no redistribution, no offering it as a hosted service).

Ask PopNx