Documentation

Current reference for authentication, transport modes, CLI usage, and all Google Workspace tool groups.

Synced with v1.30.0 ·

Authentication

Legacy OAuth 2.0 and OAuth 2.1 multi-user flows, including stateless and external-provider modes.

Source: auth/

Enable Google Cloud APIs

Enable the API for each service you plan to use, in the same Google Cloud project as your OAuth client. Each link opens the Cloud Console enable flow for whichever project is currently selected, so check the project picker first. To enable them all from the CLI instead, run the gcloud command below with your project ID, dropping any services you will not use. Calls to a service whose API is disabled fail with a 403 SERVICE_DISABLED error. Google Chat also needs a Chat app configured on the Chat API Configuration tab before it accepts requests.

EnableAPI IDUsed by
Gmail APIgmail.googleapis.comGmail MCP
Google Drive APIdrive.googleapis.comGoogle Drive MCP
Google Calendar APIcalendar-json.googleapis.comGoogle Calendar MCP
Google Docs APIdocs.googleapis.comGoogle Docs MCP
Google Sheets APIsheets.googleapis.comGoogle Sheets MCP
Google Slides APIslides.googleapis.comGoogle Slides MCP
Google Forms APIforms.googleapis.comGoogle Forms MCP
Google Tasks APItasks.googleapis.comGoogle Tasks MCP
People APIpeople.googleapis.comGoogle Contacts MCP
Google Chat APIchat.googleapis.comGoogle Chat MCP
Custom Search APIcustomsearch.googleapis.comGoogle Custom Search MCP
Apps Script APIscript.googleapis.comGoogle Apps Script MCP
gcloud services enable \
  gmail.googleapis.com \
  drive.googleapis.com \
  calendar-json.googleapis.com \
  docs.googleapis.com \
  sheets.googleapis.com \
  slides.googleapis.com \
  forms.googleapis.com \
  tasks.googleapis.com \
  people.googleapis.com \
  chat.googleapis.com \
  customsearch.googleapis.com \
  script.googleapis.com \
  --project=PROJECT_ID

OAuth 2.1 (Multi-User)

Enable with MCP_ENABLE_OAUTH21=true and run HTTP transport (--transport streamable-http). This is the recommended mode for modern MCP clients and bearer-token auth.

ParameterRequiredDescription
MCP_ENABLE_OAUTH21RequiredSet to true to enable OAuth 2.1 mode.
--transport streamable-httpRequiredRequired transport for OAuth 2.1 and full MCP compliance.

Legacy OAuth 2.0 (Single-User / Fallback)

Default mode when OAuth 2.1 is not enabled. Use this for older clients that do not support OAuth 2.1. --single-user cannot be combined with OAuth 2.1.

ParameterRequiredDescription
--single-userOptionalLegacy single-user flow; mutually exclusive with OAuth 2.1.
OAUTHLIB_INSECURE_TRANSPORTOptionalSet to 1 only for local HTTP development callbacks.

Stateless Mode

Container-friendly mode with no filesystem writes. Requires OAuth 2.1 and bearer tokens on requests.

ParameterRequiredDescription
WORKSPACE_MCP_STATELESS_MODERequiredSet to true (requires OAuth 2.1).

External OAuth 2.1 Provider

Use when your app handles OAuth externally. The server skips local OAuth flow and validates incoming bearer tokens.

ParameterRequiredDescription
EXTERNAL_OAUTH21_PROVIDERRequiredSet to true with MCP_ENABLE_OAUTH21=true.

OAuth Proxy Storage Backends

Select proxy storage backend for OAuth state in distributed deployments.

ParameterRequiredDescription
WORKSPACE_MCP_OAUTH_PROXY_STORAGE_BACKENDOptionalOne of memory, disk, or valkey.
WORKSPACE_MCP_OAUTH_PROXY_DISK_DIRECTORYOptionalDisk backend path.
WORKSPACE_MCP_OAUTH_PROXY_VALKEY_HOSTOptionalValkey/Redis host for distributed storage.

Service Account with Domain-Wide Delegation

Authenticate as a service account and impersonate domain users. When a tool call supplies user_google_email, it is used as the per-request impersonation subject, so one server instance can act for multiple domain users; USER_GOOGLE_EMAIL is the fallback subject.

ParameterRequiredDescription
GOOGLE_SERVICE_ACCOUNT_KEY_FILEOptionalPath to the service account JSON key file (or use GOOGLE_SERVICE_ACCOUNT_KEY_JSON inline — set one, not both).
USER_GOOGLE_EMAILRequiredFallback impersonation subject when a tool call supplies no email.
DWD_ALLOWED_DOMAINSOptionalComma-separated domain allowlist for per-request impersonation. Unset allows any email the delegation scope accepts.

OAuth Consent Page Branding

Customize the OAuth 2.1 consent page shown to users during authorization.

ParameterRequiredDescription
WORKSPACE_MCP_BRAND_NAMEOptionalServer name shown on the consent page.
WORKSPACE_MCP_BRAND_ICON_URLOptionalConsent-page logo (hosted URL or data: URI), shown at 64px wide.
WORKSPACE_MCP_BRAND_WEBSITE_URLOptionalWebsite link shown on the consent page.

Server Modes and CLI

Transport guidance, CLI mode, tool tiers, and permission filtering options.

Source: main.py

HTTP Transport (Recommended)

Run with --transport streamable-http for Claude Code, VS Code MCP, MCP Inspector, and OAuth 2.1 support.

Stdio Transport (Legacy)

Use only for clients with incomplete MCP support. Not recommended for modern multi-user flows.

CLI Mode (`--cli`)

Directly list and invoke tools from the command line without running the full MCP server process.

ParameterRequiredDescription
--cli list --jsonOptionalList tools for scripting and automation.
--cli <tool> --args <json>OptionalInvoke a specific tool with JSON args.

Tool Tiers

Three cumulative tiers for simplified deployments: core, extended, complete.

ParameterRequiredDescription
--tool-tier core|extended|completeOptionalScope loaded tools to the selected tier.
--disabled-tools TOOL_NAME ...OptionalBlock individual tools by name regardless of tier or permission selection. Composes with every other filtering option. Env var: WORKSPACE_MCP_DISABLED_TOOLS (comma-separated).

Read-Only and Granular Permissions

--read-only requests readonly scopes and hides write tools. --permissions sets a per-service access level and implicitly selects which services load — only the services you list are imported. Levels are cumulative: each one includes every level to its left. Mutually exclusive with --read-only and --tools; combine with --tool-tier to narrow further within the selected services.

