Documentation
Current reference for authentication, transport modes, CLI usage, and all Google Workspace tool groups.
Authentication
Legacy OAuth 2.0 and OAuth 2.1 multi-user flows, including stateless and external-provider modes.
Source: auth/
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.
| Parameter | Required | Description |
|---|---|---|
MCP_ENABLE_OAUTH21 | Required | Set to true to enable OAuth 2.1 mode. |
--transport streamable-http | Required | Required 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.
| Parameter | Required | Description |
|---|---|---|
--single-user | Optional | Legacy single-user flow; mutually exclusive with OAuth 2.1. |
OAUTHLIB_INSECURE_TRANSPORT | Optional | Set 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.
| Parameter | Required | Description |
|---|---|---|
WORKSPACE_MCP_STATELESS_MODE | Required | Set 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.
| Parameter | Required | Description |
|---|---|---|
EXTERNAL_OAUTH21_PROVIDER | Required | Set to true with MCP_ENABLE_OAUTH21=true. |
OAuth Proxy Storage Backends
Select proxy storage backend for OAuth state in distributed deployments.
| Parameter | Required | Description |
|---|---|---|
WORKSPACE_MCP_OAUTH_PROXY_STORAGE_BACKEND | Optional | One of memory, disk, or valkey. |
WORKSPACE_MCP_OAUTH_PROXY_DISK_DIRECTORY | Optional | Disk backend path. |
WORKSPACE_MCP_OAUTH_PROXY_VALKEY_HOST | Optional | Valkey/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.
| Parameter | Required | Description |
|---|---|---|
GOOGLE_SERVICE_ACCOUNT_KEY_FILE | Optional | Path to the service account JSON key file (or use GOOGLE_SERVICE_ACCOUNT_KEY_JSON inline — set one, not both). |
USER_GOOGLE_EMAIL | Required | Fallback impersonation subject when a tool call supplies no email. |
DWD_ALLOWED_DOMAINS | Optional | Comma-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.
| Parameter | Required | Description |
|---|---|---|
WORKSPACE_MCP_BRAND_NAME | Optional | Server name shown on the consent page. |
WORKSPACE_MCP_BRAND_ICON_URL | Optional | Consent-page logo (hosted URL or data: URI), shown at 64px wide. |
WORKSPACE_MCP_BRAND_WEBSITE_URL | Optional | Website 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.
| Parameter | Required | Description |
|---|---|---|
--cli list --json | Optional | List tools for scripting and automation. |
--cli <tool> --args <json> | Optional | Invoke a specific tool with JSON args. |
Tool Tiers
Three cumulative tiers for simplified deployments: core, extended, complete.
| Parameter | Required | Description |
|---|---|---|
--tool-tier core|extended|complete | Optional | Scope loaded tools to the selected tier. |
Read-Only and Granular Permissions
--read-only requests readonly scopes and hides write tools. --permissions enables per-service permission levels.
| Parameter | Required | Description |
|---|---|---|
--read-only | Optional | Requests readonly scopes and filters write tools. |
--permissions service:level | Optional | Per-service access levels (for example gmail:send). |
Reverse Proxy OAuth URL Overrides
Use external URL overrides when running behind a reverse proxy so generated OAuth endpoints match public domains.
| Parameter | Required | Description |
|---|---|---|
WORKSPACE_EXTERNAL_URL | Optional | Sets a public base URL for OAuth-related endpoints. |
GOOGLE_OAUTH_REDIRECT_URI | Optional | Override only the OAuth callback URL. |
OAUTH_CUSTOM_REDIRECT_URIS | Optional | Comma-separated additional redirect URIs. |
OAUTH_ALLOWED_ORIGINS | Optional | Comma-separated additional CORS origins. |
Attachment Storage
Downloaded Gmail/Drive attachments are stored in persistent local storage and exposed by URL in HTTP mode.
| Parameter | Required | Description |
|---|---|---|
WORKSPACE_ATTACHMENT_DIR | Optional | Override 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.
| Parameter | Required | Description |
|---|---|---|
OTEL_EXPORTER_OTLP_ENDPOINT | Optional | OTLP collector endpoint. Unset means tracing is disabled. |
OTEL_EXPORTER_OTLP_PROTOCOL | Optional | grpc (default) or http/protobuf. |
OTEL_SERVICE_NAME | Optional | Service name — defaults to google-workspace-mcp. |
WORKSPACE_MCP_OTEL_USER_EMAIL | Optional | Set true to record the authenticated user's email on spans. PII — off by default. |
Logging
Server debug logs are written to a configurable directory.
| Parameter | Required | Description |
|---|---|---|
WORKSPACE_MCP_LOG_DIR | Optional | Directory 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
CoreLists calendars accessible to the authenticated user.
get_events
CoreRetrieves events for a calendar and time range.
| Parameter | Required | Description |
|---|---|---|
calendar_id | Optional | Defaults to primary. |
time_min | Optional | RFC3339 or date. |
time_max | Optional | RFC3339 or date. |
max_results | Optional | Maximum events to return. |
manage_event
CoreConsolidated create, update, and delete event operations.
| Parameter | Required | Description |
|---|---|---|
action | Required | create, update, or delete. |
event_id | Optional | Required for update and delete. |
create_calendar
ExtendedCreate a new secondary Google Calendar.
| Parameter | Required | Description |
|---|---|---|
summary | Required | Name for the new calendar. |
description | Optional | Optional calendar description. |
timezone | Optional | IANA timezone (e.g., "America/New_York"). |
query_freebusy
ExtendedQuery free/busy information across one or more calendars.
| Parameter | Required | Description |
|---|---|---|
time_min | Required | Start of the window (RFC3339). |
time_max | Required | End of the window (RFC3339). |
calendar_ids | Optional | Calendar IDs to query. Defaults to primary. |
group_expansion_max | Optional | Maximum calendars to expand per group. |
calendar_expansion_max | Optional | Maximum calendars for which to return busy information. |
manage_out_of_office
ExtendedCreate, list, update, or delete Out of Office events.
| Parameter | Required | Description |
|---|---|---|
action | Required | create, list, update, or delete. |
start_time | Optional | Start time (required for create). |
end_time | Optional | End time (required for create). |
summary | Optional | Event title. |
auto_decline_mode | Optional | How conflicting meetings are declined. |
decline_message | Optional | Message sent with auto-declines. |
recurrence | Optional | RRULE strings for recurring events. |
event_id | Optional | Required for update and delete. |
calendar_id | Optional | Defaults to primary. |
manage_focus_time
ExtendedCreate, list, update, or delete Focus Time events.
| Parameter | Required | Description |
|---|---|---|
action | Required | create, list, update, or delete. |
start_time | Optional | Start time (required for create). |
end_time | Optional | End time (required for create). |
summary | Optional | Event title. |
auto_decline_mode | Optional | How conflicting meetings are declined. |
decline_message | Optional | Message sent with auto-declines. |
chat_status | Optional | Chat availability during focus time (e.g., "doNotDisturb"). |
recurrence | Optional | RRULE strings for recurring events. |
event_id | Optional | Required for update and delete. |
calendar_id | Optional | Defaults to primary. |
Google Drive MCP
Drive content, sharing, import/export, and permission management.
Source: gdrive/drive_tools.py
search_drive_files
CoreSearch Drive files and folders.
| Parameter | Required | Description |
|---|---|---|
query | Required | The search query string. Supports Google Drive search operators. |
page_size | Optional | The maximum number of files to return. Defaults to 10. |
page_token | Optional | Page token from a previous response's nextPageToken. |
drive_id | Optional | ID of the shared drive to search. |
file_type | Optional | Restrict results to specific file type (e.g., 'folder', 'document', 'pdf'). |
get_drive_file_content
CoreRead file content with export support.
| Parameter | Required | Description |
|---|---|---|
file_id | Required | Drive file ID. |
get_drive_file_download_url
CoreDownload Drive files via local path or HTTP attachment URL.
| Parameter | Required | Description |
|---|---|---|
file_id | Required | The Google Drive file ID to download. |
export_format | Optional | Optional export format for Google native files. |
create_drive_file
CoreCreate files from inline content or source URLs.
| Parameter | Required | Description |
|---|---|---|
file_name | Required | The name for the new file. |
content | Optional | Text content to write to the file. |
folder_id | Optional | The ID of the parent folder. Defaults to 'root'. |
mime_type | Optional | The MIME type of the file. Defaults to 'text/plain'. |
fileUrl | Optional | If provided, fetches file content from this URL (file://, http://, https://). |
create_drive_folder
CoreCreate folders in My Drive or shared drives.
| Parameter | Required | Description |
|---|---|---|
folder_name | Required | The name for the new folder. |
parent_folder_id | Optional | The ID of the parent folder. Defaults to 'root'. |
import_to_google_doc
CoreImport files (Markdown, DOCX, HTML, etc.) into Google Docs.
| Parameter | Required | Description |
|---|---|---|
file_name | Required | The name for the new Google Doc (extension will be ignored). |
content | Optional | Text content for text-based formats (MD, TXT, HTML). |
file_path | Optional | Local file path for binary formats (DOCX, ODT). |
file_url | Optional | Remote URL to fetch the file from (http/https). |
source_format | Optional | Source format hint ('md', 'markdown', 'docx', 'txt', 'html', 'rtf', 'odt'). |
import_to_google_slides
CoreImport presentation files (PPTX, PPT, ODP) as Google Slides.
| Parameter | Required | Description |
|---|---|---|
file_name | Required | The name for the new Google Slides presentation. |
file_path | Optional | Local file path to the presentation file. |
file_url | Optional | Remote URL to fetch the file from (http/https). |
source_format | Optional | Source format hint ('pptx', 'ppt', 'odp'). |
folder_id | Optional | Destination folder ID. Defaults to 'root'. |
import_to_google_sheets
CoreImport spreadsheet files (XLSX, CSV, TSV, etc.) as Google Sheets.
| Parameter | Required | Description |
|---|---|---|
file_name | Required | The name for the new Google Sheet. |
content | Optional | Inline text content for text-based formats (CSV, TSV). |
file_path | Optional | Local file path for binary formats (XLSX, ODS). |
file_url | Optional | Remote URL to fetch the file from (http/https). |
source_format | Optional | Source format hint ('xlsx', 'csv', 'tsv', 'ods'). |
folder_id | Optional | Destination folder ID. Defaults to 'root'. |
get_drive_shareable_link
CoreGenerate shareable links for files.
| Parameter | Required | Description |
|---|---|---|
file_id | Required | The ID of the file or folder to get the shareable link for. |
list_drive_items
ExtendedList folder contents or shared drives.
| Parameter | Required | Description |
|---|---|---|
folder_id | Optional | The ID of the Google Drive folder. Defaults to 'root'. |
page_size | Optional | The maximum number of items to return. Defaults to 100. |
page_token | Optional | Page token for pagination. |
drive_id | Optional | Shared drive ID to list from. |
resource_type | Optional | items (default) or drives to list shared drives. |
file_type | Optional | Restrict results to specific file type. |
copy_drive_file
ExtendedCopy existing Drive files with optional renaming.
| Parameter | Required | Description |
|---|---|---|
file_id | Required | The ID of the file to copy. |
new_name | Optional | New name for the copied file. If not provided, uses "Copy of [original name]". |
parent_folder_id | Optional | The ID of the folder where the copy should be created. Defaults to 'root'. |
update_drive_file
ExtendedUpdate metadata, move files, or replace Google Apps content in place.
| Parameter | Required | Description |
|---|---|---|
file_id | Required | The ID of the file to update. |
name | Optional | New name for the file. |
description | Optional | New description for the file. |
add_parents | Optional | Comma-separated folder IDs to add as parents. |
remove_parents | Optional | Comma-separated folder IDs to remove from parents. |
starred | Optional | Star or unstar the file. |
trashed | Optional | Move the file to or from the trash. |
content | Optional | Replacement text content (Markdown, TXT, HTML), preserving the file ID. |
file_path | Optional | Local file path for binary replacement content (DOCX, ODT, etc.). |
file_url | Optional | Remote URL to fetch replacement content from. |
source_format | Optional | Format hint for replacement content ('md', 'docx', 'txt', 'html', 'rtf', 'odt'). |
manage_drive_access
ExtendedGrant, update, revoke permissions, and transfer ownership.
| Parameter | Required | Description |
|---|---|---|
file_id | Required | The ID of the file or folder. |
action | Required | The access management action to perform ('grant', 'revoke', 'update', 'transfer_ownership'). |
share_with | Optional | Email address (user/group) or domain name. |
role | Optional | Permission role ('reader', 'writer', 'commenter', 'owner'). |
permission_id | Optional | Permission ID for revoke/update actions. |
set_drive_file_permissions
ExtendedConfigure link sharing and file-level sharing.
| Parameter | Required | Description |
|---|---|---|
file_id | Required | The ID of the file or folder. |
link_sharing | Optional | Control "anyone with the link" access for the file. |
writers_can_share | Optional | Whether editors can change permissions and share. |
get_drive_file_permissions
CompleteGet file metadata, parents, and detailed permission entries.
| Parameter | Required | Description |
|---|---|---|
file_id | Required | The ID of the file to check permissions for. |
check_drive_file_public_access
CompleteCheck whether a file is publicly accessible.
| Parameter | Required | Description |
|---|---|---|
file_name | Required | The name of the file to check. |
Gmail MCP
Message, label, filter, thread, and attachment workflows.
Source: gmail/gmail_tools.py
search_gmail_messages
CoreSearch mail using Gmail query operators.
| Parameter | Required | Description |
|---|---|---|
query | Required | The search query. Supports standard Gmail search operators. |
page_size | Optional | The maximum number of messages to return. Defaults to 10. |
page_token | Optional | Token for retrieving the next page of results. |
get_gmail_message_content
CoreRetrieve message content. With full=True, returns the complete untruncated message via file/URL (or inline when no file storage is available).
| Parameter | Required | Description |
|---|---|---|
message_id | Required | The unique ID of the Gmail message to retrieve. |
body_format | Optional | Body output format: 'text' (default), 'html', or 'raw' (decoded MIME). |
full | Optional | If True, return the complete untruncated message. |
get_gmail_messages_content_batch
CoreBatch fetch message content.
| Parameter | Required | Description |
|---|---|---|
message_ids | Required | List of Gmail message IDs to retrieve (max 25 per batch). |
format | Optional | Message format. "full" includes body, "metadata" only headers. |
send_gmail_message
CoreSend email messages (supports replies and attachments).
| Parameter | Required | Description |
|---|---|---|
to | Required | Recipient email address. |
subject | Required | Email subject. |
body | Required | Email body content. |
body_format | Optional | Email body format ('plain' or 'html'). Defaults to 'plain'. |
cc | Optional | Optional CC email address. |
bcc | Optional | Optional BCC email address. |
thread_id | Optional | Thread ID to reply within. |
attachments | Optional | Optional list of attachments (path or base64 content). |
get_gmail_thread_content
ExtendedRetrieve full thread content.
| Parameter | Required | Description |
|---|---|---|
thread_id | Required | The unique ID of the Gmail thread to retrieve. |
get_gmail_attachment_content
ExtendedDownload Gmail attachments to persistent attachment storage.
| Parameter | Required | Description |
|---|---|---|
message_id | Required | The ID of the Gmail message containing the attachment. |
attachment_id | Required | The ID of the attachment to download. |
return_base64 | Optional | If True, also return the attachment content as base64. |
modify_gmail_message_labels
ExtendedAdd/remove labels on a message.
| Parameter | Required | Description |
|---|---|---|
message_id | Required | The ID of the message to modify. |
add_label_ids | Optional | List of label IDs to add to the message. |
remove_label_ids | Optional | List of label IDs to remove from the message. |
list_gmail_labels
ExtendedList account labels.
list_gmail_filters
ExtendedList configured Gmail filters.
manage_gmail_label
ExtendedCreate/update/delete labels.
| Parameter | Required | Description |
|---|---|---|
action | Required | Action to perform on the label ('create', 'update', 'delete'). |
name | Optional | Label name. Required for create, optional for update. |
label_id | Optional | Label ID. Required for update and delete operations. |
manage_gmail_filter
ExtendedCreate/delete Gmail filters.
| Parameter | Required | Description |
|---|---|---|
action | Required | Action to perform - "create" or "delete". |
criteria | Optional | Filter criteria object (required for create). |
filter_action | Optional | Filter action object (required for create). |
filter_id | Optional | ID of the filter to delete (required for delete). |
draft_gmail_message
ExtendedCreate Gmail drafts.
| Parameter | Required | Description |
|---|---|---|
subject | Required | Email subject. |
body | Required | Email body (plain text). |
to | Optional | Optional recipient email address. |
cc | Optional | Optional CC email address. |
attachments | Optional | Optional list of attachments. |
get_gmail_threads_content_batch
CompleteBatch fetch thread content.
| Parameter | Required | Description |
|---|---|---|
thread_ids | Required | A list of Gmail thread IDs to retrieve. |
batch_modify_gmail_message_labels
CompleteBatch label modifications.
| Parameter | Required | Description |
|---|---|---|
message_ids | Required | A list of message IDs to modify. |
add_label_ids | Optional | List of label IDs to add to the messages. |
remove_label_ids | Optional | List of label IDs to remove from the messages. |
start_google_auth
CompleteLegacy 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
CoreExtract plain text document content.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to retrieve. |
create_doc
CoreCreate new documents.
| Parameter | Required | Description |
|---|---|---|
title | Required | The title for the new document. |
content | Optional | Initial text content for the document. |
modify_doc_text
CoreModify document text with formatting and links.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to update. |
start_index | Required | Start position for operation (0-based). |
end_index | Optional | End position for text replacement/formatting (if not provided with text, text is inserted). |
text | Optional | New text to insert or replace with (optional - can format existing text without changing it). |
bold | Optional | Whether to make text bold (True/False/None to leave unchanged). |
italic | Optional | Whether to make text italic (True/False/None to leave unchanged). |
underline | Optional | Whether to underline text (True/False/None to leave unchanged). |
font_size | Optional | Font size in points. |
font_family | Optional | Font family name (e.g., "Arial", "Times New Roman"). |
text_color | Optional | Foreground text color (#RRGGBB). |
background_color | Optional | Background/highlight color (#RRGGBB). |
link_url | Optional | Hyperlink URL (http/https). |
search_docs
ExtendedSearch docs by name.
| Parameter | Required | Description |
|---|---|---|
query | Required | Search query to find documents by name. |
page_size | Optional | Maximum number of results to return. |
find_and_replace_doc
ExtendedFind and replace text.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to update. |
find_text | Required | Text to search for. |
replace_text | Required | Text to replace with. |
match_case | Optional | Whether to match case exactly. |
list_docs_in_folder
ExtendedList docs in a Drive folder.
| Parameter | Required | Description |
|---|---|---|
folder_id | Optional | The ID of the folder. Defaults to root. |
page_size | Optional | Maximum number of documents to return. |
insert_doc_elements
ExtendedInsert tables, lists, and page breaks.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to update. |
element_type | Required | Type of element to insert ("table", "list", "page_break"). |
index | Required | Position to insert element (0-based). |
rows | Optional | Number of rows for table (required for table). |
columns | Optional | Number of columns for table (required for table). |
list_type | Optional | Type of list ("UNORDERED", "ORDERED") (required for list). |
text | Optional | Initial text content for list items. |
update_paragraph_style
ExtendedApply heading and paragraph styles, including nested lists.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | Document ID to modify. |
start_index | Required | Start position (1-based). |
end_index | Required | End position (exclusive) - should cover the entire paragraph. |
heading_level | Optional | Heading level 0-6 (0 = NORMAL_TEXT, 1 = H1, 2 = H2, etc.). |
alignment | Optional | Text alignment. |
line_spacing | Optional | Line spacing value. |
list_type | Optional | List type for creating lists. |
list_nesting_level | Optional | Nesting level for lists. |
get_doc_as_markdown
ExtendedExport a document as formatted Markdown.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the Google Doc (or full URL). |
include_comments | Optional | Whether to include comments (default: True). |
comment_mode | Optional | How to display comments. |
include_resolved | Optional | Whether to include resolved comments (default: False). |
export_doc_to_pdf
ExtendedExport a doc to PDF.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the Google Doc to export. |
pdf_filename | Optional | Name for the PDF file (optional - if not provided, uses original name + "_PDF"). |
folder_id | Optional | Drive folder ID to save PDF in (optional - if not provided, saves in root). |
list_document_comments
ExtendedList all document comments.
manage_document_comment
ExtendedCreate, reply, or resolve comments.
insert_doc_image
CompleteInsert images from Drive or URLs.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to update. |
image_source | Required | Drive file ID or public image URL. |
index | Required | Position to insert image (0-based). |
width | Optional | Image width in points (optional). |
height | Optional | Image height in points (optional). |
update_doc_headers_footers
CompleteUpdate headers and footers.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to update. |
section_type | Required | Type of section to update ("header" or "footer"). |
content | Required | Text content for the header/footer. |
header_footer_type | Optional | Type of header/footer ("DEFAULT", "FIRST_PAGE_ONLY", "EVEN_PAGE"). |
batch_update_doc
CompleteExecute multiple doc operations in one call.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to update. |
operations | Required | List of operation dictionaries. |
inspect_doc_structure
CompleteInspect structural document elements.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to inspect. |
detailed | Optional | Whether to return detailed structure information. |
create_table_with_data
CompleteCreate populated tables.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to update. |
table_data | Required | 2D list of strings - EXACT format: [["col1", "col2"], ["row1col1", "row1col2"]]. |
index | Required | Document position (get from inspect_doc_structure 'total_length'). |
bold_headers | Optional | Whether to make first row bold (default: true). |
debug_table_structure
CompleteDebug table structures.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to inspect. |
table_index | Optional | Which table to debug (0 = first table, 1 = second table, etc.). |
manage_doc_tab
CompleteCreate, rename, delete, or populate document tabs from markdown.
| Parameter | Required | Description |
|---|---|---|
document_id | Required | ID of the document to update. |
action | Required | 'create', 'rename', 'delete', or 'populate_from_markdown'. |
tab_id | Optional | Tab ID (required for rename, delete, and populate). |
title | Optional | Tab title (required for create and rename). |
index | Optional | Position for the new tab. |
parent_tab_id | Optional | Parent tab ID for nested tabs. |
markdown_text | Optional | Markdown content for populate_from_markdown. |
replace_existing | Optional | Whether 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
CoreRead values from ranges.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet. |
range_name | Optional | The range to read (e.g., "Sheet1!A1:D10", "A1:D10"). Defaults to "A1:Z1000". |
include_hyperlinks | Optional | If True, also fetch hyperlink metadata for the range. |
modify_sheet_values
CoreWrite, update, and clear range values.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet. |
range_name | Required | The range to modify (e.g., "Sheet1!A1:D10", "A1:D10"). |
values | Optional | 2D array of values to write/update. Can be a JSON string or Python list. Required unless clear_values=True. |
value_input_option | Optional | How to interpret input values ("RAW" or "USER_ENTERED"). Defaults to "USER_ENTERED". |
clear_values | Optional | If True, clears the range instead of writing values. Defaults to False. |
create_spreadsheet
CoreCreate spreadsheets.
| Parameter | Required | Description |
|---|---|---|
title | Required | The title of the new spreadsheet. |
sheet_names | Optional | List of sheet names to create. If not provided, creates one sheet with default name. |
list_spreadsheets
ExtendedList available spreadsheets.
| Parameter | Required | Description |
|---|---|---|
max_results | Optional | Maximum number of spreadsheets to return. Defaults to 25. |
get_spreadsheet_info
ExtendedRead spreadsheet metadata and sheet info.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet to get info for. |
format_sheet_range
ExtendedApply styling and number/text formats to ranges.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet. |
range_name | Required | A1-style range (optionally with sheet name). |
background_color | Optional | Hex background color (e.g., "#FFEECC"). |
text_color | Optional | Hex text color (e.g., "#000000"). |
number_format_type | Optional | Sheets number format type (e.g., "DATE"). |
number_format_pattern | Optional | Custom pattern for the number format. |
wrap_strategy | Optional | Text wrap strategy (WRAP, OVERFLOW_CELL, CLIP). |
horizontal_alignment | Optional | Horizontal alignment. |
vertical_alignment | Optional | Vertical alignment. |
bold | Optional | Whether to make text bold. |
italic | Optional | Whether to make text italic. |
font_size | Optional | Font size. |
list_sheet_tables
ExtendedList structured tables with IDs, names, ranges, and columns.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet. |
create_sheet
CompleteAdd sheets to existing spreadsheets.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet. |
sheet_name | Required | The name of the new sheet. |
append_table_rows
CompleteAppend rows to a structured table, auto-extending the table range.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet. |
table_id | Required | The ID of the table (from list_sheet_tables). |
values | Required | 2D array of row values to append. |
move_sheet_rows
CompleteMove rows between sheets within a spreadsheet.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet. |
source_sheet | Required | Name of the sheet to move rows from. |
start_row | Required | First row to move (1-based). |
end_row | Required | Last row to move (inclusive). |
destination_sheet | Required | Name of the sheet to move rows to. |
resize_sheet_dimensions
CompleteResize, hide, freeze, insert, or delete rows and columns.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet. |
sheet_name | Optional | Sheet to modify. Defaults to the first sheet. |
column_sizes | Optional | Map of column letters to pixel widths. |
row_sizes | Optional | Map of row numbers to pixel heights. |
auto_resize_columns | Optional | Columns to auto-fit to content. |
frozen_row_count | Optional | Number of frozen header rows. |
frozen_column_count | Optional | Number of frozen columns. |
hide_columns | Optional | Columns to hide (unhide_columns reverses). |
hide_rows | Optional | Rows to hide (unhide_rows reverses). |
insert_rows | Optional | Number of rows to insert (with insert_rows_at). |
insert_columns | Optional | Number of columns to insert (with insert_columns_at). |
delete_rows | Optional | Rows to delete. |
delete_columns | Optional | Columns to delete. |
list_spreadsheet_comments
CompleteList comments on spreadsheets.
manage_spreadsheet_comment
CompleteCreate, reply, and resolve spreadsheet comments.
manage_conditional_formatting
CompleteAdd, update, and remove conditional formatting rules.
| Parameter | Required | Description |
|---|---|---|
spreadsheet_id | Required | The ID of the spreadsheet. |
action | Required | The operation to perform ("add", "update", "remove"). |
range_name | Optional | Range to apply conditional formatting to. |
condition_type | Optional | Type of condition. |
condition_values | Optional | Values for the condition. |
background_color | Optional | Background color for formatting. |
text_color | Optional | Text color for formatting. |
rule_index | Optional | Index of rule to update/remove. |
gradient_points | Optional | Gradient points for gradient formatting. |
sheet_name | Optional | Sheet name for the range. |
Google Slides MCP
Presentations, page retrieval, thumbnails, and comment management.
Source: gslides/slides_tools.py
create_presentation
CoreCreate presentations.
| Parameter | Required | Description |
|---|---|---|
title | Optional | The title for the new presentation. Defaults to "Untitled Presentation". |
get_presentation
CoreRetrieve presentation details.
| Parameter | Required | Description |
|---|---|---|
presentation_id | Required | The ID of the presentation to retrieve. |
batch_update_presentation
ExtendedApply multiple slide updates in one request.
| Parameter | Required | Description |
|---|---|---|
presentation_id | Required | The ID of the presentation to update. |
requests | Required | List of update requests to apply. |
get_page
ExtendedRetrieve a specific page/slide.
| Parameter | Required | Description |
|---|---|---|
presentation_id | Required | The ID of the presentation. |
page_object_id | Required | The object ID of the page/slide to retrieve. |
get_page_thumbnail
ExtendedGenerate slide thumbnails.
| Parameter | Required | Description |
|---|---|---|
presentation_id | Required | The ID of the presentation. |
page_object_id | Required | The object ID of the page/slide. |
thumbnail_size | Optional | Size of thumbnail ("LARGE", "MEDIUM", "SMALL"). Defaults to "MEDIUM". |
list_presentation_comments
CompleteList all presentation comments.
manage_presentation_comment
CompleteCreate, reply, and resolve presentation comments.
Google Forms MCP
Form creation, response retrieval, publish settings, and batch updates.
Source: gforms/forms_tools.py
create_form
CoreCreate forms.
| Parameter | Required | Description |
|---|---|---|
title | Required | The title of the form. |
description | Optional | The description of the form. |
document_title | Optional | The document title (shown in browser tab). |
get_form
CoreRetrieve form metadata and URLs.
| Parameter | Required | Description |
|---|---|---|
form_id | Required | The ID of the form to retrieve. |
list_form_responses
ExtendedList responses with pagination.
| Parameter | Required | Description |
|---|---|---|
form_id | Required | The ID of the form. |
page_size | Optional | Maximum number of responses to return. Defaults to 10. |
page_token | Optional | Token for retrieving next page of results. |
set_publish_settings
CompleteConfigure publish and auth settings.
| Parameter | Required | Description |
|---|---|---|
form_id | Required | The ID of the form to update publish settings for. |
publish_as_template | Optional | Whether to publish as a template. Defaults to False. |
require_authentication | Optional | Whether to require authentication to view/submit. Defaults to False. |
get_form_response
CompleteRetrieve an individual response.
| Parameter | Required | Description |
|---|---|---|
form_id | Required | The ID of the form. |
response_id | Required | The ID of the response to retrieve. |
batch_update_form
CompleteApply batch updates to form structure/settings.
| Parameter | Required | Description |
|---|---|---|
form_id | Required | The ID of the form to update. |
requests | Required | List of update requests to apply. |
Google Tasks MCP
Consolidated task and task-list management APIs.
Source: gtasks/tasks_tools.py
list_tasks
CoreList tasks with filters.
| Parameter | Required | Description |
|---|---|---|
task_list_id | Required | The ID of the task list to retrieve tasks from. |
max_results | Optional | Maximum number of tasks to return (default: 20, max: 10000). |
page_token | Optional | Token for pagination. |
show_completed | Optional | Whether to include completed tasks (default: True). |
show_deleted | Optional | Whether to include deleted tasks (default: False). |
show_hidden | Optional | Whether to include hidden tasks (default: False). |
show_assigned | Optional | Whether to include assigned tasks (default: False). |
completed_max | Optional | Upper bound for completion date (RFC 3339 timestamp). |
completed_min | Optional | Lower bound for completion date (RFC 3339 timestamp). |
due_max | Optional | Upper bound for due date (RFC 3339 timestamp). |
due_min | Optional | Lower bound for due date (RFC 3339 timestamp). |
updated_min | Optional | Lower bound for last modification time (RFC 3339 timestamp). |
get_task
CoreRetrieve task details.
| Parameter | Required | Description |
|---|---|---|
task_list_id | Required | The ID of the task list containing the task. |
task_id | Required | The ID of the task to retrieve. |
manage_task
CoreConsolidated create, update, delete, and move task operations.
| Parameter | Required | Description |
|---|---|---|
action | Required | The action to perform ("create", "update", "delete", "move"). |
task_list_id | Required | The ID of the task list. |
task_id | Optional | The ID of the task (required for "update", "delete", and "move"). |
title | Optional | The title of the task (required for "create", optional for "update"). |
notes | Optional | Notes/description for the task. |
status | Optional | Task status ("needsAction" or "completed"). |
due | Optional | Due date in RFC 3339 format. |
parent | Optional | Parent task ID (for subtasks). |
previous | Optional | Previous sibling task ID (for positioning). |
destination_task_list | Optional | Destination task list ID (for moving between lists). |
list_task_lists
CompleteList task lists.
| Parameter | Required | Description |
|---|---|---|
max_results | Optional | Maximum number of task lists to return (default: 1000, max: 1000). |
page_token | Optional | Token for pagination. |
get_task_list
CompleteRetrieve task-list details.
| Parameter | Required | Description |
|---|---|---|
task_list_id | Required | The ID of the task list to retrieve. |
manage_task_list
CompleteConsolidated create/update/delete/clear-completed for task lists.
| Parameter | Required | Description |
|---|---|---|
action | Required | The action to perform ("create", "update", "delete", "clear_completed"). |
task_list_id | Optional | The ID of the task list (required for "update", "delete", and "clear_completed"). |
title | Optional | The 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
CoreSearch by name, email, and phone.
| Parameter | Required | Description |
|---|---|---|
query | Required | Search query string (searches names, emails, phone numbers). |
page_size | Optional | Maximum number of results to return (default: 30, max: 30). |
get_contact
CoreRetrieve detailed contact profiles.
| Parameter | Required | Description |
|---|---|---|
contact_id | Required | The contact ID (e.g., "c1234567890" or full resource name "people/c1234567890"). |
list_contacts
CoreList contacts with pagination.
| Parameter | Required | Description |
|---|---|---|
page_size | Optional | Maximum number of contacts to return (default: 100, max: 1000). |
page_token | Optional | Token for pagination. |
sort_order | Optional | Sort order: "LAST_MODIFIED_ASCENDING", "LAST_MODIFIED_DESCENDING", "FIRST_NAME_ASCENDING", or "LAST_NAME_ASCENDING". |
manage_contact
CoreCreate, update, or delete contacts.
| Parameter | Required | Description |
|---|---|---|
action | Required | The action to perform: "create", "update", or "delete". |
contact_id | Optional | The contact ID (required for "update" and "delete"). |
given_name | Optional | First name (for create/update). |
family_name | Optional | Last name (for create/update). |
email | Optional | Email address (for create/update). |
phone | Optional | Phone number (for create/update). |
organization | Optional | Company/organization name (for create/update). |
job_title | Optional | Job title (for create/update). |
notes | Optional | Additional notes (for create/update). |
list_contact_groups
ExtendedList contact groups.
| Parameter | Required | Description |
|---|---|---|
page_size | Optional | Maximum number of groups to return (default: 100, max: 1000). |
page_token | Optional | Token for pagination. |
get_contact_group
ExtendedRetrieve group details and members.
| Parameter | Required | Description |
|---|---|---|
group_id | Required | The contact group ID. |
max_members | Optional | Maximum number of members to return (default: 100, max: 1000). |
manage_contacts_batch
CompleteBatch create, update, or delete contacts.
| Parameter | Required | Description |
|---|---|---|
action | Required | The action to perform: "create", "update", or "delete". |
contacts | Optional | List of contact dicts for "create" action. |
updates | Optional | List of update dicts for "update" action. |
contact_ids | Optional | List of contact IDs for "delete" action. |
manage_contact_group
CompleteCreate, update, delete groups, and manage membership.
| Parameter | Required | Description |
|---|---|---|
action | Required | The action to perform: "create", "update", "delete", or "modify_members". |
group_id | Optional | The contact group ID (required for "update", "delete", and "modify_members"). |
name | Optional | Group name (required for "create", optional for "update"). |
delete_contacts | Optional | Whether to delete contacts when deleting group. |
add_contact_ids | Optional | Contact IDs to add to group. |
remove_contact_ids | Optional | Contact IDs to remove from group. |
Google Chat MCP
Space messaging, reactions, search, and attachment download.
Source: gchat/chat_tools.py
get_messages
CoreRetrieve messages in a space.
| Parameter | Required | Description |
|---|---|---|
space_id | Required | The ID of the space to retrieve messages from. |
page_size | Optional | Maximum number of messages to return. |
order_by | Optional | How to order the messages. |
send_message
CoreSend messages to spaces.
| Parameter | Required | Description |
|---|---|---|
space_id | Required | The ID of the space to send the message to. |
message_text | Required | The text content of the message. |
thread_key | Optional | Reply in a thread by app-defined key (creates thread if not found). |
thread_name | Optional | Reply in an existing thread by its resource name (e.g. spaces/X/threads/Y). |
search_messages
CoreSearch chat history.
| Parameter | Required | Description |
|---|---|---|
query | Required | The search query. |
space_id | Optional | Optional space ID to limit search to. |
page_size | Optional | Maximum number of results to return. |
create_reaction
CoreAdd emoji reactions to messages.
| Parameter | Required | Description |
|---|---|---|
message_id | Required | The message resource name (e.g. spaces/X/messages/Y). |
emoji_unicode | Required | The emoji character to react with (e.g. 👍). |
list_spaces
ExtendedList spaces and DMs.
| Parameter | Required | Description |
|---|---|---|
page_size | Optional | Maximum number of spaces to return. |
space_type | Optional | Filter by space type. |
download_chat_attachment
ExtendedDownload chat attachments.
| Parameter | Required | Description |
|---|---|---|
message_id | Required | The message resource name (e.g. spaces/X/messages/Y). |
attachment_index | Optional | Zero-based index of the attachment to download (default 0). |
Google Custom Search MCP
Programmable Search Engine queries and metadata.
Source: gsearch/search_tools.py
search_custom
CoreRun custom search queries with optional site restrictions.
| Parameter | Required | Description |
|---|---|---|
q | Required | The search query. |
num | Optional | Number of results to return (1-10). Defaults to 10. |
start | Optional | The index of the first result to return (1-based). Defaults to 1. |
safe | Optional | Safe search level. Defaults to "off". |
search_type | Optional | Search for images if set to "image". |
site_search | Optional | Restrict search to a specific site/domain. |
site_search_filter | Optional | Exclude ("e") or include ("i") site_search results. |
date_restrict | Optional | Restrict results by date (e.g., "d5" for past 5 days, "m3" for past 3 months). |
file_type | Optional | Filter by file type (e.g., "pdf", "doc"). |
language | Optional | Language code for results (e.g., "lang_en"). |
country | Optional | Country code for results (e.g., "countryUS"). |
sites | Optional | List of sites/domains to restrict search to (e.g., ["example.com", "docs.example.com"]). |
get_search_engine_info
CompleteRetrieve search engine configuration metadata.
Google Apps Script MCP
Create, execute, and manage Apps Script projects and deployments.
Source: gappsscript/apps_script_tools.py
list_script_projects
CoreList available script projects.
| Parameter | Required | Description |
|---|---|---|
page_size | Optional | Number of results per page (default: 50). |
page_token | Optional | Token for pagination (optional). |
get_script_project
CoreRetrieve full project structure and files.
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
get_script_content
CoreRead a script file from a project.
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
file_name | Required | Name of the file to retrieve. |
create_script_project
CoreCreate standalone or bound script projects.
| Parameter | Required | Description |
|---|---|---|
title | Required | Project title. |
parent_id | Optional | Optional Drive folder ID or bound container ID. |
update_script_content
CoreCreate or update script files.
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
files | Required | List of file objects with name, type, and source. |
run_script_function
CoreExecute deployed script functions with args.
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
function_name | Required | Name of function to execute. |
parameters | Optional | Optional list of parameters to pass. |
dev_mode | Optional | Whether to run latest code vs deployed version. |
generate_trigger_code
CoreGenerate Apps Script code for time-driven and event triggers.
| Parameter | Required | Description |
|---|---|---|
trigger_type | Required | The kind of trigger to generate code for. |
function_name | Required | Function the trigger should invoke. |
schedule | Optional | Schedule expression for time-driven triggers. |
list_deployments
ExtendedList deployments for a project.
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
manage_deployment
ExtendedCreate, update, or delete deployments.
| Parameter | Required | Description |
|---|---|---|
action | Required | Action to perform - "create", "update", or "delete". |
script_id | Required | The script project ID. |
deployment_id | Optional | The deployment ID (required for update and delete). |
description | Optional | Deployment description (required for create and update). |
version_description | Optional | Optional version description (for create only). |
list_versions
ExtendedList saved versions of a script project.
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
create_version
ExtendedCreate an immutable version from the current project state.
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
description | Optional | Optional version description. |
get_version
ExtendedRetrieve details for a specific version.
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
version_number | Required | The version number to retrieve. |
delete_script_project
ExtendedPermanently delete a script project (cannot be undone).
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
list_script_processes
ExtendedInspect recent executions and status.
| Parameter | Required | Description |
|---|---|---|
page_size | Optional | Number of results (default: 50). |
script_id | Optional | Optional filter by script ID. |
get_script_metrics
ExtendedRetrieve execution metrics for a script project.
| Parameter | Required | Description |
|---|---|---|
script_id | Required | The script project ID. |
metrics_granularity | Optional | Granularity of metrics data (default: "DAILY"). |