google-services-mcpCAUTION
Gmail MCP server for AI agents — Google Workspace MCP with 100+ tools: Calendar, Drive, Gmail, Docs, Sheets, Meet, multi-account OAuth.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
MCP (Model Context Protocol) server that gives AI agents direct access to your Google services — Gmail, Calendar, Google Meet, Drive, Contacts, Tasks, Sheets, Docs, Slides, YouTube, and Forms — with multi-account OAuth support.
Add one account, wire the server into any MCP-compatible AI client, and your agent can read and send email, manage your calendar, find files in Drive, create documents and spreadsheets, and more — using your real Google data.
npm install -g google-services-mcp # or run without installing: npx -y google-services-mcp
Google Workspace MCP
One MCP server for your Google Workspace apps — Gmail, Calendar, Google Meet, Drive, Contacts, Tasks, Sheets, Docs, Slides, YouTube, and Forms — with multi-account OAuth. Every tool is prefixed google_ (e.g. google_gmail_list, google_calendar_list_events), so agents can combine services freely: read email, then create a Calendar event from it, or attach a Drive file to a draft.
Features
- Gmail — full Gmail access: send, draft, reply, list, read, search,
label, and manage attachments
- Calendar — Google Calendar events: list calendars,
create/read/update/delete events, create Google Meet links
- Drive — list, read, upload, update, delete, and share files
- Contacts — list, search, and create contacts
- Tasks — list task lists, create/complete/delete tasks
- Sheets — create spreadsheets, read/write/append cell ranges, batch update
- Docs — create documents, read text, insert/replace text, batch update
- Slides — create presentations, add/delete slides, find-and-replace text
- YouTube — search videos, manage uploads/playlists/subscriptions
- Forms — create forms, add questions, read responses
- Multi-account — connect several Google accounts, set a default, or pass
an account argument to any tool
- OAuth 2.0 — one-time browser authorization; tokens are stored locally and refreshed automatically
f970aa66f36cOBSERVED · 2026-10-11Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add google-services-mcp --env GOOGLE_MCP_CLIENT_SECRET=${GOOGLE_MCP_CLIENT_SECRET} -- npx -y [email protected]{
"mcpServers": {
"google-services-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"GOOGLE_MCP_CLIENT_SECRET": "${GOOGLE_MCP_CLIENT_SECRET}"
}
}
}
}Exposed tools (134)
58 read · 56 write · 20 destructive. Blast radius: 20 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
google_account_add | write | |
google_account_list | read | |
google_account_remove | destructive | |
google_account_set_default | write | |
google_account_status | read | |
google_calendar_create | write | |
google_calendar_create_event | write | |
google_calendar_create_meet | write | |
google_calendar_delete | destructive | |
google_calendar_delete_event | destructive | |
google_calendar_free_busy | read | |
google_calendar_get_event | read | |
google_calendar_list_calendars | read | |
google_calendar_list_events | read | |
google_calendar_respond | read | |
google_calendar_update | write | |
google_calendar_update_event | write | |
google_contacts_create | write | |
google_contacts_delete | destructive | |
google_contacts_get | read | |
google_contacts_list | read | |
google_contacts_search | read | |
google_contacts_update | write | |
google_docs_batch_update | write | |
google_docs_create | write | |
google_docs_delete_range | destructive | |
google_docs_get | read | |
google_docs_insert_inline_image | write | |
google_docs_insert_table | write | |
google_docs_insert_text | write | |
google_docs_read | read | |
google_docs_replace_text | read | |
google_drive_copy | read | |
google_drive_create_folder | write | |
google_drive_delete | destructive | |
google_drive_delete_permission | destructive | |
google_drive_download | read | |
google_drive_export | read | |
google_drive_get | read | |
google_drive_list | read | |
google_drive_list_permissions | read | |
google_drive_move | write | |
google_drive_restore | read | |
google_drive_share | read | |
google_drive_trash | read | |
google_drive_update | write | |
google_drive_upload | write | |
google_forms_add_question | write | |
google_forms_create | write | |
google_forms_delete | destructive | |
google_forms_delete_question | destructive | |
google_forms_export_responses | read | |
google_forms_get | read | |
google_forms_move_question | write | |
google_forms_rename | write | |
google_forms_responses | read | |
google_forms_update_question | write | |
google_gmail_delete | destructive | |
google_gmail_drafts_create | write | |
google_gmail_drafts_delete | destructive | |
google_gmail_drafts_get | read | |
google_gmail_drafts_list | read | |
google_gmail_drafts_send | write | |
google_gmail_drafts_update | write | |
google_gmail_filters_create | write | |
google_gmail_filters_delete | destructive | |
google_gmail_filters_list | read | |
google_gmail_get | read | |
google_gmail_get_attachment | read | |
google_gmail_labels_create | write | |
google_gmail_labels_delete | destructive | |
google_gmail_labels_list | read | |
google_gmail_labels_update | write | |
google_gmail_list | read | |
google_gmail_list_attachments | read | |
google_gmail_modify | write | |
google_gmail_reply | read | |
google_gmail_send | write | |
google_gmail_sendas_create | write | |
google_gmail_sendas_list | read | |
google_gmail_threads_get | read | |
google_gmail_threads_list | read | |
google_gmail_trash | read | |
google_gmail_untrash | read | |
google_gmail_vacation_get | read | |
google_gmail_vacation_update | write | |
google_sheets_add_sheet | write | |
google_sheets_append | read | |
google_sheets_batch_update | write | |
google_sheets_create | write | |
google_sheets_delete_rows | destructive | |
google_sheets_delete_sheet | destructive | |
google_sheets_get | read | |
google_sheets_get_named_ranges | read | |
google_sheets_insert_rows | write | |
google_sheets_read | read | |
google_sheets_rename_sheet | write | |
google_sheets_set_named_range | write | |
google_sheets_write | write | |
google_slides_add_slide | write | |
google_slides_batch_update | write | |
google_slides_create | write | |
google_slides_create_image | write | |
google_slides_create_textbox | write | |
google_slides_delete_slide | destructive | |
google_slides_duplicate_slide | read | |
google_slides_get | read | |
google_slides_get_page | read | |
google_slides_move_slide | write | |
google_slides_replace_text | read | |
google_tasks_complete | read | |
google_tasks_create | write | |
google_tasks_create_list | write | |
google_tasks_delete | destructive | |
google_tasks_delete_list | destructive | |
google_tasks_list | read | |
google_tasks_list_lists | read | |
google_tasks_update | write | |
google_tasks_update_list | write | |
google_youtube_add_to_playlist | write | |
google_youtube_create_playlist | write | |
google_youtube_delete_playlist | destructive | |
google_youtube_get_video | read | |
google_youtube_insert_comment | write | |
google_youtube_list_comments | read | |
google_youtube_list_playlists | read | |
google_youtube_mark_comment_spam | read | |
google_youtube_my_videos | read | |
google_youtube_remove_from_playlist | destructive | |
google_youtube_search | read | |
google_youtube_set_comment_moderation | write | |
google_youtube_subscriptions | read | |
google_youtube_update_video | write | |
google_youtube_upload | write |
Trust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (3 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (13)
return `http://127.0.0.1:${port}`;google_account_remove, google_calendar_delete, google_calendar_delete_event, google_contacts_delete, google_docs_delete_range, google_drive_delete, google_drive_delete_permission, google_forms_delete,
.markdownlint-cli2.jsonc
} from "../../src/auth/config.js";
import { authManager } from "../../src/auth/manager.js";import { type StoredAccount, saveAccount } from "../../src/auth/store.js";const oauth = await import("../../src/auth/oauth.js");vi.mock("../../src/auth/oauth.js", () => ({# GOOGLE_MCP_REDIRECT_URI=http://127.0.0.1:8787/oauth2callback
redirectUri: "http://127.0.0.1:9191/oauth2callback",
expect(config.redirectUri).toBe("http://127.0.0.1:9191/oauth2callback");vi.stubEnv("GOOGLE_MCP_REDIRECT_URI", "http://127.0.0.1:4321/cb");@modelcontextprotocol/sdk, googleapis, zod, @biomejs/biome, @types/node, markdownlint-cli2, nock, tsx
Gates applied: no_behavioural_pass.
f970aa66f36cfull audit observations/trust-audit/mcp-server/nabheet__google-services-mcp.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-11 | f970aa66f36c | CAUTION | B | 89 | first audit |
Questions
What is the google-services-mcp MCP server?
Gmail MCP server for AI agents — Google Workspace MCP with 100+ tools: Calendar, Drive, Gmail, Docs, Sheets, Meet, multi-account OAuth.
What tools does google-services-mcp expose?
134 in total: 58 read-only, 56 that write, and 20 that can delete or overwrite (google_account_remove, google_calendar_delete, google_calendar_delete_event, google_contacts_delete, google_docs_delete_range). Every one is listed on this page with its risk.
Is google-services-mcp safe to connect to an agent?
With care. The audit graded it B (89/100) and found 13 things worth knowing before you trust this server, listed below with the exact line each was found on. Separately from the audit: 20 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does google-services-mcp need?
It reads GOOGLE_MCP_CLIENT_SECRET from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does google-services-mcp run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as google-services-mcp at 0.1.0.
How current is this page?
The grade is for one exact copy of the source (f970aa66f36c), read on 2026-10-11. The repository is watched and re-audited when it changes.