Atlas / MCP servers / pm990320 / google-workspace-mcp

google-workspace-mcpBLOCK

mcp/pm990320/google-workspace-mcp

The Ultimate Google Docs, Sheets & Drive MCP Server. Google Docs MCP is an MCP server (primarily for use in Claude Desktop) that gains full access to your google docs, etc. and allows claude to make direct edits and formatting.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
122 90r · 23w · 9d
Transport
—
License
MIT
Stars
3
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Connect Claude Desktop (or other MCP clients) to your entire Google Workspace: Docs, Sheets, Drive, Gmail, Calendar, Slides, and Forms!

🔥 Check out 15 powerful tasks you can accomplish with this enhanced server! 📧 NEW: Full Gmail support with safe draft-based email workflow 📅 NEW: Google Calendar integration (events, calendars, CRUD) 📽️ NEW: Google Slides support (presentations, slides, text) 📝 NEW: Google Forms support (create forms, questions, responses) 👥 NEW: Multi-account support (connect multiple Google accounts) 🔧 NEW: CLI for easy setup and account management

This comprehensive server uses the Model Context Protocol (MCP) and the fastmcp library to provide 95+ tools for reading, writing, formatting, and managing your entire Google Workspace. It acts as a powerful bridge, allowing AI assistants like Claude to interact with your documents, emails, calendars, and files programmatically.

