A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
MCP server for Claude Code CLI with full Google Workspace integration - Docs, Sheets, Drive, Gmail, Calendar & Apps Scri
English | Simplified Chinese | Traditional Chinese
A comprehensive MCP (Model Context Protocol) server providing full Google Workspace integration - including Google Docs, Sheets, Drive, Gmail, Calendar, and Apps Script APIs. Compatible with Claude Code CLI, Cursor IDE, and other MCP-compatible clients.
Unique Feature: This is the only Google Workspace MCP server that supports Apps Script API - enabling AI-driven automation of Google Sheets, Docs, and other Workspace products.

This server provides 72 tools across 6 Google Workspace services:
| Service | Tools | Description |
|---|---|---|
| Google Docs | 15 | Read, write, format, style, images, tables, comments |
| Google Sheets | 14 | Read, write, format, create spreadsheets, manage sheets |
| Google Drive | 16 | List, search, create, move, copy, delete files and folders |
| Gmail | 15 | Search, read, send, drafts, labels, filters, threads |
| Google Calendar | 8 | List calendars, events, create, update, delete, free/busy |
| Apps Script | 4 | Create and manage bound scripts for automation |
readGoogleDoc, appendToGoogleDoc, insertText, deleteRange, listDocumentTabsapplyTextStyle, applyParagraphStyle, formatMatchingText, fixListFormattinginsertTable, editTableCell, insertPageBreak, findElementinsertImageFromUrl, insertLocalImagelistComments, getComment, addComment, replyToComment, resolveComment, deleteCommentreadSpreadsheet, writeSpreadsheet, appendSpreadsheetRows, clearSpreadsheetRangegetSpreadsheetInfo, addSpreadsheetSheet, createSpreadsheet, listGoogleSheetsformatSpreadsheetCells, setBasicFilter, clearBasicFilterlistGoogleDocs, searchGoogleDocs, getRecentGoogleDocs, getDocumentInfocreateFolder, listFolderContents, getFolderInfomoveFile, copyFile, renameFile, deleteFilecreateDocument, createFromTemplatecreateBoundScript, updateScriptContent, getScriptContent, getScriptProjectssearchGmailMessages, getGmailMessage, getGmailMessagesBatch, getGmailAttachmentsendGmailMessage, createGmailDraftgetGmailThreadlistGmailLabels, createGmailLabel, deleteGmailLabel, modifyGmailMessageLabelslistGmailFilters, createGmailFilter, deleteGmailFiltertrashGmailMessagelistCalendarsgetCalendarEvents, getCalendarEvent, createCalendarEvent, updateCalendarEvent, deleteCalendarEventquickAddCalendarEventgetCalendarFreeBusygit clone https://github.com/sputnicyoji/google-docs-mcp-for-claudecode.git
cd google-docs-mcp-for-claudecode
npm install
npm run setup
The setup wizard will:
git clone https://github.com/sputnicyoji/google-docs-mcp-for-claudecode.git
cd google-docs-mcp-for-claudecode
npm install
npm run build
documents, spreadsheets, drive.file, script.projects, gmail, calendarcredentials.json in the project rootnode ./dist/server.js
Follow the URL in the terminal to authorize access. After authorization, a token.json will be created.
Add to your Claude Code MCP configuration:
Windows (%APPDATA%\Claude\mcp_config.json):
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["C:\\path\\to\\google-docs-mcp-for-claudecode\\dist\\server.js"]
}
}
}
macOS/Linux (~/.config/Claude/mcp_config.json):
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["/path/to/google-docs-mcp-for-claudecode/dist/server.js"]
}
}
}
This MCP server is fully compatible with Cursor IDE.
Project-Level Configuration - Create .cursor/mcp.json in your project root:
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["/path/to/google-docs-mcp-for-claudecode/dist/server.js"]
}
}
}
Global Configuration - Or configure via Cursor Settings > MCP.
Note: Cursor must be in Agent Mode (not Ask Mode) to access MCP tools.
For automated/server environments, you can use a service account:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
Read document 1abc...xyz and return as markdown
Append "Meeting Notes" to document 1abc...xyz
Apply bold formatting to text "Important" in document 1abc...xyz
Insert a 3x4 table at index 100 in document 1abc...xyz
Read range A1:D10 from spreadsheet 1abc...xyz
Write data to range A1:B5 in spreadsheet 1abc...xyz
Create a new spreadsheet titled "Sales Report 2024"
Add a new sheet named "Summary" to spreadsheet 1abc...xyz
List all Google Docs in my Drive
Search for documents containing "Project Alpha"
Create a new folder named "2024 Reports"
Move file 1abc...xyz to folder 2def...uvw
Create a bound script for spreadsheet 1abc...xyz
Update script content with custom functions
Get content of script project 1abc...xyz
Search for unread emails from john@example.com
Read email message with ID abc123
Send an email to jane@example.com with subject "Meeting"
Create a draft reply to thread xyz789
List all Gmail labels
Create a filter to label emails from support@example.com
List all my calendars
Get events for this week from my primary calendar
Create a meeting titled "Team Standup" tomorrow at 10am
Quick add event "Lunch with Sarah on Friday at noon"
Check free/busy times for next Monday
Delete event abc123 from my calendar
google-docs-mcp-for-claudecode/
src/
server.ts # Main MCP server (tool definitions)
clients.ts # Google API client management
auth.ts # OAuth 2.0 / Service Account authentication
types.ts # TypeScript type definitions
helpers/
markdown.ts # Docs to Markdown conversion
index.ts # Helper re-exports
tools/
scriptTools.ts # Apps Script tools
gmailTools.ts # Gmail tools
calendarTools.ts # Calendar tools
index.ts # Tool registry
googleDocsApiHelpers.ts # Docs API helpers
googleSheetsApiHelpers.ts # Sheets API helpers
gmailApiHelpers.ts # Gmail API helpers
calendarApiHelpers.ts # Calendar API helpers
dist/ # Compiled JavaScript
credentials.json # OAuth credentials (not committed)
token.json # Auth token (not committed)
credentials.json or token.json to version control.gitignore file is configured to exclude sensitive filesmcp_config.json is absolute and correctnpm run build completed successfullynode ./dist/server.jstoken.json and re-authenticate if scopes changedlistDocumentTabs or getSpreadsheetInfo to verify IDsContributions are welcome! Please:
Based on a-bonus/google-docs-mcp with additional enhancements:
MIT License - see LICENSE for details.
mcp-language-server gives MCP enabled clients access semantic tools like get definition, references, rename, and diagnos
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
0
via CLI