Connect your AI Agents to Google Workspace in minutes

Merge lets you securely connect your agents to Google Workspace and thousands of tools instantly

Available tools

list_chromeos_devices

List managed ChromeOS devices with status, model, OS version, last sync and assigned user. Filter with query (for example 'status:provisioned' or 'sync:..2025-01-01' for stale devices) or by org unit. Use listorgunits to find org unit paths.

get_chromeos_device

Get one managed ChromeOS device by immutable ID: status, model, OS and firmware versions, assigned user and org unit. Use listchromeosdevices to find device IDs; pass projection FULL and fields for extras such as the MAC address.

list_mobile_devices

List user-owned mobile devices (Android, iOS, Google Sync) registered with the account, with owner, model, OS, status and last sync. Filter with query, for example 'status:approved type:android' or 'email:alex@example.com'. Company-owned devices are not returned.

get_mobile_device

Get one user-owned mobile device by resource ID: owner, model, OS, status, last sync and compromise status. Use listmobiledevices to find resource IDs; pass projection FULL and fields for extras such as installed apps.

list_groups

List Workspace groups by customer, member, or Google Directory query, with pagination. Use this to find group email addresses or IDs before creating memberships or changing a group.

get_group

Get a Workspace group by email address or immutable ID. Use list_groups to find valid keys.

create_group

Create a Workspace group. Choose a unique email address and a display name. Returns the group ID needed by membership tools.

update_group

Patch a Workspace group's properties, such as name or description. Use list_groups to find the group key; include only fields to change.

delete_group

Delete a Workspace group and its group address. This removes the group and affects all members. Use list_groups to confirm the correct group key.

list_members

List direct members of a Workspace group, optionally filtering by role. Use listgroups to find the group key; the returned member email or ID is used by getmember, updatemember, and removemember.

get_member

Get one Workspace group membership by group and member email or immutable ID. Use list_members to find valid member keys.

has_member

Check whether a user is a member of a Workspace group, directly or through a nested group. Returns only true or false, so prefer it to listmembers for a yes/no check. Use listgroups and listusers to find valid keys. A user outside the group's domain returns an Invalid input error; use listmembers for those.

add_member

Add an existing Workspace user or group to a group with the specified role. Use listgroups and listusers to find valid addresses. Use remove_member to reverse this change.

update_member

Change an existing member's Workspace group role. Use listmembers to find the member key; use removemember to remove the relationship instead.

remove_member

Remove a user or group from a Workspace group. This revokes the member's group access. Use list_members to verify the group and member keys.

list_org_units

List organizational units under a path, or from the root. Use this to find the orgunitpath values that createuser, undeleteuser, update_user, and the org unit tools require. Set type=ALL to include every descendant. Google does not paginate this list.

get_org_unit

Get one organizational unit by full path or immutable ID. Use listorgunits to find valid orgunitpath values. The root org unit '/' cannot be fetched this way; listorgunits returns its children.

create_org_unit

Create an organizational unit under an existing parent; use parentorgunitpath '/' for a top-level unit. Use listorgunits to find valid parent paths. The new orgunitpath is returned for createuser and updateuser. Use deleteorg_unit to reverse this.

update_org_unit

Rename an organizational unit, change its description, or move it under another parent. Only the fields you pass are changed. Moving or renaming changes the orgunitpath of the unit and its descendants. Use listorgunits to find org unit paths.

delete_org_unit

Delete an organizational unit permanently. Google may refuse while the unit still has users or child org units; move or delete those first. Use listorgunits to find the orgunitpath and to check for children.

list_calendar_resources

List bookable calendar resources such as meeting rooms and equipment, filtered by building, floor, capacity or category. The returned resource_email is the calendar ID to use with the Google Calendar connector to check availability or invite the room.

get_calendar_resource

Get one calendar resource (room or equipment) by immutable ID, with its capacity, location and features. Use listcalendarresources to find resource IDs.

list_roles

List admin roles, both Google's predefined and custom ones, without privileges (use getrole for those, or fields='rolePrivileges'). Use the returned roleid with getrole or listrole_assignments to see who holds a role.

get_role

Get one admin role by immutable ID, with its privileges and whether it is a system or super admin role. Use list_roles to find role IDs.

list_role_assignments

List which users and groups hold admin roles. Filter by roleid (from listroles) to see who holds one role, or by userkey to see one person's roles; set includeindirect to include roles received through groups. assigned_to is an immutable user or group ID.

list_schemas

List the custom user schemas defined for the account, with their fields and types. Use the schemaname values as customfieldmask with listusers or getuser (projection 'custom'), and as keys under customschemas in update_user. Google does not paginate this list.

get_schema

Get one custom user schema by name or immutable ID, with its fields, types and who can read them. Use list_schemas to find valid schema keys.

list_users

List Workspace domain users with Directory query filters and page tokens. Use query for server-side searches such as isSuspended=true; set projection=custom with customfieldmask for custom schemas. Returns user IDs and page_info for the next page.

get_user

Get a Workspace user by primary email or immutable user ID. Use listusers to find valid keys. Set projection=custom with customfield_mask (or full) to include custom schemas.

create_user

Create a Workspace user account. Requires a unique primary email, given name, and family name. A random password is set and never returned, so an admin must reset the password in the Admin console before the user can sign in. Use listorgunits to find valid orgunitpath values. Returns the created user and immutable ID.

update_user

Patch a Workspace user's Directory fields, such as suspended, name, or orgUnitPath. Use listusers to find the user key and listorg_units for valid orgUnitPath values; provide only fields to change. Credential and recovery fields (password, hashFunction, changePasswordAtNextLogin, recoveryEmail, recoveryPhone) are rejected.

delete_user

Delete a Workspace user account. The account leaves the active domain and can be restored during Google's recovery period with undeleteuser. Use listusers to confirm the correct user key.

undelete_user

Restore a recently deleted Workspace user to an organizational unit. Requires the immutable ID from listusers with showdeleted=true and an org unit path from listorgunits. This reverses delete_user while the account remains recoverable.

validate_credential

Validate Google Workspace Directory API access by listing one user. An administrator role and the Directory API user read scope are required.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Google Workspace  MCP server

FAQs on using Merge's Google Workspace  MCP server

Explore other MCP servers built and managed by Merge

tavily
Tavily
teamcity
TeamCity
teamwork
Teamwork.com
ticketmaster
Ticketmaster
tiktok
TikTok
tiktok_business
TikTok for Business
tinyfish
TinyFish
tinypng_api
TinyPNG
trello
Trello
tripadvisor
TripAdvisor
ukg_pro
UKG Pro
ukg_pro_hcm_recruit
UKG Pro HCM Recruitment & Onboarding
ukg_pro_wfm
UKG Pro WFM
unify
Unify
unily
Unily
vercel
Vercel
vestaboard
Vestaboard
visualping
VisualPing
warp
Warp
warp_dev
Warp (warp.dev)
weather
Weather
webflow
Webflow
whatsapp
WhatsApp Business
whoop
WHOOP

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now