Skip to main content
Glama
conorbronsdon

Google Workspace (GWS) MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
gws-pathNoPath to the gws binary.gws
servicesNoComma-separated list of services to expose (e.g., drive,sheets,calendar,docs,gmail). Default is all services.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
drive_files_listB

List files in Google Drive. Supports search queries via the 'q' parameter. Shared drive files are included automatically.

drive_files_getA

Get a file's metadata by ID. Shared drive files are supported automatically.

drive_files_createA

Create a new file in Google Drive. Use with bodyParams for metadata and optionally upload a local file.

drive_files_copyA

Copy a file. Useful for converting formats (e.g. markdown to Google Doc).

drive_files_updateC

Update a file's metadata or content.

drive_files_deleteA

Permanently delete a file.

drive_files_exportA

Export a Google Workspace file (Doc, Sheet, Slide) to a specific format. Returns JSON with export metadata. Use drive_files_download for automatic export with content returned inline.

drive_permissions_createB

Share a file by creating a permission.

drive_permissions_listA

List all permissions on a file. Use to audit sharing state — e.g. a permission with type "anyone" means the file is publicly accessible; there is no separate is-public field. Pass fields (e.g. "permissions(id,type,role,emailAddress,domain)") to identify grantees — the default response omits emailAddress/domain.

drive_permissions_updateA

Change an existing permission's role on a file (e.g. reader to writer). Can remove capabilities by downgrading a role. Ownership transfers are not supported. Per the Drive API: concurrent permissions operations on the same file aren't supported, only the last update is applied.

drive_permissions_deleteA

Revoke a permission from a file, removing that user's/group's/domain's access. Per the Drive API: concurrent permissions operations on the same file aren't supported, only the last update is applied.

drive_comments_listB

List comments on a file.

drive_comments_getB

Get a single comment on a file.

drive_comments_createA

Add a comment to a file. Set anchor to bind it to an app-defined region — Drive stores this as an opaque JSON string you define yourself, and does not validate or interpret it. Google Workspace editor apps (Docs/Sheets/Slides) still display comments created this way as unanchored; use the Docs/Sheets/Slides APIs directly if visual anchoring in those editors matters.

drive_comments_updateA

Change the text of an existing comment. This overwrites the comment's content; the previous text is not retained. Only the comment's own author can update it — the API rejects the request otherwise. The resolved state can't be changed here: see drive_replies_create's action field.

drive_comments_deleteA

Permanently delete a comment. Only the comment's own author can delete it — the API rejects the request otherwise.

drive_replies_listB

List replies to a comment.

drive_replies_getA

Get a single reply to a comment.

drive_replies_createA

Add a reply to a comment, or resolve/reopen it — a comment can only be resolved or reopened by posting a reply with action set. content is required unless action is set; combine both to leave closing/reopening text. Setting action changes the parent comment's resolved field, but resolving is advisory only: the API keeps accepting further replies and doesn't hide anything itself, it's on the client to act on resolved being true (e.g. hide or dim the thread).

drive_replies_updateA

Change the text of an existing reply. This overwrites the reply's content; the previous text is not retained. Only the reply's own author can update it — the API rejects the request otherwise. Does not support changing action — use drive_replies_create to resolve/reopen.

drive_replies_deleteA

Permanently delete a reply. Only the reply's own author can delete it — the API rejects the request otherwise.

sheets_getB

Get spreadsheet metadata.

sheets_values_getB

Read values from a spreadsheet range.

sheets_values_updateC

Write values to a spreadsheet range.

sheets_values_appendA

Append values after the last row of a spreadsheet range.

sheets_batchUpdateA

Apply updates to a spreadsheet (conditional formatting, cell/border formatting, adding sheets, and more). Can also permanently delete content — e.g. removing a sheet or a conditional formatting rule — with no undo via the API.

calendar_events_listA

List events from a calendar.

calendar_events_getA

Get a single calendar event by ID.

calendar_events_insertB

Create a new calendar event.

calendar_events_updateA

Update an existing calendar event with patch semantics (only supplied fields change).

calendar_events_deleteB

Delete a calendar event.

calendar_freebusy_queryA

Query free/busy information for one or more calendars over a time range.

docs_getA

Get a Google Doc's content and metadata.

docs_createB

Create a new empty Google Doc.

docs_batchUpdateA

Apply updates to a Google Doc (insert, format, replace, or permanently delete content).

slides_getA

Get a presentation's slides, layouts, masters, and page elements.

slides_createA

Create a new blank presentation.

slides_batchUpdateA

Apply updates to a presentation (insert/update/delete slides, text, shapes, tables, etc). Delete requests in a batch are permanent — the API has no undo.

slides_pages_getA

Get a single page (slide, layout, or master) from a presentation.

slides_pages_getThumbnailB

