loading…
Search for a command to run...
loading…
The easiest MCP server for Google Workspace — Drive, Docs, Sheets, Gmail, Calendar, and Forms. 153 tools with one-click browser auth. Read Word docs, PDFs, and
The easiest MCP server for Google Workspace — Drive, Docs, Sheets, Gmail, Calendar, and Forms. 153 tools with one-click browser auth. Read Word docs, PDFs, and spreadsheets straight from Drive.
The easiest way to connect your AI agent to Google Workspace.
153 tools for Drive, Docs, Sheets, Gmail, Calendar, and Forms — all in one package. One install, one auth, and you're done.
npx -y google-tools-mcp setup
npx -y google-tools-mcp and it works.You can be up and running in under 5 minutes.
Run the setup wizard — it opens the right Google Cloud Console pages for you and saves your credentials automatically:
npx -y google-tools-mcp setup
The wizard walks you through:
After setup, just add it to your MCP client (see Step 3 below).
Choose one of the following methods (whichever you prefer):
credentials.jsonDownload the JSON file from Google Cloud Console and place it in either location:
~/.config/google-tools-mcp/credentials.json (recommended — shared across projects)
./credentials.json (local to your project)
That's it — no env vars needed. The server will find it automatically.
.env fileCreate a .env file in either location:
~/.config/google-tools-mcp/.env (recommended — shared across projects)
./.env (local to your project)
With the following contents:
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
Add the credentials directly to your MCP configuration:
{
"mcpServers": {
"google": {
"command": "npx",
"args": ["-y", "google-tools-mcp"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}
Credential lookup order: env vars →
~/.config/google-tools-mcp/.env→ project root.env→~/.config/google-tools-mcp/credentials.json→ project rootcredentials.json
User-scope (available in all projects):
claude mcp add -s user google -- npx -y google-tools-mcp
Project-scope (available only in the current project):
claude mcp add google -- npx -y google-tools-mcp
With env vars (Option C):
# User-scope
claude mcp add -s user google \
-e GOOGLE_CLIENT_ID=your-client-id \
-e GOOGLE_CLIENT_SECRET=your-client-secret \
-- npx -y google-tools-mcp
# Project-scope
claude mcp add google \
-e GOOGLE_CLIENT_ID=your-client-id \
-e GOOGLE_CLIENT_SECRET=your-client-secret \
-- npx -y google-tools-mcp
Via the claude CLI:
claude mcp add -s user google \
-e GOOGLE_MCP_PROFILE=myprofile \
-- npx -y google-tools-mcp
Or manually in your .mcp.json:
{
"mcpServers": {
"google": {
"command": "npx",
"args": ["-y", "google-tools-mcp"],
"env": {
"GOOGLE_MCP_PROFILE": "myprofile"
}
}
}
}
Add this to your MCP configuration (e.g., .mcp.json, claude_desktop_config.json):
{
"mcpServers": {
"google": {
"command": "npx",
"args": ["-y", "google-tools-mcp"]
}
}
}
If using Option C, add an "env" block with your GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET.
On your first tool call, the server will automatically open your browser for Google OAuth consent. Sign in and grant access — the token is saved to ~/.config/google-tools-mcp/token.json for future use.
You can also run the auth flow manually anytime:
npx google-tools-mcp auth
Set the GOOGLE_MCP_PROFILE env var to use separate tokens per profile:
{
"env": {
"GOOGLE_MCP_PROFILE": "work"
}
}
This stores tokens in ~/.config/google-tools-mcp/work/ instead of the default directory.
files (18 tools)Google Drive file management and content reading.
listDriveFiles, searchDocuments, getFileInfo, getFilePath, createFolder, listFolderContents, getFolderInfo, moveFile, copyFile, renameFile, deleteFile, createDocument, createDocumentFromTemplate, listSharedDrives, listSharedWithMe, downloadFile, readFile, searchFileContents
documents (22 tools)Google Docs read/write/format with markdown support.
readDocument, appendText, deleteRange, modifyText, findAndReplace, insertTable, insertTableWithData, insertPageBreak, insertImage, listTabs, addTab, renameTab, applyParagraphStyle, getFormatting, addComment, deleteComment, getComment, listComments, replyToComment, resolveComment, appendMarkdown, replaceDocumentWithMarkdown
spreadsheets (29 tools)Google Sheets operations.
readSpreadsheet, writeSpreadsheet, batchWrite, appendRows, clearRange, createSpreadsheet, getSpreadsheetInfo, addSheet, deleteSheet, duplicateSheet, renameSheet, formatCells, readCellFormat, autoResizeColumns, freezeRowsAndColumns, setColumnWidths, addConditionalFormatting, copyFormatting, setDropdownValidation, createTable, deleteTable, getTable, listTables, appendTableRows, updateTableRange, insertChart, deleteChart, groupRows, ungroupAllRows
email (19 tools)Gmail messages and drafts.
send_message, reply_message, forward_message, get_message, list_messages, modify_message, delete_message, trash_message, untrash_message, batch_delete_messages, batch_modify_messages, batch_get_messages, get_attachment, create_draft, update_draft, delete_draft, get_draft, list_drafts, send_draft
email_threads (7 tools)Gmail thread-level operations.
get_thread, list_threads, batch_get_threads, modify_thread, delete_thread, trash_thread, untrash_thread
email_labels (6 tools)Gmail label management.
create_label, delete_label, get_label, list_labels, patch_label, update_label
email_settings (37 tools)Gmail admin and configuration.
get_auto_forwarding, update_auto_forwarding, get_imap, update_imap, get_language, update_language, get_pop, update_pop, get_vacation, update_vacation, add_delegate, remove_delegate, get_delegate, list_delegates, create_filter, delete_filter, get_filter, list_filters, create_forwarding_address, delete_forwarding_address, get_forwarding_address, list_forwarding_addresses, create_send_as, delete_send_as, get_send_as, list_send_as, patch_send_as, update_send_as, verify_send_as, delete_smime_info, get_smime_info, insert_smime_info, list_smime_info, set_default_smime_info, get_profile, watch_mailbox, stop_mail_watch
calendar (8 tools)Google Calendar — events, availability, and calendar management.
list_calendars, get_events, manage_event, get_busy, get_free, move_event, list_recurring_event_instances, manage_calendar
forms (6 tools)Google Forms — create/read forms, manage responses, and publish settings.
create_form, get_form, batch_update_form, get_form_response, list_form_responses, set_publish_settings
| Variable | Required | Description |
|---|---|---|
GOOGLE_CLIENT_ID |
No* | OAuth 2.0 Client ID |
GOOGLE_CLIENT_SECRET |
No* | OAuth 2.0 Client Secret |
GOOGLE_MCP_PROFILE |
No | Profile name for multi-account support (see above) |
LOG_LEVEL |
No | debug, info, warn, error, or silent |
GOOGLE_MCP_LOG_FILE |
No | Set to 1 to log to ~/.config/google-tools-mcp/server.log, or set to a custom file path |
SERVICE_ACCOUNT_PATH |
No | Path to service account JSON key (alternative to OAuth) |
GOOGLE_IMPERSONATE_USER |
No | Email to impersonate with service account |
* Not required as env vars if you provide credentials via .env file or credentials.json (see Step 2).
This package replaces both gdrive-tools-mcp and gmail-tools-mcp. To migrate:
google-tools-mcp entry~/.config/google-tools-mcp/)MIT
Add this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"google-tools-mcp": {
"command": "npx",
"args": [
"-y",
"google-tools-mcp"
]
}
}
}pro tip
Just installed Google Tools Mcp? Say to Claude: "remember why I installed Google Tools Mcpand what I want to try" — it'll save into your Vault.
how this works →