Connectors · Identity & security
Google Workspace Directory MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Google Workspace Directory and the rest of your systems. It gives your agent 128 Google Workspace Directory actions (46 reads, 54 writes and 28 that wait for a confirmation) and holds the Google Workspace Directory credential itself, so the agent never does. It paces Google Workspace Directory's limits and records every call. Connecting Google Workspace Directory needs your own Google Workspace Directory OAuth app and one admin sign-in.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "gws_directory.customers.get", intent: "check which Google Workspace Directory account is connected"}# Get one customer · read · 1 upstream call- 128actionsin one signed file
- 46readlook, never change
- 54writecreate and update
- 28wait for a yesdestructive, confirmed first
Set up
Connect Google Workspace Directory in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Google Workspace Directory.
OAuth 2.0, authorization code with PKCE. You register your own OAuth app with Google Workspace Directory, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.
Before the first sign-in, Google Workspace Directory needs an OAuth app of your own, registered in its developer portal. actionlake has no Google Workspace Directory app to lend you.
access_tokenAccess token from one sign-in with your own OAuth apprefresh_tokenRefresh token from the same sign-in; the access token is renewed from itclient_idGoogle OAuth client idclient_secretGoogle OAuth client secret
account { op: "connections.requirements", service: "gws_directory" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "gws_directory.customers.get" }# get one customer · read · 1 upstream callcheck { action: "gws_directory.users.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Google Workspace Directory at a glance
- Sign-in
- OAuth 2.0, authorization code with PKCE. You register your own OAuth app with Google Workspace Directory, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.
- You provide
access_tokenrefresh_tokenclient_idclient_secret- Limits we pace to
- 2,400 calls a minute, per connection
- API covered
- Google Workspace Directory API 1
admin.googleapis.com/admin/directory/v1 - Built from
- Google Workspace Directory's documentation, read 15 September 2026admin.googleapis.com
- Service file
- Version 2.0.0, signed (Ed25519)
- Cached reads
- 44 of 46 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 8 in the store
- Shared entities
- 5, so ask can line Google Workspace Directory up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Google Workspace Directory.
128 actions in 10 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 46readlook, never change
- 54writecreate and update
- 28destructivewait for a confirmation
Directory
318 read · 16 write · 7 destructive
List users · Create a user · Create a guest user · Get one user
Resources
196 read · 10 write · 3 destructive
List buildings · Create a building · List calendar resources · Create a calendar resource
Groups
166 read · 7 write · 3 destructive
List groups · Create a group · Get one group · Update a group
Printing
155 read · 6 write · 4 destructive
List printers · Create a printer · List supported printer models · Get one printer
Devices
146 read · 6 write · 2 destructive
List ChromeOS devices · Get one ChromeOS device · List mobile devices · Run an action on a ChromeOS device
Access
115 read · 3 write · 3 destructive
List admin roles · Create an admin role · Get one admin role · Update an admin role
Security
105 read · 2 write · 3 destructive
List application-specific passwords · List OAuth tokens · Get one application-specific password · Get one OAuth token
Domains
84 read · 2 write · 2 destructive
Create a domain alias · Create a domain · List domain aliases · List domains
2 more areas · 4 actions
- Tenant 3
- Notifications 1
Top actions
The Google Workspace Directory API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 87 of Google Workspace Directory's 95 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
gws_directory.users.listList users | Retrieves a paginated list of either deleted users or all users in a domain. | read | identity.user.list474 connectors |
gws_directory.groups.listList groups | Retrieves all groups of a domain or of a user given a userKey (paginated). | read | identity.group.list262 connectors |
gws_directory.users.createCreate a user | Creates a user. Mutate calls immediately following user creation might sometimes fail as the user isn't fully created due to propagation delay in our… | write | identity.user.create262 connectors |
gws_directory.groups.createCreate a group | Creates a group. | write | identity.group.create205 connectors |
gws_directory.roles.listList admin roles | Retrieves a paginated list of all the roles in a domain. | read | identity.role.list184 connectors |
gws_directory.chromeosdevices.listList ChromeOS devices | Retrieves a paginated list of Chrome OS devices within an account. | read | device.endpoint.list65 connectors |
gws_directory.users.deleteDelete a user | Deletes a user. | destructive | identity.user.delete253 connectors |
gws_directory.roles.createCreate an admin role | Creates a role. | write | identity.role.create105 connectors |
gws_directory.members.listList group members | Retrieves a paginated list of all members in a group. This method times out after 60 minutes. For more information, see [Troubleshoot error… | read | identity.group_member.list103 connectors |
gws_directory.chromeosdevices.getGet one ChromeOS device | Retrieves a Chrome OS device's properties. | read | device.endpoint.get57 connectors |
gws_directory.asps.listList application-specific passwords | Lists the ASPs issued by a user. | read | identity.api_key.list96 connectors |
gws_directory.members.patchUpdate a group member | Updates the membership properties of a user in the specified group. This method supports [patch… | write | identity.group_member.update34 connectors |
Try it
Prompts to paste into Claude.
Each one names the Google Workspace Directory actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Google Workspace Directory devices have not checked in for a week?
calls
gws_directory.chromeosdevices.list - Plandestructive
Lock down a compromised account in Google Workspace Directory. Ask me before anything is sent or changed.
calls
gws_directory.users.getgws_directory.tokens.listgws_directory.asps.listgws_directory.users.patchgws_directory.users.sign_out+2 more - Plandestructive
Offboard a departing user in Google Workspace Directory. Ask me before anything is sent or changed.
calls
gws_directory.users.getgws_directory.tokens.listgws_directory.asps.listgws_directory.users.patchgws_directory.users.sign_out+1 more - Writewrite
Create a user in Google Workspace Directory. Show me exactly what you will send before you save it.
calls
gws_directory.users.create
The plan store
Ready-made plans for Google Workspace Directory.
8 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Audit suspended accounts and their lingering access
Use it when You need a report of suspended accounts that still hold OAuth tokens, app passwords or aliases.
Review who holds admin roles
Use it when You need to see which accounts hold which admin roles and what privileges those roles carry.
Onboard a new hire
Use it when A new employee is starting and needs a mailbox, an alias and their team group memberships created.
A person decides
Create primary email in name and add to group group key.
Retire a batch of ChromeOS devices
Use it when A set of Chromebooks in one org unit is being returned or recycled and must be deprovisioned together.
A person decides
Deprovision number of items ChromeOS devices in org unit path with reason deprovision reason.
Add a domain and its alias to the tenant
Use it when A newly acquired or rebranded domain has to be registered on the tenant along with an alias.
A person decides
Add domain domain name with alias alias domain to the tenant.
Clean suspended members out of a group
Use it when A group still lists suspended or departed accounts as members and needs pruning.
A person decides
Remove suspended accounts from email, which currently has number of items members.
Offboard a departing user
Use it when An employee has left and their Google Workspace account must be suspended and its access revoked.
A person decides
Suspend primary email, sign out all sessions and revoke number of items OAuth tokens.
Lock down a compromised account
Use it when An account is suspected of being compromised and must be locked down and its sessions and credentials cut.
A person decides
Lock down primary email: reset password, sign out all sessions and drop number of items app passwords.
account { op: "plans.install", slug: "gws_directory-suspended-account-audit" }
# then ask for it by name; a schedule can run it on a timetableGovernance for Google Workspace Directory
Destructive actions wait for a yes.
28 Google Workspace Directory actions are destructive. These are all of them:
- Delete a user
gws_directory.users.delete - Delete a group
gws_directory.groups.delete - Delete an admin role
gws_directory.roles.delete - Delete a group member
gws_directory.members.delete - Grant or revoke super-admin
gws_directory.users.make_admin - Delete a mobile device
gws_directory.mobiledevices.delete - Sign a user out everywhere
gws_directory.users.sign_out - Delete an org unit
gws_directory.orgunits.delete - Delete a role assignment
gws_directory.role_assignments.delete - Create a role assignment
gws_directory.role_assignments.create - Delete a domain
gws_directory.domains.delete - Delete a domain alias
gws_directory.domain_aliases.delete - Delete an application-specific password
gws_directory.asps.delete - Delete an OAuth token
gws_directory.tokens.delete - Invalidate verification codes
gws_directory.verification_codes.invalidate - Delete a user photo
gws_directory.user_photos.delete - Delete a custom schema
gws_directory.schemas.delete - Delete a user alias
gws_directory.user_aliases.delete - Delete a group alias
gws_directory.group_aliases.delete - Stop a notification channel
gws_directory.channels.stop - Issue a command to a ChromeOS device
gws_directory.chromeos_fleet.issue_command - Delete a building
gws_directory.buildings.delete - Delete a calendar resource
gws_directory.calendars.delete - Delete a resource feature
gws_directory.features.delete - Delete a printer
gws_directory.printers.delete - Delete many printers at once
gws_directory.printers.batch_delete - Delete a print server
gws_directory.print_servers.delete - Delete many print servers at once
gws_directory.print_servers.batch_delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a user?
intent: the user asked me to delete a user
account { op: "keys.create", name: "gws-directory-agent", allowed_actions: ["gws_directory.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "gws_directory.users.delete", approver: "[email protected]" }, { match: "gws_directory.groups.delete", approver: "[email protected]" }, { match: "gws_directory.roles.delete", approver: "[email protected]" } ]}Cost
What Google Workspace Directory costs on actionlake.
Every Google Workspace Directory action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Google Workspace Directory refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 128 Google Workspace Directory actions
- 128actions pageeach page of a long list is one call
- 44reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Google Workspace Directory action.
128 actions by area: the id your agent calls, what it does, and its effect.
Directory31
gws_directory.orgunits.createCreate an org unitwritegws_directory.orgunits.deleteDelete an org unitdestructivegws_directory.orgunits.getGet one org unitreadgws_directory.orgunits.listList org unitsreadgws_directory.orgunits.patchUpdate an org unitwritegws_directory.orgunits.updateReplace an org unitwritegws_directory.schemas.createCreate a custom schemawritegws_directory.schemas.deleteDelete a custom schemadestructivegws_directory.schemas.getGet one custom schemareadgws_directory.schemas.listList custom schemasreadgws_directory.schemas.patchUpdate a custom schemawritegws_directory.schemas.updateReplace a custom schemawritegws_directory.user_aliases.createCreate a user aliaswritegws_directory.user_aliases.deleteDelete a user aliasdestructivegws_directory.user_aliases.listList user aliasesreadgws_directory.user_aliases.watchWatch user aliases for changeswritegws_directory.user_photos.deleteDelete a user photodestructivegws_directory.user_photos.getGet one user photoreadgws_directory.user_photos.patchUpdate a user photowritegws_directory.user_photos.updateReplace a user photowritegws_directory.users.createCreate a userwritegws_directory.users.create_guestCreate a guest userwritegws_directory.users.deleteDelete a userdestructivegws_directory.users.getGet one userreadgws_directory.users.listList usersreadgws_directory.users.make_adminGrant or revoke super-admindestructivegws_directory.users.patchUpdate a userwritegws_directory.users.sign_outSign a user out everywheredestructivegws_directory.users.undeleteRestore a deleted userwritegws_directory.users.updateReplace a userwritegws_directory.users.watchWatch users for changeswrite
Resources19
gws_directory.buildings.createCreate a buildingwritegws_directory.buildings.deleteDelete a buildingdestructivegws_directory.buildings.getGet one buildingreadgws_directory.buildings.listList buildingsreadgws_directory.buildings.patchUpdate a buildingwritegws_directory.buildings.updateReplace a buildingwritegws_directory.calendars.createCreate a calendar resourcewritegws_directory.calendars.deleteDelete a calendar resourcedestructivegws_directory.calendars.getGet one calendar resourcereadgws_directory.calendars.listList calendar resourcesreadgws_directory.calendars.patchUpdate a calendar resourcewritegws_directory.calendars.updateReplace a calendar resourcewritegws_directory.features.createCreate a resource featurewritegws_directory.features.deleteDelete a resource featuredestructivegws_directory.features.getGet one resource featurereadgws_directory.features.listList resource featuresreadgws_directory.features.patchUpdate a resource featurewritegws_directory.features.renameRename a resource featurewritegws_directory.features.updateReplace a resource featurewrite
Groups16
gws_directory.group_aliases.createCreate a group aliaswritegws_directory.group_aliases.deleteDelete a group aliasdestructivegws_directory.group_aliases.listList group aliasesreadgws_directory.groups.createCreate a groupwritegws_directory.groups.deleteDelete a groupdestructivegws_directory.groups.getGet one groupreadgws_directory.groups.listList groupsreadgws_directory.groups.patchUpdate a groupwritegws_directory.groups.updateReplace a groupwritegws_directory.members.createCreate a group memberwritegws_directory.members.deleteDelete a group memberdestructivegws_directory.members.getGet one group memberreadgws_directory.members.has_memberCheck group membershipreadgws_directory.members.listList group membersreadgws_directory.members.patchUpdate a group memberwritegws_directory.members.updateReplace a group memberwrite
Printing15
gws_directory.print_servers.batch_createCreate many print servers at oncewritegws_directory.print_servers.batch_deleteDelete many print servers at oncedestructivegws_directory.print_servers.createCreate a print serverwritegws_directory.print_servers.deleteDelete a print serverdestructivegws_directory.print_servers.getGet one print serverreadgws_directory.print_servers.listList print serversreadgws_directory.print_servers.patchUpdate a print serverwritegws_directory.printers.batch_createCreate many printers at oncewritegws_directory.printers.batch_deleteDelete many printers at oncedestructivegws_directory.printers.createCreate a printerwritegws_directory.printers.deleteDelete a printerdestructivegws_directory.printers.getGet one printerreadgws_directory.printers.listList printersreadgws_directory.printers.list_modelsList supported printer modelsreadgws_directory.printers.patchUpdate a printerwrite
Devices14
gws_directory.chromeos_commands.getGet one ChromeOS commandreadgws_directory.chromeos_fleet.batch_change_statusChange the status of many ChromeOS deviceswritegws_directory.chromeos_fleet.countCount ChromeOS devices by auto-update expiryreadgws_directory.chromeos_fleet.issue_commandIssue a command to a ChromeOS devicedestructivegws_directory.chromeosdevices.actionRun an action on a ChromeOS devicewritegws_directory.chromeosdevices.getGet one ChromeOS devicereadgws_directory.chromeosdevices.listList ChromeOS devicesreadgws_directory.chromeosdevices.move_to_orgunitMove ChromeOS devices to an org unitwritegws_directory.chromeosdevices.patchUpdate a ChromeOS devicewritegws_directory.chromeosdevices.updateReplace a ChromeOS devicewritegws_directory.mobiledevices.actionRun an action on a mobile devicewritegws_directory.mobiledevices.deleteDelete a mobile devicedestructivegws_directory.mobiledevices.getGet one mobile devicereadgws_directory.mobiledevices.listList mobile devicesread
Access11
gws_directory.privileges.listList privilegesreadgws_directory.role_assignments.createCreate a role assignmentdestructivegws_directory.role_assignments.deleteDelete a role assignmentdestructivegws_directory.role_assignments.getGet one role assignmentreadgws_directory.role_assignments.listList role assignmentsreadgws_directory.roles.createCreate an admin rolewritegws_directory.roles.deleteDelete an admin roledestructivegws_directory.roles.getGet one admin rolereadgws_directory.roles.listList admin rolesreadgws_directory.roles.patchUpdate an admin rolewritegws_directory.roles.updateReplace an admin rolewrite
Security10
gws_directory.asps.deleteDelete an application-specific passworddestructivegws_directory.asps.getGet one application-specific passwordreadgws_directory.asps.listList application-specific passwordsreadgws_directory.tokens.deleteDelete an OAuth tokendestructivegws_directory.tokens.getGet one OAuth tokenreadgws_directory.tokens.listList OAuth tokensreadgws_directory.two_step_verification.turn_offTurn off two-step verificationwritegws_directory.verification_codes.generateGenerate verification codeswritegws_directory.verification_codes.invalidateInvalidate verification codesdestructivegws_directory.verification_codes.listList verification codesread
Domains8
gws_directory.domain_aliases.createCreate a domain aliaswritegws_directory.domain_aliases.deleteDelete a domain aliasdestructivegws_directory.domain_aliases.getGet one domain aliasreadgws_directory.domain_aliases.listList domain aliasesreadgws_directory.domains.createCreate a domainwritegws_directory.domains.deleteDelete a domaindestructivegws_directory.domains.getGet one domainreadgws_directory.domains.listList domainsread
Tenant3
gws_directory.customers.getGet one customerreadgws_directory.customers.patchUpdate a customerwritegws_directory.customers.updateReplace a customerwrite
Notifications1
gws_directory.channels.stopStop a notification channeldestructive
Questions
The Google Workspace Directory MCP server, answered.
Is there a Google Workspace Directory MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 128 Google Workspace Directory actions across directory, resources, groups and printing, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Google Workspace Directory.
What do I need to connect Google Workspace Directory?
Your own Google Workspace Directory OAuth app, registered with Google Workspace Directory (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no Google Workspace Directory app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. The free call account { op: "connections.requirements", service: "gws_directory" } lists exactly what to paste.
Can an AI agent delete or change things in Google Workspace Directory?
Only if its key allows it, and only with an explicit confirmation. 28 Google Workspace Directory actions are destructive, including delete a user, delete a group and delete an admin role. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Google Workspace Directory API limit?
actionlake paces every call to the limits in the Google Workspace Directory service file: 2,400 calls a minute per connection. Repeated reads are answered from cache (44 Google Workspace Directory actions can be), which never reaches Google Workspace Directory.
What does a Google Workspace Directory action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (128 Google Workspace Directory actions page). Cache hits, searches, dry runs and calls Google Workspace Directory refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Google Workspace Directory API does it cover?
The Google Workspace Directory API 1 at admin.googleapis.com/admin/directory/v1. It is built from Google Workspace Directory's documentation as read on 15 September 2026. 128 actions in 10 areas, each one in the signed service file (version 2.0.0).
Does actionlake keep my Google Workspace Directory data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Google Workspace Directory credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Google Workspace Directory today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.