Google Docs MCP Server
Google Docs MCP Server
A Model Context Protocol server for Google Docs with full tab support — something most existing servers get wrong or skip entirely.
Uses Google service accounts with domain-wide delegation, so it works in Workspace orgs without OAuth consent screens.
What it does
Tool | Description |
| List all tabs (including nested) in a document |
| Read one tab or all tabs as markdown with proper heading levels |
| Lightweight metadata: title, ID, link, tab list |
| Create a new doc with optional initial text |
| Append text to the end of a specific tab |
| Insert text at a character index in a tab |
| Find and replace within a tab (or whole doc) |
| Full batchUpdate access — formatting, tables, images, styles |
| Search Drive for docs by name |
All tab-targeting tools accept tab_id or tab_title (case-insensitive). The batch_update tool auto-injects tabId into requests so you don't have to.
Why this exists
Google Docs has supported tabs since late 2024, but most MCP servers either:
Ignore tabs entirely (only read the first tab)
Don't use
includeTabsContent=True, so tab content is invisibleDon't handle nested tabs
This server handles all of that correctly and converts content to markdown with proper heading structure.
Install
pip install google-docs-mcp-serverOr run directly with uv:
uvx google-docs-mcp-serverPrerequisites
Python 3.11+
A Google Cloud service account with domain-wide delegation
Setup
1. Create a GCP service account
Go to Google Cloud Console and create (or select) a project
Enable the Google Docs API and Google Drive API
Create a service account under IAM & Admin > Service Accounts
Create a JSON key and download it
2. Enable domain-wide delegation
In GCP, on the service account details page, enable Domain-wide Delegation and note the Client ID
In Google Workspace Admin > Security > API Controls > Domain-wide Delegation
Add the Client ID with these scopes:
https://www.googleapis.com/auth/documents https://www.googleapis.com/auth/drive.readonly
3. Configure your MCP client
Add to your MCP config (e.g. ~/.claude/mcp.json or .mcp.json):
{
"mcpServers": {
"google-docs": {
"command": "uvx",
"args": ["google-docs-mcp-server"],
"env": {
"SERVICE_ACCOUNT_PATH": "/path/to/your-service-account-key.json",
"SUBJECT_EMAIL": "you@yourdomain.com"
}
}
}
}SUBJECT_EMAIL is the Workspace user the service account impersonates.
Environment variables
Variable | Required | Description |
| Yes | Path to the service account JSON key file |
| Yes | Email of the Workspace user to impersonate |
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gigabrainobserver/google-docs-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server