Google Workspace (GWS) MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| gws-path | No | Path to the gws binary. | gws |
| services | No | Comma-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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| drive_files_listA | 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_createB | Create a new file in Google Drive. Use with bodyParams for metadata and optionally upload a local file. |
| drive_files_copyB | 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. |
| 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_appendB | Append values after the last row of a spreadsheet range. |
| calendar_events_listB | List events from a calendar. |
| calendar_events_getA | Get a single calendar event by ID. |
| calendar_events_insertC | Create a new calendar event. |
| calendar_events_updateA | Update an existing calendar event with patch semantics (only supplied fields change). |
| calendar_events_deleteA | Delete a calendar event. |
| docs_getB | Get a Google Doc's content and metadata. |
| docs_createB | Create a new empty Google Doc. |
| docs_batchUpdateC | Apply updates to a Google Doc (insert text, formatting, etc). |
| gmail_messages_listB | List Gmail messages matching a query. |
| gmail_messages_getB | 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_insertB | 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_downloadA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 39 tools
Tools are clearly separated by service prefix (calendar_events_, docs_, drive_files_, etc.) and each has a distinct purpose. The few pairs that could be confused (e.g., drive_files_download vs. drive_files_export) are well-differentiated by their descriptions.
All tools follow a consistent verb_noun pattern with service prefix (e.g., calendar_events_list, drive_files_create). The naming convention is uniform and predictable across all services.
39 tools cover multiple Google Workspace services (Calendar, Docs, Drive, Gmail, Sheets, Tasks) with essential CRUD and some extra operations. While on the higher end, the count is justified by the breadth of the domain and each tool serves a clear function.
The tool surface covers the full lifecycle for each service: create, read, update, delete, plus service-specific actions like move, export, and modify. There are no obvious dead ends, and any gaps (e.g., docs deletion) are handled by other tools (drive_files_delete).