ParameterRequiredDescription
--read-onlyOptionalRequests readonly scopes and filters write tools.
--permissions service:level ...OptionalSpace-separated per-service access levels, for example --permissions gmail:send drive:readonly. Env var: WORKSPACE_MCP_PERMISSIONS (space-separated).
ServiceLevels (least to most permissive)Notes
gmailreadonlyorganizedraftssendfullorganize adds labels and modify, drafts adds compose, send adds sending, full adds basic settings.
drivereadonlyfullfull adds full Drive access plus per-file access.
calendarreadonlyfullfull adds calendar and event write access.
docsreadonlyfullBoth levels include Drive readonly; full adds document write plus per-file Drive access.
sheetsreadonlyfullBoth levels include Drive readonly; full adds spreadsheet write access.
slidesreadonlyfullfull adds presentation write access.
formsreadonlyfullfull adds form editing; responses stay read-only at both levels.
chatreadonlyfullfull adds message and space write access.
tasksreadonlymanagefullmanage creates and updates tasks but denies delete and clear_completed; full lifts those restrictions.
contactsreadonlyfullfull adds contact write access.
searchreadonlyfullProgrammable Search is read-only by nature — both levels request the same scope.
appscriptreadonlyfullReadonly covers projects, deployments, processes, and metrics; full adds project and deployment write.

Reverse Proxy OAuth URL Overrides

Use external URL overrides when running behind a reverse proxy so generated OAuth endpoints match public domains.

ParameterRequiredDescription
WORKSPACE_EXTERNAL_URLOptionalSets a public base URL for OAuth-related endpoints.
GOOGLE_OAUTH_REDIRECT_URIOptionalOverride only the OAuth callback URL.
OAUTH_CUSTOM_REDIRECT_URISOptionalComma-separated additional redirect URIs.
OAUTH_ALLOWED_ORIGINSOptionalComma-separated additional CORS origins.

Attachment Storage

Downloaded Gmail/Drive attachments are stored in persistent local storage and exposed by URL in HTTP mode.

ParameterRequiredDescription
WORKSPACE_ATTACHMENT_DIROptionalOverride the default ~/.workspace-mcp/attachments/ location.

OpenTelemetry Tracing (Optional)

Distributed tracing via the otel extra (pip install "workspace-mcp[otel]", included in the Docker image). Tracing is fully disabled unless an OTLP endpoint is configured; spans export only to the collector you specify. Standard OTLP variables for headers, TLS, sampling, and batching are honored.

ParameterRequiredDescription
OTEL_EXPORTER_OTLP_ENDPOINTOptionalOTLP collector endpoint. Unset means tracing is disabled.
OTEL_EXPORTER_OTLP_PROTOCOLOptionalgrpc (default) or http/protobuf.
OTEL_SERVICE_NAMEOptionalService name — defaults to google-workspace-mcp.
WORKSPACE_MCP_OTEL_USER_EMAILOptionalSet true to record the authenticated user's email on spans. PII — off by default.

Logging

Server logs default to INFO. DEBUG includes companion lines that may contain user text, so enable it only when needed and treat its output as sensitive.

ParameterRequiredDescription
WORKSPACE_MCP_LOG_LEVELOptionalCRITICAL, ERROR, WARNING, INFO (default), or DEBUG. Invalid values fall back to INFO.
WORKSPACE_MCP_LOG_DIROptionalDirectory for mcp_server_debug.log — defaults to ~/.google_workspace_mcp/logs.

Google Calendar MCP

Calendar operations with consolidated event management, availability, and working-status tooling.

Source: gcalendar/calendar_tools.py

list_calendars

Core

Lists calendars accessible to the authenticated user.

ParameterRequiredDescription
max_resultsOptionalMaximum calendars to return in one page.
page_tokenOptionalToken for the next page, taken from a previous response. Responses include a next page token whenever more calendars remain.

get_events

Core

Retrieves events for a calendar and time range.

ParameterRequiredDescription
calendar_idOptionalDefaults to primary.
time_minOptionalRFC3339 or date.
time_maxOptionalRFC3339 or date.
max_resultsOptionalMaximum events to return.
single_eventsOptionalWhether to expand recurring series into individual instances. Defaults to true. Set to false to retrieve recurring master events and their RFC 5545 recurrence rules.
page_tokenOptionalToken for the next page, taken from a previous response. With single_events true, also pass the response's pagination time_min as time_min (even if you omitted it on the first call) and keep every other query parameter unchanged. Ignored when event_id is set.

manage_event

Core

Consolidated create, update, and delete event operations.

ParameterRequiredDescription
actionRequiredcreate, update, or delete.
event_idOptionalRequired for update and delete.
start_timeOptionalStart time (required for create). A timestamp with a UTC offset is kept as that exact instant; omit the offset and pass a timezone to book a local wall-clock time. Date-only values create all-day events.
end_timeOptionalEnd time (required for create). Same offset rules as start_time; all-day end dates are exclusive.
start_timezoneOptionalIANA timezone for the start boundary, overriding the shared timezone. Offset-bearing timestamps keep their instant; offset-free ones are read as local time in this zone.
end_timezoneOptionalIANA timezone for the end boundary, overriding the shared timezone. Use separate boundary zones for events such as flights whose departure and arrival have different local times.
attachmentsOptionalDrive file IDs or share URLs to attach. On update the list replaces the event's existing attachments rather than adding to them, so pass the full set you want to keep.

create_calendar

Extended

Create a new secondary Google Calendar.

ParameterRequiredDescription
summaryRequiredName for the new calendar.
descriptionOptionalOptional calendar description.
timezoneOptionalIANA timezone (e.g., "America/New_York").

query_freebusy

Extended

Query free/busy information across one or more calendars.

ParameterRequiredDescription
time_minRequiredStart of the window (RFC3339).
time_maxRequiredEnd of the window (RFC3339).
calendar_idsOptionalCalendar IDs to query. Defaults to primary.
group_expansion_maxOptionalMaximum calendars to expand per group.
calendar_expansion_maxOptionalMaximum calendars for which to return busy information.

manage_out_of_office

Extended

Create, list, update, or delete Out of Office events.

ParameterRequiredDescription
actionRequiredcreate, list, update, or delete.
start_timeOptionalStart time (required for create).
end_timeOptionalEnd time (required for create).
summaryOptionalEvent title.
auto_decline_modeOptionalHow conflicting meetings are declined.
decline_messageOptionalMessage sent with auto-declines.
recurrenceOptionalRRULE strings for recurring events.
event_idOptionalRequired for update and delete.
calendar_idOptionalDefaults to primary.

manage_focus_time

Extended

Create, list, update, or delete Focus Time events.

ParameterRequiredDescription
actionRequiredcreate, list, update, or delete.
start_timeOptionalStart time (required for create).
end_timeOptionalEnd time (required for create).
summaryOptionalEvent title.
auto_decline_modeOptionalHow conflicting meetings are declined.
decline_messageOptionalMessage sent with auto-declines.
chat_statusOptionalChat availability during focus time (e.g., "doNotDisturb").
recurrenceOptionalRRULE strings for recurring events.
event_idOptionalRequired for update and delete.
calendar_idOptionalDefaults to primary.

Google Drive MCP

Drive content, sharing, import/export, and permission management.

Source: gdrive/drive_tools.py

search_drive_files

Core

Search Drive files and folders.

