Google Workspace MCP
Well-maintained community Google Workspace MCP server for Gmail, Drive, Docs, Sheets, Calendar, Slides, Chat, Forms, Tasks, Contacts, Apps Script, and Custom Search with full OAuth 2.1 support
Score Breakdown
Server Info
- Package
- workspace-mcp
- Registry
- pypi
- Repository
- taylorwilsdon/google_workspace_mcp
- Maintainer
- Community
- Category
- Communication
- Tags
- googleemailcalendardocs
- Last Scanned
- 28 May 2026
Findings
7 issuesTool Schema Quality
MEDIUMOnly 0 of 113 schemas have parameter constraints
Most schemas lack maxLength, enum, or pattern constraints on string parameters.
Add constraints to string parameters, especially on write operations.
CRITICALDangerous execution surface: Run Script Function executes arbitrary Google Apps Script code in the user's Google account context
Tool allows raw code/query execution which could be exploited via prompt injection.
Use parameterized queries or validated command sets.
Permission Granularity
MEDIUM12 tools combine read and write operations
ToolAnnotations with readOnlyHint and destructiveHint are applied to all 113 tools: 58 readOnlyHint=True, 58 readOnlyHint=False (write), 30 destructiveHint=True. Granular permission control via --permissions flag allows service:level configuration (gmail:readonly, gmail:send, gmail:full, etc.). --read-only flag disables all write tools globally. --tools flag restricts which services are loaded. The 'Manage' pattern tools (Manage Event, Manage Contact, Manage Task, etc.) are classified as mixed read-write since they combine create/update/delete in a single tool, reducing the ability to allow updates while blocking deletes.
Split into separate read and write tools.
LLM Safety
MEDIUM15 tool descriptions are too vague
Short or generic descriptions make tool selection unreliable.
Expand descriptions with specific actions, data types, and side effects.
Data Exposure
MEDIUM6 list operations lack pagination
Multiple list tools support pagination via page_token/page_size parameters (Search Gmail Messages, Search Drive Files, List Drive Items, Get Messages from Chat, List Tasks, Search Contacts, List Spreadsheets). Drive search_drive_files and get messages both expose nextPageToken in responses. No field selection supported; responses return full records. A 2GB download safety limit is applied to URL-based file downloads. Some list tools (List Calendars, List Task Lists, List Script Projects) return all items without pagination.
Add limit/offset or cursor-based pagination.
LOWNo field selection on responses
Responses return full records rather than projected fields.
Implement field selection to return only relevant fields.
Maintenance & Trust
LOWCommunity-maintained by Taylor Wilsdon
No official vendor backing.
Seek vendor verification.
Tools
113 total| Name | Description | Risk |
|---|---|---|
| Search Gmail Messages | Search Gmail messages using query syntax with pagination support | read |
| Get Gmail Message Content | Retrieve full content of a specific Gmail message by ID | read |
| Get Gmail Messages Content Batch | Retrieve content for multiple Gmail messages in a single batch request | read |
| Get Gmail Attachment Content | Download and return the content of a Gmail message attachment | read |
| Send Gmail Message | Send an email message via Gmail | write |
| Draft Gmail Message | Create a draft email message in Gmail without sending | write |
| Get Gmail Thread Content | Retrieve all messages in a Gmail thread by thread ID | read |
| Get Gmail Threads Content Batch | Retrieve content for multiple Gmail threads in a batch request | read |
| List Gmail Labels | List all Gmail labels in the user's mailbox | read |
| Manage Gmail Label | Create, update, or delete a Gmail label | write |
| List Gmail Filters | List all Gmail filters for the user's mailbox | read |
| Manage Gmail Filter | Create or delete Gmail filters for automatic message categorization | write |
| Modify Gmail Message Labels | Add or remove labels from a single Gmail message | write |
| Batch Modify Gmail Message Labels | Add or remove labels from multiple Gmail messages in a batch operation | write |
| Search Drive Files | Search Google Drive files using Drive search query syntax with pagination support | read |
| Get Drive File Content | Download and return the content of a Google Drive file by ID | read |
| Get Drive File Download URL | Get a direct download URL for a Google Drive file | read |
| List Drive Items | List files and folders in a Google Drive folder with pagination | read |
| Create Drive Folder | Create a new folder in Google Drive | write |
| Create Drive File | Create a new file in Google Drive with specified content | write |
| Import to Google Doc | Import a file into Google Drive as a Google Doc | write |
| Get Drive File Permissions | List all permissions on a Google Drive file or folder | read |
| Check Drive File Public Access | Check whether a Google Drive file has public link sharing enabled | read |
| Update Drive File | Update the content or metadata of an existing Google Drive file | write |
| Get Drive Shareable Link | Get or create a shareable link for a Google Drive file | write |
| Manage Drive Access | Add, remove, or modify access permissions for a Google Drive file or folder | write |
| Copy Drive File | Copy a Google Drive file to a new location with optional rename | write |
| Set Drive File Permissions | Set specific access permissions on a Google Drive file | write |
| Search Docs | Search Google Docs in Drive by name or content | read |
| Get Doc Content | Retrieve the full content of a Google Doc by ID | read |
| List Docs in Folder | List Google Docs in a specific Drive folder | read |
| Create Doc | Create a new Google Doc with optional initial content | write |
| Modify Doc Text | Modify text content within an existing Google Doc | write |
| Find and Replace Doc | Perform find and replace operations within a Google Doc | write |
| Insert Doc Elements | Insert elements (tables, page breaks, bullet lists) into a Google Doc | write |
| Insert Doc Image | Insert an image into a Google Doc at a specified location | write |
| Update Doc Headers Footers | Update or create headers and footers in a Google Doc | write |
| Batch Update Doc | Apply multiple structured update operations to a Google Doc in a single batch | write |
| Inspect Doc Structure | Analyze and return the structural elements of a Google Doc | read |
| Debug Docs Runtime Info | Return runtime debugging information about the Docs tools environment | read |
| Create Table with Data | Create a table with data in a Google Doc | write |
| Debug Table Structure | Return structural debugging information about tables in a Google Doc | read |
| Export Doc to PDF | Export a Google Doc as a PDF file | read |
| Update Paragraph Style | Update the paragraph style (heading level, alignment, spacing) in a Google Doc | write |
| Get Doc as Markdown | Export a Google Doc converted to Markdown format | read |
| Manage Doc Tab | Create, update, or delete tabs within a Google Doc | write |
| List Spreadsheets | List Google Sheets spreadsheets in Drive with optional filtering | read |
| Get Spreadsheet Info | Retrieve metadata and sheet list for a Google Sheets spreadsheet | read |
| Read Sheet Values | Read cell values from a range in a Google Sheets spreadsheet | read |
| Modify Sheet Values | Write or update cell values in a Google Sheets spreadsheet | write |
| Format Sheet Range | Apply formatting to a range of cells in a Google Sheets spreadsheet | write |
| Manage Conditional Formatting | Create, update, or delete conditional formatting rules in Google Sheets | write |
| Create Spreadsheet | Create a new Google Sheets spreadsheet | write |
| Create Sheet | Add a new sheet tab to an existing Google Sheets spreadsheet | write |
| List Sheet Tables | List tables defined within a Google Sheets spreadsheet | read |
| Append Table Rows | Append rows to a table or range in a Google Sheets spreadsheet | write |
| Resize Sheet Dimensions | Resize rows or columns in a Google Sheets spreadsheet | write |
| Move Sheet Rows | Move rows within a Google Sheets spreadsheet | write |
| List Calendars | List Google Calendars accessible to the user | read |
| Get Events | Retrieve calendar events within a time range | read |
| Manage Event | Create, update, or delete a Google Calendar event | write |
| Manage Out of Office | Create or manage out of office periods in Google Calendar | write |
| Manage Focus Time | Create or manage focus time blocks in Google Calendar | write |
| Query Freebusy | Query free/busy availability for one or more Google Calendar users | read |
| Create Calendar | Create a new Google Calendar | write |
| Create Presentation | Create a new Google Slides presentation | write |
| Get Presentation | Retrieve a Google Slides presentation by ID | read |
| Batch Update Presentation | Apply multiple update operations to a Google Slides presentation in a batch | write |
| Get Page | Retrieve a specific slide page from a Google Slides presentation | read |
| Get Page Thumbnail | Get a thumbnail image of a specific slide in a Google Slides presentation | read |
| List Spaces | List Google Chat spaces accessible to the user | read |
| Get Messages | Retrieve messages from a Google Chat space with pagination | read |
| Send Message | Send a message to a Google Chat space or direct message | write |
| Search Messages | Search for messages across Google Chat spaces | read |
| Create Reaction | Add an emoji reaction to a Google Chat message | write |
| Download Chat Attachment | Download a file attachment from Google Chat | read |
| Create Form | Create a new Google Form | write |
| Get Form | Retrieve a Google Form by ID including all questions and settings | read |
| Set Publish Settings | Update publication settings for a Google Form | write |
| Get Form Response | Retrieve a specific response to a Google Form by response ID | read |
| List Form Responses | List all responses submitted to a Google Form | read |
| Batch Update Form | Apply multiple update operations to a Google Form in a batch | write |
| List Task Lists | List Google Tasks task lists for the user | read |
| Get Task List | Retrieve a specific Google Tasks task list by ID | read |
| Manage Task List | Create, update, or delete a Google Tasks task list | write |
| List Tasks | List tasks within a Google Tasks task list | read |
| Get Task | Retrieve a specific task from a Google Tasks task list | read |
| Manage Task | Create, update, or delete a task in Google Tasks | write |
| List Contacts | List Google Contacts for the user | read |
| Get Contact | Retrieve a specific Google Contact by resource name | read |
| Search Contacts | Search Google Contacts by name, email, or other fields | read |
| Manage Contact | Create, update, or delete a Google Contact | write |
| List Contact Groups | List contact groups (labels) in Google Contacts | read |
| Get Contact Group | Retrieve a specific Google Contacts group by resource name | read |
| Manage Contacts Batch | Create, update, or delete multiple Google Contacts in a batch operation | write |
| Manage Contact Group | Create, update, or delete a Google Contacts group | write |
| List Script Projects | List Google Apps Script projects | read |
| Get Script Project | Retrieve metadata for a Google Apps Script project | read |
| Get Script Content | Retrieve the source code content of a Google Apps Script project | read |
| Create Script Project | Create a new Google Apps Script project | write |
| Update Script Content | Update the source code of a Google Apps Script project | write |
| Run Script Function | Execute a function within a deployed Google Apps Script project | admin |
| Manage Deployment | Create, update, or delete a deployment of a Google Apps Script project | write |
| List Deployments | List deployments for a Google Apps Script project | read |
| List Script Processes | List execution processes for a Google Apps Script project | read |
| Delete Script Project | Delete a Google Apps Script project | write |
| List Versions | List versions of a Google Apps Script project | read |
| Create Version | Create a new version of a Google Apps Script project | write |
| Get Version | Retrieve a specific version of a Google Apps Script project | read |
| Get Script Metrics | Retrieve execution metrics for a Google Apps Script project | read |
| Generate Trigger Code | Generate trigger code templates for a Google Apps Script project | read |
| Search Custom | Perform a query using a configured Google Custom Search Engine | read |
| Get Search Engine Info | Retrieve configuration information for a Google Custom Search Engine | read |
Deploy Google Workspace MCP securely
CompleteFlow adds per-user authentication, permission scoping, and audit logging to any MCP server out of the box.
Deploy on CompleteFlow