100+ integrations are ready to connect to your AI.Connect your first MCP

Google Docs MCP server for your AI

Read a document as Markdown, add a section under the right heading, rewrite a part, fill a template, style every mention of a name, and reply to comments, from the AI client you already use.

PopMCPGoogle Docs

Summarize the client proposal doc and list its open comments

Supported Google Docs tools

Every tool the connection exposes: reading and writing content, formatting, tables, tabs, comments and suggestions, Drive sharing, plus the change triggers you can watch.

99 tools in the full catalog: 14 read and 85 write. 45 load by default, and the rest are found with tool search.

google_docs_accept_suggestion

Accepts a suggestion.

google_docs_add_bullets

Creates bullets for paragraphs.

google_docs_add_tab

Adds a document tab.

google_docs_delete_content

Deletes content from the document.

google_docs_delete_table_column

Deletes a column from a table.

google_docs_delete_table_row

Deletes a row from a table.

google_docs_format_paragraphs

Updates the paragraph style at the specified range.

google_docs_format_text

Updates the text style at the specified range.

google_docs_insert_image

Inserts an inline image at the specified location.

google_docs_insert_table

Inserts a table at the specified location.

google_docs_insert_table_column

Inserts an empty column into a table.

google_docs_insert_table_row

Inserts an empty row into a table.

google_docs_insert_text

Inserts text at the specified location.

google_docs_reject_suggestion

Rejects a suggestion.

google_docs_replace_all_text

Replaces all instances of the specified text.

google_docs_reply_to_comment

Adds a reply to a CommentThread or SuggestionThread.

google_docs_update_document_style

Updates the style of the document.

google_docs_copy_document

Duplicate a document with all its content and formatting: the way to keep a snapshot before a big edit, or to start from a template.

google_docs_create_document

Create a Google Doc WITH content in one call: body { title: 'Q3 plan', markdown: '# Goals\n\n- Ship v2\n- Hire two engineers' }.

google_docs_create_drive_folder

Create a Drive folder to keep documents together: body { name: 'Client proposals', parentId?: FOLDER_ID } (default: the top of My Drive).

google_docs_export_document

Export a document through Drive as TEXT: Markdown (the default), plain text or HTML, converted by Google itself, paged like read_document.

google_docs_get_document_file_info

Drive-side facts about a document that the Docs API does not hold: who owns it, who last edited it and when, which folders it is in, whether it is shared or trashed, what this account may do with it (canEdit, canComment), the `webViewLink` to hand to a person, and `exportLinks` (signed-in download links for PDF, Word, ODT, EPUB, Markdown and more).

google_docs_list_document_permissions

See who a document is shared with and how.

google_docs_list_documents

FIND Google Docs.

google_docs_list_drive_folders

List Drive FOLDERS, to put a document somewhere or to search inside one.

google_docs_move_document

Move a document into another Drive folder: query { folderId: 'FOLDER_ID' }.

google_docs_remove_document_permission

Revoke one person's (or the link's) access to a document, using the permissionId from list_document_permissions.

google_docs_rename_document

Rename a document: body { title: 'New name' }.

google_docs_share_document

Share a document.

google_docs_trash_document

Delete a document the way a person means it: move it to the trash, where it stays restorable for 30 days.

google_docs_add_comment

COMMENT on a passage, the way a person highlights text and clicks Comment: pass quote (the exact text to attach it to) and comment.

google_docs_create_document_from_template

Make a new document from a TEMPLATE in one call: copies the template (all formatting, tables, images, headers) and replaces each placeholder with its value everywhere it appears, e.g. replacements { '{{client}}': 'Acme Ltd', '{{date}}': '15 October 2026' }.

google_docs_export_document_file

SAVE a document as a file in Google Drive: PDF, Word (docx), OpenDocument (odt), RTF, EPUB or plain text (txt), converted by Google (up to 10 MB).

google_docs_find_text

Find every occurrence of a word or phrase and get its exact startIndex/endIndex, plus the paragraph it is in.

google_docs_format_matching_text

STYLE every occurrence of a word or phrase in one call, without indices: bold, italic, underline, strikethrough, fontSize (pt), fontFamily, color and highlight (hex like '#1a73e8' or a color name), link (a URL, or '' to remove a link), or turn the paragraphs that contain it into a heading with paragraphStyle ('heading 2', 'title', 'normal').

