B

Google Workspace MCP

Comprehensive Google Workspace MCP server for Gmail, Calendar, Docs, Sheets, Slides, Drive, Tasks, Forms, Chat, Contacts, Apps Script, and Custom Search

Overall Score76/100

Score Breakdown

Server Info

Package
workspace-mcp
Registry
pypi
Maintainer
Community
Category
Communication
Tags
googleemailcalendardocs
Last Scanned
7 Apr 2026

Findings

8 issues

Authentication & Identity

LOWImplements MCP OAuth spec for per-user authentication

Supports both OAuth 2.0 (legacy) and OAuth 2.1 via FastMCP GoogleProvider with .well-known/oauth-authorization-server endpoint. Uses Streamable HTTP transport with Starlette/FastAPI. Also supports stdio mode with stored credentials. Has session middleware, encrypted token storage (Fernet), and support for Valkey/disk/memory storage backends.

Remediation

Document the required OAuth scopes for each tool.

Tool Schema Quality

HIGHRequired fields missing on 1 write operations

Write tools without required field declarations: start_google_auth.

Remediation

Add required arrays to all write/delete tool schemas.

MEDIUMOnly 0 of 109 schemas have parameter constraints

Most schemas lack maxLength, enum, or pattern constraints on string parameters.

Remediation

Add constraints to string parameters, especially on write operations.

CRITICALDangerous execution surface: run_script_function

Tool allows raw code/query execution which could be exploited via prompt injection.

Remediation

Use parameterized queries or validated command sets.

LLM Safety

HIGHTool descriptions contain instructional language

Descriptions include directives that could influence LLM behavior beyond tool selection.

Remediation

Remove instructional language. Descriptions should be purely factual.

Data Exposure

MEDIUM4 list operations lack pagination

Gmail search has max_results parameter. List operations generally have pagination via page tokens. Calendar get_events supports time ranges. Drive list_drive_items and contacts list have page_size/max_results. Some list tools (list_gmail_labels, list_task_lists) return all results without pagination. Full records are returned without field selection.

Remediation

Add limit/offset or cursor-based pagination.

LOWNo field selection on responses

Responses return full records rather than projected fields.

Remediation

Implement field selection to return only relevant fields.

Maintenance & Trust

LOWCommunity-maintained by lachieglover (mcp-mirror)

No official vendor backing.

Remediation

Seek vendor verification.

Tools

