gg-mcp
Provides tools for sending emails, creating and listing Gmail labels.
Provides tools for listing upcoming events and creating calendar events.
Provides tools for creating, reading, appending to, searching, and exporting Google Docs.
Provides tools for listing folders and searching files in Google Drive.
Provides tools for creating, reading, updating, appending, searching, clearing, batch updating, adding sheets, and exporting Google Sheets.
Provides tools for creating, reading, adding slides, adding text, searching, deleting slides, and exporting Google Slides.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gg-mcp show my upcoming calendar events"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Cloud MCP - Google Workspace MCP Server (gg-mcp)
A Model Context Protocol (MCP) server that connects AI agents to Google Workspace: Gmail, Calendar, Drive, Docs, Sheets, and Slides. Built with FastMCP.
# Install and run — that's it
uvx gg-mcp� Table of Contents
Related MCP server: MCP Google Tools Server
🚀 Quick Start (5 minutes)
Step 1: Get Google OAuth Credentials
Go to Google Cloud Console
Create a project and enable OAuth consent screen (External type)
Add required scopes (Gmail, Drive, Calendar, Docs, Sheets, Slides)
Create OAuth 2.0 Desktop app credentials
Copy Client ID and Client Secret
Step 2: Install & Run
export GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="your-client-secret"
uvx gg-mcpYou'll see:
============================================================
🔐 GOOGLE ACCOUNT AUTHENTICATION
📱 Open your browser: http://localhost:3838
============================================================Open http://localhost:3838 → "Authorize with Google" → Grant permissions ✅
Step 3: Configure MCP Client
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"gg-mcp": {
"command": "uvx",
"args": ["gg-mcp"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}Restart Claude Desktop and the tools are ready to use! 🎉
📋 Available Tools (30+)
Account
get_account_info- Get the email of the authenticated Google account
Gmail
send_email- Send an email (to, subject, body)create_gmail_label- Create a new Gmail labellist_gmail_labels- List all user-created labels
Google Calendar
list_calendar_events- List upcoming events (max_results, days_back)create_calendar_event- Create an event (summary, start_time, end_time)
Google Drive
list_drive_folders- List all folders in Google Drive (root or specific parent)search_drive- Search files by query string
Google Docs
create_document- Create a new document with optional textget_document- Get the full text content of a documentappend_to_document- Append text to document endsearch_documents- Search for documents in Driveexport_document- Export document (text, html, pdf, docx)
Google Sheets
create_spreadsheet- Create a new spreadsheetread_spreadsheet- Read data from a rangeupdate_spreadsheet- Update cells with JSON 2D arrayappend_to_spreadsheet- Append rows to spreadsheetsearch_spreadsheets- Search for spreadsheets in Driveget_spreadsheet_info- Get metadata and dimensionsclear_spreadsheet_range- Clear all values in a rangebatch_update_spreadsheet- Batch update multiple rangesadd_sheet- Add a new sheet/tabexport_spreadsheet- Export (csv, xlsx, pdf, tsv)
Google Slides
create_presentation- Create a new presentationget_presentation- Get slide metadata and contentadd_slide- Add a new slide with layout selectionadd_text_to_slide- Add a text box to slidesearch_presentations- Search for presentationsdelete_slide- Delete a slide by indexexport_presentation- Export (pdf, pptx, txt)
🚀 Quick Start (5 minutes)
Step 1: Get Google OAuth Credentials
Go to Google Cloud Console
Create a project and enable OAuth consent screen (External type)
Add required scopes (Gmail, Drive, Calendar, Docs, Sheets, Slides)
Create OAuth 2.0 Desktop app credentials
Copy Client ID and Client Secret
Step 2: Install & Run
export GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="your-client-secret"
uvx gg-mcpYou'll see:
============================================================
🔐 GOOGLE ACCOUNT AUTHENTICATION
📱 Open your browser: http://localhost:3838
============================================================Open http://localhost:3838 → "Authorize with Google" → Grant permissions ✅
Step 3: Configure MCP Client
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"gg-mcp": {
"command": "uvx",
"args": ["gg-mcp"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}📦 Installation Options
Option A: PyPI (Recommended)
pip install gg-mcp
export GOOGLE_CLIENT_ID="..."
export GOOGLE_CLIENT_SECRET="..."
gg-mcpOption B: From Source
git clone https://github.com/tannht/google-cloud-mcp.git
cd google-cloud-mcp
uv sync
export GOOGLE_CLIENT_ID="..."
export GOOGLE_CLIENT_SECRET="..."
uv run main.pyOption C: Docker
git clone https://github.com/tannht/google-cloud-mcp.git
cd google-cloud-mcp
docker-compose up -d --build🔑 Environment Variables
Variable | Required | Default | Purpose |
| Yes | — | OAuth 2.0 Client ID |
| Yes | — | OAuth 2.0 Client Secret |
| No |
| Token file path |
| No | — | Token as JSON string |
| No |
| Auth portal port |
❓ Troubleshooting
Problem | Solution |
| Add your email to Test users in OAuth consent screen |
| Verify GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET |
| Delete |
Can't access http://localhost:3838 | Port 3838 in use. Try |
| Enable APIs in Google Cloud Console |
📚 Documentation
GUIDE.md - Complete user & developer guide
MCP_CLIENTS.md - 25+ MCP client configurations
🛠️ Development
git clone https://github.com/tannht/google-cloud-mcp.git
cd google-cloud-mcp
uv sync --group dev
uv run pytest -v # Run tests📄 License
MIT
👥 Contributors
Hoang Tan (Owner)
PubPug Assistant (Primary Developer)
Available Tools
30 toolsadd_sheetB
Add a new sheet/tab to an existing spreadsheet.
Inputs: spreadsheet_id (required), sheet_name (required).
add_slideB
Add a new slide to a presentation. Layouts: BLANK, TITLE, TITLE_AND_BODY, TITLE_AND_TWO_COLUMNS, TITLE_ONLY, SECTION_HEADER, CAPTION_ONLY, BIG_NUMBER.
Inputs: presentation_id (required), layout.
add_text_to_slideC
Add a text box to a slide. slide_index: 0-based. Coordinates in points (pt).
Inputs: presentation_id (required), slide_index (required), text (required), x, +3 more.
append_to_documentC
Append text to the end of a Google Docs document.
Inputs: document_id (required), text (required).
append_to_spreadsheetC
Append rows to a spreadsheet. Values format: JSON 2D array. Range: 'Sheet1!A1'.
Inputs: spreadsheet_id (required), range (required), values (required).
batch_update_spreadsheetA
Batch update multiple ranges. Data format: JSON array of {range, values}, e.g. '[{"range":"Sheet1!A1","values":[["X"]]}]'.
Inputs: spreadsheet_id (required), data (required).
clear_spreadsheet_rangeB
Clear all values in a range. Range format: 'Sheet1!A1:D10'.
Inputs: spreadsheet_id (required), range (required).
create_calendar_eventC
Create a calendar event. format: YYYY-MM-DDTHH:MM (VN Time).
Inputs: summary (required), start_time (required), end_time (required), description.
create_documentC
Create a new Google Docs document with optional initial text.
Inputs: title (required), body_text.
create_gmail_labelB
Create a new label in Gmail.
Inputs: name (required).
create_presentationC
Create a new Google Slides presentation.
Inputs: title (required).
create_spreadsheetC
Create a new Google Sheets spreadsheet.
Inputs: title (required), sheet_name.
delete_slideB
Delete a slide from a presentation by its 0-based index.
Inputs: presentation_id (required), slide_index (required).
export_documentB
Export a Google Docs document. Formats: text, html, pdf, docx.
Inputs: document_id (required), format.
export_presentationB
Export a presentation. Formats: pdf, pptx, txt.
Inputs: presentation_id (required), format.
export_spreadsheetB
Export a spreadsheet. Formats: csv, xlsx, pdf, tsv. sheet_id: 0 for first sheet.
Inputs: spreadsheet_id (required), format, sheet_id.
get_account_infoA
Get the email address of the currently authenticated Google account.
Inputs: no named parameters.
get_documentB
Get the full text content of a Google Docs document by its ID.
Inputs: document_id (required).
get_presentationB
Get metadata and slide titles/content from a Google Slides presentation.
Inputs: presentation_id (required).
get_spreadsheet_infoB
Get metadata about a spreadsheet: title, sheets, and their dimensions.
Inputs: spreadsheet_id (required).
list_calendar_eventsC
List events. Timezone: Asia/Ho_Chi_Minh.
Inputs: max_results, days_back.
list_drive_foldersC
List all folders in Google Drive. parent_id: 'root' for main folder.
Inputs: parent_id.
list_gmail_labelsA
List all user labels in Gmail.
Inputs: no named parameters.
read_spreadsheetB
Read data from a Google Sheets spreadsheet. Range format: 'Sheet1!A1:D10' or 'Sheet1'.
Inputs: spreadsheet_id (required), range.
search_documentsA
Search for Google Docs documents in Drive. Empty query lists recent docs.
Inputs: query, max_results.
search_driveD
Search for files in Google Drive.
Inputs: query (required).
search_presentationsB
Search for Google Slides presentations in Drive. Empty query lists recent presentations.
Inputs: query, max_results.
search_spreadsheetsB
Search for Google Sheets spreadsheets in Drive. Empty query lists recent sheets.
Inputs: query, max_results.
send_emailC
Send a simple email via Gmail.
Note: This function intentionally constructs the MIME message manually to keep the raw decoded content readable with Unicode subjects, as expected by the test suite. This avoids RFC-compliant header encoding that would obscure the original subject line text.
Inputs: to (required), subject (required), body (required).
update_spreadsheetA
Update cells in a spreadsheet. Values format: JSON 2D array, e.g. '[["A","B"],["1","2"]]'. Range: 'Sheet1!A1'.
Inputs: spreadsheet_id (required), range (required), values (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 30 tools
Each tool targets a specific Google service and action (e.g., create, read, update, search, export), with clear names that distinguish between resources like documents, spreadsheets, slides, Gmail, Calendar, and Drive. There is no ambiguity between tools.
All tools use consistent snake_case naming with a verb-first pattern (e.g., create_document, list_calendar_events, get_spreadsheet_info). The naming convention is uniform across the entire set, making it predictable for an agent.
With 30 tools covering multiple Google services (Docs, Sheets, Slides, Gmail, Calendar, Drive, account info), the count is appropriate for a comprehensive Google Workspace integration. Each tool serves a distinct purpose without redundancy.
The tool set covers core create, read, search, and export operations for most resources but lacks update and delete for documents, presentations, and calendar events. This is a notable gap for full CRUD workflows, though the set is still functional for many use cases.
Maintenance
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI agents to interact with Google Workspace services including Drive, Docs, and Sheets through natural language commands.8MIT
- AlicenseNot gradedqualityBmaintenanceA full-featured Model Context Protocol server that gives AI assistants real-time access to Google Workspace services including Drive, Gmail, Calendar, Sheets, Docs, and Apps Script.10MIT
- AlicenseNot gradedqualityDmaintenanceA lightweight MCP server for managing Google Workspace services (Gmail, Calendar, Drive, Docs, Sheets, Slides) through natural language with AI assistants like Claude and Cursor.22 npm1MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server that provides AI assistants with secure access to your Google Docs.1MIT