Google Docs
IntegrationRead, write, and edit your Google Docs in place
Tier-1 Google Docs integration. Reads structured Doc content, appends paragraphs and headings, runs find-and-replace, and exports to PDF, docx, or plain text. Designed to be composed by productivity and household agents (drop a generated artifact into a shared Doc, append meeting notes, template-fill a Doc from {{TOKENS}}). Also chattable directly for ad-hoc Doc work.
MCP Server URL
https://mcp.q5m.ai/google-docs/How to connect
- 1. Copy the URL above
- 2. Paste it into Claude Chat, ChatGPT, Claude Code, or any MCP client
- 3. Sign in to q5m when prompted to authorize
Tools (21)
search_docs
Search the user's Google Docs by name / parent / modifiedTime. Always scoped to Docs — non-Doc files are filtered out. Examples for `query`: "name contains 'Tokyo'", "'<folderId>' in parents and trashed = false", "modifiedTime > '2026-01-01T00:00:00Z'". Use before any mutating tool to resolve a doc by name.
list_recent_docs
List the user's most recently modified Google Docs, newest first.
get_doc_metadata
Fetch full metadata for a single Doc by id. Always call this before a destructive mutation to confirm the right doc.
get_doc_permissions
List who has access to a Doc and at what role. Returns one entry per principal (user, group, domain, anyone).
list_revisions
List revisions of a Doc. Each entry has id, modifiedTime, lastModifyingUser, and size. Use to audit who changed what when.
read_doc_content
Return the structured body of a Doc: title plus an ordered list of paragraphs with their headingId, named style, and text. Use when you need to find headings or specific structural elements before editing. For plain-text content prefer read_doc_text.
read_doc_text
Return the plain-text content of a Doc, exported via Drive. Good for summarizing, extracting, or diffing. Use read_doc_content when you need heading structure too. Capped at 25 MB.
append_doc_text
Append text to the end of a Doc. Optional `heading_level` (1-6) wraps the text in a heading style; otherwise it's added as normal body text. Each call adds a leading newline so successive appends do not run together.
replace_doc_text
Find and replace text across a Doc. Replaces every occurrence of `find` with `replace`. Useful for templating: create a Doc from a template, then swap {{NAME}}, {{DATE}}, etc.
export_doc
Export a Doc to a downloadable format. Common targets: 'application/pdf', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' (docx), 'text/plain', 'text/html'. Returns base64 bytes. Capped at 25 MB.
create_doc
Create a new empty Google Doc. Optional `parents=[<folderId>]` to place it in a folder; defaults to the user's root. Optional `initial_text` writes a first paragraph after creation.
rename_doc
Rename a Doc without moving it.
copy_doc
Duplicate a Doc. Optional new name and destination parents. Useful for templating: copy a template, then `replace_doc_text` the {{TOKENS}} in the copy.
trash_doc
Move a Doc to the Drive trash. Recoverable via untrash_doc or the Drive UI for 30 days. Prefer this over delete_doc.
untrash_doc
Restore a trashed Doc to its previous parent folder.
delete_doc
Permanently delete an entire DOC FILE, bypassing trash. DESTRUCTIVE and unrecoverable. Only call this when the user explicitly says 'delete the doc' / 'delete the file' / 'permanently'. For routine removal use trash_doc. The `confirm` argument must exactly match the doc's current name — fetch via get_doc_metadata and read it back to the user before they confirm.
share_doc
Add a permission to a Doc. Type is 'user' / 'group' / 'domain' / 'anyone'. Role is 'reader' / 'commenter' / 'writer' / 'owner'. Confirm before sharing externally (outside the user's domain) or granting writer/owner.
update_permission
Change the role on an existing Doc permission. Use to upgrade a commenter to a writer, or downgrade a writer to a reader. To remove access entirely, use remove_permission.
remove_permission
Revoke access for a single permission entry. DESTRUCTIVE: the principal loses access immediately. The `confirm` argument must exactly match the principal's email address (or displayName for non-user permissions) — fetch via get_doc_permissions and read it back to the user before they confirm.
format_doc_text
Apply text formatting to a range of characters in a Doc. The range is the half-open [start_index, end_index) using the document's character offsets — get them from `read_doc_content`. Pass only the keys you want to change.
format_doc_paragraphs
Apply paragraph formatting to a range: alignment, named style (Title / Heading 1-6 / Normal text), line spacing, and indents. The range is [start_index, end_index) over the document's character offsets — every paragraph that touches that range receives the style.
Open the platform to connect Google Docs
Platform