google-services-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_MCP_DIR | No | Directory where config and tokens live. | ~/.google-services-mcp |
| GOOGLE_MCP_CLIENT_ID | Yes | Google OAuth client ID, required for authentication. | |
| GOOGLE_MCP_REDIRECT_URI | No | Full redirect URI override. Takes precedence over REDIRECT_PORT and must exactly match a URI registered for this OAuth client in the Cloud Console. | |
| GOOGLE_MCP_CLIENT_SECRET | Yes | Google OAuth client secret, required for authentication. | |
| GOOGLE_MCP_REDIRECT_PORT | No | Local loopback port for OAuth. | 8787 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| google_account_addA | Start the OAuth consent flow to connect a new Google account. Opens a browser for sign-in. |
| google_account_listA | List all connected accounts with their email and default status. |
| google_account_removeB | Disconnect an account and delete its stored tokens. |
| google_account_set_defaultB | Set which account is used when no account is specified. |
| google_account_statusA | Show credential configuration, data directory, connected accounts and token health. |
| google_gmail_sendB | Send an email from the connected account. |
| google_gmail_listA | List messages from the inbox, newest first, with an optional Gmail search query. |
| google_gmail_getA | Fetch a single message with parsed headers, body and attachment flags. |
| google_gmail_modifyA | Add or remove labels on a message (e.g. mark read/unread, star, archive). |
| google_gmail_replyA | Reply to an existing message inside its thread, preserving threading headers. |
| google_calendar_list_calendarsA | List calendars the account can access. |
| google_calendar_list_eventsC | List upcoming events in a calendar, optionally filtered by time range or query. |
| google_calendar_create_eventB | Create a timed or all-day event. All-day events use YYYY-MM-DD dates. |
| google_calendar_create_meetA | Create a calendar event with an attached Google Meet link. |
| google_calendar_get_eventA | Fetch a single event by ID. |
| google_calendar_update_eventA | Update fields of an existing event (partial update). |
| google_calendar_delete_eventB | Delete an event by ID. |
| google_drive_listA | List files in Drive, newest first, with an optional query. |
| google_drive_getA | Get metadata for a single file by ID. |
| google_drive_uploadA | Create a file in Drive, optionally with text content (blank Google-native file if omitted). |
| google_drive_updateC | Rename a file and/or replace its content. |
| google_drive_deleteA | Permanently delete a file from Drive. |
| google_drive_shareA | Share a file with a user by email and role. |
| google_contacts_listB | List the account's contacts with names, emails and phones. |
| google_contacts_searchA | Search contacts (including non-connected) by name, email or phone. |
| google_contacts_createB | Create a new contact with a name and optional email/phone. |
| google_tasks_list_listsB | List the account's Google Tasks lists. |
| google_tasks_listB | List tasks in a task list (default list if not specified). |
| google_tasks_createB | Create a task, optionally with notes and due date. |
| google_tasks_completeB | Mark a task as completed. |
| google_tasks_deleteC | Delete a task. |
| google_sheets_getB | Get spreadsheet metadata and optionally cell values from a range. |
| google_sheets_readB | Read cell values from a range as rows of strings. |
| google_sheets_writeA | Write rows of values starting at a range top-left cell (overwrites in place). |
| google_sheets_appendA | Append rows below the existing data in a sheet. |
| google_sheets_createB | Create a new spreadsheet, optionally with pre-made sheet tabs. |
| google_sheets_batch_updateA | Send raw Sheets batchUpdate requests (add/delete sheets, formatting, etc.). |
| google_docs_getB | Get the full Google Docs document (structural JSON). |
| google_docs_readB | Read a Google Docs document as plain text. |
| google_docs_createB | Create a new Google Docs document with a title. |
| google_docs_insert_textA | Insert text into a document at an index or at the end. |
| google_docs_replace_textA | Replace all occurrences of a string in a document (template filling). |
| google_docs_batch_updateB | Send raw Docs batchUpdate requests (styles, tables, headers, etc.). |
| google_slides_getA | Get a Google Slides presentation (structural JSON). |
| google_slides_createA | Create a new Google Slides presentation with a title. |
| google_slides_replace_textA | Replace all occurrences of a string across a presentation (template filling). |
| google_slides_add_slideB | Add a blank slide to a presentation. |
| google_slides_delete_slideB | Delete a slide by object ID. |
| google_youtube_searchA | Search YouTube for videos and return titles, IDs and channels. |
| google_youtube_get_videoB | Get details, statistics and content details for a video. |
| google_youtube_my_videosB | List the user's uploaded videos. |
| google_youtube_list_playlistsB | List the user's YouTube playlists. |
| google_youtube_create_playlistC | Create a private playlist for the user. |
| google_youtube_delete_playlistB | Delete a playlist by ID. |
| google_youtube_add_to_playlistC | Add a video to a playlist. |
| google_youtube_subscriptionsA | List the channels the user subscribes to. |
| google_forms_getA | Get a Google Form's structure and questions. |
| google_forms_responsesC | List responses submitted to a form. |
| google_forms_createB | Create a new Google Form with a title. |
| google_forms_add_questionB | Add a text or multiple-choice question to a form. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 60 tools
Most tools are clearly distinguished by service and action, but a few overlapping pairs exist, such as google_calendar_create_event vs google_calendar_create_meet, google_sheets_get vs google_sheets_read, and google_contacts_list vs google_contacts_search. Descriptions provide enough context to resolve these ambiguities, but they are not entirely free of overlap.
The vast majority of tools follow the pattern google_<service>_<verb>_<noun>, which is consistent and predictable. However, a few names deviate, such as google_youtube_my_videos, google_youtube_subscriptions, and google_account_status, which use noun phrases instead of verb-noun constructions, creating minor inconsistency.
With 60 tools, this server is extensive and covers 10 different Google services. While each service has a reasonable set of operations, the overall count is high and may overwhelm agents trying to select the right tool. It is borderline excessive for the apparent scope, though the broad service coverage justifies the large number to some extent.
The server provides comprehensive coverage for most services, including Gmail, Calendar, Drive, Sheets, Docs, Slides, YouTube, and Forms. However, there are notable gaps such as missing update/delete operations for contacts, tasks, and forms, and no direct document deletion for Docs (though it can be done via Drive). These are minor workarounds but not fully complete CRUD coverage.