Skip to main content
Glama

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_tabs

List all tabs (including nested) in a document

read_document

Read one tab or all tabs as markdown with proper heading levels

get_document_info

Lightweight metadata: title, ID, link, tab list

create_document

Create a new doc with optional initial text

append_text

Append text to the end of a specific tab

insert_text

Insert text at a character index in a tab

replace_text

Find and replace within a tab (or whole doc)

batch_update

Full batchUpdate access — formatting, tables, images, styles

list_documents

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 invisible

  • Don'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-server

Or run directly with uv:

uvx google-docs-mcp-server

Prerequisites

  • Python 3.11+

  • A Google Cloud service account with domain-wide delegation

Setup

1. Create a GCP service account

  1. Go to Google Cloud Console and create (or select) a project

  2. Enable the Google Docs API and Google Drive API

  3. Create a service account under IAM & Admin > Service Accounts

  4. Create a JSON key and download it

2. Enable domain-wide delegation

  1. In GCP, on the service account details page, enable Domain-wide Delegation and note the Client ID

  2. In Google Workspace Admin > Security > API Controls > Domain-wide Delegation

  3. 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

SERVICE_ACCOUNT_PATH

Yes

Path to the service account JSON key file

SUBJECT_EMAIL

Yes

Email of the Workspace user to impersonate

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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