Get a thumbnail image URL for a page (slide, layout, or master).

gmail_messages_listB

List Gmail messages matching a query.

gmail_messages_getA

Get a single Gmail message by ID.

gmail_threads_listB

List Gmail threads matching a query.

gmail_threads_getA

Get a full Gmail thread by ID (all messages in the conversation).

gmail_threads_modifyA

Modify a Gmail thread: add/remove labels. To archive, remove INBOX. To mark read, remove UNREAD. To star, add STARRED.

tasks_tasklists_listA

List the authenticated user's task lists.

tasks_tasklists_getA

Get a task list by ID.

tasks_tasklists_insertA

Create a new task list.

tasks_tasklists_updateA

Update a task list (only supplied fields change).

tasks_tasklists_deleteA

Delete a task list. If it contains assigned tasks, the originals (in Docs/Chat Spaces) are also removed.

tasks_tasks_listA

List tasks in a task list. Excludes hidden and assigned tasks by default; set showHidden/showAssigned to include them.

tasks_tasks_getA

Get a task by ID.

tasks_tasks_insertA

Create a new task. Use parent to nest as a subtask, previous to position after a sibling.

tasks_tasks_updateA

Update a task (only supplied fields change). Common use: complete a task by setting status to "completed".

tasks_tasks_moveA

Move a task within its list or to another list. Use parent/previous to set position; destinationTasklist to change list.

tasks_tasks_deleteA

Delete a task. If assigned from Docs/Chat Spaces, the original is also removed.

tasks_tasks_clearA

Hide all completed tasks in a list. Cleared tasks are not deleted but stop appearing in default list responses.

drive_files_downloadB

Download a file's content from Google Drive. Returns the text content for text files, or a base64-encoded string for binary files. For Google Docs/Sheets/Slides, exports to a readable format (plain text by default).

gmail_drafts_createA

Create a Gmail draft. Pass threadId to attach the draft to an existing conversation (it will appear as a reply within that thread). The draft is NOT sent — open Gmail to review and send.

drive_permissions_transferOwnershipA

Immediately transfer ownership of a file to another Google Workspace account in the SAME organization. The current owner is downgraded to writer as soon as this call succeeds — there is no separate acceptance step — and Google sends the new owner a notification email that cannot be disabled. Only works for files in "My Drive"; not supported for files in a shared drive, since the organization owns those, not an individual. For a transfer between personal/consumer Google accounts, use drive_permissions_proposeOwnershipTransfer instead, which requires the recipient's separate acceptance and does not transfer ownership immediately. Google Workspace ownership cannot be transferred to an account outside the organization.

drive_permissions_proposeOwnershipTransferA

Propose transferring ownership of a file between personal/consumer Google accounts (use drive_permissions_transferOwnership instead for a same-organization Workspace transfer, which completes immediately). Google Workspace ownership cannot be transferred to an account outside the organization. This does NOT transfer ownership by itself: it sets role=writer + pendingOwner=true, and the prospective owner must separately accept by setting role=owner + transferOwnership=true on their own permission, under their own credentials. Google sends the recipient a notification email that cannot be disabled; nothing changes for the current owner unless and until they accept. Only individual users can be proposed — not groups, domains, or service accounts (service accounts have no Drive storage quota and the transfer will fail). Ownership transfers are not supported for files in shared drives.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 61 tools

Disambiguation4/5

Tools are largely distinct by service and resource (drive_files_*, drive_permissions_*, sheets_values_*, etc.), with clear action suffixes. A few near-overlaps exist—drive_files_export vs. drive_files_download and the two ownership-transfer tools—but their descriptions explicitly differentiate them.

Naming Consistency4/5

The naming scheme is predominantly service_prefix_resource_action (e.g. calendar_events_get, tasks_tasks_delete), which is predictable and coherent. Minor deviations like sheets_batchUpdate, slides_pages_getThumbnail, calendar_freebusy_query, and tasks_tasks_clear use different verb styles or camelCase, but the pattern remains easy to follow.

Tool Count3/5

61 tools is a large surface, far beyond the typical well-scoped toolkit. However, the server covers seven distinct Google Workspace services (Drive, Docs, Sheets, Slides, Calendar, Gmail, Tasks), each with layered CRUD operations, so the count is heavy but arguably justified by the breadth.

Completeness4/5

The tool set covers core lifecycle operations for most included services: Drive files/permissions/comments, Sheets values and batch updates, Docs/Slides creation and mutation, Calendar events, and Tasks lists/tasks. Notable gaps exist—no Gmail send or label management, no direct delete for Docs/Sheets/Slides files beyond Drive—but agents can work around most of these via drafts, drive_files_delete, or batchUpdate.

Maintenance

ActivityNo data
ResponsivenessWithin a week