google_docs_insert_markdown

ADD content to an existing document by writing Markdown: # headings, paragraphs, **bold**, *italic*, ~~strike~~, `code`, [links](https://…), - bulleted and 1.

google_docs_read_document

READ a Google Doc.

google_docs_replace_document_content

REPLACE the entire body of a document (or of one tab) with new Markdown, in one atomic change.

google_docs_replace_section

REWRITE the content under one heading with new Markdown, in one atomic change: everything from just below the heading to the next heading of the same or higher level is replaced; the rest of the document is untouched.

google_docs_replace_text_with_markdown

REPLACE a piece of text, typically a {{placeholder}}, with Markdown, in one atomic change.

google_docs_set_header_footer

SET the header or footer of a document (or of one tab) to new Markdown, replacing what it held, and create it when there is none.

google_docs_batch_update_document

Applies one or more updates to the document.

google_docs_get_document

Gets the latest version of the specified document.

google_docs_list_comments

Read a document's comment threads AND pending suggestions through the Docs API (works on every connection).

google_docs_resolve_comment

Mark a comment thread RESOLVED, optionally with a closing reply: body { commentId, content: 'Fixed in the latest draft.' }.

google_docs_create_dropdown_definition

Creates a DropdownDefinition.

google_docs_create_footer

Creates a footer.

google_docs_create_footnote

Creates a footnote.

google_docs_create_header

Creates a header.

google_docs_create_named_range

Creates a named range.

google_docs_delete_comment

Deletes a CommentThread.

google_docs_delete_comment_reply

Deletes a reply Post from a CommentThread or SuggestionThread.

google_docs_delete_dropdown_definition

Deletes a DropdownDefinition.

google_docs_delete_footer

Deletes a footer from the document.

google_docs_delete_header

Deletes a header from the document.

google_docs_delete_named_range

Deletes a named range.

google_docs_delete_positioned_object

Deletes a positioned object from the document.

google_docs_delete_suggestion

Deletes a suggestion.

google_docs_delete_tab

Deletes a document tab.

google_docs_edit_comment

Updates an existing post (head post or reply) of a CommentThread or SuggestionThread.

google_docs_format_table_cells

Updates the style of table cells.

google_docs_format_table_rows

Updates the row style in a table.

google_docs_insert_comment

Inserts a CommentThread into the document.

google_docs_insert_date

Inserts a date.

google_docs_insert_dropdown

Inserts a Dropdown at the specified location.

google_docs_insert_page_break

Inserts a page break at the specified location.

google_docs_insert_person_mention

Inserts a person mention.

google_docs_insert_rich_link

Insert a rich link.

google_docs_insert_section_break

Inserts a section break at the specified location.

google_docs_merge_table_cells

Merges cells in a table.

google_docs_pin_table_header_rows

Updates the number of pinned header rows in a table.

google_docs_remove_bullets

Deletes bullets from paragraphs.

google_docs_replace_image

Replaces an image in the document.

google_docs_replace_named_range_content

Replaces the content in a named range.

google_docs_set_table_column_widths

Updates the properties of columns in a table.

google_docs_unmerge_table_cells

Unmerges cells in a table.

google_docs_update_dropdown_definition_properties

Updates the properties of a DropdownDefinition.

google_docs_update_dropdown_properties

Updates the properties of a Dropdown.

google_docs_update_named_style

Updates a named style.

google_docs_update_section_style

Updates the section style of the specified range.

google_docs_update_tab

Updates the properties of a document tab.

google_docs_untrash_document

Restore a trashed document to where it was.

google_docs_update_document_permission

Change an existing share's role, e.g. body { role: 'reader' } to make an editor a viewer.

google_docs_create_drive_comment

Add a DOCUMENT-LEVEL comment through Drive: body { content: 'Overall looks good' }.

google_docs_delete_drive_comment

Delete a comment thread.

google_docs_delete_drive_comment_reply

Delete one reply from a comment thread.

google_docs_get_drive_comment

One comment thread with all its replies.

google_docs_list_drive_comment_replies

The replies in one comment thread, oldest first.

google_docs_list_drive_comments

Drive's view of a document's comments.

google_docs_reopen_drive_comment

