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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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