Google Workspace
Google Workspace MCP server for Gmail, Calendar, Drive, Docs, Sheets, Slides, Contacts, and more
Connector by mindstone · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mindstone-mcp-server-google-workspace
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 51 read · 46 write · 27 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 124
Read from the source code; the running server may list different tools.
Read 51 · Look things up without changing anything.
authenticate_workspace_accountbatch_read_workspace_spreadsheet_valuesdownload_drive_filedownload_file_revisiondownload_workspace_attachmentextract_workspace_document_idextract_workspace_presentation_idextract_workspace_spreadsheet_idfind_free_slotsget_current_timeget_formget_form_response
Show 39 more tools
get_meet_transcript_entriesget_workspace_calendar_eventget_workspace_contactsget_workspace_draftget_workspace_email_threadget_workspace_gmail_settingsget_workspace_labelget_workspace_slideget_workspace_slide_thumbnaillist_chat_messageslist_chat_spaceslist_drive_fileslist_file_revisionslist_form_responseslist_formslist_meet_conference_recordslist_meet_transcriptslist_shared_driveslist_task_listslist_taskslist_workspace_accountslist_workspace_calendar_eventslist_workspace_calendarslist_workspace_commentslist_workspace_document_tabslist_workspace_draftslist_workspace_label_filterslist_workspace_labelslist_workspace_presentation_slideslist_workspace_send_aslist_workspace_spreadsheet_sheetsquery_drive_activityread_workspace_documentread_workspace_presentationread_workspace_spreadsheetread_workspace_spreadsheet_valuessearch_drive_filessearch_workspace_contactssearch_workspace_emails
Write 46 · Create, change, send or run things.
add_workspace_spreadsheet_sheetappend_to_workspace_documentappend_to_workspace_spreadsheetbatch_update_workspace_documentbatch_update_workspace_presentationbatch_update_workspace_spreadsheet_valuescomplete_taskcompose_workspace_emailcopy_drive_filecreate_drive_foldercreate_taskcreate_workspace_calendar_event
Show 34 more tools
create_workspace_commentcreate_workspace_contactcreate_workspace_documentcreate_workspace_draftcreate_workspace_labelcreate_workspace_label_filtercreate_workspace_presentationcreate_workspace_spreadsheetfind_and_replace_workspace_documentfind_and_replace_workspace_spreadsheetformat_workspace_spreadsheet_cellsmanage_workspace_calendar_eventmanage_workspace_label_assignmentmark_workspace_email_readmark_workspace_email_unreadmove_drive_filereplace_workspace_documentreply_to_workspace_commentresolve_workspace_commentsend_chat_messagesend_workspace_draftsend_workspace_emailuntrash_drive_fileuntrash_workspace_emailupdate_drive_permissionsupdate_taskupdate_workspace_contactupdate_workspace_draftupdate_workspace_labelupdate_workspace_label_filterupdate_workspace_spreadsheet_valuesupdate_workspace_vacation_responderupload_drive_fileupload_workspace_attachment
Delete 27 · Delete, drop, revoke or wipe things.
add_workspace_document_tabarchive_workspace_emailclear_workspace_spreadsheet_valuescopy_workspace_document_tabdelete_drive_filedelete_taskdelete_workspace_attachmentdelete_workspace_calendar_eventdelete_workspace_commentdelete_workspace_document_tabdelete_workspace_draftdelete_workspace_label
Show 15 more tools
delete_workspace_label_filterdelete_workspace_spreadsheet_sheetduplicate_workspace_spreadsheet_sheetinsert_workspace_document_textinsert_workspace_spreadsheet_dimensionmanage_workspace_attachmentmanage_workspace_draftmanage_workspace_labelmanage_workspace_label_filterremove_workspace_accountrespond_to_workspace_calendar_eventtrash_drive_filetrash_workspace_emailupdate_workspace_document_tabupdate_workspace_spreadsheet_sheet
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
GOOGLE_CLIENT_SECRET
Other settings (environment variables or headers).
ACCOUNTS_PATHCREDENTIALS_PATHGAUTH_FILEGOOGLE_CLIENT_IDGOOGLE_WORKSPACE_DISABLE_REFRESHGOOGLE_WORKSPACE_REQUEST_TIMEOUT_MSMCP_WORKSPACE_PATHWORKSPACE_BASE_PATH
Network hosts it talks to 28
accounts.google.com· found in codebabel.dev· found in codechaijs.com· found in codecyclonedx.org· found in codedevelopers.google.com· found in codedocs.google.com· found in codedocs.googleapis.com· found in codeforms.googleapis.com· found in codegithub.com· found in codegmail.googleapis.com· found in codegoogleapis.com· found in codeistanbul.js.org· found in codemail.google.com· found in codemswjs.io· found in codemths.be· found in codeoauth2.googleapis.com· found in codeoxc.rs· found in codepeople.googleapis.com· found in codepostcss.org· found in coderolldown.rs· found in codesheets.googleapis.com· found in codeslides.googleapis.com· found in codestandardschema.dev· found in codesuperchupu.dev· found in codetasks.googleapis.com· found in codevite.dev· found in codeyargs.js.org· found in codezod.dev· found in code
Files it touches
- Your home directory (~)
- Any path the agent passes to its tools
Tools (124)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_workspace_document_tabcan change or delete dataAdd a new, empty tab to a Google Docs document, at the top level or as a sub-tab. Tab titles must be unique across the whole document, including sub-tabs; a title that is already used is refused before anything changes. Without position the tab goes last among its siblings. Returns the new tab's id and where it ended up. A Docs link containing ?tab=t.xxxx points at one tab; "t.xxxx" is its tab_id. position is 0-based among the new tab's siblings: 0 = first; the numbers in list outputs start at 1. Usage examples: 1. Add a top-level tab at the end: { "email…
add_workspace_spreadsheet_sheetAdd a new sheet (tab) to an existing Google Sheets spreadsheet. Usage examples: 1. Add sheet with default size: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "title": "Q2 Data" } 2. Add sheet with custom dimensions: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "title": "Large Dataset", "row_count": 5000, "column_count": 52 }
append_to_workspace_documentAppend text to the end of a Google Docs document. Without tab_id this acts on the first tab. Pass tab_id to append to the end of one tab. A Docs link containing ?tab=t.xxxx points at one tab; "t.xxxx" is its tab_id. Usage examples: 1. Simple append: { "email": "user@example.com", "document_id": "1ABC123xyz", "text": "\n\n## New Section\n\nAdditional content here." } 2. Append to one tab: { "email": "user@example.com", "document_id": "1ABC123xyz", "tab_id": "t.abc123", "text": "\nAction items reviewed." } The text is inserted at the end of the …
append_to_workspace_spreadsheetAppend rows of data to a Google Sheets spreadsheet. Data is added after the last row containing data in the specified range. Values are interpreted by Google Sheets (formulas, dates, etc.) by default. If the target column ends with a fill-down formula, this tool warns that the append breaks the pattern. Use overwrite_formulas: true to acknowledge and suppress the warning. Usage examples: 1. Append single row: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "range": "Sheet1!A:D", "values": [["John", "Doe", "john@example.com", "2024-01-15"]] } …
archive_workspace_emailcan change or delete dataArchive a Gmail message (remove it from the Inbox). The message remains accessible via search and labels. Supports batch: provide either a single message_id or an array of message_ids. Note: This operates on individual messages, not entire threads. Examples: 1. Archive one message: { "message_id": "18c5a2b3d4e5f6g7" } 2. Archive multiple: { "message_ids": ["18c5a2b3d4e5f6g7", "18c5a2b3d4e5f6g8"] }
authenticate_workspace_accountread-onlyRequest host-orchestrated Google Workspace account connection. This tool does not generate an OAuth URL or run a callback server. It returns a structured auth_required response that tells the MCP host to start its Google connection flow.
batch_read_workspace_spreadsheet_valuesread-onlyRead values from multiple ranges in a single API call. More efficient than multiple read_workspace_spreadsheet_values calls - uses 1 API request instead of N. Ideal for reading from multiple sheets or non-contiguous ranges. If you intend to write back to these ranges, call with value_view: 'shaped' first to see formulas — overwriting formulas with computed values is silently destructive. For large or unbounded reads, returns an anchor envelope (first 50 + last 10 rows + summary). Pass anchor_mode: 'never' for legacy first-N truncation. Use continuation_token to page through th…
batch_update_workspace_documentExecute multiple updates to a Google Docs document in a single request. This is the low-level API for modifying documents. It accepts an array of request objects that are passed directly to the Google Docs API batchUpdate endpoint. Common request types include: - insertText: Insert text at a specific location (index-based) - deleteContentRange: Delete a range of content by start/end index - replaceAllText: Find and replace text throughout the document - updateTextStyle: Format text (bold, italic, underline, font, color, link, etc.) - updateParagraphStyle: Chan…
batch_update_workspace_presentationExecute multiple updates to a Google Slides presentation in a single request. This is the low-level API for modifying presentations. It accepts an array of request objects that are passed directly to the Google Slides API batchUpdate endpoint. Common request types include: - createSlide: Add a new slide to the presentation - duplicateObject: Copy an existing slide or element - deleteObject: Remove a slide, shape, or other element - insertText: Add text to a shape or text box - replaceAllText: Find and replace text throughout the presentation - updateTextSt…
batch_update_workspace_spreadsheet_valuesUpdate values in multiple ranges in a single API call. More efficient than multiple update_workspace_spreadsheet_values calls - uses 1 API request instead of N. Ideal for writing to multiple sheets or non-contiguous ranges atomically. Prefer formulas over computed values. By default this tool refuses to overwrite cells that currently contain formulas; pass overwrite_formulas: true to force, or write to non-formula cells. Best-effort: protects against formula overwrite absent concurrent edits to the same range during the call. Sheets has no transactional write API; under concurrent…
clear_workspace_spreadsheet_valuescan change or delete dataClear values from a range in a Google Sheets spreadsheet. Removes cell contents (formulas and values); preserves formatting. Destructive — consider creating a backup via Drive copy_file before clearing important data. Does NOT refuse to clear formulas. For complete cell removal, use the Sheets UI. Usage examples: 1. Clear a range: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "range": "Sheet1!A1:D10" } 2. Clear entire sheet: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "range": "Sheet1" }
complete_taskMark a task as completed in Google Tasks. Example: { "task_list_id": "@default", "task_id": "abc123" } This is a convenience wrapper around update_task that sets status to 'completed'. WORKFLOW: 1. Use list_tasks to find the task_id of the task to complete 2. Call this tool with the task_id To un-complete a task, use update_task with status: "needsAction".
compose_workspace_emailOpen an inline editable email compose form before sending. Use this when the user wants an editable review form before sending. The form lets the user edit To, CC, BCC, Subject, and Body, then explicitly click Send. Do NOT use this when the user asks to save/create a Gmail draft, save to drafts, or save the already-drafted email without opening another review UI. Use create_workspace_draft for that. This tool does not send the email directly. It prepares the draft and launches the inline form.
copy_drive_fileCopy a file in Google Drive, optionally to a different folder. Example: { "file_id": "abc123", "name": "Copy of Document", "parent_id": "folder456" } WORKFLOW: Use search_drive_files or list_drive_files to find the file_id first. If no name is provided, Google Drive will name the copy "Copy of [original name]". If no parent_id is provided, the copy will be placed in the same folder as the original.
copy_workspace_document_tabcan change or delete dataCopy one tab's content, with its formatting, into another tab of the same Google Docs document. Copies text, heading and paragraph styles, character styles including links, bullets and numbering (mapped to Google Docs' preset list styles), tables (cell text, column widths, cell styles), page breaks and smart chips. A smart chip linking to a file you can't open becomes a titled link, and people and date chips become their text; the result lists both. Does NOT copy headers and footers, sub-tabs, images (inline or floating) or other special elements: those are listed unde…
Show 109 more tools
create_drive_folderCreate a new folder in Google Drive. IMPORTANT: Before creating: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist 3. Check Drive write permissions Features: - Create in root or subfolder - Set folder metadata Example Flow: 1. Check account access 2. Validate folder name 3. Create and return folder info
create_taskCreate a new task in Google Tasks. Examples: 1. Simple task: { "title": "Review PR #123" } 2. Task with details: { "title": "Review PR #123", "notes": "Check error handling", "due": "2026-01-20" } 3. Task in specific list: { "task_list_id": "MTIzNDU2", "title": "Grocery shopping" } WORKFLOW: Call list_task_lists first to find task_list_id for non-default lists. Omit task_list_id or use "@default" to add to primary task list. Returns the created task with its ID for future updates.
create_workspace_calendar_eventCreate a new calendar event. Usage examples: 1. Simple meeting (timed event): { "email": "user@example.com", "summary": "Team Standup", "start": { "dateTime": "2024-01-15T09:00:00-06:00", "timeZone": "America/Chicago" }, "end": { "dateTime": "2024-01-15T09:30:00-06:00", "timeZone": "America/Chicago" } } 2. All-day event (use "date" instead of "dateTime"): { "email": "user@example.com", "summary": "Company Holiday", "start": { "date": "2024-01-15" }, "end": { "date": "2024-01-16" } } NOTE: All-day events use EXCLUSIVE end date - a single-day event on …
create_workspace_commentCreate a new comment on a Google Drive file. Adds a comment visible to all collaborators on the file. Usage examples: 1. Simple comment: { "email": "user@example.com", "file_id": "1ABC123xyz", "content": "This section needs revision." } 2. With quoted content (highlights text in Docs): { "email": "user@example.com", "file_id": "1ABC123xyz", "content": "Should this be updated?", "quoted_file_content": { "mimeType": "text/html", "value": "the text to highlight" } }
create_workspace_contactCreate a new Google Contact. Requires the full Contacts permission (read + write). If the connected account only granted read access, the tool explains how to reconnect with the write permission. Parameters: - email: The Google account email to create the contact in - given_name / family_name: Contact name (at least a name or email_address is required) - email_address (+ optional email_type, e.g. "work") - phone_number (+ optional phone_type, e.g. "mobile") - organization / job_title - notes: Free-text note stored on the contact Example: { "given_…
create_workspace_documentCreate a new Google Docs document. Usage examples: 1. Create empty document: { "email": "user@example.com", "title": "Meeting Notes" } 2. Create with initial content: { "email": "user@example.com", "title": "Project Plan", "content": "# Overview\n\nThis document outlines..." } Returns the new document's ID and URL.
create_workspace_draftCreate a new Gmail draft. Use this when the user asks to save to drafts, save/create a Gmail draft, or save an already-drafted email without sending or opening another review UI. Supports plain text and HTML bodies, CC/BCC, reply threading, and attachments.
create_workspace_labelCreate a new Gmail label. Supports nested labels (use "/" separator, e.g. "Work/Projects"), custom colors, and visibility options. Cannot create system labels.
create_workspace_label_filterCreate a new Gmail filter for a label. Filters can match by sender, recipient, subject, content, attachments, and size. Actions include applying labels, marking as important/read, and archiving.
create_workspace_presentationCreate a new Google Slides presentation. Creates a blank presentation with the specified title. Usage examples: 1. Create presentation: { "email": "user@example.com", "title": "Q4 Review" } Returns the new presentation's ID and URL. Note: The presentation will contain a single blank slide.
create_workspace_spreadsheetCreate a new Google Sheets spreadsheet. Usage examples: 1. Create empty spreadsheet: { "email": "user@example.com", "title": "Q1 Budget" } 2. Create with named sheets: { "email": "user@example.com", "title": "Project Tracker", "sheetTitles": ["Tasks", "Timeline", "Resources"] } Returns the new spreadsheet's ID and URL.
delete_drive_filecan change or delete dataPermanently delete a file or folder from Google Drive. WARNING: This permanently deletes the file. It does NOT move to trash. Use with caution - deleted files cannot be recovered. IMPORTANT: Before deleting: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist 3. Check Drive write permissions 4. Confirm deletion is intended Example Flow: 1. Check account access 2. Validate file exists 3. Delete and confirm
delete_taskcan change or delete dataDelete a task from Google Tasks. Example: { "task_list_id": "@default", "task_id": "abc123" } WARNING: This permanently deletes the task. It cannot be recovered. WORKFLOW: 1. Use list_tasks to find the task_id of the task to delete 2. Call this tool with the task_id Consider using complete_task instead if you just want to mark it done.
delete_workspace_attachmentcan change or delete dataDelete an attachment from local storage. The attachment must have been previously downloaded. This action cannot be undone.
delete_workspace_calendar_eventcan change or delete dataDelete a calendar event with options for recurring events. For recurring events, you can specify a deletion scope: - "entire_series": Removes all instances of the recurring event (default) - "this_and_following": Removes the selected instance and all future occurrences while preserving past instances This provides more granular control over calendar management and prevents accidental deletion of entire event series.
delete_workspace_commentcan change or delete dataDelete a comment from a Google Drive file. Only the comment author can delete their own comments. Usage example: { "email": "user@example.com", "file_id": "1ABC123xyz", "comment_id": "AAAA" }
delete_workspace_document_tabcan change or delete dataWARNING: Deletes the tab AND ALL ITS SUB-TABS, with their content. This cannot be undone through the API (the document's version history in Google Docs can restore it). Read the tab, or copy what you need, first. Needs a real tab id: "default" is refused. A tab that has sub-tabs is refused, before anything is deleted, unless you pass delete_sub_tabs: true; the refusal says how many sub-tabs it has. Check the id against list_workspace_document_tabs first: deleting a parent tab by mistake deletes everything under it. The result lists every sub-tab that was deleted with i…
delete_workspace_draftcan change or delete dataDelete a Gmail draft permanently. This action cannot be undone.
delete_workspace_labelcan change or delete dataDelete a Gmail label by its ID. This permanently removes the label. Cannot delete system labels (INBOX, SENT, SPAM).
delete_workspace_label_filtercan change or delete dataDelete a Gmail filter by its ID. This permanently removes the filter. Use list_workspace_label_filters to find the filter ID first.
delete_workspace_spreadsheet_sheetcan change or delete dataDelete a sheet (tab) from a Google Sheets spreadsheet. WARNING: This permanently deletes the sheet and all its data. Destructive — cannot be undone via API. Read the sheet's contents (read_workspace_spreadsheet_values) before deletion if uncertain. Usage example: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "sheet_id": 123456789 } Get the numeric sheetId from list_workspace_spreadsheet_sheets and pass it as sheet_id. Note: Cannot delete the last remaining sheet in a spreadsheet.
download_drive_fileread-onlyDownload a file from Google Drive by its file ID. WORKFLOW - To download a file: 1. Call search_drive_files or list_drive_files to find the file 2. Find the file ID in the response (shown as "[id: xxxxxx]" in text output) 3. Pass that id as file_id here Example: { "file_id": "1BxiMVs0XRA5nFMdKvBd..." } COMMON MISTAKES: - Don't pass Drive URLs or file names - extract the id from search/list results - For Google Docs/Sheets/Slides, set mime_type for export (e.g., 'application/pdf')
download_file_revisionread-onlyDownload a specific revision (version) of a file from Google Drive. Example: { "file_id": "abc123", "revision_id": "r456" } WORKFLOW: 1. Use list_file_revisions to get available revision IDs 2. Call this tool with file_id and the desired revision_id The file will be saved with "_rev_[revision_id]" appended to the filename. NOTE: Not all revisions are downloadable. Google Workspace files may require export. If you want to "restore" a revision, download it and re-upload as a new version.
download_workspace_attachmentread-onlyDownload an attachment from a Gmail message or Calendar event to local storage. Returns attachment metadata including the local file path.
duplicate_workspace_spreadsheet_sheetcan change or delete dataDuplicate a sheet (tab) inside the same Google Sheets spreadsheet, for example to start a new campaign or month from a template tab. Google copies the values, formulas, formatting, merged cells and data validation, and gives the copy a new numeric sheetId (returned in the result). Without title Google names it "Copy of <name>"; titles must be unique in the spreadsheet. Without position the copy goes right after the source. To reuse the copy, write the new values over the old ones instead of clearing the range first — clearing also deletes any formulas in it. Usage exa…
extract_workspace_document_idread-onlyExtract a Google Docs document ID from a URL or validate an existing ID. This is a utility tool that helps parse various Google Docs URL formats. Supported formats: - https://docs.google.com/document/d/{id}/edit - https://docs.google.com/document/d/{id}/edit?... - https://docs.google.com/document/d/{id} - Just the document ID itself Usage examples: 1. Extract from URL: { "input": "https://docs.google.com/document/d/1ABC123xyz/edit" } 2. Validate existing ID: { "input": "1ABC123xyz" } Returns the extracted/validated documen…
extract_workspace_presentation_idread-onlyExtract a Google Slides presentation ID from a URL or validate an existing ID. This is a utility tool that helps parse various Google Slides URL formats. Supported formats: - https://docs.google.com/presentation/d/{id}/edit - https://docs.google.com/presentation/d/{id}/edit?... - https://docs.google.com/presentation/d/{id} - Just the presentation ID itself Usage examples: 1. Extract from URL: { "input": "https://docs.google.com/presentation/d/1ABC123xyz/edit" } 2. Validate existing ID: { "input": "1ABC123xyz" } Returns the…
extract_workspace_spreadsheet_idread-onlyExtract a Google Sheets spreadsheet ID from a URL or validate an existing ID. This is a utility tool that helps parse various Google Sheets URL formats. Supported formats: - https://docs.google.com/spreadsheets/d/{id}/edit - https://docs.google.com/spreadsheets/d/{id}/edit#gid=0 - https://docs.google.com/spreadsheets/d/{id} - Just the spreadsheet ID itself Usage examples: 1. Extract from URL: { "input": "https://docs.google.com/spreadsheets/d/1ABC123xyz/edit#gid=0" } 2. Validate existing ID: { "input": "1ABC123xyz" } Retur…
find_and_replace_workspace_documentFind and replace text throughout a Google Docs document. Without tab_id this replaces in every tab; pass tab_id to limit it to one tab (sub-tabs are separate tabs and are not included). A Docs link containing ?tab=t.xxxx points at one tab; "t.xxxx" is its tab_id. Usage examples: 1. Simple replacement: { "email": "user@example.com", "document_id": "1ABC123xyz", "find_text": "old text", "replace_text": "new text" } 2. Case-sensitive replacement: { "email": "user@example.com", "document_id": "1ABC123xyz", "find_text": "TODO", "replace_text": "DONE", "…
find_and_replace_workspace_spreadsheetFind and replace text throughout a Google Sheets spreadsheet. Can search entire spreadsheet or limit to a specific sheet. Supports regex, case-sensitive matching, and formula search. WARNING: include_formulas: true will rewrite formula text, not just values. Use sparingly and never with regex unless you've verified the pattern won't match formula syntax (=, ., etc.). Usage examples: 1. Simple find/replace in all sheets: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "find": "old text", "replacement": "new text" } 2. Replace in specific…
find_free_slotsread-onlyCheck availability for yourself and/or others. USE THIS to check when someone is free/busy (even if they only shared free/busy info with you). Returns busy time blocks only - no event titles or details. For full event details from a shared calendar (if you have reader access), use list_workspace_calendar_events with calendar_id instead. Usage examples: 1. Find my availability this week: { "email": "user@example.com" } 2. Find mutual availability with others (THE way to check someone else's availability): { "email": "user@example.com", "attendees": ["a…
format_workspace_spreadsheet_cellsApply formatting to a range of cells in a Google Sheets spreadsheet. Supports text formatting (bold, italic, etc.), colors, and borders. Uses 0-based row/column indices with exclusive end indices. Usage examples: 1. Make header row bold: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "sheet_id": 0, "start_row_index": 0, "end_row_index": 1, "start_column_index": 0, "end_column_index": 5, "bold": true } 2. Highlight cells with background color: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "sheet_id": 0, "start_row_in…
get_current_timeread-onlyGet the current date and time in the user's calendar timezone. IMPORTANT: Always call this before scheduling events or working with dates. LLMs may have outdated date information from training data. Returns: - datetime (ISO), date (YYYY-MM-DD), time, dayOfWeek, timezone, formatted string - upcomingDays: lookup table mapping day names to dates for the next 14 days e.g., { "today": "2024-12-24", "tomorrow": "2024-12-25", "Thursday": "2024-12-26", "next Monday": "2024-12-30", ... } Use upcomingDays to reliably convert "Thursday" or "next Tuesday" to ac…
get_formread-onlyGet the structure of a Google Form including all questions. Example: { "email": "user@example.com", "form_id": "1FAIpQLSe..." } Returns the form structure including: - Form title and description - All questions with their types, options, and settings - Page breaks and sections - Whether it's a quiz WORKFLOW: 1. Use list_forms to find the form_id 2. Call this tool to see the form structure 3. Use list_form_responses to get submissions COMMON MISTAKES: - Don't pass the form URL - use the form ID from list_forms - Form IDs typically start with "1FAIpQL..." but always get them from list_forms …
get_form_responseread-onlyGet a specific response by ID from a Google Form. Example: { "form_id": "1FAIpQLSe...", "response_id": "ACYDBNj..." } WORKFLOW: 1. Use list_form_responses to find the response_id 2. Call this tool to get full details for one response COMMON MISTAKES: - Don't confuse response_id with form_id - response_ids come from list_form_responses - Both form_id AND response_id are required Returns the complete response including: - Submission timestamp - Respondent email (if collected) - All answers with their values - Quiz grades and feedback (if applicable) Useful for getting details of a specific …
get_meet_transcript_entriesread-onlyList the entries (speaker + text) of one Google Meet transcript, paginated. Use this after list_meet_transcripts to read what was said in a meeting — for meeting recaps, action-item extraction, and prep for follow-up meetings. Parameters: - email: The Google account email - conference_record: The conference record — either the full resource name ("conferenceRecords/abc-123") or just the ID ("abc-123") - transcript: The transcript — a bare ID ("def-456"), a segment ("transcripts/def-456"), or a full resource name ("conferenceRecords/abc-123/transcript…
get_workspace_calendar_eventread-onlyGet a single calendar event by ID. By default, retrieves events from YOUR primary calendar. To get an event from a SHARED calendar: 1. First call list_workspace_calendars to find the calendar ID and verify canViewEvents is true 2. Pass the ID as calendar_id parameter NOTE: You can only see events if the calendar owner granted you "reader" access or higher. If you only have "freeBusyReader" access (canViewEvents: false), use find_free_slots instead. Returns full event JSON: id, summary, description, location, start/end times, attendees, organizer, htmlLink, conferenceData, and colorId. Note:…
get_workspace_contactsread-onlyRetrieve contacts from a Google account. IMPORTANT: Before using this tool: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist 3. Check required scopes include Contacts read access Parameters: - email: The Google account email to access contacts from - person_fields: Required fields to include in the response (e.g. "names,emailAddresses,phoneNumbers") - page_size: Optional maximum number of contacts to return - page_token: Optional token for pagination (to get the next page) Example Usage: 1. Call list_works…
get_workspace_draftread-onlyGet a specific Gmail draft by ID. Returns the full draft content including recipients, subject, body, and attachments.
get_workspace_email_threadread-onlyGet all messages in an email thread/conversation. Use this tool when you need to see the full context of an email conversation, including all replies and the original message. Use search_workspace_emails to FIND emails, then use this tool to get full thread context. Supports pagination for long threads: use offset + max_messages to page through. Example: first page { max_messages: 30 }, second page { offset: 30, max_messages: 30 }. Returns messages in chronological order (oldest first) with: - Full headers (from, to, cc, date, subject) - Body content (plain …
get_workspace_gmail_settingsread-onlyGet Gmail settings and profile information for a workspace account. IMPORTANT: Always verify account access first with list_workspace_accounts. Common Uses: - Check account configuration - Verify email settings - Access profile information Response includes: - Language settings - Signature settings - Vacation responder status - Filters and forwarding - Other account preferences
get_workspace_labelread-onlyGet a specific Gmail label by its ID. Returns label details including name, visibility settings, and color.
get_workspace_slideread-onlyGet content from a specific slide in a Google Slides presentation. Retrieves detailed content from a single slide by its index (0-based). Usage examples: 1. Get first slide: { "email": "user@example.com", "presentation_id": "1ABC123xyz" } 2. Get slide by index: { "email": "user@example.com", "presentation_id": "1ABC123xyz", "slide_index": 2 } 3. Get raw JSON: { "email": "user@example.com", "presentation_id": "1ABC123xyz", "slide_index": 0, "return_json": true } Returns: slide title, text content, and speaker notes.
get_workspace_slide_thumbnailread-onlyGet a thumbnail image URL for a specific slide in a Google Slides presentation. Generates a temporary URL to a PNG image of the slide. Useful for: - Creating slide previews - Building slide navigation UIs - Generating presentation summaries with images IMPORTANT: The returned URL expires after 30 minutes. Download or use the image before expiration. Usage examples: 1. Get default (medium) thumbnail: { "email": "user@example.com", "presentation_id": "1ABC123xyz", "slide_id": "p" } 2. Get large thumbnail: { "email": "user@example.com", "…
insert_workspace_document_textcan change or delete dataInsert plain text next to a unique piece of text in one tab, without rewriting the tab. anchor_text must appear exactly once in the tab and sit inside one paragraph (smart chips, people and dates can't be part of it); copy it exactly from a tab_id read, without the "• " and [H1]-style markers. position: - "after" (default): right after the anchor text. - "before": right before the anchor text. - "next_paragraph_start": at the start of the paragraph that follows the anchor's paragraph. Use this to fill the (often empty) list item under a heading. Anchor on the lin…
insert_workspace_spreadsheet_dimensioncan change or delete dataInsert empty rows or columns into a sheet, formatted like their neighbours — for example a new date column at the end of a tracker that keeps the currency format and bold header of the column before it. This shifts cells: everything at and after start_index moves down (rows) or right (columns), and Google adjusts formulas that refer to the moved cells. Cell addresses noted before the insert point to different cells afterwards, so re-read before writing values. Nothing is deleted. Merged cells and other range-based formatting extend to the new rows/columns only when the ins…
list_chat_messagesread-onlyList messages in a Google Chat space. Use list_chat_spaces first to find the space resource name (e.g. "spaces/AAAA..."). Parameters: - email: The Google account email to read messages for - space: Required space resource name (e.g. "spaces/AAAA...") - page_size: Optional maximum number of messages to return (max 100) - page_token: Optional token for pagination (to get the next page) - filter: Optional filter (e.g. 'create_time > "2026-01-01T00:00:00+00:00"') - order_by: Optional ordering (e.g. "create_time desc"; default is create_time ascending) Example…
list_chat_spacesread-onlyList Google Chat spaces (direct messages, group chats, and named spaces) for the authenticated user. IMPORTANT: Before using this tool: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist 3. Check required scopes include Chat read access Parameters: - email: The Google account email to list spaces for - page_size: Optional maximum number of spaces to return (max 100) - page_token: Optional token for pagination (to get the next page) - filter: Optional filter by space type (e.g. 'space_type = "SPACE"') Example Usa…
list_drive_filesread-onlyList files in a Google Drive account with optional filtering. Returns human-readable text by default. Use return_json: true for structured output. Usage examples: 1. List recent files: { "email": "user@example.com" } 2. List files in a folder: { "email": "user@example.com", "options": { "folderId": "1ABC123xyz", "pageSize": 50 } } 3. Filter by query: { "email": "user@example.com", "options": { "query": "mimeType='application/pdf'", "pageSize": 20 } } 4. List files in one shared drive (get the ID from list_shared_drives): …
list_file_revisionsread-onlyList version history (revisions) of a file in Google Drive. Example: { "file_id": "abc123" } WORKFLOW: Use search_drive_files or list_drive_files to find the file_id first. Returns revision history with modification times and users. Use download_file_revision to get content from a specific revision. NOTE: Google Workspace files (Docs, Sheets, Slides) have different revision behavior than uploaded files.
list_form_responsesread-onlyGet all responses submitted to a Google Form. Examples: 1. Get responses: { "email": "user@example.com", "form_id": "1FAIpQLSe..." } 2. With limit: { "form_id": "1FAIpQLSe...", "max_results": 50 } 3. Paginate: { "form_id": "1FAIpQLSe...", "page_token": "token_from_previous" } WORKFLOW: 1. Use list_forms to find the form_id 2. Optionally use get_form to understand the question structure 3. Call this tool to get all responses COMMON MISTAKES: - Don't confuse form_id with response_id - use list_forms for the form_id - Don't pass the spreadsheet ID if responses are linked to Sheets - use the fo…
list_formsread-onlyList Google Forms accessible to the account. Example: { "email": "user@example.com", "max_results": 10 } Example with search: { "email": "user@example.com", "query": "Customer Survey" } Uses Drive API to find forms by mimeType. Returns form IDs and titles. WORKFLOW: 1. Call list_forms to find available forms 2. Use get_form with the form_id to see structure and questions 3. Use list_form_responses to view submissions Returns basic info for each form (ID, name, modification time). Use get_form to retrieve full structure and questions.
list_meet_conference_recordsread-onlyList past Google Meet conferences (conference records) for meeting prep and recap workflows. IMPORTANT: Before using this tool: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist 3. Check required scopes include Meet read access Parameters: - email: The Google account email to list conferences for - page_size: Optional maximum number of conference records to return (max: 100) - page_token: Optional token for pagination (to get the next page) - filter: Optional filter passed through to the Meet API (EBNF syntax). …
list_meet_transcriptsread-onlyList the transcripts of a Google Meet conference record. Use this after list_meet_conference_records to find the transcript(s) of a meeting. Each transcript represents one transcription session of the conference. Parameters: - email: The Google account email - conference_record: The conference record — either the full resource name ("conferenceRecords/abc-123") or just the ID ("abc-123") - page_size: Optional maximum number of transcripts to return (max: 100) - page_token: Optional token for pagination Example usage: - { "conference_record": "abc-12…
list_shared_drivesread-onlyList the shared drives (Team Drives) the account can access. Returns human-readable text by default. Use return_json: true for structured output. Usage examples: 1. List shared drives: { "email": "user@example.com" } 2. Page through results: { "email": "user@example.com", "page_size": 50, "page_token": "..." } WORKFLOW: Use a returned drive ID as "options.driveId" in list_drive_files or search_drive_files to target that shared drive, or set "options.corpora" to "allDrives" there to search My Drive and every shared drive at once. NOTE: Files t…
list_task_listsread-onlyList all Google Tasks task lists for an account. Example: { "email": "user@example.com" } Returns all task lists with their IDs and titles. The primary task list can also be accessed using "@default" as the task_list_id in other tools. Use this to discover task list IDs for use with other Tasks tools.
list_tasksread-onlyList tasks in a Google Tasks list. Examples: 1. List tasks in primary list: { "email": "user@example.com" } 2. List tasks in specific list: { "email": "user@example.com", "task_list_id": "MTIzNDU2" } 3. List only incomplete tasks: { "email": "user@example.com", "showCompleted": false } 4. List tasks due this week: { "email": "user@example.com", "dueMax": "2026-01-20T23:59:59Z" } WORKFLOW: Use "@default" (or omit task_list_id) for the primary task list. Call list_task_lists first to get IDs for other lists. Returns tasks with id, title, notes, status, due date, and more.
list_workspace_accountsread-onlyList all configured Google workspace accounts and their authentication status. IMPORTANT: This tool MUST be called first before any other workspace operations to: 1. Check for existing authenticated accounts 2. Determine which account to use if multiple exist 3. Verify required API scopes are authorized Response shape: { accounts: [ { email, category, description, auth_status, // unchanged legacy fields package_id, // super-mcp instance id (e.g. "GoogleWorkspace-greg-work-com") — use this when routing tool calls ac…
list_workspace_calendar_eventsread-onlyGet calendar events with optional filtering. By default, reads YOUR primary calendar. To read a SHARED calendar: 1. First call list_workspace_calendars to find the calendar ID and verify canViewEvents is true 2. Pass the ID as calendar_id parameter NOTE: You can only see events if the calendar owner granted you "reader" access or higher. If you only have "freeBusyReader" access (canViewEvents: false), use find_free_slots instead. By default returns events for the next 14 days in human-readable agenda format. The default text format only includes: time, title, location, meeting link, and eve…
list_workspace_calendarsread-onlyList all calendars you have access to (your own + shared calendars). Returns each calendar's: - id: Use this with calendar_id parameter to read events - summary: Display name - primary: true if this is your main calendar - accessRole: owner/writer/reader/freeBusyReader - canViewEvents: true if you can see event details (false = free/busy only) If canViewEvents is false, use find_free_slots instead - you can only see busy times. Usage example: { "email": "user@example.com" }
list_workspace_commentsread-onlyList comments on a Google Drive file (Docs, Sheets, Slides, PDFs, etc.). Returns all comments with their replies, author info, and resolved status. Works on any file in Google Drive, not just documents. Usage examples: 1. List comments on a file: { "email": "user@example.com", "file_id": "1ABC123xyz" } 2. With pagination: { "email": "user@example.com", "file_id": "1ABC123xyz", "page_size": 50 } 3. Include deleted comments: { "email": "user@example.com", "file_id": "1ABC123xyz", "include_deleted": true }
list_workspace_document_tabsread-onlyList every tab in a Google Docs document, including nested sub-tabs. Returns the tab tree: one line per tab, indented by nesting level and numbered by position (1., 1.1., 1.1.1.), with its tab id and number of sub-tabs. Use a tab id as: - tab_id in read_workspace_document, append_to_workspace_document, replace_workspace_document, find_and_replace_workspace_document and insert_workspace_document_text; - parent_tab_id in add_workspace_document_tab and update_workspace_document_tab (nest a tab); - tab_id in update_workspace_document_tab and delete_workspace_document_tab…
list_workspace_draftsread-onlyList all Gmail drafts for the account. Returns draft IDs and message snippets for each draft.
list_workspace_label_filtersread-onlyList all Gmail filters, optionally filtered by a specific label ID. Returns filter criteria and actions for each filter.
list_workspace_labelsread-onlyList all Gmail labels for an account. Returns both system labels (INBOX, SENT, etc.) and user-created labels.
list_workspace_presentation_slidesread-onlyList all slides in a Google Slides presentation with metadata. Returns information about each slide including title and text preview. Usage examples: 1. List slides: { "email": "user@example.com", "presentation_id": "1ABC123xyz" } 2. Include speaker notes: { "email": "user@example.com", "presentation_id": "1ABC123xyz", "include_notes": true } Returns slide metadata: index, title (if present), text content preview, and optional speaker notes.
list_workspace_send_asread-onlyList the Gmail account's send-as aliases, including each alias's signature, display name, reply-to address, and verification status. Useful for checking which identities an account can send from and what signature each uses. Parameters: - email: The Gmail account
list_workspace_spreadsheet_sheetsread-onlyList all sheets (tabs) in a Google Sheets spreadsheet. Returns sheet names, IDs, and dimensions. Usage example: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz" } Sheets are numbered from 1 in this list; the position parameters of duplicate_workspace_spreadsheet_sheet and update_workspace_spreadsheet_sheet count from 0. Use the returned sheetId (numeric) as sheet_id when calling duplicate_workspace_spreadsheet_sheet (copy a tab), update_workspace_spreadsheet_sheet (rename or reorder a tab), insert_workspace_spreadsheet_dimension or delete_workspace_sp…
manage_workspace_attachmentcan change or delete dataLegacy consolidated attachment tool. Prefer download_workspace_attachment, upload_workspace_attachment, or delete_workspace_attachment for new calls.
manage_workspace_calendar_eventManage calendar event responses and updates including accept/decline, propose new times, update event times, and set event color. IMPORTANT: Before managing events: 1. Verify account access with list_workspace_accounts 2. Confirm calendar account if multiple exist 3. Verify event exists and is modifiable Common Actions: - Accept/Decline invitations - Propose alternative times - Update existing events (time, color) - Add comments to responses Color Support: - Use color_id (1-11) with 'update_time' action to set event color - Colors:…
manage_workspace_draftcan change or delete dataLegacy consolidated draft tool. Prefer the individual draft tools for new calls.
manage_workspace_labelcan change or delete dataDEPRECATED: Prefer using the individual label tools (list_workspace_labels, get_workspace_label, create_workspace_label, update_workspace_label, delete_workspace_label) instead. Manage Gmail labels with CRUD operations. IMPORTANT: Before any operation: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist Operations: - create: Create a new label - read: Get a specific label or list all labels - update: Modify an existing label - delete: Remove a label Features: - Nested labels: Use "/" (e.g., "Work/Pro…
manage_workspace_label_assignmentManage label assignments for Gmail messages. IMPORTANT: Before assigning: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist 3. Verify message exists 4. Check label validity Operations: - add: Apply labels to a message - remove: Remove labels from a message Common Use Cases: - Apply single label - Remove single label - Batch modify multiple labels - Update system labels (e.g., mark as read) Example Flow: 1. Check account access 2. Verify message and labels exist 3. Ap…
manage_workspace_label_filtercan change or delete dataDEPRECATED: Prefer using the individual filter tools (list_workspace_label_filters, create_workspace_label_filter, update_workspace_label_filter, delete_workspace_label_filter) instead. Manage Gmail label filters with CRUD operations. IMPORTANT: Before any operation: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist 3. Verify label exists for create/update 4. Validate filter criteria Operations: - create: Create a new filter - read: Get filters (all or by label) - update: Modify existing filter - delete…
mark_workspace_email_readMark a Gmail message as read. Supports batch: provide either a single message_id or an array of message_ids. Note: This operates on individual messages, not entire threads. Examples: 1. Mark one as read: { "message_id": "18c5a2b3d4e5f6g7" } 2. Mark multiple: { "message_ids": ["18c5a2b3d4e5f6g7", "18c5a2b3d4e5f6g8"] }
mark_workspace_email_unreadMark a Gmail message as unread. Supports batch: provide either a single message_id or an array of message_ids. Note: This operates on individual messages, not entire threads. Examples: 1. Mark one as unread: { "message_id": "18c5a2b3d4e5f6g7" } 2. Mark multiple: { "message_ids": ["18c5a2b3d4e5f6g7", "18c5a2b3d4e5f6g8"] }
move_drive_fileMove a file to a different folder in Google Drive. Example: { "file_id": "abc123", "new_parent_id": "folder456" } WORKFLOW: 1. Use search_drive_files or list_drive_files to find the file_id 2. Use list_drive_files to find the target folder ID 3. Call this tool with file_id and new_parent_id IMPORTANT: By default, this MOVES the file (removes from all current folders). To ADD to a folder without removing from existing folders, set remove_from_parents to an empty string.
query_drive_activityread-onlySee what changed on a Drive file, or inside a folder or shared drive — who edited, moved, renamed, created, deleted, or commented, and when (Drive Activity API). Exactly one of item_id or ancestor_id is required: - item_id: a single file or folder ID (from list_drive_files / search_drive_files) - ancestor_id: a folder or shared-drive ID — reports activity on everything inside it Optional: - page_size: max activities to return (default API page, max 100) - page_token: from a previous response's nextPageToken, for pagination - filter: Drive Activity API filter strin…
read_workspace_documentread-onlyRead content from a Google Docs document. Returns human-readable text by default. Use return_json: true for the raw Google Docs API response. Tabs: without tab_id or all_tabs this reads the first tab only. On a document with several tabs the result says how many there are and which one is shown. Pass tab_id to read one tab (sub-tabs are separate tabs), or all_tabs: true to read every tab in order under "## Tab: <path> [tabId: …]" headings; all tabs share one max_chars budget, and tabs past the budget are listed by id so you can read them with tab_id. On tab_id / all_t…
read_workspace_presentationread-onlyRead content from a Google Slides presentation. Returns human-readable text by default with slide content and optional speaker notes. Use return_json: true for the raw Google Slides API response. Usage examples: 1. Simple read: { "email": "user@example.com", "presentation_id": "1ABC123xyz" } 2. Include speaker notes: { "email": "user@example.com", "presentation_id": "1ABC123xyz", "include_notes": true } 3. With character limit: { "email": "user@example.com", "presentation_id": "1ABC123xyz", "max_chars": 10000 } 4. Get raw J…
read_workspace_spreadsheetread-onlyRead metadata and optionally values from a Google Sheets spreadsheet. Returns human-readable text by default. Use return_json: true for the raw Google Sheets API response. If you intend to write back to this range, call with value_view: 'shaped' first to see formulas — overwriting formulas with computed values is silently destructive. For large or unbounded reads, returns an anchor envelope (first 50 + last 10 rows + summary). Pass anchor_mode: 'never' for legacy first-N truncation. Use continuation_token to page through the middle. Rows in the text output are numbered with th…
read_workspace_spreadsheet_valuesread-onlyRead values from a specific range in a Google Sheets spreadsheet. Use this for focused data extraction. For spreadsheet metadata, use read_workspace_spreadsheet. If you intend to write back to this range, call with value_view: 'shaped' first to see formulas — overwriting formulas with computed values is silently destructive. For large or unbounded reads, returns an anchor envelope (first 50 + last 10 rows + summary). Pass anchor_mode: 'never' for legacy first-N truncation. Use continuation_token to page through the middle. Rows in the text output are numbered with their sheet …
remove_workspace_accountcan change or delete dataRemove a Google account and delete its associated authentication tokens
replace_workspace_documentReplace the entire content of a Google Docs document. WARNING: This completely replaces all existing content. Use with caution. Without tab_id this acts on the first tab. Pass tab_id to replace the content of one tab only (its sub-tabs are separate tabs and are not touched). A Docs link containing ?tab=t.xxxx points at one tab; "t.xxxx" is its tab_id. Usage examples: 1. Complete rewrite: { "email": "user@example.com", "document_id": "1ABC123xyz", "content": "# New Document Content\n\nThis replaces everything." } 2. Rewrite one tab: { "email": "use…
reply_to_workspace_commentReply to an existing comment on a Google Drive file. Adds a reply to a comment thread, visible to all collaborators. Usage example: { "email": "user@example.com", "file_id": "1ABC123xyz", "comment_id": "AAAA", "content": "Good point, I will fix this." }
resolve_workspace_commentResolve or reopen a comment on a Google Drive file. Resolving marks a comment thread as done. Reopening brings it back for discussion. Usage examples: 1. Resolve a comment: { "email": "user@example.com", "file_id": "1ABC123xyz", "comment_id": "AAAA", "action": "resolve" } 2. Reopen a resolved comment: { "email": "user@example.com", "file_id": "1ABC123xyz", "comment_id": "AAAA", "action": "reopen" }
respond_to_workspace_calendar_eventcan change or delete dataRespond to a calendar invitation with accept, decline, tentative, or a proposed new time.
search_drive_filesread-onlySearch for files in Google Drive with advanced filtering. Returns human-readable text by default. Use return_json: true for structured output. Usage examples: 1. Search by text content: { "email": "user@example.com", "options": { "fullText": "quarterly report" } } 2. Search by file type: { "email": "user@example.com", "options": { "mimeType": "application/pdf", "pageSize": 20 } } 3. Search in specific folder: { "email": "user@example.com", "options": { "folderId": "1ABC123xyz", "fullText": "budget" } } 4. Combined search: …
search_workspace_contactsread-onlySearch contacts by name, email, or organization. Use this tool to find specific contacts (e.g., "find John from Marketing"). Uses Google's People API search with warmup request for better accuracy. Returns matching contacts with name, email, phone, and organization. Example usage: - Find by name: { "email": "user@example.com", "query": "John Smith" } - Find by company: { "email": "user@example.com", "query": "Acme Corp" } - Find by partial: { "email": "user@example.com", "query": "john" }
search_workspace_emailsread-onlySearch emails. Example: { "query": "from:alice subject:meeting has:attachment", "max_results": 10 } Gmail query syntax: from:, to:, subject:, has:attachment, is:unread, after:YYYY-MM-DD, before:YYYY-MM-DD, label: Each result shows its id (message id) and thread_id. Use get_workspace_email_thread with that thread_id (or the message id) to get the full conversation.
send_chat_messagePost a plain-text message to a Google Chat space as the authenticated user. This sends a real message visible to everyone in the space. Confirm the space and the message content with the user before sending. Use list_chat_spaces first to find the space resource name (e.g. "spaces/AAAA..."). Parameters: - email: The Google account email to send from - space: Required space resource name (e.g. "spaces/AAAA...") - text: Required plain-text message body Example usage: - { "space": "spaces/AAAA...", "text": "Meeting moved to 3pm" }
send_workspace_draftSend an existing Gmail draft as an email. The draft will be removed from drafts after sending.
send_workspace_emailSend an email from a Gmail account. TIP: If you are drafting an email for the user to review before sending, prefer compose_workspace_email — it opens an inline editable form so the user can edit and send themselves. CRITICAL - PLAIN TEXT vs HTML: - Default is PLAIN TEXT (is_html: false). Use for most emails. - ONLY use is_html: true when you need formatting like bold, links, or lists. - If is_html: true, body MUST be valid HTML (wrap in tags, use <br> for line breaks). - If is_html: false (default), body is plain text (line breaks work naturally). PLAIN TEXT (default - use this most of the…
trash_drive_filecan change or delete dataMove a file to trash in Google Drive (recoverable). Example: { "file_id": "abc123" } WORKFLOW: Use search_drive_files or list_drive_files to find the file_id first. This moves the file to trash where it stays for 30 days before permanent deletion. Use untrash_drive_file to restore a trashed file. NOTE: This is different from delete_drive_file which permanently deletes immediately.
trash_workspace_emailcan change or delete dataMove a Gmail message to the trash. Trashed messages are permanently deleted after 30 days. Supports batch: provide either a single message_id or an array of message_ids. Note: This operates on individual messages, not entire threads. Use untrash_workspace_email to restore. Examples: 1. Trash one message: { "message_id": "18c5a2b3d4e5f6g7" } 2. Trash multiple: { "message_ids": ["18c5a2b3d4e5f6g7", "18c5a2b3d4e5f6g8"] }
untrash_drive_fileRestore a file from trash in Google Drive. Example: { "file_id": "abc123" } WORKFLOW: 1. Use search_drive_files with { "options": { "trashed": true } } to find trashed files 2. Call this tool with the file_id to restore The file will be restored to its original location.
untrash_workspace_emailRestore a Gmail message from the trash. The message returns to its previous location. Supports batch: provide either a single message_id or an array of message_ids. Note: This operates on individual messages, not entire threads. Examples: 1. Restore one message: { "message_id": "18c5a2b3d4e5f6g7" } 2. Restore multiple: { "message_ids": ["18c5a2b3d4e5f6g7", "18c5a2b3d4e5f6g8"] }
update_drive_permissionsUpdate sharing permissions for a Drive file or folder. IMPORTANT: Before updating: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist 3. Check Drive sharing permissions Permission Types: - User: Share with specific email - Group: Share with Google Group - Domain: Share with entire domain - Anyone: Public sharing Roles: - owner: Full ownership rights - organizer: Organizational rights - fileOrganizer: File organization rights - writer: Edit access - commenter: Comment access - …
update_taskUpdate an existing task in Google Tasks. Examples: 1. Update title: { "task_list_id": "@default", "task_id": "abc123", "title": "Updated title" } 2. Add due date: { "task_list_id": "@default", "task_id": "abc123", "due": "2026-01-25" } 3. Add notes: { "task_list_id": "@default", "task_id": "abc123", "notes": "Remember to check X" } 4. Mark as needs action: { "task_list_id": "@default", "task_id": "abc123", "status": "needsAction" } WORKFLOW: 1. Use list_tasks to find the task_id 2. Call this tool with the task_id and fields to update Only provided fields are updated; others remain unchange…
update_workspace_contactUpdate fields on an existing Google Contact. Only the fields you provide are replaced; everything else on the contact is left untouched. Get the resource_name from search_workspace_contacts or get_workspace_contacts (it looks like "people/c1234567890"). Parameters: - email: The Google account email that owns the contact - resource_name: Required. The contact's resource name (e.g. "people/c1234567890") - Any of the create_workspace_contact fields to replace: given_name, family_name, email_address, email_type, phone_number, phone_type, organization, job_title,…
update_workspace_document_tabcan change or delete dataRename a tab and/or move it in a Google Docs document: reorder it among its siblings or nest it under another tab. A moved tab takes its sub-tabs with it. The API can't move a sub-tab back to the top level; re-create it there instead if needed. position is where the tab should end up (0 = first) among its siblings after the move; the numbers in list outputs start at 1. When nesting under another tab without position, the tab goes last. Titles must stay unique across the document. Needs a real tab id: "default" is refused. The result reports the tab's actual parent and …
update_workspace_draftUpdate an existing Gmail draft. Replaces the draft content with the provided fields. Supports attachments and reply threading.
update_workspace_labelUpdate an existing Gmail label. Can change name, visibility settings, and color. Cannot modify system labels (INBOX, SENT, SPAM).
update_workspace_label_filterUpdate an existing Gmail filter. Can modify filter criteria and/or actions. Use list_workspace_label_filters to find the filter ID first.
update_workspace_spreadsheet_sheetcan change or delete dataRename a sheet (tab) and/or move it to another position in a Google Sheets spreadsheet. position is where the sheet should end up (0 = first). Titles must be unique in the spreadsheet. If the sheet already has that title and position, nothing is written. The result reports the sheet's actual position after the change. Usage examples: 1. Rename: { "email": "user@example.com", "spreadsheet_id": "1ABC123xyz", "sheet_id": 123456789, "title": "Acme Launch – Archive" } 2. Move a tab found by its name to the front: { "email": "user@example.com", "spreadsheet_id":…
update_workspace_spreadsheet_valuesUpdate values in a specific range of a Google Sheets spreadsheet. Overwrites existing data in the specified range. Use append_to_workspace_spreadsheet to add data without overwriting. Prefer formulas over computed values. By default this tool refuses to overwrite cells that currently contain formulas; pass overwrite_formulas: true to force, or write to non-formula cells. Best-effort: protects against formula overwrite absent concurrent edits to the same range during the call. Sheets has no transactional write API; under concurrent edits the guard cannot guarantee zero overwrites. valu…
update_workspace_vacation_responderTurn the Gmail out-of-office (vacation) auto-reply on or off, and set its message. Only the fields you provide are changed; the existing subject/body are kept when omitted (the Gmail API otherwise replaces the whole resource). Parameters: - email: The Gmail account - enabled: Required. true to turn the auto-reply on, false to turn it off - response_subject: Subject of the auto-reply (e.g. "Out of office") - response_body: Plain-text body of the auto-reply. Required when enabling and the account has no existing auto-reply message. - start_time: When to st…
upload_drive_fileUpload a file to Google Drive. IMPORTANT: Before uploading: 1. Verify account access with list_workspace_accounts 2. Confirm account if multiple exist 3. Check Drive write permissions Features: - Specify file name and type - Place in specific folder - Set file metadata Example Flow: 1. Check account access 2. Validate file data 3. Upload and return file info
upload_workspace_attachmentUpload a new attachment to local storage for a Gmail message or Calendar event. Provide base64-encoded file content.
Signals
- Stars
- 13
- Forks
- 4
- Open issues
- 1
- Weekly downloads
- 183
- Last commit (this folder)
- Oct 21, 2026 (7 days ago)
- Last release
- Oct 15, 2026 (13 days ago)
- Last package publish
- Oct 15, 2026 (13 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.mindstone/mcp-server-google-workspace- Version
- 0.5.0
- Auth
- API key
- Packages
- npm @mindstone/mcp-server-google-workspace
- License
- License unknown
- Repository
- github.com/mindstone/mcp-servers
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from mindstone
- 0.610score
Nano Banana
mindstone
Nano Banana MCP server — Google Gemini image generation and editing.
ConnectorAFreshness: ALocal★ 13↓ 92/wkClaude Code +5 - 0.606score
Slack
mindstone
Slack MCP server: channels, messages, threads, reactions, users, files, and scheduled messages
ConnectorAFreshness: ALocal★ 13↓ 66/wkClaude Code +5 - 0.597score
Microsoft 365 Teams
mindstone
Microsoft 365 Teams via Graph: list chats, read/send messages, list teams/channels, presence.
ConnectorAFreshness: ALocal★ 13↓ 43/wkClaude Code +5 - 0.588score
Microsoft Office
mindstone
Microsoft Office MCP server: read and edit Word documents, Excel workbooks, and PowerPoint files
ConnectorBFreshness: BLocal★ 13↓ 411/wkClaude Code +5 - 0.585score
QuickBooks Online
mindstone
QuickBooks Online MCP server: invoices, bills, customers, vendors, employees, and accounts
ConnectorAFreshness: ALocal★ 13↓ 26/wkClaude Code +5 - 0.584score
Xero
mindstone
Xero MCP server for invoices, contacts, payments, quotes, and financial reports.
ConnectorAFreshness: ALocal★ 13↓ 25/wkClaude Code +5
Cite this page
Google Workspace MCP server. Agent Mart. https://agentmart.dev/connectors/mindstone-mcp-server-google-workspace (last updated 2026-10-24)