Reopen a resolved comment thread, optionally with a reply: body { content: 'One more thing…' } or no body.

google_docs_reply_to_drive_comment

Reply in a comment thread: body { content: 'Done, updated the figures.' }.

google_docs_resolve_drive_comment

Mark a comment thread resolved, optionally with a closing reply: body { content: 'Fixed in the latest draft.' } or no body at all.

google_docs_update_drive_comment

Edit the text of a comment this account wrote: body { content: 'new text' }.

google_docs_update_drive_comment_reply

Edit the text of a reply this account wrote: body { content: 'new text' }.

google_docs_create_blank_document

Creates a blank document using the title given in the request.

google_docs_get_revision

One saved version of the document (from list_revisions), with its export links.

google_docs_list_revisions

The document's saved versions, oldest first: when each was saved and by whom.

google_docs_publish_document

Publish the document to the web (File > Share > Publish to web), so anyone can read it at a public link, kept up to date as it changes.

google_docs_reopen_comment

REOPEN a resolved comment thread, optionally with a reply: body { commentId, content: 'One more thing...' }.

Connect Google Docs to Claude, ChatGPT and Claude Code

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Google Docs side.

Connect with your own Google Cloud OAuth client: enable the Docs and Drive APIs, paste the OAuth Client ID and Client Secret, and authorize once. There is no document picker; it reaches what that Google account can open.

OAuth Client ID1234567890-abc.apps.googleusercontent.com
OAuth Client Secret••••••••••••3f7a
Authorize PopMCP on Google DocsAuthorize

Then just ask for the work

  • “Summarize the client proposal doc and list its open comments”

    • list_documents
    • read_document
    • list_comments
  • “Add a Risks section with three bullet points under the Timeline heading”

    • list_documents
    • insert_markdown
  • “Make a new proposal for Acme from our template and share it with sam@acme.com”

    • create_document_from_template
    • share_document
  • “Rename every 'Q3' to 'Q4' in the board update and bold the word Revenue”

    • replace_all_text
    • format_matching_text

Use Google Docs from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Google Docs MCP server questions

What teams ask before putting Google Docs behind an AI client.

Can the AI write formatted content, or only plain text?

It writes Markdown and the connector turns it into real Docs formatting: headings, bold and italic, links, bulleted, numbered and checklist items, quotes, code, tables and images. It can add content at the end, at the start, under a named heading or next to a paragraph, and rewrite one section or the whole document, without working out character positions.

Which documents can the agent reach?

There is no document to pick during setup. The connection reaches exactly the documents the Google account you authorized with can open, so scope is decided by which account you use. To hand over less, authorize with an account that only has access to the files you want an agent touching.

Can it suggest edits instead of changing the document?

Yes. The writing tools take a suggest option that turns every change into a suggestion, the same as Suggesting mode in Google Docs, so an editor accepts or rejects each one. The agent can also read open comments and suggestions, reply, resolve threads, and accept or reject suggestions itself.

Why does it need the Google Drive API as well as Docs?

The Docs API only works on a document whose id you already have, and it cannot rename, share, move, export or trash one. Drive is what finds a document by name or by the words inside it, renames and files it, shares it, exports it, and copies a template. If the Drive API is not enabled in your project, those tools have nothing to call.

Why did my connection stop working after seven days?

That is Google's behavior for an OAuth app still in testing. If your Google Cloud project's Audience is set to External, publish the app before you connect, otherwise Google expires the connection after 7 days and calls start failing. Publishing needs no review from Google.

How many tools does this load into my AI client?

45 everyday tools load by default and the rest stay searchable, so a long tool list does not eat your context window. Every one of the Docs API's 53 edit types is its own tool, from named ranges and footnotes to dropdowns and person chips, alongside the Drive tools for finding, sharing, comments and versions, and 9 change triggers.

Do I have to run or host the Google Docs MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Google Docs to Claude Code?

Connect Google Docs in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Google Docs on the consent screen. The Google Docs tools are then available in that session, and no Google Docs credential is stored on your machine.

Why do only 45 of the 99 tools load by default?

Loading 99 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 45-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 99 here. A trigger is something PopMCP watches for you: 9 Google Docs events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Google Docs.

Connect Google Docs to your AI in minutes

Launch a hosted MCP endpoint for Google Docs, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP