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)
Data as of from the GitHub API and the official MCP registry; description from the project's repository. Report an error
- Official
- Needs API key
- Productivity
- MIT
- Maintained
Install Google Docs
Generated from the server's MCP registry entry. Replace your-value with your own values.
Claude Desktop
{
"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-serverCursor
{
"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
{
"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.
| Name | Required | Description |
|---|---|---|
GOOGLE_DOCS_OAUTH_CLIENT_IDsecret | No | OAuth2 client ID from Google Cloud Console. |
GOOGLE_DOCS_OAUTH_CLIENT_SECRETsecret | No | OAuth2 client secret from Google Cloud Console. |
GOOGLE_DOCS_OAUTH_REFRESH_TOKENsecret | No | Long-lived refresh token obtained from the oauth-setup command. |
GOOGLE_DOCS_SERVICE_ACCOUNT_CLIENT_EMAIL | No | Service account email address for domain-wide delegation. |
GOOGLE_DOCS_SERVICE_ACCOUNT_PRIVATE_KEYsecret | No | Service account private key in PEM format. |
GOOGLE_DOCS_IMPERSONATE_EMAIL | No | Email address to impersonate in Google Workspace. |
GOOGLE_DOCS_ENABLED_TOOLGROUPS | No | Comma-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_documentFetch a Google Doc and return its title, outline, and full body.
document_idGoogle Docs ID or URL
formattext (default) for human-readable output, or json for the raw documents.get API resource
get_document_outlineReturn only the heading structure of a document — useful for getting your bearings on a long doc without pulling the…
create_documentCreate a new Google Doc.
titleDocument title
initial_contentPlain text inserted into the new document
update_documentApply raw documents.batchUpdate requests. This is the escape hatch for any Docs API operation not covered by the more…
requestsArray of documents.batchUpdate request objects (API reference)
append_textAppend text to the end of a document. Resolves the end-of-body index for you.
textText to append
insert_textInsert text at a specific index.
indexInsertion index (must be ≥ 1)
replace_textFind and replace text throughout a document. Reports the number of occurrences replaced.
findString to find
replaceReplacement string
match_caseWhether matching is case-sensitive (default: false)
delete_documentMove a document to Drive trash by default, or permanently delete it.
permanentWhen true, permanently delete instead of trashing (default: false)
export_documentExport a document in a different format.
list_commentsList the comments on a document, including threaded replies and resolved state.
include_resolvedInclude resolved (closed) threads (default: true). Set false to see only open comments.
include_deletedInclude deleted comments (default: false)
share_documentGrant access to a user, group, domain, or anyone with the link. Gated behind the readwriteexternal group.
typeOne of user, group, domain, anyone
roleOne of reader, commenter, writer
email_addressRequired for type=user or type=group
domainRequired for type=domain
send_notification_emailWhether 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).
Similar MCP servers
More productivity MCP servers
Simplenote MCP
Automattic/simplenote-mcp
MCP server for reading Simplenote notes across macOS, Linux, and Windows.
Maintained · last commit Jul 27, 2026
OfficialProductivityTypeScriptWindows MCP
CursorTouch/Windows-MCP
An MCP Server for computer-use in Windows OS.
Active · last commit Oct 26, 2026
ProductivityPythonAirtable User MCP
Automations-Project/VSCode-Airtable-Formula
Manage Airtable bases: schema, field CRUD, views, formula validation, extensions.
Active · last commit Jul 31, 2026
OfficialProductivityJavaScriptKaneo
usekaneo/kaneo
Official MCP server for Kaneo: manage tasks, projects, and labels from Claude and other MCP clients.
Active · last commit Oct 25, 2026
OfficialProductivityTypeScriptUmbraco CMS MCP Dev
umbraco/Umbraco-CMS-MCP-Dev
A developer focused model context protocol (MCP) server for Umbraco CMS.
Active · last commit Oct 21, 2026
OfficialProductivityTypeScriptPraisonAI
MervinPraison/PraisonAI
AI Agents Framework with Self Reflection and MCP support.
Active · last commit Oct 25, 2026
ProductivityPython
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.