You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: app/en/home/use-tools/tools-overview/page.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ To solve this, many AI models support tool calling (sometimes referred to as 'fu
13
13
14
14
Say a colleague shares a document with you on Google Drive, and you'd like an LLM to help you analyze it.
15
15
16
-
You could go to your Drive/Docs, open the document, copy its contents, and paste it into your chat. But what if the LLM could do this for you? The Arcade Google Docs MCP Server provides a [`SearchAndRetrieveDocuments`](/mcp-servers/productivity/google-docs#googledrivesearchandretrievedocuments) tool. By calling it, the LLM can find and read the document without you having to do anything.
16
+
You could go to your Drive/Docs, open the document, copy its contents, and paste it into your chat. But what if the LLM could do this for you? The Arcade Google Docs MCP Server provides a [`SearchAndRetrieveDocuments`](/mcp-servers/productivity/google-docs#googledocssearchandretrievedocuments) tool. By calling it, the LLM can find and read the document without you having to do anything.
17
17
18
18
After analyzing the document, you decide that a meeting is needed with your colleague. You can ask the LLM to schedule a meeting and it will use the [Google Calendar MCP Server](/mcp-servers/productivity/google-calendar) to do it without you needing to leave the chat.
Copy file name to clipboardExpand all lines: app/en/mcp-servers/productivity/google-docs/page.mdx
+84-10Lines changed: 84 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,8 @@ import { Callout } from "nextra/components";
30
30
The Arcade Google Docs MCP Server provides a pre-built set of tools for interacting with Google Docs. These tools make it easy to build agents and AI apps that can:
31
31
32
32
- Create, update, list, and delete documents
33
+
- Access document metadata including hierarchical tab structures
34
+
- Retrieve document content with full tab support in multiple formats (Markdown, HTML, DocMD)
33
35
34
36
## Available Tools
35
37
@@ -47,6 +49,10 @@ These tools are currently available in the Arcade Google Docs MCP Sever.
47
49
"GoogleDocs.GetDocumentAsDocMD",
48
50
"Retrieve a Google Docs document by ID in DocMD format with metadata tags.",
49
51
],
52
+
[
53
+
"GoogleDocs.GetDocumentMetadata",
54
+
"Get metadata for a Google Docs document including hierarchical tab structure and approximate counts.",
55
+
],
50
56
[
51
57
"GoogleDocs.EditDocument",
52
58
"Edit a Google Docs document using natural language edit requests.",
@@ -98,10 +104,10 @@ These tools are currently available in the Arcade Google Docs MCP Sever.
Get the latest version of the specified Google Docs document in DocMD format. The DocMD output includes tags that can be used to annotate the document with location information, block types, block IDs, and other metadata.
171
+
Get the latest version of the specified Google Docs document in DocMD format. The DocMD output includes tags that can be used to annotate the document with location information, block types, block IDs, and other metadata. If the document has tabs, all tabs are included in sequential order unless a specific `tab_id` is provided.
166
172
167
173
**Parameters**
168
174
169
175
-**`document_id`**_(string, required)_ The ID of the document to retrieve.
176
+
-**`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.
Get metadata for a Google Docs document including hierarchical tab structure. Returns document title, ID, URL, approximate total character and word counts, and nested tab information with approximate character and word counts for each tab.
200
+
201
+
**Parameters**
202
+
203
+
-**`document_id`**_(string, required)_ The ID of the document to get metadata for.
204
+
205
+
**Response Fields**
206
+
207
+
The response includes the following fields:
208
+
209
+
-**`documentId`**_(string)_ The unique identifier of the document.
210
+
-**`title`**_(string)_ The title of the document.
211
+
-**`documentUrl`**_(string)_ The URL to open and edit the document in Google Docs.
212
+
-**`approximateTotalCharacterCount`**_(int)_ Approximate total number of characters across all tabs (or main body if no tabs).
213
+
-**`approximateTotalWordCount`**_(int)_ Approximate total number of words across all tabs (or main body if no tabs).
214
+
-**`tabsCount`**_(int)_ The total number of tabs in the document.
215
+
-**`tabs`**_(list[dict])_ List of tabs with hierarchical structure. Each tab includes:
216
+
-**`tabId`**_(string)_ The unique identifier of the tab.
217
+
-**`title`**_(string)_ The title/name of the tab.
218
+
-**`index`**_(int)_ The position of the tab among its siblings (0-indexed).
219
+
-**`nestingLevel`**_(int)_ The nesting depth (0 for top-level, 1 for child, 2 for grandchild).
220
+
-**`approximateCharacterCount`**_(int)_ Approximate number of characters in this tab's content (excluding child tabs).
221
+
-**`approximateWordCount`**_(int)_ Approximate number of words in this tab's content (excluding child tabs).
222
+
-**`parentTabId`**_(string, optional)_ The ID of the parent tab (if this is a nested tab).
223
+
-**`childTabs`**_(list[dict], optional)_ List of nested child tabs within this tab.
224
+
225
+
<Callouttype="info">
226
+
**Note on Approximate Counts**: The character and word counts are approximate and may differ slightly from the exact counts shown in Google Docs. The counts are calculated by parsing the document structure and may not include all formatting or hidden content.
227
+
</Callout>
170
228
171
229
---
172
230
@@ -316,7 +374,7 @@ Search Google documents in the user's Google Drive. Excludes documents that are
316
374
-**`limit`**_(int, optional)_ The number of documents to list. Defaults to `50`.
317
375
-**`pagination_token`**_(str, optional)_ The pagination token to continue a previous request
318
376
319
-
## GoogleDrive.SearchAndRetrieveDocuments
377
+
## GoogleDocs.SearchAndRetrieveDocuments
320
378
321
379
<br />
322
380
<TabbedCodeBlock
@@ -335,11 +393,11 @@ Search Google documents in the user's Google Drive. Excludes documents that are
335
393
]}
336
394
/>
337
395
338
-
Searches for documents in the user's Google Drive and returns a list of documents (with text content) matching the search criteria. Excludes documents that are in the trash.
396
+
Searches for documents in the user's Google Drive and returns a list of documents (with text content) matching the search criteria. Excludes documents that are in the trash. If the document has tabs, all tab content is included in the output.
339
397
340
398
**Parameters**
341
399
342
-
-**`document_format`**_(enum ([DocumentFormat](#documentformat)), optional)_ The format of the document to be returned. Defaults to Markdown.
400
+
-**`return_format`**_(enum ([DocumentFormat](#documentformat)), optional)_ The format of the document to be returned. Defaults to Markdown. Can be `MARKDOWN`, `HTML`, `DOCMD`, or `GOOGLE_API_JSON`.
343
401
-**`document_contains`**_(list[str], optional)_ Keywords or phrases that must be in the document title or body. Provide a list of keywords or phrases if needed.
344
402
-**`document_not_contains`**_(list[str], optional)_ Keywords or phrases that must not be in the document title or body. Provide a list of keywords or phrases if needed.
345
403
-**`search_only_in_shared_drive_id`**_(str, 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.
@@ -407,6 +465,21 @@ Comment on a specific document by its ID.
407
465
408
466
---
409
467
468
+
## Tab Support
469
+
470
+
Google Docs supports hierarchical tabs within documents. The Google Docs tools provide comprehensive support for working with tabs:
471
+
472
+
-**Tab Metadata**: `GetDocumentMetadata` returns hierarchical tab structures with approximate character and word counts for each tab
473
+
-**Tab Content**: `GetDocumentAsDocMD` and `SearchAndRetrieveDocuments` include all tab content in their output
474
+
-**Tab Filtering**: `GetDocumentAsDocMD` supports filtering to retrieve content from a specific tab using the `tab_id` parameter
475
+
476
+
Tabs are represented with the following structure:
477
+
- Each tab has a unique `tabId`, `title`, `index`, and `nestingLevel`
478
+
- Tabs can be nested up to 3 levels deep (parent → child → grandchild)
479
+
- Tab metadata includes approximate character and word counts for each tab's content
480
+
481
+
---
482
+
410
483
## Auth
411
484
412
485
The Arcade Docs MCP Sever uses the [Google auth provider](/home/auth-providers/google) to connect to users' Google accounts.
@@ -423,8 +496,9 @@ With a self-hosted installation of Arcade, you need to [configure the Google aut
423
496
424
497
The format of the document to be returned.
425
498
426
-
-**`MARKDOWN`**: Markdown format.
427
-
-**`HTML`**: HTML format.
499
+
-**`MARKDOWN`**: Markdown format. Includes all tabs in the output if present.
500
+
-**`HTML`**: HTML format. Includes all tabs in the output if present.
501
+
-**`DOCMD`**: DocMD format with metadata tags. Includes all tabs in the output if present.
428
502
-**`GOOGLE_API_JSON`**: Original JSON format returned by the Google API.
0 commit comments