google-workspace-mcp
MCP server for Google Workspace: Docs, Sheets, Drive, Gmail, Calendar, Slides, and Forms
Versions
2.3.6latest2.3.42.1.12.0.12.0.0Tools 128
listPresentations List Google Slides presentations in Drive with optional search.
readPresentation Read the content and structure of a Google Slides presentation.
createPresentation Create a new Google Slides presentation.
addSlide Add a new slide to a presentation.
addTextToSlide Add a text box with content to a slide.
listAccounts Lists all configured Google accounts that can be used with this MCP server.
addAccount Starts the OAuth flow to add a new Google account. Returns an authorization URL that must be opened in a browser. After authorizing, the account will be added automatically. The account name must be unique and contain only letters, numbers, underscores, and hyphens. Optionally, you can specify a custom credentials file to use a different OAuth app for this account.
removeAccount Removes a Google account from the MCP server. This deletes the stored credentials for the account.
listGmailMessages List email messages from Gmail inbox or other labels. Returns message IDs and snippets.
readGmailMessage Read a specific Gmail message by ID. Returns full message content including headers, body, and attachments info.
searchGmail Search Gmail using Gmail search syntax. Returns matching messages with snippets.
listGmailLabels List all Gmail labels (folders) for the account.
createGmailLabel Create a new Gmail label (folder). Labels can be used to organize emails. After creating a label, use addGmailLabel to apply it to messages.
addGmailLabel Add a label to a Gmail message. Common labels: STARRED (star), IMPORTANT, INBOX. Use listGmailLabels to see all available labels. WARNING: Draft message IDs are ephemeral and may change after draft modifications (e.g., adding/removing attachments). If labeling a draft, perform label operations BEFORE modifying draft attachments, or re-fetch the draft to get the current message ID.
removeGmailLabel Remove a label from a Gmail message. Common uses: remove UNREAD (mark as read), remove INBOX (archive), remove STARRED (unstar). WARNING: Draft message IDs are ephemeral and may change after draft modifications (e.g., adding/removing attachments). If removing labels from a draft, perform label operations BEFORE modifying draft attachments, or re-fetch the draft to get the current message ID.
createGmailDraft Create a draft email in Gmail. Supports threading by providing replyToMessageId to create a draft reply. Supports attachments by providing base64-encoded file data.
listGmailDrafts List all draft emails in Gmail.
readGmailDraft Read the full content of a Gmail draft by its draft ID.
updateGmailDraft Update an existing Gmail draft. You can update any combination of to, cc, bcc, subject, body, or attachments. Fields not provided will keep their current values (except attachments which replace existing ones if provided).
addAttachmentToDraft Add an attachment to an existing Gmail draft. The attachment is added to the draft without modifying other content.
removeAttachmentFromDraft Remove an attachment from an existing Gmail draft by filename. The attachment is removed without modifying other content.
deleteGmailMessage Move a Gmail message to trash. Messages in trash are automatically deleted after 30 days.
sendGmailDraft Send an existing Gmail draft. The draft will be sent and removed from drafts.
deleteGmailDraft Permanently delete a Gmail draft. This action cannot be undone.
getGmailAttachment Get metadata and a preview of a Gmail attachment. Returns truncated base64 data (first 500 chars). For full attachment data or saving to file, use downloadGmailAttachment instead.
downloadGmailAttachment Download a Gmail attachment with full data. Returns complete base64-encoded data, or saves directly to a file if savePath is provided. Use this instead of getGmailAttachment when you need the full attachment content.
saveAttachmentToDrive Save a Gmail attachment directly to Google Drive. Uploads the attachment as a file to Drive without downloading locally first.
markAsRead Mark a Gmail message as read by removing the UNREAD label.
markAsUnread Mark a Gmail message as unread by adding the UNREAD label.
listGmailThreads List email threads (conversations) from Gmail. Each thread contains all messages in a conversation.
readGmailThread Read a complete Gmail thread (conversation) including all messages. Returns full content of all messages in the thread.
batchAddGmailLabels Add labels to multiple Gmail messages at once. More efficient than adding labels one by one.
batchRemoveGmailLabels Remove labels from multiple Gmail messages at once. More efficient than removing labels one by one. Use to bulk archive (remove INBOX), bulk mark as read (remove UNREAD), etc.
listGmailFilters List all Gmail filters (rules that automatically process incoming messages based on criteria).
createGmailFilter Create a Gmail filter to automatically process incoming messages. Filters can add/remove labels, forward messages, or archive them.
deleteGmailFilter Delete a Gmail filter by its ID.
listCalendars List all calendars accessible by the account.
listCalendarEvents List events from a calendar within a time range.
searchCalendarEvents Search for calendar events by text query. Searches event summary, description, location, and attendee names/emails.
getCalendarEvent Get details of a specific calendar event.
getFolderInfo Gets detailed information about a specific folder in Google Drive.
createCalendarEvent Create a new calendar event.
updateCalendarEvent Update an existing calendar event.
deleteCalendarEvent Delete a calendar event.
readSpreadsheet Reads data from a specific range in a Google Spreadsheet.
writeSpreadsheet Writes data to a specific range in a Google Spreadsheet. Overwrites existing data in the range.
appendSpreadsheetRows Appends rows of data to the end of a sheet in a Google Spreadsheet.
clearSpreadsheetRange Clears all values from a specific range in a Google Spreadsheet.
getSpreadsheetInfo Gets detailed information about a Google Spreadsheet including all sheets/tabs.
addSpreadsheetSheet Adds a new sheet/tab to an existing Google Spreadsheet.
createSpreadsheet Creates a new Google Spreadsheet.
deleteSpreadsheetSheet Deletes a sheet/tab from an existing Google Spreadsheet. Cannot delete the last sheet.
downloadSpreadsheet Downloads a Google Spreadsheet as CSV or Excel (XLSX) format and saves it to the local filesystem. CSV exports a single sheet; XLSX exports the entire workbook.
listGoogleSheets Lists Google Spreadsheets from your Google Drive with optional filtering.
listGoogleDocs Lists Google Documents from your Google Drive with optional filtering.
searchGoogleDocs Searches for Google Documents by name, content, or other criteria.
getRecentGoogleDocs Gets the most recently modified Google Documents.
getDocumentInfo Gets detailed information about a specific Google Document.
createFolder Creates a new folder in Google Drive.
listFolderContents Lists the contents of a specific folder in Google Drive.
moveFile Moves a file or folder to a different location in Google Drive.
copyFile Creates a copy of a Google Drive file or document.
renameFile Renames a file or folder in Google Drive.
deleteFile Moves a file or folder to trash in Google Drive. Files can be restored from trash within 30 days.
createDocument Creates a new Google Document.
createFromTemplate Creates a new Google Document from an existing document template.
uploadFileToDrive Uploads a local file to Google Drive. Supports any file type. Use this to upload documents, images, PDFs, or any other files.
downloadFromDrive Downloads a file from Google Drive to your local filesystem. For Google Docs/Sheets/Slides, exports to a specified format.
getShareableLink Gets or creates a shareable link for a file with specified permission settings.
listRecentFiles Lists recently modified files across all of Google Drive, not limited to a specific type.
searchDrive Searches across all files in Google Drive by name, content, or type. More powerful than type-specific search tools.
listPeopleContacts List contacts from the user's Google Contacts. Returns a subset of fields (name, email, phone, organization). Use getPeopleContact for full details.
searchPeopleContacts Search contacts by name, email, phone number, or other fields. Returns matching contacts with basic info.
getPeopleContact Get detailed information for a specific contact by resource name. Returns all available fields.
batchGetPeopleContacts Get detailed information for multiple contacts at once by their resource names.
createPeopleContact Create a new contact with the specified fields.
updatePeopleContact Update an existing contact. Fields provided will replace existing values. Omitted fields remain unchanged.
updatePeopleContactPhoto Upload or update a contact's photo. Photo must be base64-encoded and under 4MB.
deletePeopleContactPhoto Remove a contact's photo.
listPeopleContactGroups List all contact groups (labels) for the user.
getPeopleContactGroup Get details of a specific contact group, including its members.
createPeopleContactGroup Create a new contact group (label).
updatePeopleContactGroup Rename an existing contact group.
deletePeopleContactGroup Delete a contact group. Contacts in the group are not deleted.
modifyPeopleContactGroupMembers Add or remove contacts from a contact group.
listPeopleOtherContacts List "Other contacts" - contacts automatically saved from interactions but not added to the main contacts list.
searchPeopleOtherContacts Search "Other contacts" by name, email, or phone number.
listPeopleDirectory List people in the organization directory. Only works for Google Workspace accounts, not personal Gmail accounts.
searchPeopleDirectory Search the organization directory by name, email, or other fields. Only works for Google Workspace accounts.
listForms List Google Forms in Drive with optional search.
readForm Read the structure and questions of a Google Form.
getFormResponses Get responses submitted to a Google Form.
createForm Create a new Google Form.
addFormQuestion Add a question to a Google Form. Question types must be lowercase: 'short_text' (single line text), 'paragraph' (multi-line text), 'multiple_choice' (radio buttons, single selection), 'checkboxes' (multiple selections), 'dropdown' (dropdown menu), 'scale' (linear scale). Example: questionType: 'multiple_choice' with options: ['Yes', 'No', 'Maybe'].
listExcelSheets Lists all sheet/tab names in an Excel-format file (.xlsx or .xls) stored on Google Drive. Use this for spreadsheets that need to stay in Excel format.
readExcelFile Reads data from a specific range in an Excel-format file (.xlsx or .xls) on Google Drive. Similar to readSpreadsheet but for files that need to stay in Excel format.
writeExcelCell Writes a value to a specific cell in an Excel-format file (.xlsx or .xls) on Google Drive. Use when the file must remain in Excel format.
writeExcelRange Writes data to a range in an Excel-format file (.xlsx or .xls) on Google Drive. Similar to writeSpreadsheet but preserves Excel format.
appendExcelRows Appends rows to an Excel-format file (.xlsx or .xls) on Google Drive. Similar to appendSpreadsheetRows but preserves Excel format.
clearExcelRange Clears values from a range in an Excel-format file (.xlsx or .xls) on Google Drive. Similar to clearSpreadsheetRange but preserves Excel format.
getExcelInfo Gets detailed information about an Excel-format file (.xlsx or .xls) on Google Drive, including all sheets and their dimensions.
addExcelSheet Adds a new sheet/tab to an Excel-format file (.xlsx or .xls) on Google Drive.
deleteExcelSheet Deletes a sheet/tab from an Excel-format file (.xlsx or .xls) on Google Drive. Cannot delete the last sheet.
renameExcelSheet Renames a sheet/tab in an Excel-format file (.xlsx or .xls) on Google Drive.
convertExcelToSheets Converts an Excel-format file (.xlsx or .xls) on Google Drive to native Google Sheets format for full Sheets API support. Creates a copy; the original is preserved.
listExcelFiles Lists Excel-format files (.xlsx and .xls) in your Google Drive. Use this to find spreadsheets stored in Excel format rather than native Google Sheets.
readGoogleDoc Reads the content of a specific Google Document, optionally returning structured data.
editGoogleDoc Find and replace text in a Google Document. Similar to Claude Code's Edit tool - finds exact text and replaces it. Use this for surgical edits to documents.
listDocumentTabs Lists all tabs in a Google Document, including their hierarchy, IDs, and structure.
appendToGoogleDoc Appends text to the very end of a specific Google Document or tab.
insertText Inserts text at a specific index within the document body or a specific tab.
deleteRange Deletes content within a specified range (start index inclusive, end index exclusive) from the document or a specific tab.
applyTextStyle Applies character-level formatting (bold, color, font, etc.) to a specific range or found text. Target must be specified as EITHER {startIndex, endIndex} for index-based targeting OR {textToFind, matchInstance?} for text search. Examples: target: {startIndex: 1, endIndex: 10} OR target: {textToFind: "Hello", matchInstance: 1}
applyParagraphStyle Applies paragraph-level formatting (alignment, spacing, named styles like Heading 1) to paragraph(s). Target must be specified as EITHER {startIndex, endIndex} for a range, {indexWithinParagraph} to style the paragraph containing that index, OR {textToFind, matchInstance?} to style the paragraph containing that text. Examples: target: {startIndex: 1, endIndex: 50} OR target: {indexWithinParagraph: 25} OR target: {textToFind: "Introduction", matchInstance: 1}
insertTable Inserts a new table with the specified dimensions at a given index.
editTableCell Edits the content and/or basic style of a specific table cell. Requires knowing table start index.
insertPageBreak Inserts a page break at the specified index.
insertImageFromUrl Inserts an inline image into a Google Document from a publicly accessible URL.
insertLocalImage Uploads a local image file to Google Drive and inserts it into a Google Document. The image will be uploaded to the same folder as the document (or optionally to a specified folder).
fixListFormatting EXPERIMENTAL: Attempts to detect paragraphs that look like lists (e.g., starting with -, *, 1.) and convert them to proper Google Docs bulleted or numbered lists. Best used on specific sections.
listComments Lists all comments in a Google Document.
getComment Gets a specific comment with its full thread of replies.
addComment Adds a comment anchored to a specific text range in the document. NOTE: Due to Google API limitations, comments created programmatically appear in the "All Comments" list but are not visibly anchored to text in the document UI (they show "original content deleted"). However, replies, resolve, and delete operations work on all comments including manually-created ones.
replyToComment Adds a reply to an existing comment.
resolveComment Marks a comment as resolved. IMPORTANT LIMITATION: The Google Drive API does not fully support resolving comments on Google Docs files. While this tool will attempt to set the resolved status, it typically does NOT persist in the Google Docs UI. This is a known Google API limitation, not a bug in this tool. To reliably resolve comments, users should resolve them manually in the Google Docs interface. This tool is provided for completeness but has limited practical utility for Docs files.
deleteComment Deletes a comment from the document.
findElement Finds elements (paragraphs, tables, images, lists) in a document. Returns indices and basic info about matching elements.
formatMatchingText Finds specific text within a Google Document and applies character formatting (bold, italics, color, etc.) to the specified instance.
Permissions 4
network medium filesystem low shell high env_vars low