Prerequisites
- A Google account with Google Docs and Drive access
- A Google Workspace connection in AgentRuntime (OAuth via the Google account card on Connections)
- project_contributor access in your workspace
Connect in AgentRuntime
Connect Google
On Connections, use the Google account card and complete OAuth. See Google Workspace setup and Connections.
Enable Docs
On your Google connection, enable the Docs service so the account exposes Docs and Drive API scopes.
Add google-docs MCP instance
Go to MCP, click Add instance for google-docs. Open Instance config, wire your Google connection, and set the profile active.
What you can build
- Contract from template — CRM webhook with deal fields →
create_document_based_on_templatereplacing[ClientName]placeholders → google-driveadd_permissionfor the signer. - Meeting notes append — google-calendar event ends → LLM summary from transcript →
find_documentby meeting title →append_textwith dated section. - Weekly report draft — Postgres metrics query → LLM narrative →
create_documentwith title and body → gmail link in status email. - Onboarding packet — New hire row in google-sheets →
create_document_based_on_templatewith role-specific values → move to HR folder via google-drive.
Tools
| Tool | Description |
|---|---|
read_document | Read a Google Doc by document ID and return both the full resource and flattened plain text. |
append_text | Append text to the end of an existing Google Doc. |
find_document | Find a Google Doc by name in Drive, with optional create-if-missing behavior. |
create_document_based_on_template | Create a Google Doc from a template by replacing placeholders with values and images. |
create_document | Create a Google Doc with a title and optional initial body content. |
Example
Fill a proposal template after an LLM extracts fields from a brief:Troubleshooting
| Issue | Fix |
|---|---|
| Reconnect prompt on Google connection | Re-authorize OAuth; Docs and Drive scopes may have been revoked |
| Placeholders not replaced | Match placeholder_format to your template (square_brackets, curly_braces, etc.) |
find_document returns multiple matches | Scope with folder_id or use an exact template ID instead of name search |
append_text lands in wrong doc | Pass the document_id from find_document or create_document, not the URL slug alone |