Upgrading from [a-bonus/google-docs-mcp](https://github.com/a-bonus/google-docs-mcp)? See UPGRADE.md for migration instructions.

Features:

Document Access & Editing

  • Read Documents: Read content with readGoogleDoc (plain text, JSON structure, or markdown)
  • Append to Documents: Add text to documents with appendToGoogleDoc
  • Insert Text: Place text at specific positions with insertText
  • Delete Content: Remove content from a document with deleteRange
  • Tab Support: Work with multi-tab documents using listDocumentTabs and optional tabId parameter in read/write operations

Formatting & Styling

  • Text Formatting: Apply rich styling with applyTextStyle (bold, italic, colors, etc.)
  • Paragraph Formatting: Control paragraph layout with applyParagraphStyle (alignment, spacing, etc.)
  • Find & Format: Format by text content using formatMatchingText (legacy support)

Document Structure

  • Tables: Cr
Read from source at commit 346fe3e5fb7aOBSERVED · 2026-10-12
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add google-workspace-mcp -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "google-workspace-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Exposed tools (122)

90 read · 23 write · 9 destructive. Blast radius: 9 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
addAttachmentToDraftwriteAdd an attachment to an existing Gmail draft. The attachment is added to the draft without modifying other content.
addCommentreadAdds a comment anchored to a specific text range in the document. NOTE: Due to Google API limitations, comments created programmatically appear in the
addExcelSheetreadAdds a new sheet/tab to an Excel-format file (.xlsx or .xls) on Google Drive.
addFormQuestionwriteAdd a question to a Google Form. Question types must be lowercase:
addSlidewriteAdd a new slide to a presentation.
addSpreadsheetSheetreadAdds a new sheet/tab to an existing Google Spreadsheet.
addTextToSlidewriteAdd a text box with content to a slide.
appendExcelRowsreadAppends rows to an Excel-format file (.xlsx or .xls) on Google Drive. Similar to appendSpreadsheetRows but preserves Excel format.
appendSpreadsheetRowsreadAppends rows of data to the end of a sheet in a Google Spreadsheet.
appendToGoogleDocreadAppends text to the very end of a specific Google Document or tab.
batchAddGmailLabelswriteAdd labels to multiple Gmail messages at once. More efficient than adding labels one by one.
batchGetPeopleContactsreadGet detailed information for multiple contacts at once by their resource names.
batchRemoveGmailLabelsdestructiveRemove 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.
clearExcelRangereadClears values from a range in an Excel-format file (.xlsx or .xls) on Google Drive. Similar to clearSpreadsheetRange but preserves Excel format.
clearSpreadsheetRangereadClears all values from a specific range in a Google Spreadsheet.
convertExcelToSheetsreadConverts 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.
copyFilereadCreates a copy of a Google Drive file or document.
createCalendarEventwriteCreate a new calendar event.
createDocumentreadCreates a new Google Document.
createFolderreadCreates a new folder in Google Drive.
createFormwriteCreate a new Google Form.
createFromTemplatereadCreates a new Google Document from an existing document template.
createGmailDraftwriteCreate a draft email in Gmail. Supports threading by providing replyToMessageId to create a draft reply. Supports attachments by providing base64-encoded file data.
createGmailFilterwriteCreate a Gmail filter to automatically process incoming messages. Filters can add/remove labels, forward messages, or archive them.
createGmailLabelwriteCreate a new Gmail label (folder). Labels can be used to organize emails. After creating a label, use addGmailLabel to apply it to messages.
createPeopleContactwriteCreate a new contact with the specified fields.
createPeopleContactGroupwriteCreate a new contact group (label).
createPresentationwriteCreate a new Google Slides presentation.
createSpreadsheetreadCreates a new Google Spreadsheet.
deleteCalendarEventdestructiveDelete a calendar event.
deleteCommentreadDeletes a comment from the document.
deleteExcelSheetreadDeletes a sheet/tab from an Excel-format file (.xlsx or .xls) on Google Drive. Cannot delete the last sheet.
deleteFilereadMoves a file or folder to trash in Google Drive. Files can be restored from trash within 30 days.
deleteGmailDraftdestructivePermanently delete a Gmail draft. This action cannot be undone.
deleteGmailFilterdestructiveDelete a Gmail filter by its ID.
deleteGmailMessagewriteMove a Gmail message to trash. Messages in trash are automatically deleted after 30 days.
deletePeopleContactGroupdestructiveDelete a contact group. Contacts in the group are not deleted.
deletePeopleContactPhotodestructiveRemove a contact
deleteRangewriteDeletes content within a specified range (start index inclusive, end index exclusive) from the document or a specific tab.
deleteSpreadsheetSheetdestructiveDeletes a sheet/tab from an existing Google Spreadsheet. Cannot delete the last sheet.
downloadFromDrivereadDownloads a file from Google Drive to your local filesystem. For Google Docs/Sheets/Slides, exports to a specified format.
downloadGmailAttachmentreadDownload 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.
downloadSpreadsheetreadDownloads 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.
editGoogleDocreadFind and replace text in a Google Document. Similar to Claude Code
editTableCellreadEdits the content and/or basic style of a specific table cell. Requires knowing table start index.
findElementreadFinds elements (paragraphs, tables, images, lists) in a document. Returns indices and basic info about matching elements.
fixListFormattingreadEXPERIMENTAL: 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.
formatMatchingTextreadFinds specific text within a Google Document and applies character formatting (bold, italics, color, etc.) to the specified instance.
getCalendarEventreadGet details of a specific calendar event.
getCommentreadGets a specific comment with its full thread of replies.
getDocumentInforeadGets detailed information about a specific Google Document.
getExcelInforeadGets detailed information about an Excel-format file (.xlsx or .xls) on Google Drive, including all sheets and their dimensions.
getFolderInforeadGets detailed information about a specific folder in Google Drive.
getFormResponsesreadGet responses submitted to a Google Form.
getGmailAttachmentreadGet 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.
getPeopleContactreadGet detailed information for a specific contact by resource name. Returns all available fields.
getPeopleContactGroupreadGet details of a specific contact group, including its members.
getRecentGoogleDocsreadGets the most recently modified Google Documents.
getShareableLinkreadGets or creates a shareable link for a file with specified permission settings.
getSpreadsheetInforeadGets detailed information about a Google Spreadsheet including all sheets/tabs.
insertImageFromUrlreadInserts an inline image into a Google Document from a publicly accessible URL.
insertLocalImagereadUploads 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).
insertPageBreakreadInserts a page break at the specified index.
insertTablereadInserts a new table with the specified dimensions at a given index.
insertTextreadInserts text at a specific index within the document body or a specific tab.
listAccountsreadLists all configured Google accounts that can be used with this MCP server.
listCalendarEventsreadList events from a calendar within a time range.
listCalendarsreadList all calendars accessible by the account.
listCommentsreadLists all comments in a Google Document.
listDocumentTabsreadLists all tabs in a Google Document, including their hierarchy, IDs, and structure.
listExcelFilesreadLists Excel-format files (.xlsx and .xls) in your Google Drive. Use this to find spreadsheets stored in Excel format rather than native Google Sheets.
listExcelSheetsreadLists 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.
listFolderContentsreadLists the contents of a specific folder in Google Drive.
listFormsreadList Google Forms in Drive with optional search.
listGmailDraftsreadList all draft emails in Gmail.
listGmailFiltersreadList all Gmail filters (rules that automatically process incoming messages based on criteria).
listGmailLabelsreadList all Gmail labels (folders) for the account.
listGmailMessagesreadList email messages from Gmail inbox or other labels. Returns message IDs and snippets.
listGmailThreadsreadList email threads (conversations) from Gmail. Each thread contains all messages in a conversation.
listGoogleDocsreadLists Google Documents from your Google Drive with optional filtering.
listGoogleSheetsreadLists Google Spreadsheets from your Google Drive with optional filtering.
listPeopleContactGroupsreadList all contact groups (labels) for the user.
listPeopleContactsreadList contacts from the user
listPeopleDirectoryreadList people in the organization directory. Only works for Google Workspace accounts, not personal Gmail accounts.
listPeopleOtherContactsreadList
listPresentationsreadList Google Slides presentations in Drive with optional search.
listRecentFilesreadLists recently modified files across all of Google Drive, not limited to a specific type.
markAsReadreadMark a Gmail message as read by removing the UNREAD label.
markAsUnreadreadMark a Gmail message as unread by adding the UNREAD label.
modifyPeopleContactGroupMembersdestructiveAdd or remove contacts from a contact group.
moveFilereadMoves a file or folder to a different location in Google Drive.
readExcelFilereadReads 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.
readFormreadRead the structure and questions of a Google Form.
readGmailDraftreadRead the full content of a Gmail draft by its draft ID.
readGmailMessagereadRead a specific Gmail message by ID. Returns full message content including headers, body, and attachments info.
readGmailThreadreadRead a complete Gmail thread (conversation) including all messages. Returns full content of all messages in the thread.
readGoogleDocreadReads the content of a specific Google Document, optionally returning structured data.
readPresentationreadRead the content and structure of a Google Slides presentation.
readSpreadsheetreadReads data from a specific range in a Google Spreadsheet.
removeAccountreadRemoves a Google account from the MCP server. This deletes the stored credentials for the account.
removeAttachmentFromDraftdestructiveRemove an attachment from an existing Gmail draft by filename. The attachment is removed without modifying other content.
renameExcelSheetreadRenames a sheet/tab in an Excel-format file (.xlsx or .xls) on Google Drive.
renameFilereadRenames a file or folder in Google Drive.
replyToCommentreadAdds a reply to an existing comment.
saveAttachmentToDrivewriteSave a Gmail attachment directly to Google Drive. Uploads the attachment as a file to Drive without downloading locally first.
searchCalendarEventsreadSearch for calendar events by text query. Searches event summary, description, location, and attendee names/emails.
searchDrivereadSearches across all files in Google Drive by name, content, or type. More powerful than type-specific search tools.
searchGmailreadSearch Gmail using Gmail search syntax. Returns matching messages with snippets.
searchGoogleDocsreadSearches for Google Documents by name, content, or other criteria.
searchPeopleContactsreadSearch contacts by name, email, phone number, or other fields. Returns matching contacts with basic info.
searchPeopleDirectoryreadSearch the organization directory by name, email, or other fields. Only works for Google Workspace accounts.
searchPeopleOtherContactsreadSearch
sendGmailDraftwriteSend an existing Gmail draft. The draft will be sent and removed from drafts.
updateCalendarEventwriteUpdate an existing calendar event.
updateGmailDraftwriteUpdate 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).
updatePeopleContactwriteUpdate an existing contact. Fields provided will replace existing values. Omitted fields remain unchanged.
updatePeopleContactGroupwriteRename an existing contact group.
updatePeopleContactPhotowriteUpload or update a contact
uploadFileToDrivewriteUploads a local file to Google Drive. Supports any file type. Use this to upload documents, images, PDFs, or any other files.
writeExcelCellreadWrites 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.
writeExcelRangereadWrites data to a range in an Excel-format file (.xlsx or .xls) on Google Drive. Similar to writeSpreadsheet but preserves Excel format.
writeSpreadsheetreadWrites data to a specific range in a Google Spreadsheet. Overwrites existing data in the range.
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (7 observation(s))
Network
none-observed
Shell
declared (1 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (16)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/cli.ts:58
exec(command, (error) => {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/securityHelpers.ts:54
'**/.ssh/**',
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/securityHelpers.ts:55
'**/.gnupg/**',
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/securityHelpers.ts:58
'**/.aws/**',
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/securityHelpers.ts:62
'**/.kube/**',
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/securityHelpers.ts:76
'**/.git-credentials',
Why it matters. touches a credential store
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
src/cli.ts:374
console.log(`   ❌ ${service.name}: Token expired or revoked`);
MEDIUMFilesystem / path · fs.system_paths · CWE-22, CWE-59
src/securityHelpers.ts:96
'/etc/**',
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
batchRemoveGmailLabels, deleteCalendarEvent, deleteGmailDraft, deleteGmailFilter, deletePeopleContactGroup, deletePeopleContactPhoto, deleteSpreadsheetSheet, modifyPeopleContactGroupMembers, removeAtt
Why it matters. 9 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierrc.cjs
.prettierrc.cjs
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.release-please-manifest.json
.release-please-manifest.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/integration/harness.ts:13
import { initializeAccounts, getAccountClients } from '../../src/accounts.js';
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
commander, fastmcp, google-auth-library, googleapis, mime-types, xlsx, zod, @commitlint/cli
Why it matters. 19 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
CLAUDE.md:83
- `https://www.googleapis.com/auth/contacts` (full access to contacts)
INFOPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
README.md:253
- `https://www.googleapis.com/auth/drive` (Google Drive - full access)
INFOPrompt injection · prompt.fetch_and_trust · CWE-94, CWE-1427
README.md:174
If you have the [Google Cloud CLI](https://cloud.google.com/sdk/docs/install) installed, run these commands:
Why it matters. remote text is to be obeyed as instructions

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 346fe3e5fb7afull audit observations/trust-audit/mcp-server/pm990320__google-workspace-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12346fe3e5fb7aBLOCKD69first audit
06

Questions

What is the google-workspace-mcp MCP server?

The Ultimate Google Docs, Sheets & Drive MCP Server. Google Docs MCP is an MCP server (primarily for use in Claude Desktop) that gains full access to your google docs, etc. and allows claude to make direct edits and formatting.

What tools does google-workspace-mcp expose?

122 in total: 90 read-only, 23 that write, and 9 that can delete or overwrite (batchRemoveGmailLabels, deleteCalendarEvent, deleteGmailDraft, deleteGmailFilter, deletePeopleContactGroup). Every one is listed on this page with its risk.

Is google-workspace-mcp safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 6 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 9 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does google-workspace-mcp need?

No credential environment variables were found in its source, so it appears to need none.

How current is this page?

The grade is for one exact copy of the source (346fe3e5fb7a), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement