Skip to content
appsgit

Google Docs

Google Docs is an MCP server that adds productivity tools to AI assistants such as Claude Desktop, Claude Code and Cursor. MCP server for Google Docs integration with OAuth2 and service account support. It has 81 GitHub stars, is released under the MIT license and runs locally with npx -y google-docs-workspace-mcp-server.

github.com/pulsemcp/mcp-servers (opens in a new tab)

Install Google Docs

Generated from the server's MCP registry entry. Replace your-value with your own values.

Claude Desktop

claude_desktop_config.json
{
  "mcpServers": {
    "google-docs": {
      "command": "npx",
      "args": [
        "-y",
        "google-docs-workspace-mcp-server"
      ],
      "env": {
        "GOOGLE_DOCS_OAUTH_CLIENT_ID": "your-value",
        "GOOGLE_DOCS_OAUTH_CLIENT_SECRET": "your-value",
        "GOOGLE_DOCS_OAUTH_REFRESH_TOKEN": "your-value",
        "GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY": "your-value"
      }
    }
  }
}

Settings > Developer > Edit Config. macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\. Restart Claude Desktop afterwards.

Claude Code

claude mcp add --env GOOGLE_DOCS_OAUTH_CLIENT_ID=your-value --env GOOGLE_DOCS_OAUTH_CLIENT_SECRET=your-value --env GOOGLE_DOCS_OAUTH_REFRESH_TOKEN=your-value --env GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY=your-value --transport stdio google-docs -- npx -y google-docs-workspace-mcp-server

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "google-docs": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "google-docs-workspace-mcp-server"
      ],
      "env": {
        "GOOGLE_DOCS_OAUTH_CLIENT_ID": "your-value",
        "GOOGLE_DOCS_OAUTH_CLIENT_SECRET": "your-value",
        "GOOGLE_DOCS_OAUTH_REFRESH_TOKEN": "your-value",
        "GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY": "your-value"
      }
    }
  }
}

Project file; use ~/.cursor/mcp.json to enable it in every project.

VS Code

.vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "google_docs_oauth_client_id",
      "description": "GOOGLE_DOCS_OAUTH_CLIENT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "google_docs_oauth_client_secret",
      "description": "GOOGLE_DOCS_OAUTH_CLIENT_SECRET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "google_docs_oauth_refresh_token",
      "description": "GOOGLE_DOCS_OAUTH_REFRESH_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "google_docs_service_account_private_key",
      "description": "GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY",
      "password": true
    }
  ],
  "servers": {
    "google-docs": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "google-docs-workspace-mcp-server"
      ],
      "env": {
        "GOOGLE_DOCS_OAUTH_CLIENT_ID": "${input:google_docs_oauth_client_id}",
        "GOOGLE_DOCS_OAUTH_CLIENT_SECRET": "${input:google_docs_oauth_client_secret}",
        "GOOGLE_DOCS_OAUTH_REFRESH_TOKEN": "${input:google_docs_oauth_refresh_token}",
        "GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY": "${input:google_docs_service_account_private_key}"
      }
    }
  }
}

Config formats checked against the official docs on Oct 7, 2026: modelcontextprotocol.io (opens in a new tab), code.claude.com (opens in a new tab), cursor.com (opens in a new tab), code.visualstudio.com (opens in a new tab).

Environment variables

Variables the server reads at startup.

NameRequiredDescription
GOOGLE_DOCS_OAUTH_CLIENT_IDsecretNoOAuth2 client ID from Google Cloud Console.
GOOGLE_DOCS_OAUTH_CLIENT_SECRETsecretNoOAuth2 client secret from Google Cloud Console.
GOOGLE_DOCS_OAUTH_REFRESH_TOKENsecretNoLong-lived refresh token obtained from the oauth-setup command.
GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAILNoService account email address for domain-wide delegation.
GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEYsecretNoService account private key in PEM format.
GOOGLE_DOCS_IMPERSONATE_EMAILNoEmail address to impersonate in Google Workspace.
GOOGLE_DOCS_ENABLED_TOOLGROUPSNoComma-separated list of tool groups to enable (readonly, readwrite, readwrite_external).

Tools (29)

Parsed from the Tools section of the README; check the repository for the current list.

  • get_document

    Fetch a Google Doc and return its title, outline, and full body.

  • document_id

    Google Docs ID or URL

  • format

    text (default) for human-readable output, or json for the raw documents.get API resource

  • get_document_outline

    Return only the heading structure of a document — useful for getting your bearings on a long doc without pulling the…

  • create_document

    Create a new Google Doc.

  • title

    Document title

  • initial_content

    Plain text inserted into the new document

  • update_document

    Apply raw documents.batchUpdate requests. This is the escape hatch for any Docs API operation not covered by the more…

  • requests

    Array of documents.batchUpdate request objects (API reference)

  • append_text

    Append text to the end of a document. Resolves the end-of-body index for you.

  • text

    Text to append

  • insert_text

    Insert text at a specific index.

  • index

    Insertion index (must be ≥ 1)

  • replace_text

    Find and replace text throughout a document. Reports the number of occurrences replaced.

  • find

    String to find

  • replace

    Replacement string

  • match_case

    Whether matching is case-sensitive (default: false)

  • delete_document

    Move a document to Drive trash by default, or permanently delete it.

  • permanent

    When true, permanently delete instead of trashing (default: false)

  • export_document

    Export a document in a different format.

  • list_comments

    List the comments on a document, including threaded replies and resolved state.

  • include_resolved

    Include resolved (closed) threads (default: true). Set false to see only open comments.

  • include_deleted

    Include deleted comments (default: false)

  • share_document

    Grant access to a user, group, domain, or anyone with the link. Gated behind the readwriteexternal group.**

  • type

    One of user, group, domain, anyone

  • role

    One of reader, commenter, writer

  • email_address

    Required for type=user or type=group

  • domain

    Required for type=domain

  • send_notification_email

    Whether Google sends an email notification (default: true)

About Google Docs

An MCP (Model Context Protocol) server that provides Google Docs integration for AI assistants. Supports both personal Google accounts (via OAuth2) and Google Workspace accounts (via service account with domain-wide delegation).

FAQ

Google Docs FAQ

Still curious? Email info@appsgit.com.

What is Google Docs?

Google Docs is an MCP server that adds productivity tools to AI assistants such as Claude Desktop, Claude Code and Cursor. MCP server for Google Docs integration with OAuth2 and service account support. It has 81 GitHub stars, is released under the MIT license and runs locally with npx -y google-docs-workspace-mcp-server. The source code is at github.com/pulsemcp/mcp-servers.

How do I install the Google Docs MCP server?

Add the command npx -y google-docs-workspace-mcp-server to your MCP client: put it in claude_desktop_config.json for Claude Desktop, run claude mcp add for Claude Code, or add it to .cursor/mcp.json (Cursor) or .vscode/mcp.json (VS Code). The snippets on this page are ready to paste.

Is Google Docs free?

The server is open source under the MIT license, so running it is free. It needs credentials (GOOGLE_DOCS_OAUTH_CLIENT_ID, GOOGLE_DOCS_OAUTH_CLIENT_SECRET, GOOGLE_DOCS_OAUTH_REFRESH_TOKEN and GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEY) for the service it connects to, which may require a paid account.

Is Google Docs actively maintained?

The most recent commit was on Aug 30, 2026. The latest release is monorepo-latest-placeholder@0.0.0, published Jul 3, 2025. appsgit only lists MCP servers with a commit in the last six months and re-checks every server daily.