Google Docs
Arcade.dev LLM tools for Google Docs
Google Docs Toolkit
The Google Docs toolkit lets LLM agents create, read, edit, search, and annotate Google Docs documents through the Google Docs and Drive APIs via Arcade.
Capabilities
- Document creation: Create blank documents or populate them from plain text or Markdown (with automatic heading, bold, italic, and list formatting).
- Document reading & metadata: Retrieve full document content in DocMD format (block IDs, character indices, text styles, tab structure) or fetch metadata-only (title, ID, URL, character counts, tab hierarchy).
- Structured editing: Apply batchUpdate requests using DocMD indices for precise in-document edits; append text to document ends.
- Search & discovery: Search Drive for documents by query, with options to return metadata only or include full body content; trash is automatically excluded.
- Comments: Add new comments to a document or list all existing comments.
- User & access management: Retrieve authenticated user profile and permissions; generate a Google Drive inline file picker URL to grant per-file access when a document is not found or access is denied.
OAuth
This toolkit uses OAuth 2.0 with Google as the provider. See the Arcade Google auth provider docs for setup details.
Secrets
ENABLE_GOOGLE_DRIVE_INLINE_PICKER_URL— A flag/URL secret that activates theGenerateGoogleFilePickerUrltool, which opens Google's first-party Drive file picker so users can grant the app access to specific files without a full re-authentication flow. To obtain or configure this value, you set it in your Arcade environment to enable the picker endpoint. Refer to the Arcade secrets documentation for how to define secrets, and manage them at https://api.arcade.dev/dashboard/auth/secrets.
Available tools(13)
| Tool name | Description | Secrets | |
|---|---|---|---|
Comment on a specific document by its ID. | 1 | ||
Create a blank Google Docs document with the specified title. | |||
Create a Google Docs document with the specified title and text content.
When input_format is MARKDOWN, the text_content is parsed as Markdown and the resulting
document is formatted with headings, bold, italic, bullet lists, and numbered lists. | |||
Read or edit a Google Docs document using structured batchUpdate requests.
When called without requests, returns the document content in DocMD format (block IDs,
character indices, and text styles). When called with requests, applies the edits and
returns the updated DocMD. Use the DocMD indices from the response to construct
requests for subsequent calls. | 1 | ||
Generate a URL where the user can grant this app access to specific Drive files.
Opens Google's first-party Drive picker. The user selects which files to share
with this application — it is not a sign-in or credential prompt.
Use this when a prior tool reported that a file was not found or access was denied,
and the user expects the file to exist. After the user completes the picker flow,
retry the prior tool. | |||
Get the latest version of the specified Google Docs document as DocMD.
The DocMD output will include tags that can be used to annotate the document with location
information, the type of block, block IDs, and other metadata. If the document has tabs,
all tabs are included in sequential order unless a specific tab_id is provided. | 1 | ||
DEPRECATED DO NOT USE THIS TOOL
Get the latest version of the specified Google Docs document. | 1 | ||
Get metadata for a Google Docs document including hierarchical tab structure.
Returns document title, ID, URL, total character count, and nested tab information
with character counts for each tab. | 1 | ||
Updates an existing Google Docs document using the batchUpdate API endpoint. | 1 | ||
List all comments on the specified Google Docs document. | 1 | ||
Searches for documents in the user's Google Drive and returns documents with their main body
content and tab metadata. Excludes documents that are in the trash.
Returns main body content only with metadata about tabs. Use get_document_as_docmd() to retrieve
full tab content for specific documents. Use search_documents() for metadata-only searches. | 1 | ||
Searches for documents in the user's Google Drive. Excludes documents in trash.
Returns metadata only. Use get_document_metadata or get_document_as_docmd for content. | 1 | ||
Get comprehensive user profile and Google Docs environment information.
This tool provides detailed information about the authenticated user including
their name, email, profile picture, Google Docs access permissions, and other
important profile details from Google services. |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
GoogleDocs.CommentOnDocument
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Comment on a specific document by its ID.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
document_id | string | Required | The ID of the document to comment on |
comment_text | string | Required | The comment to add to the document |
Requirements
Output
json— The comment's ID, documentId, and documentUrl in a dictionaryGoogleDocs.CreateBlankDocument
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create a blank Google Docs document with the specified title.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
title | string | Required | The title of the blank document to create |
Requirements
Output
json— The created document's title, documentId, and documentUrl in a dictionaryGoogleDocs.CreateDocumentFromText
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create a Google Docs document with the specified title and text content. When input_format is MARKDOWN, the text_content is parsed as Markdown and the resulting document is formatted with headings, bold, italic, bullet lists, and numbered lists.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
title | string | Required | The title of the document to create |
text_content | string | Required | The text content to insert into the document. When input_format is MARKDOWN, supports Markdown formatting: headings (# through ######), bold (**text**), italic (*text*), bullet lists (- item), and numbered lists (1. item). |
input_format | string | Optional | The format of text_content. MARKDOWN applies rich formatting (headings, bold, italic, bullet lists, numbered lists). PLAIN inserts text as-is with no formatting. Defaults to MARKDOWN.markdownplain |
Requirements
Output
json— The created document's title, documentId, and documentUrl in a dictionaryGoogleDocs.EditDocument
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Read or edit a Google Docs document using structured batchUpdate requests. When called without requests, returns the document content in DocMD format (block IDs, character indices, and text styles). When called with requests, applies the edits and returns the updated DocMD. Use the DocMD indices from the response to construct requests for subsequent calls.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
document_id | string | Required | The ID of the Google Docs document to edit. |
requests | array<json> | Optional | A list of Google Docs batchUpdate request objects. Each object must have exactly one key (the request type) whose value is the request body. Omit to read the document without applying any edits. IMPORTANT: When making multiple index-based edits, order requests from highest index to lowest so earlier edits do not shift the indices of later ones. Alternatively, use replaceAllText which does not depend on indices. The response always includes the document in DocMD format, which shows each block with its character index range, e.g. [P3 74-104 PARAGRAPH styles=bold:74-86] means paragraph P3 spans indices 74 to 104 with bold from 74 to 86. Use these indices for ranges in subsequent calls. ## Common request examples replaceAllText — find and replace all occurrences: {"replaceAllText": {"containsText": {"text": "old", "matchCase": true}, "replaceText": "new"}} insertText — insert at an index (inherits adjacent styling): {"insertText": {"location": {"index": 50}, "text": "hello"}} deleteContentRange — delete between two indices: {"deleteContentRange": {"range": {"startIndex": 10, "endIndex": 25}}} updateTextStyle — change formatting with a comma-separated "fields" mask: {"updateTextStyle": {"range": {"startIndex": 10, "endIndex": 20}, "textStyle": {"bold": true}, "fields": "bold"}} updateParagraphStyle — change paragraph alignment, spacing, etc.: {"updateParagraphStyle": {"range": {"startIndex": 10, "endIndex": 50}, "paragraphStyle": {"alignment": "CENTER"}, "fields": "alignment"}} createParagraphBullets — apply bullets (presets: BULLET_DISC_CIRCLE_SQUARE, NUMBERED_DECIMAL_ALPHA_ROMAN, BULLET_CHECKBOX, etc.): {"createParagraphBullets": {"range": {"startIndex": 100, "endIndex": 200}, "bulletPreset": "BULLET_DISC_CIRCLE_SQUARE"}} insertTable: {"insertTable": {"location": {"index": 50}, "rows": 3, "columns": 4}} Table operations use tableCellLocation with tableStartLocation (the TABLE start index from DocMD), rowIndex, and columnIndex: {"insertTableRow": {"tableCellLocation": {"tableStartLocation": {"index": 1749}, "rowIndex": 1, "columnIndex": 0}, "insertBelow": true}} createNamedRange — anchor a named range to a span of text: {"createNamedRange": {"name": "my-range", "range": {"startIndex": 10, "endIndex": 50}}} deleteNamedRange — delete by name or ID: {"deleteNamedRange": {"name": "my-range"}} replaceNamedRangeContent — replace the text inside a named range: {"replaceNamedRangeContent": {"namedRangeName": "my-range", "text": "new content"}} insertInlineImage — insert an image at an index: {"insertInlineImage": {"uri": "https://example.com/img.png", "location": {"index": 50}}} replaceImage — swap an existing image for a new one: {"replaceImage": {"imageObjectId": "kix.abc123", "uri": "https://example.com/new.png", "imageReplaceMethod": "CENTER_CROP"}} deletePositionedObject — remove a floating image or drawing: {"deletePositionedObject": {"objectId": "kix.abc123"}} createHeader — add a header to the document: {"createHeader": {"type": "DEFAULT"}} createFooter — add a footer to the document: {"createFooter": {"type": "DEFAULT"}} deleteHeader / deleteFooter — remove by ID: {"deleteHeader": {"headerId": "kix.abc123"}} {"deleteFooter": {"footerId": "kix.abc123"}} createFootnote — insert a footnote reference: {"createFootnote": {"location": {"index": 50}}} addDocumentTab — add a new tab: {"addDocumentTab": {"tabProperties": {"title": "Notes"}}} deleteTab — remove a tab: {"deleteTab": {"tabId": "t.123"}} updateDocumentTabProperties — rename or reorder a tab: {"updateDocumentTabProperties": {"tabProperties": {"tabId": "t.123", "title": "Renamed"}, "fields": "title"}} insertPerson — insert a person smart chip: {"insertPerson": {"personProperties": {"email": "alice@example.com"}, "location": {"index": 50}}} insertDate — insert a date smart chip: {"insertDate": {"dateElementProperties": {"timestamp": "2025-08-23T00:00:00Z"}, "location": {"index": 50}}} Style "fields" mask: comma-separated list of properties to update (e.g. "bold,italic"). Properties listed in fields but absent from the style object are cleared/reset. Use "*" to update all fields. ## Full JSON Schema {"type":"array","items":{"type":"object","properties":{"replaceAllText":{"type":"object","properties":{"containsText":{"type":"object","properties":{"text":{"type":"string"},"matchCase":{"type":"boolean"},"searchByRegex":{"type":"boolean"}}},"replaceText":{"type":"string"}}},"insertText":{"type":"object","properties":{"location":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"endOfSegmentLocation":{"type":"object","properties":{"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"text":{"type":"string"}}},"deleteContentRange":{"type":"object","properties":{"range":{"type":"object","properties":{"startIndex":{"type":"integer"},"endIndex":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}}},"required":["range"]},"updateTextStyle":{"type":"object","properties":{"range":{"type":"object","properties":{"startIndex":{"type":"integer"},"endIndex":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"textStyle":{"type":"object","properties":{"bold":{"type":"boolean"},"italic":{"type":"boolean"},"underline":{"type":"boolean"},"strikethrough":{"type":"boolean"},"smallCaps":{"type":"boolean"},"fontSize":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"weightedFontFamily":{"type":"object","properties":{"fontFamily":{"type":"string"},"weight":{"type":"integer"}}},"foregroundColor":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"backgroundColor":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"link":{"type":"object","properties":{"url":{"type":"string"},"bookmarkId":{"type":"string"},"headingId":{"type":"string"},"tabId":{"type":"string"}}},"baselineOffset":{"type":"string"}}},"fields":{"type":"string"}},"required":["fields","range","textStyle"]},"updateParagraphStyle":{"type":"object","properties":{"range":{"type":"object","properties":{"startIndex":{"type":"integer"},"endIndex":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"paragraphStyle":{"type":"object","properties":{"alignment":{"type":"string"},"namedStyleType":{"type":"string"},"lineSpacing":{"type":"number"},"direction":{"type":"string"},"spacingMode":{"type":"string"},"spaceAbove":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"spaceBelow":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"indentFirstLine":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"indentStart":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"indentEnd":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"borderTop":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"padding":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"dashStyle":{"type":"string"}}},"borderBottom":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"padding":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"dashStyle":{"type":"string"}}},"borderLeft":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"padding":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"dashStyle":{"type":"string"}}},"borderRight":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"padding":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"dashStyle":{"type":"string"}}},"borderBetween":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"padding":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"dashStyle":{"type":"string"}}},"shading":{"type":"object","properties":{"backgroundColor":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]}}},"keepLinesTogether":{"type":"boolean"},"keepWithNext":{"type":"boolean"},"avoidWidowAndOrphan":{"type":"boolean"},"pageBreakBefore":{"type":"boolean"},"tabStops":{"type":"array","items":{"type":"object","properties":{"offset":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"alignment":{"type":"string"}}}}}},"fields":{"type":"string"}},"required":["fields","paragraphStyle","range"]},"createParagraphBullets":{"type":"object","properties":{"range":{"type":"object","properties":{"startIndex":{"type":"integer"},"endIndex":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"bulletPreset":{"type":"string"}},"required":["bulletPreset","range"]},"deleteParagraphBullets":{"type":"object","properties":{"range":{"type":"object","properties":{"startIndex":{"type":"integer"},"endIndex":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}}},"required":["range"]},"insertTable":{"type":"object","properties":{"location":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"endOfSegmentLocation":{"type":"object","properties":{"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"rows":{"type":"integer"},"columns":{"type":"integer"}}},"insertTableRow":{"type":"object","properties":{"tableCellLocation":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"rowIndex":{"type":"integer"},"columnIndex":{"type":"integer"}},"required":["columnIndex","rowIndex","tableStartLocation"]},"insertBelow":{"type":"boolean"}},"required":["insertBelow","tableCellLocation"]},"insertTableColumn":{"type":"object","properties":{"tableCellLocation":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"rowIndex":{"type":"integer"},"columnIndex":{"type":"integer"}},"required":["columnIndex","rowIndex","tableStartLocation"]},"insertRight":{"type":"boolean"}},"required":["insertRight","tableCellLocation"]},"deleteTableRow":{"type":"object","properties":{"tableCellLocation":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"rowIndex":{"type":"integer"},"columnIndex":{"type":"integer"}},"required":["columnIndex","rowIndex","tableStartLocation"]}},"required":["tableCellLocation"]},"deleteTableColumn":{"type":"object","properties":{"tableCellLocation":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"rowIndex":{"type":"integer"},"columnIndex":{"type":"integer"}},"required":["columnIndex","rowIndex","tableStartLocation"]}},"required":["tableCellLocation"]},"updateTableCellStyle":{"type":"object","properties":{"tableRange":{"type":"object","properties":{"tableCellLocation":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"rowIndex":{"type":"integer"},"columnIndex":{"type":"integer"}},"required":["columnIndex","rowIndex","tableStartLocation"]},"rowSpan":{"type":"integer"},"columnSpan":{"type":"integer"}},"required":["columnSpan","rowSpan","tableCellLocation"]},"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"tableCellStyle":{"type":"object","properties":{"backgroundColor":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"borderTop":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"dashStyle":{"type":"string"}}},"borderBottom":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"dashStyle":{"type":"string"}}},"borderLeft":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"dashStyle":{"type":"string"}}},"borderRight":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"dashStyle":{"type":"string"}}},"paddingTop":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"paddingBottom":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"paddingLeft":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"paddingRight":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"contentAlignment":{"type":"string"}}},"fields":{"type":"string"}}},"updateTableColumnProperties":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"columnIndices":{"type":"array","items":{"type":"integer"}},"tableColumnProperties":{"type":"object","properties":{"widthType":{"type":"string"},"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]}}},"fields":{"type":"string"}}},"updateTableRowStyle":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"rowIndices":{"type":"array","items":{"type":"integer"}},"tableRowStyle":{"type":"object","properties":{"minRowHeight":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"tableHeader":{"type":"boolean"},"preventOverflow":{"type":"boolean"}}},"fields":{"type":"string"}}},"mergeTableCells":{"type":"object","properties":{"tableRange":{"type":"object","properties":{"tableCellLocation":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"rowIndex":{"type":"integer"},"columnIndex":{"type":"integer"}},"required":["columnIndex","rowIndex","tableStartLocation"]},"rowSpan":{"type":"integer"},"columnSpan":{"type":"integer"}},"required":["columnSpan","rowSpan","tableCellLocation"]}},"required":["tableRange"]},"unmergeTableCells":{"type":"object","properties":{"tableRange":{"type":"object","properties":{"tableCellLocation":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"rowIndex":{"type":"integer"},"columnIndex":{"type":"integer"}},"required":["columnIndex","rowIndex","tableStartLocation"]},"rowSpan":{"type":"integer"},"columnSpan":{"type":"integer"}},"required":["columnSpan","rowSpan","tableCellLocation"]}},"required":["tableRange"]},"pinTableHeaderRows":{"type":"object","properties":{"tableStartLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"pinnedHeaderRowsCount":{"type":"integer"}},"required":["pinnedHeaderRowsCount","tableStartLocation"]},"updateDocumentStyle":{"type":"object","properties":{"documentStyle":{"type":"object","properties":{"marginTop":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"marginBottom":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"marginLeft":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"marginRight":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"pageSize":{"type":"object","properties":{"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"height":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]}}},"background":{"type":"object","properties":{"color":{"type":"object","properties":{"color":{"type":"object","properties":{"rgbColor":{"type":"object","properties":{"red":{"type":"number"},"green":{"type":"number"},"blue":{"type":"number"}}}},"required":["rgbColor"]}},"required":["color"]}}},"defaultHeaderId":{"type":"string"},"defaultFooterId":{"type":"string"},"evenPageHeaderId":{"type":"string"},"evenPageFooterId":{"type":"string"},"firstPageHeaderId":{"type":"string"},"firstPageFooterId":{"type":"string"},"useFirstPageHeaderFooter":{"type":"boolean"},"useEvenPageHeaderFooter":{"type":"boolean"},"pageNumberStart":{"type":"integer"},"useCustomHeaderFooterMargins":{"type":"boolean"},"marginHeader":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"marginFooter":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"flipPageOrientation":{"type":"boolean"}}},"fields":{"type":"string"},"tabId":{"type":"string"}}},"updateSectionStyle":{"type":"object","properties":{"range":{"type":"object","properties":{"startIndex":{"type":"integer"},"endIndex":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"sectionStyle":{"type":"object","properties":{"columnProperties":{"type":"array","items":{"type":"object","properties":{"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"paddingEnd":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]}}}},"columnSeparatorStyle":{"type":"string"},"contentDirection":{"type":"string"},"marginTop":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"marginBottom":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"marginLeft":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"marginRight":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"marginHeader":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"marginFooter":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"defaultHeaderId":{"type":"string"},"defaultFooterId":{"type":"string"},"evenPageHeaderId":{"type":"string"},"evenPageFooterId":{"type":"string"},"firstPageHeaderId":{"type":"string"},"firstPageFooterId":{"type":"string"},"useFirstPageHeaderFooter":{"type":"boolean"},"flipPageOrientation":{"type":"boolean"},"pageNumberStart":{"type":"integer"}}},"fields":{"type":"string"}},"required":["fields","range","sectionStyle"]},"insertSectionBreak":{"type":"object","properties":{"location":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"endOfSegmentLocation":{"type":"object","properties":{"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"sectionType":{"type":"string"}}},"insertPageBreak":{"type":"object","properties":{"location":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"endOfSegmentLocation":{"type":"object","properties":{"segmentId":{"type":"string"},"tabId":{"type":"string"}}}}},"createNamedRange":{"type":"object","properties":{"name":{"type":"string"},"range":{"type":"object","properties":{"startIndex":{"type":"integer"},"endIndex":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}}},"required":["name","range"]},"deleteNamedRange":{"type":"object","properties":{"tabsCriteria":{"type":"object","properties":{"tabIds":{"type":"array","items":{"type":"string"}}}},"namedRangeId":{"type":"string"},"name":{"type":"string"}}},"replaceNamedRangeContent":{"type":"object","properties":{"tabsCriteria":{"type":"object","properties":{"tabIds":{"type":"array","items":{"type":"string"}}}},"namedRangeId":{"type":"string"},"namedRangeName":{"type":"string"},"text":{"type":"string"}}},"insertInlineImage":{"type":"object","properties":{"uri":{"type":"string"},"objectSize":{"type":"object","properties":{"width":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]},"height":{"type":"object","properties":{"magnitude":{"type":"number"},"unit":{"type":"string"}},"required":["magnitude","unit"]}}},"location":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"endOfSegmentLocation":{"type":"object","properties":{"segmentId":{"type":"string"},"tabId":{"type":"string"}}}}},"replaceImage":{"type":"object","properties":{"imageObjectId":{"type":"string"},"uri":{"type":"string"},"imageReplaceMethod":{"type":"string"},"tabId":{"type":"string"}}},"deletePositionedObject":{"type":"object","properties":{"objectId":{"type":"string"},"tabId":{"type":"string"}}},"createHeader":{"type":"object","properties":{"type":{"type":"string"},"sectionBreakLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}}}},"createFooter":{"type":"object","properties":{"type":{"type":"string"},"sectionBreakLocation":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}}}},"deleteHeader":{"type":"object","properties":{"headerId":{"type":"string"},"tabId":{"type":"string"}}},"deleteFooter":{"type":"object","properties":{"footerId":{"type":"string"},"tabId":{"type":"string"}}},"createFootnote":{"type":"object","properties":{"location":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"endOfSegmentLocation":{"type":"object","properties":{"segmentId":{"type":"string"},"tabId":{"type":"string"}}}}},"addDocumentTab":{"type":"object","properties":{"tabProperties":{"type":"object","properties":{"title":{"type":"string"},"parentTabId":{"type":"string"},"index":{"type":"integer"},"iconEmoji":{"type":"string"}}}}},"deleteTab":{"type":"object","properties":{"tabId":{"type":"string"}},"required":["tabId"]},"updateDocumentTabProperties":{"type":"object","properties":{"tabProperties":{"type":"object","properties":{"tabId":{"type":"string"},"title":{"type":"string"},"parentTabId":{"type":"string"},"index":{"type":"integer"},"iconEmoji":{"type":"string"}}},"fields":{"type":"string"}}},"insertPerson":{"type":"object","properties":{"personProperties":{"type":"object","properties":{"email":{"type":"string"}}},"location":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"endOfSegmentLocation":{"type":"object","properties":{"segmentId":{"type":"string"},"tabId":{"type":"string"}}}}},"insertDate":{"type":"object","properties":{"dateElementProperties":{"type":"object","properties":{"timestamp":{"type":"string"},"timeZoneId":{"type":"string"},"locale":{"type":"string"},"dateFormat":{"type":"string"},"timeFormat":{"type":"string"}}},"location":{"type":"object","properties":{"index":{"type":"integer"},"segmentId":{"type":"string"},"tabId":{"type":"string"}}},"endOfSegmentLocation":{"type":"object","properties":{"segmentId":{"type":"string"},"tabId":{"type":"string"}}}}}}}} |
Requirements
Output
json— The result including document ID, URL, number of applied edits, and the document content in DocMD format.GoogleDocs.GenerateGoogleFilePickerUrl
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Generate a URL where the user can grant this app access to specific Drive files. Opens Google's first-party Drive picker. The user selects which files to share with this application — it is not a sign-in or credential prompt. Use this when a prior tool reported that a file was not found or access was denied, and the user expects the file to exist. After the user completes the picker flow, retry the prior tool.
Parameters
No parameters required.
Requirements
Output
json— Google File Picker URL for user file selection and permission grantingGoogleDocs.GetDocumentAsDocmd
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get the latest version of the specified Google Docs document as DocMD. The DocMD output will include tags that can be used to annotate the document with location information, the type of block, block IDs, and other metadata. If the document has tabs, all tabs are included in sequential order unless a specific tab_id is provided.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
document_id | string | Required | The ID of the document to retrieve. |
tab_id | string | Optional | The ID of a specific tab to retrieve. If provided, returns only content from that tab. If omitted, returns all tabs in sequential depth-first order. |
Requirements
Output
string— The document contents as DocMDGoogleDocs.GetDocumentById
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
DEPRECATED DO NOT USE THIS TOOL Get the latest version of the specified Google Docs document.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
document_id | string | Required | The ID of the document to retrieve. |
Requirements
Output
json— The document contents as a dictionaryGoogleDocs.GetDocumentMetadata
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get metadata for a Google Docs document including hierarchical tab structure. Returns document title, ID, URL, total character count, and nested tab information with character counts for each tab.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
document_id | string | Required | The ID of the document to get metadata for |
Requirements
Output
json— Document metadata including hierarchical tab structureGoogleDocs.InsertTextAtEndOfDocument
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Updates an existing Google Docs document using the batchUpdate API endpoint.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
document_id | string | Required | The ID of the document to update. |
text_content | string | Required | The text content to insert into the document |
Requirements
Output
json— The response from the batchUpdate API as a dict.GoogleDocs.ListDocumentComments
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List all comments on the specified Google Docs document.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
document_id | string | Required | The ID of the document to list comments for |
include_deleted | boolean | Optional | Whether to include deleted comments in the results. Defaults to False. |
Requirements
Output
json— A dictionary containing the commentsGoogleDocs.SearchAndRetrieveDocuments
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Searches for documents in the user's Google Drive and returns documents with their main body content and tab metadata. Excludes documents that are in the trash. Returns main body content only with metadata about tabs. Use get_document_as_docmd() to retrieve full tab content for specific documents. Use search_documents() for metadata-only searches.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
return_format | string | Optional | The format of the document to return. Defaults to Markdown.docmdmarkdownhtmlgoogle_api_json |
document_contains | array<string> | Optional | Keywords or phrases that must be in the document title or body. Provide a list of keywords or phrases if needed. |
document_not_contains | array<string> | Optional | Keywords or phrases that must NOT be in the document title or body. Provide a list of keywords or phrases if needed. |
search_only_in_shared_drive_id | string | Optional | The ID of the shared drive to restrict the search to. If provided, the search will only return documents from this drive. Defaults to None, which searches across all drives. |
include_shared_drives | boolean | Optional | Whether to include documents from shared drives. Defaults to False (searches only in the user's 'My Drive'). |
include_organization_domain_documents | boolean | Optional | Whether to include documents from the organization's domain. This is applicable to admin users who have permissions to view organization-wide documents in a Google Workspace account. Defaults to False. |
order_by | array<string> | Optional | Sort order. Defaults to listing the most recently modified documents firstcreatedTimecreatedTime descfolderfolder descmodifiedByMeTimemodifiedByMeTime descmodifiedTimemodifiedTime descnamename descname_naturalname_natural descquotaBytesUsedquotaBytesUsed descrecencyrecency descsharedWithMeTimesharedWithMeTime descstarredstarred descviewedByMeTimeviewedByMeTime desc |
limit | integer | Optional | The number of documents to list |
pagination_token | string | Optional | The pagination token to continue a previous request |
Requirements
Output
json— A dictionary containing document count, list of documents with content and metadata, pagination token, and has_more flagGoogleDocs.SearchDocuments
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Searches for documents in the user's Google Drive. Excludes documents in trash. Returns metadata only. Use get_document_metadata or get_document_as_docmd for content.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
document_contains | array<string> | Optional | Keywords or phrases that must be in the document title or body. Provide a list of keywords or phrases if needed. |
document_not_contains | array<string> | Optional | Keywords or phrases that must NOT be in the document title or body. Provide a list of keywords or phrases if needed. |
search_only_in_shared_drive_id | string | Optional | The ID of the shared drive to restrict the search to. If provided, the search will only return documents from this drive. Defaults to None, which searches across all drives. |
include_shared_drives | boolean | Optional | Whether to include documents from shared drives. Defaults to False (searches only in the user's 'My Drive'). |
include_organization_domain_documents | boolean | Optional | Whether to include documents from the organization's domain. This is applicable to admin users who have permissions to view organization-wide documents in a Google Workspace account. Defaults to False. |
order_by | array<string> | Optional | Sort order. Defaults to listing the most recently modified documents first. If document_contains or document_not_contains is provided, then the order_by will be ignored.createdTimecreatedTime descfolderfolder descmodifiedByMeTimemodifiedByMeTime descmodifiedTimemodifiedTime descnamename descname_naturalname_natural descquotaBytesUsedquotaBytesUsed descrecencyrecency descsharedWithMeTimesharedWithMeTime descstarredstarred descviewedByMeTimeviewedByMeTime desc |
limit | integer | Optional | The number of documents to list |
pagination_token | string | Optional | The pagination token to continue a previous request |
Requirements
Output
json— Document count, list of documents, pagination token, and has_more flagGoogleDocs.WhoAmI
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get comprehensive user profile and Google Docs environment information. This tool provides detailed information about the authenticated user including their name, email, profile picture, Google Docs access permissions, and other important profile details from Google services.
Parameters
No parameters required.
Requirements
Output
json— Get comprehensive user profile and Google Docs environment information.