npm google-documents-mcpstdioupdated 28d ago
MCP server for Google Docs - read and edit documents.
Was kannst du mit Google Docs machen?
google-documents-mcp
MCP server for Google Docs - read and edit documents.
Use Cases
Document Q&A: "What does the contract say about termination clauses?" → reads the doc and pulls out the relevant section.
Meeting-to-doc workflow: After a call, reads the Gemini transcript plus follow-up Slack discussion, then updates your team charter with the decisions made.
Release announcement: "Draft a blog post about the new feature based on the GitHub PRs and Slack discussions in #proj-awesome" → synthesizes technical changes into user-facing content.
Daily planning with persistent context: Your AI assistant reads a "planning log" doc at the start of each day, asks about yesterday's progress, helps you identify today's priority, then updates the doc with your plan. Context carries over across sessions - it remembers what you said you'd do and can follow up.
(These are just examples - any workflow that needs document reading or editing can use this. Use in combination with google-drive-mcp for finding files, deleting, comments, and sharing permissions.)
Setup
1. Create Google OAuth credentials
- Go to Google Cloud Console
- Create a new project (or use existing)
- Enable the Google Docs API
- Go to APIs & Services → OAuth consent screen, set up consent screen
- Go to APIs & Services → Credentials → Create Credentials → OAuth client ID
- Choose Web application
- Add
http://localhost:3000/callbackto Authorized redirect URIs - Note your Client ID and Client Secret
2. Run the server
GOOGLE_CLIENT_ID='your-client-id' \
GOOGLE_CLIENT_SECRET='your-client-secret' \
MCP_TRANSPORT=http \
npm start
The server runs on http://localhost:3000 by default. Change with PORT=3001.
3. Add to your MCP client
With the server running, follow the instructions on install-mcp, which generates the right config for your MCP client (Claude Code, Claude Desktop, Cursor, Cline, VS Code, and more).
Architecture
This server acts as an OAuth proxy to Google:
graph LR
A[MCP client] <--> B[google-documents-mcp] <--> C[Google OAuth/API]
- Server advertises itself as an OAuth authorization server via
/.well-known/oauth-authorization-server /registerreturns the Google OAuth client credentials/authorizeredirects to Google, encoding the client's callback URL in state/callbackreceives the code from Google and forwards to the client's callback/tokenproxies token requests to Google, injecting client credentials/mcphandles MCP requests, using the bearer token to call Google Docs API
The server holds no tokens or state - it just proxies OAuth to Google.
Tools
| Tool | Description |
|---|---|
document_get_raw |
Get full raw JSON structure (all tabs, formatting, headers, footers, styles) |
document_get_text |
Get plain text content of all tabs |
document_create |
Create a new blank document |
document_batch_update |
Apply multiple edits atomically (insert, delete, format, etc.) |
document_append |
Append text to end of document |
document_insert |
Insert text at a specific index |
document_replace |
Find and replace text |
batch_update Request Types
The document_batch_update tool supports these operations:
insertText- Insert text at a locationdeleteContentRange- Delete a range of contentreplaceAllText- Find and replace all occurrencesinsertInlineImage- Insert an imageinsertTable- Create a tableinsertTableRow/insertTableColumn- Add rows/columns to tablesdeleteTableRow/deleteTableColumn- Remove rows/columns from tablesinsertPageBreak- Add a page breakcreateNamedRange/deleteNamedRange- Manage named rangescreateParagraphBullets/deleteParagraphBullets- Manage bullet lists
Google Docs API Scopes
documents- Full access to read and edit documents
Contributing
Pull requests are welcomed on GitHub! To get started:
- Install Git and Node.js
- Clone the repository
- Install dependencies with
npm install - Run
npm run testto run tests - Build with
npm run build
Releases
Versions follow the semantic versioning spec.
To release:
- Use
npm version <major | minor | patch>to bump the version - Run
git push --follow-tagsto push with tags - Wait for GitHub Actions to publish to the NPM registry.
Installation
Google Docs zu deinem Client hinzufügen. Wähl den, den du nutzt.
claude mcp add google-documents-mcp -- npx -y google-documents-mcpcodex mcp add google-documents-mcp -- npx -y google-documents-mcpamp mcp add google-documents-mcp -- npx -y google-documents-mcp{
"mcpServers": {
"google-documents-mcp": {
"command": "npx",
"args": [
"-y",
"google-documents-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"google-documents-mcp": {
"command": "npx",
"args": [
"-y",
"google-documents-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"google-documents-mcp","command":"npx","args":["-y","google-documents-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"google-documents-mcp": {
"command": "npx",
"args": [
"-y",
"google-documents-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"google-documents-mcp": {
"command": "npx",
"args": [
"-y",
"google-documents-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"google-documents-mcp": {
"command": "npx",
"args": [
"-y",
"google-documents-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"google-documents-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"google-documents-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"google-documents-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"google-documents-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y google-documents-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
7 Tools
Google Docs stellt einem verbundenen Agent 7 Tools bereit.
- document_get_raw
- Get full raw JSON structure (all tabs, formatting, headers, footers, styles)
- document_get_text
- Get plain text content of all tabs
- document_create
- Create a new blank document
- document_batch_update
- Apply multiple edits atomically (insert, delete, format, etc.)
- document_append
- Append text to end of document
- document_insert
- Insert text at a specific index
- document_replace
- Find and replace text
Score
74 / 100
Gut
- Dokumentation25/25
- Pflege25/25
- Vertrauen6/20
- Funktionsumfang6/15
- Installation12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 20 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 7 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Versionsverlauf
| Versionen | Veröffentlicht |
|---|---|
| 1.2.0Aktuell | 7. März 2026 |
| 1.1.2 | 23. Feb. 2026 |
| 1.1.1 | 28. Dez. 2025 |
| 1.1.0 | 28. Dez. 2025 |
| 1.0.1 | 13. Dez. 2025 |
| 1.0.0 | 11. Dez. 2025 |