google-workspace-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_OAUTH_CLIENT_ID | Yes | Google OAuth client ID from Google Cloud Console | |
| GOOGLE_OAUTH_CLIENT_SECRET | Yes | Google OAuth client secret from Google Cloud Console |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gmail_searchA | Search Gmail messages. Uses Gmail query syntax: 'is:unread', 'from:user@example.com', 'subject:meeting has:attachment', 'after:2026/01/01', etc. Empty query returns recent messages. |
| gmail_read_messageA | Read the full content of a Gmail message by its ID. |
| gmail_read_threadB | Read all messages in a Gmail thread by its thread ID. |
| gmail_sendB | Send an email. Supports plain text and HTML, CC/BCC, and threading for replies. |
| gmail_draftB | Create a Gmail draft. All fields are optional for work-in-progress drafts. |
| gmail_list_labelsA | List all Gmail labels (system and user-created). |
| gmail_modify_labelsA | Modify labels on a message. Use to archive (remove INBOX), mark read (remove UNREAD), star (add STARRED), etc. |
| gmail_send_draftC | Send an existing Gmail draft. |
| gmail_get_attachmentB | Download a Gmail attachment and return its base64 data. |
| gmail_trashB | Move a Gmail message to the trash. |
| gmail_untrashB | Remove a Gmail message from the trash. |
| gmail_create_labelC | Create a new Gmail label. |
| gmail_delete_labelC | Delete a Gmail label. |
| gmail_list_filtersA | List all Gmail filters. |
| gmail_create_filterC | Create a Gmail filter. criteria: {from, to, subject, query, hasAttachment}. action: {addLabelIds, removeLabelIds, forward}. |
| gmail_delete_filterC | Delete a Gmail filter. |
| gmail_get_vacationA | Get current Gmail vacation/auto-reply settings. |
| gmail_set_vacationC | Set Gmail vacation/auto-reply responder. |
| calendar_list_calendarsA | List all calendars the user has access to. |
| calendar_get_eventsB | Get calendar events. Filter by time range (RFC3339 format) and/or text search. |
| calendar_create_eventA | Create a calendar event. Use RFC3339 datetimes for timed events or YYYY-MM-DD for all-day. Set add_google_meet=True to auto-generate a Google Meet link. |
| calendar_update_eventA | Update an existing calendar event. Only provided fields are changed. |
| calendar_delete_eventC | Delete a calendar event. |
| calendar_freebusyB | Query free/busy info for calendars. Returns busy time blocks. |
| calendar_list_recurring_instancesB | List instances of a recurring event. |
| calendar_quick_addA | Create an event from natural language (e.g. 'Lunch with John tomorrow at noon'). |
| meet_create_spaceA | Create a new Google Meet meeting space. Returns meeting URI and code. |
| meet_get_spaceA | Get details about a Google Meet meeting space by its resource name (e.g. 'spaces/abc-defg-hij'). |
| meet_list_participantsA | List participants and their sessions for a conference record (e.g. 'conferenceRecords/abc-defg-hij'). |
| meet_get_artifactsC | Get recordings, transcripts, and transcript entries for a conference record. |
| meet_end_conferenceC | End an active conference in a meeting space. |
| meet_list_conference_recordsC | List past conference records (meeting history). |
| meet_list_participant_sessionsB | List sessions for a specific participant in a conference. |
| drive_searchA | Search Google Drive files. Uses Drive query syntax: 'name contains "report"', 'mimeType="application/pdf"', etc. |
| drive_read_fileA | Read the text content of a Drive file (Google Docs/Sheets/Slides exported, or raw text files). |
| drive_create_fileC | Create a new file in Drive. Set as_google_doc=True to create a Google Doc. |
| drive_list_folderB | List contents of a Drive folder. |
| drive_share_fileC | Share a Drive file. Roles: 'reader', 'writer', 'commenter'. |
| drive_create_folderB | Create a folder in Google Drive. |
| drive_copy_fileC | Copy a file in Google Drive. |
| drive_exportC | Export a Google Workspace file to a format (PDF, DOCX, CSV, XLSX, PPTX, PNG, etc). |
| drive_add_commentB | Add a comment to a Drive file. |
| drive_list_commentsC | List comments on a Drive file. |
| drive_list_revisionsB | List file revisions (version history). |
| drive_list_permissionsC | List sharing permissions on a file. |
| drive_delete_permissionB | Remove a sharing permission from a file. |
| drive_trashC | Move a file to the trash. |
| drive_untrashC | Restore a file from the trash. |
| docs_createA | Create a new Google Doc with optional initial text content. |
| docs_readB | Read the full text content of a Google Doc. |
| docs_insert_textA | Insert text at a specific position in a Google Doc. Index 1 = beginning. |
| docs_find_replaceC | Find and replace text in a Google Doc. |
| docs_append_textB | Append text to the end of a Google Doc. |
| docs_insert_tableC | Insert a table into a Google Doc. |
| docs_insert_imageB | Insert an image into a Google Doc from a URL. |
| docs_format_textC | Apply formatting (bold, italic, underline, font size, color) to a text range in a Google Doc. |
| docs_insert_bulletsB | Apply bullet or numbered list formatting to paragraphs in a Google Doc. |
| docs_insert_page_breakC | Insert a page break in a Google Doc. |
| sheets_readB | Read values from a Google Sheet. Use A1 notation for ranges (e.g. 'Sheet1!A1:D10'). |
| sheets_writeC | Write values to a Google Sheet. Values is a 2D array like [['Name','Age'],['Alice',30]]. |
| sheets_appendA | Append rows to a Google Sheet after existing data. |
| sheets_createA | Create a new Google Spreadsheet with optional custom sheet/tab names. |
| sheets_clearB | Clear values from a range in a Google Sheet. |
| sheets_get_infoA | Get spreadsheet metadata — title, sheets/tabs, row and column counts. |
| sheets_batch_updateA | Write to multiple ranges in one request. data: [{"range": "A1", "values": [[...]]}]. |
| sheets_add_sheetB | Add a new sheet/tab to a spreadsheet. |
| sheets_delete_sheetA | Delete a sheet/tab (by numeric sheet ID, not name). |
| sheets_merge_cellsC | Merge cells in a sheet. Indices are 0-based, end is exclusive. |
| sheets_add_chartC | Add a chart. Types: BAR, LINE, AREA, COLUMN, SCATTER, COMBO, STEPPED_AREA. |
| sheets_add_conditional_formatC | Add conditional formatting. rule_type: NUMBER_GREATER, TEXT_CONTAINS, CUSTOM_FORMULA, BLANK, etc. |
| sheets_add_named_rangeC | Create a named range in a spreadsheet. |
| tasks_list_tasklistsA | List all Google Tasks task lists. |
| tasks_listC | List tasks in a task list. Use '@default' for the primary list. |
| tasks_createA | Create a new task. Set parent for subtasks. Due date in RFC3339 format. |
| tasks_updateB | Update a task. Status can be 'needsAction' or 'completed'. |
| tasks_deleteC | Delete a task. |
| tasks_create_tasklistC | Create a new task list. |
| tasks_moveA | Move/reorder a task. Set parent to make it a subtask, previous to position after another task. |
| tasks_clear_completedC | Clear all completed tasks from a task list. |
| contacts_searchB | Search contacts by name, email, or phone number. |
| contacts_listB | List all contacts sorted by last name. |
| contacts_createB | Create a new contact with name, email, phone, organization, and title. |
| contacts_updateB | Update a contact. Resource name from contacts_search/contacts_list (e.g. 'people/c123'). |
| contacts_deleteB | Delete a contact by resource name. |
| contacts_list_groupsB | List all contact groups (labels). |
| contacts_create_groupC | Create a new contact group. |
| contacts_modify_group_membersC | Add or remove contacts from a contact group. |
| contacts_batch_createA | Create multiple contacts at once. Each dict: {givenName, familyName, email, phone, organization, title}. |
| contacts_batch_deleteB | Delete multiple contacts at once. |
| contacts_get_photoB | Get the photo URL for a contact. |
| slides_createB | Create a new Google Slides presentation. |
| slides_readA | Read a presentation's metadata and text content from all slides. |
| slides_add_slideB | Add a slide. Layouts: BLANK, CAPTION_ONLY, TITLE, TITLE_AND_BODY, TITLE_AND_TWO_COLUMNS. |
| slides_add_textB | Add text to a slide. Creates a new text box if shape_id is empty. |
| slides_insert_shapeC | Insert a shape (RECTANGLE, ELLIPSE, TRIANGLE, STAR, ARROW_EAST, etc) onto a slide. |
| slides_insert_imageB | Insert an image onto a slide from a URL. |
| slides_insert_tableC | Insert a table onto a slide. |
| slides_insert_videoB | Insert a YouTube video onto a slide. video_id is the YouTube video ID. |
| slides_format_textB | Format text within a shape on a slide (bold, italic, size, color). |
| slides_get_thumbnailB | Get a thumbnail image URL for a slide. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shanebrady77/google-workspace-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server