Google Workspace MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| gmail_searchA | Search the mailbox with Gmail's own query syntax (from:, to:, subject:, has:attachment, newer_than:7d, is:unread). Returns message ids and snippets; use gmail_get_message for a full body. |
| gmail_get_messageC | One message in full, including the body and headers. |
| gmail_get_threadB | A whole conversation in order. Prefer this over fetching messages one by one when you need context. |
| gmail_create_draftA | Write a draft. It is NOT sent: it appears in Drafts for a person to review. This is the safe way to have an agent write email. |
| gmail_send_draftA | Send a draft that already exists. Separate from creating one on purpose: an agent drafts, a person sends. Cannot be undone. |
| gmail_modify_labelsA | Add or remove labels on a message. Use this to archive (remove INBOX), mark read (remove UNREAD) or triage. |
| gmail_list_labelsA | Every label with its id. Label ids are needed by gmail_modify_labels and are not the same as their display names. |
| drive_searchA | Find files with Drive query syntax (name contains 'x', mimeType='application/pdf', modifiedTime > '2026-01-01'). Returns id, name, type and link. |
| drive_get_fileB | Metadata for one file: name, type, size, owners, sharing and link. |
| drive_exportA | Read the CONTENT of a Google Doc, Sheet or Slide as text. drive_get_file returns metadata only, so this is the one to use when you need what is inside. |
| drive_create_folderA | Create a folder, optionally inside another. |
| drive_shareA | Grant someone access to a file. Sharing is visible to the other person immediately, so check the address before calling. |
| drive_trashA | Move a file to the trash. Recoverable for 30 days, unlike a permanent delete, which this tool deliberately does not do. |
| sheets_readB | Read a cell range, e.g. 'Sheet1!A1:D50'. Returns rows as arrays. |
| sheets_writeB | Overwrite a range with new values. Existing cells in that range are replaced. |
| sheets_appendA | Add rows to the end of a sheet without touching what is there. Prefer this over sheets_write when adding data. |
| sheets_getA | Spreadsheet structure: every sheet name, id, and dimensions. Read this before a range query so the sheet name is right. |
| sheets_createA | Create a new spreadsheet and return its id. |
| docs_getA | Read a Google Doc's full structured content. For plain prose, drive_export with text/markdown is usually easier to work with. |
| docs_createA | Create a new Google Doc with a title, and optionally an opening body of text. |
| docs_appendA | Add text to the end of a Doc without touching what is already there. |
| calendar_list_eventsA | Events in a window. Times are RFC3339, e.g. 2026-09-01T00:00:00Z. Defaults to the primary calendar. |
| calendar_create_eventA | Create an event. Adding attendees emails them immediately, so confirm the list before calling with any. |
| calendar_update_eventA | Change an existing event. Only the fields you pass are altered. |
| calendar_delete_eventA | Delete an event. Attendees are notified that it was cancelled, and it cannot be undone. |
| calendar_list_calendarsA | Every calendar this account can see, with its id. Needed before working on anything other than primary. |
| tasks_listsB | Every task list with its id. |
| tasks_listA | Tasks in a list. Completed ones are hidden unless you ask for them. |
| tasks_createA | Add a task. |
| tasks_completeC | Mark a task done. |
| slides_getB | A presentation's structure and the text on every slide. |
| slides_createA | Create an empty presentation and return its id. |
| forms_getC | A form's questions and settings. |
| forms_responsesC | Every response to a form. |
| contacts_searchB | Search your own contacts by name, email or company. |
| contacts_listB | All your contacts, paged. |
| workspace_rawA | Call any Google Workspace API method the curated tools do not cover. The CLI is generated from Google's discovery service, so this reaches roughly 400 methods across drive, gmail, sheets, docs, slides, calendar, tasks, people, chat, forms, keep, meet, script and admin-reports. Use workspace_schema first to learn the exact shape. |
| workspace_schemaA | The exact parameters and request body a method expects, straight from Google's discovery service. Read this before workspace_raw rather than guessing field names. |
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 38 tools
Tools are cleanly separated by service prefix (gmail_, drive_, sheets_, docs_, calendar_, tasks_, slides_, forms_, contacts_) and each has a distinct action. Overlapping-looking pairs like drive_get_file vs drive_export and gmail_create_draft vs gmail_send_draft are explicitly disambiguated in their descriptions. An agent can reliably pick the right tool.
A consistent service_action snake_case pattern dominates (gmail_search, drive_search, sheets_read, calendar_create_event, workspace_raw). Minor deviations exist: tasks_lists vs tasks_list use confusing plural/singular forms, and gmail_modify_labels uses a different verb style, but overall it stays readable.
38 tools is heavy in absolute terms but spread across ~10 distinct Google products, averaging only ~4 per service, so each tool earns its place. The breadth of Workspace justifies the count, though it sits above the ideal range and could be trimmed.
Broad lifecycle coverage across Gmail, Drive, Sheets, Docs, Calendar, Tasks, Slides, Forms and Contacts, plus workspace_raw/workspace_schema as an escape hatch. Gaps remain (e.g. no docs content edit, no tasks update/delete, no gmail message delete, Drive only trashes), but the raw API tool lets agents work around them.