ParameterRequiredDescription
queryRequiredThe search query string. Supports Google Drive search operators.
page_sizeOptionalThe maximum number of files to return. Defaults to 10.
page_tokenOptionalPage token from a previous response's nextPageToken.
drive_idOptionalID of the shared drive to search.
file_typeOptionalRestrict results to specific file type (e.g., 'folder', 'document', 'pdf').

get_drive_file_content

Core

Read file content with export support.

ParameterRequiredDescription
file_idRequiredDrive file ID.

get_drive_file_download_url

Core

Download Drive files via local path or HTTP attachment URL, or inline as an embedded resource in stateless mode.

ParameterRequiredDescription
file_idRequiredThe Google Drive file ID to download.
export_formatOptionalOptional export format for Google native files.

create_drive_file

Core

Create files from inline content or source URLs.

ParameterRequiredDescription
file_nameRequiredThe name for the new file.
contentOptionalText content to write to the file.
folder_idOptionalThe ID of the parent folder. Defaults to 'root'.
mime_typeOptionalThe MIME type of the file. Defaults to 'text/plain'.
fileUrlOptionalIf provided, fetches file content from this URL (file://, http://, https://).
base64_contentOptionalStandard base64-encoded file bytes. Mutually exclusive with content and fileUrl.
content_mime_typeOptionalMIME type for base64_content uploads. Required when using base64_content.
base64_sha256OptionalExpected SHA-256 hex digest of the decoded payload for integrity verification.
return_upload_urlOptionalReturn a Google resumable-upload URL the client PUTs the bytes to directly, so large or binary files skip the server and model context. Offered only when WORKSPACE_MCP_DISABLE_LOCAL_FILES is set.

create_drive_folder

Core

Create folders in My Drive or shared drives.

ParameterRequiredDescription
folder_nameRequiredThe name for the new folder.
parent_folder_idOptionalThe ID of the parent folder. Defaults to 'root'.

import_to_google_doc

Core

Import files (Markdown, DOCX, HTML, etc.) into Google Docs.

ParameterRequiredDescription
file_nameRequiredThe name for the new Google Doc (extension will be ignored).
contentOptionalText content for text-based formats (MD, TXT, HTML).
file_pathOptionalLocal file path for binary formats (DOCX, ODT).
file_urlOptionalRemote URL to fetch the file from (http/https).
source_formatOptionalSource format hint ('md', 'markdown', 'docx', 'txt', 'html', 'rtf', 'odt').
base64_contentOptionalStandard base64-encoded file bytes for binary uploads. Mutually exclusive with content, file_path, and file_url.
base64_sha256OptionalExpected SHA-256 hex digest of the decoded payload for integrity verification.
return_upload_urlOptionalReturn a Google resumable-upload URL the client PUTs the bytes to directly, so large or binary files skip the server and model context. Offered only when WORKSPACE_MCP_DISABLE_LOCAL_FILES is set.

import_to_google_slides

Core

Import presentation files (PPTX, PPT, ODP) as Google Slides.

ParameterRequiredDescription
file_nameRequiredThe name for the new Google Slides presentation.
file_pathOptionalLocal file path to the presentation file.
file_urlOptionalRemote URL to fetch the file from (http/https).
source_formatOptionalSource format hint ('pptx', 'ppt', 'odp').
folder_idOptionalDestination folder ID. Defaults to 'root'.
base64_contentOptionalStandard base64-encoded file bytes for binary uploads. Mutually exclusive with file_path and file_url.
base64_sha256OptionalExpected SHA-256 hex digest of the decoded payload for integrity verification.
return_upload_urlOptionalReturn a Google resumable-upload URL the client PUTs the bytes to directly, so large or binary files skip the server and model context. Offered only when WORKSPACE_MCP_DISABLE_LOCAL_FILES is set.

import_to_google_sheets

Core

Import spreadsheet files (XLSX, CSV, TSV, etc.) as Google Sheets.

ParameterRequiredDescription
file_nameRequiredThe name for the new Google Sheet.
contentOptionalInline text content for text-based formats (CSV, TSV).
file_pathOptionalLocal file path for binary formats (XLSX, ODS).
file_urlOptionalRemote URL to fetch the file from (http/https).
source_formatOptionalSource format hint ('xlsx', 'csv', 'tsv', 'ods').
folder_idOptionalDestination folder ID. Defaults to 'root'.
base64_contentOptionalStandard base64-encoded file bytes for binary uploads. Mutually exclusive with content, file_path, and file_url.
base64_sha256OptionalExpected SHA-256 hex digest of the decoded payload for integrity verification.
return_upload_urlOptionalReturn a Google resumable-upload URL the client PUTs the bytes to directly, so large or binary files skip the server and model context. Offered only when WORKSPACE_MCP_DISABLE_LOCAL_FILES is set.

get_drive_shareable_link

Core

Generate shareable links for files.

ParameterRequiredDescription
file_idRequiredThe ID of the file or folder to get the shareable link for.

list_drive_items

Extended

List folder contents or shared drives.

ParameterRequiredDescription
folder_idOptionalThe ID of the Google Drive folder. Defaults to 'root'.
page_sizeOptionalThe maximum number of items to return. Defaults to 100.
page_tokenOptionalPage token for pagination.
drive_idOptionalShared drive ID to list from.
resource_typeOptionalitems (default) or drives to list shared drives.
file_typeOptionalRestrict results to specific file type.

copy_drive_file

Extended

Copy existing Drive files with optional renaming.

ParameterRequiredDescription
file_idRequiredThe ID of the file to copy.
new_nameOptionalNew name for the copied file. If not provided, uses "Copy of [original name]".
parent_folder_idOptionalThe ID of the folder where the copy should be created. Defaults to 'root'.

update_drive_file

Extended

Update metadata, move files, or replace/append to Google Apps content in place.

ParameterRequiredDescription
file_idRequiredThe ID of the file to update.
nameOptionalNew name for the file.
descriptionOptionalNew description for the file.
add_parentsOptionalComma-separated folder IDs to add as parents.
remove_parentsOptionalComma-separated folder IDs to remove from parents.
starredOptionalStar or unstar the file.
trashedOptionalMove the file to or from the trash.
contentOptionalReplacement text content (Markdown, TXT, HTML), preserving the file ID.
file_pathOptionalLocal file path for binary replacement content (DOCX, ODT, etc.).
file_urlOptionalRemote URL to fetch replacement content from.
source_formatOptionalFormat hint for replacement content ('md', 'docx', 'txt', 'html', 'rtf', 'odt').
modeOptional'replace' (default), 'append', or 'prepend'. Append/prepend splice content onto the existing text server-side, so only the new text has to be sent.
return_upload_urlOptionalReturn a Google resumable-upload URL the client PUTs the bytes to directly, so large or binary files skip the server and model context. Offered only when WORKSPACE_MCP_DISABLE_LOCAL_FILES is set.

manage_drive_access

Extended

Grant, update, revoke permissions, and transfer ownership.

ParameterRequiredDescription
file_idRequiredThe ID of the file or folder.
actionRequiredThe access management action to perform ('grant', 'revoke', 'update', 'transfer_ownership').
share_withOptionalEmail address (user/group) or domain name.
roleOptionalPermission role ('reader', 'writer', 'commenter', 'owner').
permission_idOptionalPermission ID for revoke/update actions.

set_drive_file_permissions

Extended

Configure link sharing and file-level sharing.

ParameterRequiredDescription
file_idRequiredThe ID of the file or folder.
link_sharingOptionalControl "anyone with the link" access for the file.
writers_can_shareOptionalWhether editors can change permissions and share.

get_drive_file_permissions

Complete

Get file metadata, parents, and detailed permission entries.

ParameterRequiredDescription
file_idRequiredThe ID of the file to check permissions for.

check_drive_file_public_access

Complete

Check whether a file is publicly accessible.

ParameterRequiredDescription
file_nameRequiredThe name of the file to check.

Gmail MCP

Message, label, filter, thread, and attachment workflows.

Source: gmail/gmail_tools.py

search_gmail_messages

Core

Search mail using Gmail query operators.

ParameterRequiredDescription
queryRequiredThe search query. Supports standard Gmail search operators.
page_sizeOptionalThe maximum number of messages to return. Defaults to 10.
page_tokenOptionalToken for retrieving the next page of results.
include_headersOptionalIf True, also return Subject, From, and Date per result. Costs one metadata fetch per result. Defaults to False.

get_gmail_message_content

Core

Retrieve message content. With full=True, returns the complete untruncated message via file/URL (or inline when no file storage is available).

ParameterRequiredDescription
message_idRequiredThe unique ID of the Gmail message to retrieve.
body_formatOptionalBody output format: 'text' (default), 'html', or 'raw' (decoded MIME).
fullOptionalIf True, return the complete untruncated message.
formatOptional'full' (default) or 'metadata' for headers only, skipping the body fetch.

get_gmail_messages_content_batch

Core

Batch fetch message content.

ParameterRequiredDescription
message_idsRequiredList of Gmail message IDs to retrieve (max 25 per batch).
formatOptionalMessage format. "full" includes body, "metadata" only headers.

send_gmail_message

Core

Send email messages (supports replies, forwards, and attachments). When thread_id is set, threading headers are derived from the thread automatically.

ParameterRequiredDescription
toOptionalRecipient email address. Optional when replying with reply_all=True, which derives it from the thread.
subjectOptionalEmail subject. Required when sending; optional when forwarding (defaults to "Fwd: <original subject>").
bodyOptionalEmail body content. Required when sending. When forwarding, this is an optional note prepended above the quoted original.
body_formatOptionalEmail body format ('plain' or 'html'). Defaults to 'plain'. With 'html', bare newlines between text become <br> line breaks; well-formed block markup is left untouched.
ccOptionalOptional CC email address.
bccOptionalOptional BCC email address.
thread_idOptionalThread ID to reply within.
reply_allOptionalDerive reply-all recipients from the thread: To is the sender replied to, Cc the other participants, excluding the authenticated account. Requires thread_id; explicit to/cc win. Defaults to False.
quote_originalOptionalInclude the message being replied to as a quoted original. Only has an effect with thread_id. Defaults to False.
attachmentsOptionalOptional list of attachments (path or base64 content).

get_gmail_thread_content

Extended

Retrieve full thread content.

ParameterRequiredDescription
thread_idRequiredThe unique ID of the Gmail thread to retrieve.

get_gmail_attachment_content

Extended

Download Gmail attachments to persistent attachment storage.

ParameterRequiredDescription
message_idRequiredThe ID of the Gmail message containing the attachment.
attachment_idRequiredThe ID of the attachment to download.
return_base64OptionalIf True, also return the attachment content as base64.
attachment_indexOptionalZero-based attachment position from the message-content response. Lets the server re-resolve Gmail's refreshed attachment IDs against current metadata before downloading.

modify_gmail_message_labels

Extended

Add/remove labels on a message.

ParameterRequiredDescription
message_idRequiredThe ID of the message to modify.
add_label_idsOptionalList of label IDs to add to the message.
remove_label_idsOptionalList of label IDs to remove from the message.

list_gmail_labels

Extended

List account labels.

ParameterRequiredDescription
prefixOptionalReturn only labels whose name starts with this string (case-sensitive). Useful for fetching a single subtree of a hierarchical label structure.
compactOptionalWhen true, returns minimal JSON with just id and name per label, sorted by name.
include_systemOptionalWhen false, excludes Gmail system labels from the results. Defaults to true.

list_gmail_filters

Extended

List configured Gmail filters.

manage_gmail_label

Extended

Create/update/delete labels.

ParameterRequiredDescription
actionRequiredAction to perform on the label ('create', 'update', 'delete').
nameOptionalLabel name. Required for create, optional for update.
label_idOptionalLabel ID. Required for update and delete operations.
background_colorOptionalLabel background color as a hex string, e.g. #fb4c2f. Must be set together with text_color. Gmail accepts only its own palette, and an unsupported value is rejected before the request is sent. Applies to user labels, not system labels.
text_colorOptionalLabel text color as a hex string, e.g. #ffffff. Must be set together with background_color, from the same palette. On update, omitting both keeps the label's current color.
clear_colorOptionalOn update, remove the label's current color. Cannot be combined with background_color or text_color.

manage_gmail_filter

Extended

Create, update, and delete Gmail filters, or apply one to existing mail.

ParameterRequiredDescription
actionRequired"create", "update", "delete", or "apply". Update recreates the filter (new one first, then the old one is deleted), so its ID changes.
criteriaOptionalFilter criteria object (required for create; optional for update/apply).
filter_actionOptionalFilter action object (required for create; optional for update/apply).
filter_idOptionalID of the filter (required for delete and update; optional for apply).
dry_runOptionalApply only: count matching messages without changing anything.
max_messagesOptionalApply only: safety cap on messages changed. Defaults to 5000.

draft_gmail_message

Extended

Create Gmail drafts.

ParameterRequiredDescription
subjectRequiredEmail subject.
bodyRequiredEmail body content.
body_formatOptionalEmail body format ('plain' or 'html'). Defaults to 'plain'.
toOptionalOptional recipient email address.
ccOptionalOptional CC email address.
attachmentsOptionalOptional list of attachments.

get_gmail_threads_content_batch

Complete

Batch fetch thread content.

ParameterRequiredDescription
thread_idsRequiredA list of Gmail thread IDs to retrieve.

batch_modify_gmail_message_labels

Complete

Batch label modifications.

ParameterRequiredDescription
message_idsRequiredA list of message IDs to modify.
add_label_idsOptionalList of label IDs to add to the messages.
remove_label_idsOptionalList of label IDs to remove from the messages.
verifyOptionalRead messages back and report per-ID outcomes. Defaults to true; set to false to avoid one extra batched read per message when an unverified result is acceptable.

start_google_auth

Complete

Legacy OAuth 2.0 auth helper (disabled with OAuth 2.1).

Google Docs MCP

Document creation, edits, exports, structured updates, and comment management.

Source: gdocs/docs_tools.py

get_doc_content

Core

Extract plain text document content.

ParameterRequiredDescription
document_idRequiredID of the document to retrieve.
tab_idOptionalRead a single tab instead of the main document body. Take the ID from inspect_doc_structure.
preserve_contextOptionalReturn a readable plain-text view with link destinations, smart-chip values, table boundaries, headers, footers and footnotes. Off by default, because the default output stays index-aligned for editing.

create_doc

Core

Create new documents.

ParameterRequiredDescription
titleRequiredThe title for the new document.
contentOptionalInitial text content for the document.
folder_idOptionalThe ID of the parent folder. Defaults to 'root'.

modify_doc_text

Core

Modify document text with formatting and links.

ParameterRequiredDescription
document_idRequiredID of the document to update.
start_indexRequiredStart position for operation (0-based).
end_indexOptionalEnd position for text replacement/formatting (if not provided with text, text is inserted).
textOptionalNew text to insert or replace with (optional - can format existing text without changing it).
boldOptionalWhether to make text bold (True/False/None to leave unchanged).
italicOptionalWhether to make text italic (True/False/None to leave unchanged).
underlineOptionalWhether to underline text (True/False/None to leave unchanged).
font_sizeOptionalFont size in points.
font_familyOptionalFont family name (e.g., "Arial", "Times New Roman").
text_colorOptionalForeground text color (#RRGGBB).
background_colorOptionalBackground/highlight color (#RRGGBB).
link_urlOptionalHyperlink URL (http/https).

search_docs

Extended

Search docs by name.

ParameterRequiredDescription
queryRequiredSearch query to find documents by name.
page_sizeOptionalMaximum number of results to return.
page_tokenOptionalPage token from a previous response's nextPageToken to fetch the next page.
corporaOptionalCorpus to search ("user", "domain", "drive", "allDrives"). Defaults to "drive" when drive_id is set, otherwise "allDrives".
drive_idOptionalShared drive ID to search.

find_and_replace_doc

Extended

Find and replace text.

ParameterRequiredDescription
document_idRequiredID of the document to update.
find_textRequiredText to search for.
replace_textRequiredText to replace with.
match_caseOptionalWhether to match case exactly.

list_docs_in_folder

Extended

List docs in a Drive folder.

ParameterRequiredDescription
folder_idOptionalThe ID of the folder. Defaults to root.
page_sizeOptionalMaximum number of documents to return.
page_tokenOptionalPage token from a previous response's nextPageToken to fetch the next page.

insert_doc_elements

Extended

Insert tables, lists, and page breaks.

ParameterRequiredDescription
document_idRequiredID of the document to update.
element_typeRequiredType of element to insert ("table", "list", "page_break").
indexRequiredPosition to insert element (0-based).
rowsOptionalNumber of rows for table (required for table).
columnsOptionalNumber of columns for table (required for table).
list_typeOptionalType of list ("UNORDERED", "ORDERED") (required for list).
textOptionalInitial text content for list items.

update_paragraph_style

Extended

Apply heading and paragraph styles, including nested lists and per-edge borders.

ParameterRequiredDescription
document_idRequiredDocument ID to modify.
start_indexRequiredStart position (1-based).
end_indexRequiredEnd position (exclusive) - should cover the entire paragraph.
heading_levelOptionalHeading level 0-6 (0 = NORMAL_TEXT, 1 = H1, 2 = H2, etc.).
alignmentOptionalText alignment.
line_spacingOptionalLine spacing value.
border_edgesOptionalBorder edges to update ('top', 'bottom', 'left', 'right', 'between'). Omit to update all four outer edges.
border_colorOptionalBorder color as #RRGGBB. Defaults to black.
border_widthOptionalBorder width in points. Defaults to 1.
border_paddingOptionalBorder padding in points. Defaults to 4.
border_dashOptionalBorder dash style ('SOLID', 'DOT', or 'DASH'). Defaults to 'SOLID'.
list_typeOptionalList type for creating lists.
list_nesting_levelOptionalNesting level for lists.

get_doc_as_markdown

Extended

Export a document as formatted Markdown.

ParameterRequiredDescription
document_idRequiredID of the Google Doc (or full URL).
include_commentsOptionalWhether to include comments (default: True).
comment_modeOptionalHow to display comments.
include_resolvedOptionalWhether to include resolved comments (default: False).
tab_idOptionalExport a single tab instead of the main document body. Take the ID from inspect_doc_structure.

export_doc_to_pdf

Extended

Export a doc to PDF.

ParameterRequiredDescription
document_idRequiredID of the Google Doc to export.
pdf_filenameOptionalName for the PDF file (optional - if not provided, uses original name + "_PDF").
folder_idOptionalDrive folder ID to save PDF in (optional - if not provided, saves in root).

list_document_comments

Extended

List all document comments.

manage_document_comment

Extended

Create, reply, or resolve comments.

insert_doc_image

Complete

Insert images from Drive or URLs.

ParameterRequiredDescription
document_idRequiredID of the document to update.
image_sourceRequiredDrive file ID or public image URL.
indexRequiredPosition to insert image (0-based).
widthOptionalImage width in points (optional).
heightOptionalImage height in points (optional).

update_doc_headers_footers

Complete

Update headers and footers.

ParameterRequiredDescription
document_idRequiredID of the document to update.
section_typeRequiredType of section to update ("header" or "footer").
contentRequiredText content for the header/footer.
header_footer_typeOptionalType of header/footer ("DEFAULT", "FIRST_PAGE_ONLY", "EVEN_PAGE").

batch_update_doc

Complete

Execute multiple doc operations in one call.

ParameterRequiredDescription
document_idRequiredID of the document to update.
operationsRequiredList of operation dictionaries.

inspect_doc_structure

Complete

Inspect structural document elements. Both modes also report paragraph layout stats: empty-paragraph counts, up to 100 paragraph ranges with a truncation flag, and whether the last paragraph is empty or a list item.

ParameterRequiredDescription
document_idRequiredID of the document to inspect.
detailedOptionalWhether to return detailed structure information. Detailed output adds list membership and object anchors.
tab_idOptionalInspect a single tab instead of the main document body.
preview_charsOptionalMaximum characters of paragraph, header, and footer text preview (default 100). Pass 0 or None for the full text, which you need to locate a token inside a longer paragraph: add its UTF-16 offset to the paragraph's start_index.

create_table_with_data

Complete

Create populated tables.

ParameterRequiredDescription
document_idRequiredID of the document to update.
table_dataRequired2D list of strings - EXACT format: [["col1", "col2"], ["row1col1", "row1col2"]].
indexRequiredDocument position (get from inspect_doc_structure 'total_length').
bold_headersOptionalWhether to make first row bold (default: true).

debug_table_structure

Complete

Debug table structures.

ParameterRequiredDescription
document_idRequiredID of the document to inspect.
table_indexOptionalWhich table to debug (0 = first table, 1 = second table, etc.).

manage_doc_tab

Complete

Create, rename, delete, or populate document tabs from markdown.

ParameterRequiredDescription
document_idRequiredID of the document to update.
actionRequired'create', 'rename', 'delete', or 'populate_from_markdown'.
tab_idOptionalTab ID (required for rename, delete, and populate).
titleOptionalTab title (required for create and rename).
indexOptionalPosition for the new tab.
parent_tab_idOptionalParent tab ID for nested tabs.
markdown_textOptionalMarkdown content for populate_from_markdown.
replace_existingOptionalWhether populate replaces existing tab content (default: True).

Google Sheets MCP

Spreadsheet reads/writes, formatting, comments, and conditional formatting.

Source: gsheets/sheets_tools.py

read_sheet_values

Core

Read values from ranges.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
range_nameOptionalThe range to read (e.g., "Sheet1!A1:D10", "A1:D10"). Defaults to "A1:Z1000".
include_hyperlinksOptionalIf True, also fetch hyperlink metadata for the range.
include_smart_chipsOptionalIf True, also fetch smart chip metadata (Drive files/folders and People) for the range.

modify_sheet_values

Core

Write, update, and clear range values, or insert Drive and People smart chips.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
range_nameRequiredThe range to modify (e.g., "Sheet1!A1:D10", "A1:D10").
valuesOptional2D array of values to write/update. Can be a JSON string or Python list. Required unless clear_values=True.
value_input_optionOptionalHow to interpret input values ("RAW" or "USER_ENTERED"). Defaults to "USER_ENTERED".
clear_valuesOptionalIf True, clears the range instead of writing values. Defaults to False.
chipsOptionalSmart chips to write instead of values: a Drive URL or email, a list or 2D list of them, or dicts like {"type": "person", "email": "..."}. JSON strings are accepted.
chip_typeOptional"drive" (default for URLs/IDs) or "person" (default for emails) when passing raw strings in chips.

create_spreadsheet

Core

Create spreadsheets.

ParameterRequiredDescription
titleRequiredThe title of the new spreadsheet.
sheet_namesOptionalList of sheet names to create. If not provided, creates one sheet with default name.
folder_idOptionalThe ID of the parent folder. Defaults to 'root'.

list_spreadsheets

Extended

List available spreadsheets.

ParameterRequiredDescription
max_resultsOptionalMaximum number of spreadsheets to return. Defaults to 25.
page_tokenOptionalPage token from a previous response's nextPageToken to fetch the next page.
corporaOptionalCorpus to search ("user", "domain", "drive", "allDrives"). Defaults to "drive" when drive_id is set, otherwise "allDrives".
drive_idOptionalShared drive ID to search.

get_spreadsheet_info

Extended

Read spreadsheet metadata and sheet info.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet to get info for.

format_sheet_range

Extended

Apply styling and number/text formats to ranges.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
range_nameRequiredA1-style range (optionally with sheet name).
background_colorOptionalHex background color (e.g., "#FFEECC").
text_colorOptionalHex text color (e.g., "#000000").
number_format_typeOptionalSheets number format type (e.g., "DATE").
number_format_patternOptionalCustom pattern for the number format.
wrap_strategyOptionalText wrap strategy (WRAP, OVERFLOW_CELL, CLIP).
horizontal_alignmentOptionalHorizontal alignment.
vertical_alignmentOptionalVertical alignment.
boldOptionalWhether to make text bold.
italicOptionalWhether to make text italic.
font_sizeOptionalFont size.

list_sheet_tables

Extended

List structured tables with IDs, names, ranges, and columns.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.

create_sheet

Complete

Add sheets to existing spreadsheets.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
sheet_nameOptionalThe name of the new sheet. Defaults to a Google-assigned name when omitted.

manage_sheet_tab

Complete

Manage the lifecycle of an existing tab: rename, delete, hide, unhide, or reorder it. Use create_sheet to add a tab and resize_sheet_dimensions for row and column changes.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
sheet_nameRequiredTitle of the existing tab to act on.
actionRequiredOne of rename, delete, hide, unhide, or reorder.
new_nameOptionalNew title. Required for rename.
new_indexOptionalNew zero-based position. Required for reorder.

append_table_rows

Complete

Append rows to a structured table, auto-extending the table range.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
table_idRequiredThe ID of the table (from list_sheet_tables).
valuesRequired2D array of row values to append.

move_sheet_rows

Complete

Move rows between sheets within a spreadsheet.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
source_sheetRequiredName of the sheet to move rows from.
start_rowRequiredFirst row to move (1-based).
end_rowRequiredLast row to move (inclusive).
destination_sheetRequiredName of the sheet to move rows to.

resize_sheet_dimensions

Complete

Resize, hide, freeze, insert, or delete rows and columns.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
sheet_nameOptionalSheet to modify. Defaults to the first sheet.
column_sizesOptionalMap of column letters to pixel widths.
row_sizesOptionalMap of row numbers to pixel heights.
auto_resize_columnsOptionalColumns to auto-fit to content.
frozen_row_countOptionalNumber of frozen header rows.
frozen_column_countOptionalNumber of frozen columns.
hide_columnsOptionalColumns to hide (unhide_columns reverses).
hide_rowsOptionalRows to hide (unhide_rows reverses).
insert_rowsOptionalNumber of rows to insert (with insert_rows_at).
insert_columnsOptionalNumber of columns to insert (with insert_columns_at).
delete_rowsOptionalRows to delete.
delete_columnsOptionalColumns to delete.

list_spreadsheet_comments

Complete

List comments on spreadsheets.

manage_spreadsheet_comment

Complete

Create, reply, and resolve spreadsheet comments.

manage_conditional_formatting

Complete

Add, update, and remove conditional formatting rules.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
actionRequiredThe operation to perform ("add", "update", "remove").
range_nameOptionalRange to apply conditional formatting to.
condition_typeOptionalType of condition.
condition_valuesOptionalValues for the condition.
background_colorOptionalBackground color for formatting.
text_colorOptionalText color for formatting.
rule_indexOptionalIndex of rule to update/remove.
gradient_pointsOptionalGradient points for gradient formatting.
sheet_nameOptionalSheet name for the range.

manage_named_range

Complete

List, create, update, and delete named ranges.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet.
actionRequiredThe operation to perform ("list", "create", "update", "delete").
nameOptionalName of the named range. Required for create; identifies the range for update/delete.
range_nameOptionalTarget range in A1 notation, e.g. "Sheet1!A1:D10". Required for create.
named_range_idOptionalID of the named range to update or delete.
new_nameOptionalNew name for the named range (update).
new_rangeOptionalNew A1-style range for the named range (update).

Google Slides MCP

Presentations, page retrieval, thumbnails, and comment management.

Source: gslides/slides_tools.py

create_presentation

Core

Create presentations.

ParameterRequiredDescription
titleOptionalThe title for the new presentation. Defaults to "Untitled Presentation".

get_presentation

Core

Retrieve presentation details.

ParameterRequiredDescription
presentation_idRequiredThe ID of the presentation to retrieve.
include_speaker_notesOptionalAlso report each slide's speaker notes and its notes shape ID (needed to edit notes via batch_update_presentation). Defaults to False.
include_geometryOptionalAlso list each slide's elements with their placement: transform (translate, plus scale/shear when not identity) and intrinsic size, in raw EMU. Set this when adding slides to an existing deck so new elements can match its established margins. Defaults to False.
include_stylesOptionalAlso list each slide's elements with text styling (see get_page). Defaults to False.
rawOptionalReturn the complete Presentation resource as JSON instead of the summary. Nothing is filtered, so it can be large; prefer get_page with raw=True for one slide. Overrides the other flags.

batch_update_presentation

Extended

Apply multiple slide updates in one request.

ParameterRequiredDescription
presentation_idRequiredThe ID of the presentation to update.
requestsRequiredList of update requests to apply.

get_page

Extended

Retrieve a specific page/slide.

ParameterRequiredDescription
presentation_idRequiredThe ID of the presentation.
page_object_idRequiredThe object ID of the page/slide to retrieve.
include_geometryOptionalAlso report each element's placement: transform (translate, plus scale/shear when not identity) and intrinsic size, in raw EMU. This is the only way to discover an existing deck's margins, gutters, and content area before adding elements. Tables also report column widths, row heights, and cell text. Defaults to False.
include_stylesOptionalAlso report paragraph and run text styling, placeholder linkage, autofit, fill, and outline. Only explicitly set values appear. Useful for proofing font, color, and alignment consistency.
rawOptionalReturn the complete Page resource as JSON instead of the summary. Use when the summary lacks a field you need. Overrides the other flags.

get_page_thumbnail

Extended

Generate slide thumbnails.

ParameterRequiredDescription
presentation_idRequiredThe ID of the presentation.
page_object_idRequiredThe object ID of the page/slide.
thumbnail_sizeOptionalSize of thumbnail ("LARGE", "MEDIUM", "SMALL"). Defaults to "MEDIUM".
inlineOptionalAlso return the rendered PNG as image content, for clients that cannot reach the short-lived thumbnail URL.

list_presentation_comments

Complete

List all presentation comments.

manage_presentation_comment

Complete

Create, reply, and resolve presentation comments.

Google Forms MCP

Form creation, response retrieval, publish settings, and batch updates.

Source: gforms/forms_tools.py

create_form

Core

Create forms.

ParameterRequiredDescription
titleRequiredThe title of the form.
descriptionOptionalThe description of the form.
document_titleOptionalThe document title (shown in browser tab).

get_form

Core

Retrieve form metadata and URLs.

ParameterRequiredDescription
form_idRequiredThe ID of the form to retrieve.

list_form_responses

Extended

List responses with pagination.

ParameterRequiredDescription
form_idRequiredThe ID of the form.
page_sizeOptionalMaximum number of responses to return. Defaults to 10.
page_tokenOptionalToken for retrieving next page of results.

set_publish_settings

Complete

Configure whether a form is published and accepting responses.

ParameterRequiredDescription
form_idRequiredThe ID of the form to update publish settings for.
is_publishedOptionalWhether the form is published and visible to responders. Defaults to True.
is_accepting_responsesOptionalWhether the form accepts responses. Only takes effect when the form is published. Defaults to True.

get_form_response

Complete

Retrieve an individual response.

ParameterRequiredDescription
form_idRequiredThe ID of the form.
response_idRequiredThe ID of the response to retrieve.

batch_update_form

Complete

Apply batch updates to form structure/settings.

ParameterRequiredDescription
form_idRequiredThe ID of the form to update.
requestsRequiredList of update requests to apply.

Google Tasks MCP

Consolidated task and task-list management APIs.

Source: gtasks/tasks_tools.py

list_tasks

Core

List tasks with filters.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list to retrieve tasks from.
max_resultsOptionalMaximum number of tasks to return (default: 20, max: 10000).
page_tokenOptionalToken for pagination.
show_completedOptionalWhether to include completed tasks (default: True).
show_deletedOptionalWhether to include deleted tasks (default: False).
show_hiddenOptionalWhether to include hidden tasks (default: False).
show_assignedOptionalWhether to include assigned tasks (default: False).
completed_maxOptionalUpper bound for completion date (RFC 3339 timestamp).
completed_minOptionalLower bound for completion date (RFC 3339 timestamp).
due_maxOptionalUpper bound for due date (RFC 3339 timestamp).
due_minOptionalLower bound for due date (RFC 3339 timestamp).
updated_minOptionalLower bound for last modification time (RFC 3339 timestamp).

get_task

Core

Retrieve task details.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list containing the task.
task_idRequiredThe ID of the task to retrieve.

manage_task

Core

Consolidated create, update, delete, and move task operations.

ParameterRequiredDescription
actionRequiredThe action to perform ("create", "update", "delete", "move").
task_list_idRequiredThe ID of the task list.
task_idOptionalThe ID of the task (required for "update", "delete", and "move").
titleOptionalThe title of the task (required for "create", optional for "update").
notesOptionalNotes/description for the task.
statusOptionalTask status ("needsAction" or "completed").
dueOptionalDue date in RFC 3339 format.
parentOptionalParent task ID (for subtasks).
previousOptionalPrevious sibling task ID (for positioning).
destination_task_listOptionalDestination task list ID (for moving between lists).

list_task_lists

Complete

List task lists.

ParameterRequiredDescription
max_resultsOptionalMaximum number of task lists to return (default: 1000, max: 1000).
page_tokenOptionalToken for pagination.

get_task_list

Complete

Retrieve task-list details.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list to retrieve.

manage_task_list

Complete

Consolidated create/update/delete/clear-completed for task lists.

ParameterRequiredDescription
actionRequiredThe action to perform ("create", "update", "delete", "clear_completed").
task_list_idOptionalThe ID of the task list (required for "update", "delete", and "clear_completed").
titleOptionalThe title for the task list (required for "create" and "update").

Google Contacts MCP

People API contact and group workflows.

Source: gcontacts/contacts_tools.py

search_contacts

Core

Search by name, email, and phone.

ParameterRequiredDescription
queryRequiredSearch query string (searches names, emails, phone numbers).
page_sizeOptionalMaximum number of results to return (default: 30, max: 30).

get_contact

Core

Retrieve detailed contact profiles.

ParameterRequiredDescription
contact_idRequiredThe contact ID (e.g., "c1234567890" or full resource name "people/c1234567890").

list_contacts

Core

List contacts with pagination.

ParameterRequiredDescription
page_sizeOptionalMaximum number of contacts to return (default: 100, max: 1000).
page_tokenOptionalToken for pagination.
sort_orderOptionalSort order: "LAST_MODIFIED_ASCENDING", "LAST_MODIFIED_DESCENDING", "FIRST_NAME_ASCENDING", or "LAST_NAME_ASCENDING".

manage_contact

Core

Create, update, or delete contacts.

ParameterRequiredDescription
actionRequiredThe action to perform: "create", "update", or "delete".
contact_idOptionalThe contact ID (required for "update" and "delete").
given_nameOptionalFirst name (for create/update).
family_nameOptionalLast name (for create/update).
emailOptionalEmail address (for create/update).
phoneOptionalPhone number (for create/update).
organizationOptionalCompany/organization name (for create/update).
job_titleOptionalJob title (for create/update).
notesOptionalAdditional notes (for create/update).

list_contact_groups

Extended

List contact groups.

ParameterRequiredDescription
page_sizeOptionalMaximum number of groups to return (default: 100, max: 1000).
page_tokenOptionalToken for pagination.

get_contact_group

Extended

Retrieve group details and members.

ParameterRequiredDescription
group_idRequiredThe contact group ID.
max_membersOptionalMaximum number of members to return (default: 100, max: 1000).

manage_contacts_batch

Complete

Batch create, update, or delete contacts.

ParameterRequiredDescription
actionRequiredThe action to perform: "create", "update", or "delete".
contactsOptionalList of contact dicts for "create" action.
updatesOptionalList of update dicts for "update" action.
contact_idsOptionalList of contact IDs for "delete" action.

manage_contact_group

Complete

Create, update, delete groups, and manage membership.

ParameterRequiredDescription
actionRequiredThe action to perform: "create", "update", "delete", or "modify_members".
group_idOptionalThe contact group ID (required for "update", "delete", and "modify_members").
nameOptionalGroup name (required for "create", optional for "update").
delete_contactsOptionalWhether to delete contacts when deleting group.
add_contact_idsOptionalContact IDs to add to group.
remove_contact_idsOptionalContact IDs to remove from group.

Google Chat MCP

Space messaging, reactions, search, and attachment download.

Source: gchat/chat_tools.py

get_messages

Core

Retrieve messages in a space.

ParameterRequiredDescription
space_idRequiredThe ID of the space to retrieve messages from.
page_sizeOptionalMaximum number of messages to return.
order_byOptionalHow to order the messages.

send_message

Core

Send messages to spaces, or edit a message already sent.

ParameterRequiredDescription
space_idRequiredThe ID of the space to send the message to.
message_textRequiredThe text content of the message.
thread_keyOptionalReply in a thread by app-defined key (creates thread if not found).
thread_nameOptionalReply in an existing thread by its resource name (e.g. spaces/X/threads/Y).
message_nameOptionalEdit this message in place instead of sending a new one, given as spaces/X/messages/Y. The message must belong to space_id, and this cannot be combined with thread_key or thread_name.

search_messages

Core

Search chat history.

ParameterRequiredDescription
queryOptionalText to search for. If omitted, only time_filter is applied.
space_idOptionalOptional space ID to limit search to.
page_sizeOptionalMaximum number of results to return.

create_reaction

Core

Add emoji reactions to messages.

ParameterRequiredDescription
message_idRequiredThe message resource name (e.g. spaces/X/messages/Y).
emoji_unicodeRequiredThe emoji character to react with (e.g. 👍).

list_spaces

Extended

List spaces and DMs. Direct messages and unnamed group chats are labelled after their members.

ParameterRequiredDescription
page_sizeOptionalMaximum number of spaces to return.
space_typeOptionalFilter by space type: "all" (default), "room", or "dm".

download_chat_attachment

Extended

Download chat attachments.

ParameterRequiredDescription
message_idRequiredThe message resource name (e.g. spaces/X/messages/Y).
attachment_indexOptionalZero-based index of the attachment to download (default 0).

Google Apps Script MCP

Create, execute, and manage Apps Script projects and deployments.

Source: gappsscript/apps_script_tools.py

get_script_project

Core

List script projects, or read one project's structure or a single source file.

ParameterRequiredDescription
actionRequired"list" (projects you can access) or "get" (one project).
script_idOptionalThe script project ID (required for get).
file_nameOptionalReturn this complete source file instead of the project overview (get only).
page_sizeOptionalNumber of results per page for list (default: 50).
page_tokenOptionalToken for pagination (list only).

manage_script_project

Core

Create standalone or bound script projects, or permanently delete one.

ParameterRequiredDescription
actionRequired"create" or "delete". Delete cannot be undone.
script_idOptionalThe script project ID (required for delete).
titleOptionalProject title (required for create).
parent_idOptionalOptional Drive folder ID or bound container ID (create only).

manage_script_content

Core

Create or update script files.

ParameterRequiredDescription
actionRequired"update".
script_idRequiredThe script project ID.
filesOptionalList of file objects with name, type, and source (required for update).
mergeOptionalOverlay files onto the project (default). False replaces the whole file set, deleting any file left out.

run_script_function

Core

Execute deployed script functions with args.

ParameterRequiredDescription
script_idRequiredThe script project ID.
function_nameRequiredName of function to execute.
parametersOptionalOptional list of parameters to pass.
dev_modeOptionalWhether to run latest code vs deployed version.
deployment_idOptionalAPI Executable deployment ID; defaults to the highest-versioned one.

generate_trigger_code

Core

Generate Apps Script code for time-driven and event triggers.

ParameterRequiredDescription
trigger_typeRequiredThe kind of trigger to generate code for.
function_nameRequiredFunction the trigger should invoke.
scheduleOptionalSchedule expression for time-driven triggers.

list_script_deployments

Extended

List deployments for a project.

ParameterRequiredDescription
script_idRequiredThe script project ID.

manage_deployment

Extended

Create, update, or delete deployments.

ParameterRequiredDescription
actionRequiredAction to perform - "create", "update", or "delete".
script_idRequiredThe script project ID.
deployment_idOptionalThe deployment ID (required for update and delete).
descriptionOptionalDeployment description (required for create; optional for update when version_number is set).
version_descriptionOptionalOptional version description (for create only).
version_numberOptionalVersion to point the deployment at (update only).

get_script_version

Extended

List saved versions of a script project, or retrieve one.

ParameterRequiredDescription
actionRequired"list" or "get".
script_idRequiredThe script project ID.
version_numberOptionalThe version number to retrieve (required for get).

manage_script_version

Extended

Create an immutable version from the current project state.

ParameterRequiredDescription
actionRequired"create".
script_idRequiredThe script project ID.
descriptionOptionalOptional version description.

get_script_activity

Extended

Inspect recent executions, or aggregate execution metrics for a script.

ParameterRequiredDescription
actionRequired"processes" (recent runs) or "metrics" (active users, total and failed executions).
script_idOptionalRequired for metrics. For processes, lists every run of that script visible to you, including runs by other users.
page_sizeOptionalNumber of results for processes (default: 50).
metrics_granularityOptionalGranularity of metrics data: "DAILY" (default) or "WEEKLY".

manage_script_trigger

Extended

List or delete your installable triggers on a project, via a small helper file run through the Execution API.

ParameterRequiredDescription
actionRequired"list" or "delete".
script_idRequiredThe script project ID.
trigger_idOptionalUnique ID of one trigger to delete (from list).
handler_functionOptionalDelete every trigger calling this function.
dev_modeOptionalRun against the latest saved code (default; owner only) vs the deployed version.
deployment_idOptionalAPI Executable deployment ID; defaults to the highest-versioned one.