Back to Browse

Google Docs MCP Server

Developer ToolsLow Risk10.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

Google Docs MCP server with full tab support, markdown extraction, and batch updates.

About

Google Docs MCP server with full tab support, markdown extraction, and batch updates.

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (1 strong, 4 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.

4 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Path to the Google service account JSON key fileOptional

Environment variable: SERVICE_ACCOUNT_PATH

Email of the Workspace user to impersonate via domain-wide delegationOptional

Environment variable: SUBJECT_EMAIL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-gigabrain-observer-google-docs-mcp-server": {
      "env": {
        "SUBJECT_EMAIL": "your-subject-email-here",
        "SERVICE_ACCOUNT_PATH": "your-service-account-path-here"
      },
      "args": [
        "google-docs-mcp-server"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

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

ToolDescription
list_tabsList all tabs (including nested) in a document
read_documentRead one tab or all tabs as markdown with proper heading levels
get_document_infoLightweight metadata: title, ID, link, tab list
create_documentCreate a new doc with optional initial text
append_textAppend text to the end of a specific tab
insert_textInsert text at a character index in a tab
replace_textFind and replace within a tab (or whole doc)
batch_updateFull batchUpdate access — formatting, tables, images, styles
list_documentsSearch 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

VariableRequiredDescription
SERVICE_ACCOUNT_PATHYesPath to the service account JSON key file
SUBJECT_EMAILYesEmail of the Workspace user to impersonate

License

MIT

Reviews

No reviews yet

Be the first to review this server!