109 total
NameDescriptionRisk
start_google_authManually initiate Google OAuth authentication flow. NOTE: This is a legacy OAuth 2.0 tool and is disabled when OAuth 2.1 is enabled.admin
search_gmail_messagesSearch Gmail messages using Gmail query syntaxread
get_gmail_message_contentGet the content of a specific Gmail messageread
get_gmail_messages_content_batchGet the content of multiple Gmail messages in batchread
get_gmail_attachment_contentGet the content of a Gmail attachmentread
send_gmail_messageSend a Gmail messagewrite
draft_gmail_messageDraft a Gmail messagewrite
get_gmail_thread_contentGet the content of a Gmail threadread
get_gmail_threads_content_batchGet the content of multiple Gmail threads in batchread
list_gmail_labelsList Gmail labelsread
manage_gmail_labelManage Gmail labels (create, update, delete)write
list_gmail_filtersList Gmail filtersread
manage_gmail_filterManage Gmail filters (create, delete)write
modify_gmail_message_labelsModify labels on a Gmail messagewrite
batch_modify_gmail_message_labelsModify labels on multiple Gmail messages in batchwrite
list_calendarsList all available calendarsread
get_eventsGet calendar eventsread
manage_eventManage calendar events (create, update, delete)write
query_freebusyQuery free/busy information for calendarsread
search_drive_filesSearch for files in Google Driveread
get_drive_file_contentGet the content of a Google Drive fileread
get_drive_file_download_urlGet a download URL for a Google Drive fileread
list_drive_itemsList items in a Google Drive folderread
create_drive_folderCreate a folder in Google Drivewrite
create_drive_fileCreate a file in Google Drivewrite
import_to_google_docImport content to a Google Docwrite
get_drive_file_permissionsGet permissions for a Google Drive fileread
check_drive_file_public_accessCheck if a Google Drive file has public accessread
update_drive_fileUpdate a Google Drive filewrite
get_drive_shareable_linkGet a shareable link for a Google Drive fileread
manage_drive_accessManage access permissions for a Google Drive fileadmin
copy_drive_fileCopy a Google Drive filewrite
set_drive_file_permissionsSet permissions on a Google Drive fileadmin
search_docsSearch for Google Docsread
get_doc_contentGet the content of a Google Docread
list_docs_in_folderList Google Docs in a folderread
create_docCreate a new Google Docwrite
modify_doc_textModify text in a Google Docwrite
find_and_replace_docFind and replace text in a Google Docwrite
insert_doc_elementsInsert elements into a Google Docwrite
insert_doc_imageInsert an image into a Google Docwrite
update_doc_headers_footersUpdate headers and footers in a Google Docwrite
batch_update_docBatch update a Google Doc with multiple operationswrite
inspect_doc_structureInspect the structure of a Google Docread
debug_docs_runtime_infoDebug runtime info for Google Docsread
create_table_with_dataCreate a table with data in a Google Docwrite
debug_table_structureDebug table structure in a Google Docread
export_doc_to_pdfExport a Google Doc to PDFread
update_paragraph_styleUpdate paragraph style in a Google Docwrite
get_doc_as_markdownGet a Google Doc as Markdownread
insert_doc_tabInsert a tab in a Google Docwrite
delete_doc_tabDelete a tab in a Google Docwrite
update_doc_tabUpdate a tab in a Google Docwrite
list_spreadsheetsList spreadsheets in Google Sheetsread
get_spreadsheet_infoGet info about a spreadsheetread
read_sheet_valuesRead values from a spreadsheetread
modify_sheet_valuesModify values in a spreadsheetwrite
format_sheet_rangeFormat a range in a spreadsheetwrite
manage_conditional_formattingManage conditional formatting in a spreadsheetwrite
create_spreadsheetCreate a new spreadsheetwrite
create_sheetCreate a new sheet in a spreadsheetwrite
create_presentationCreate a new Google Slides presentationwrite
get_presentationGet a Google Slides presentationread
batch_update_presentationBatch update a Google Slides presentationwrite
get_pageGet a specific page from a Google Slides presentationread
get_page_thumbnailGet a thumbnail of a Google Slides pageread
list_task_listsList Google Tasks task listsread
get_task_listGet a specific task listread
manage_task_listManage task lists (create, update, delete, clear completed)write
list_tasksList tasks in a task listread
get_taskGet a specific taskread
manage_taskManage tasks (create, update, delete, move)write
create_formCreate a new Google Formwrite
get_formGet a Google Formread
set_publish_settingsSet publish settings for a Google Formwrite
get_form_responseGet a specific form responseread
list_form_responsesList form responsesread
batch_update_formBatch update a Google Formwrite
list_spacesList Google Chat spacesread
get_messagesGet messages from a Google Chat spaceread
send_messageSend a message to a Google Chat spacewrite
search_messagesSearch messages across Google Chat spacesread
create_reactionCreate a reaction on a Google Chat messagewrite
download_chat_attachmentDownload a Chat attachmentread
list_contactsList Google Contactsread
get_contactGet a specific Google Contactread
search_contactsSearch Google Contactsread
manage_contactManage a Google Contact (create, update, delete)write
list_contact_groupsList Google Contact groupsread
get_contact_groupGet a specific Google Contact groupread
manage_contacts_batchBatch manage Google Contactswrite
manage_contact_groupManage a Google Contact group (create, update, delete)write
list_script_projectsList Apps Script projectsread
get_script_projectGet an Apps Script projectread
get_script_contentGet the content of an Apps Script projectread
create_script_projectCreate an Apps Script projectwrite
update_script_contentUpdate the content of an Apps Script projectwrite
run_script_functionRun a function in an Apps Script projectadmin
manage_deploymentManage Apps Script deployments (create, update, delete)admin
list_deploymentsList Apps Script deploymentsread
list_script_processesList Apps Script processesread
delete_script_projectDelete an Apps Script projectadmin
list_versionsList versions of an Apps Script projectread
create_versionCreate a version of an Apps Script projectwrite
get_versionGet a specific version of an Apps Script projectread
get_script_metricsGet metrics for an Apps Script projectread
generate_trigger_codeGenerate trigger code for an Apps Script projectread
search_customSearch using Google Custom Searchread
get_search_engine_infoGet search engine info for Google Custom Searchread

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