Skip to main content
Glama
nabheet

google-services-mcp

by nabheet

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOOGLE_MCP_DIRNoDirectory where config and tokens live.~/.google-services-mcp
GOOGLE_MCP_CLIENT_IDYesGoogle OAuth client ID, required for authentication.
GOOGLE_MCP_REDIRECT_URINoFull 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_SECRETYesGoogle OAuth client secret, required for authentication.
GOOGLE_MCP_REDIRECT_PORTNoLocal 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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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_defaultA

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_sendC

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_threads_listB

List conversation threads, newest first, with an optional Gmail search query.

google_gmail_threads_getB

Fetch a full conversation thread with every message parsed (headers, body, attachments).

google_gmail_modifyC

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_gmail_list_attachmentsA

List attachments on a message (metadata only, no bytes).

google_gmail_get_attachmentA

Download a single attachment by message ID and attachment ID. Text-like files are returned decoded as text; binary files as base64.

google_gmail_drafts_createC

Create a draft email (not sent).

google_gmail_drafts_updateA

Replace the contents of an existing draft (recipients, subject, body, attachments).

google_gmail_drafts_listC

List draft emails.

google_gmail_drafts_getA

Fetch a single draft with parsed headers and body.

google_gmail_drafts_sendB

Send an existing draft email.

google_gmail_drafts_deleteC

Delete a draft email.

google_gmail_labels_listB

List all Gmail labels.

google_gmail_labels_createC

Create a custom Gmail label.

google_gmail_labels_deleteC

Delete a Gmail label.

google_gmail_labels_updateC

Update a Gmail label's name or visibility (partial).

google_gmail_vacation_getC

Get the Gmail vacation (out-of-office) responder settings.

google_gmail_vacation_updateC

Update the Gmail vacation (out-of-office) responder settings.

google_gmail_sendas_listB

List Gmail send-as aliases.

google_gmail_sendas_createC

Create a Gmail send-as alias (subject to domain/verification rules).

google_gmail_filters_listB

List Gmail filters (auto-archive/apply rules).

google_gmail_filters_createC

Create a Gmail filter with criteria and action (e.g. auto-archive).

google_gmail_filters_deleteC

Delete a Gmail filter by ID.

google_gmail_trashB

Move a message to trash.

google_gmail_untrashA

Restore a message from trash.

google_gmail_deleteA

Permanently delete a message (irreversible).

google_calendar_list_calendarsC

List calendars the account can access.

google_calendar_list_eventsA

List upcoming events in a calendar, optionally filtered by time range or query.

google_calendar_create_eventC

Create a timed or all-day event. All-day events use YYYY-MM-DD dates.

google_calendar_create_meetB

Create a calendar event with an attached Google Meet link.

google_calendar_get_eventA

Fetch a single event by ID.

google_calendar_update_eventC

Update fields of an existing event (partial update).

google_calendar_delete_eventB

Delete an event by ID.

google_calendar_respondB

Accept, decline, or mark tentative an event invite by setting the attendee responseStatus.

google_calendar_createC

Create a secondary calendar with a name, timezone, and description.

google_calendar_updateC

Update a calendar's name, color, timezone, or description (partial).

google_calendar_deleteB

Delete a secondary calendar permanently (destructive).

google_calendar_free_busyB

Query busy intervals across calendars to find free meeting windows.

google_drive_listA

List files in Drive, newest first, with an optional query.

google_drive_getB

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) or by local file path (binary-safe).

google_drive_updateC

Rename a file and/or replace its content (text or local file path).

google_drive_deleteA

Permanently delete a file from Drive. IRREVERSIBLE — prefer google_drive_trash (recoverable).

google_drive_trashA

Move a file to trash (recoverable via google_drive_restore). Safer than google_drive_delete.

google_drive_restoreB

Restore a trashed file (sets trashed: false).

google_drive_shareB

Share a file with a user/group by email, anyone with the link, or a domain; optionally transfer ownership.

google_drive_list_permissionsC

List who can access a file and with what role.

google_drive_delete_permissionC

Revoke a permission from a file by permission ID.

google_drive_downloadA

Download a file's raw bytes (non-Google-native files). Text content returns decoded text; binary returns base64. Pass saveToPath to write bytes to a local file instead.

google_drive_exportA

Export a Google-native file (Docs/Sheets/Slides/Drawings) to another format (e.g. application/pdf, text/plain, application/vnd.openxmlformats-officedocument.wordprocessingml.document).

google_drive_create_folderC

Create a folder in Drive.

google_drive_copyC

Copy a file, optionally with a new name.

google_drive_moveA

Move a file into a folder. Provide removeParentFolderId to also remove it from its current folder (true move); omit to add it to an additional folder.

google_contacts_listB

List the account's contacts with names, emails and phones.

google_contacts_searchB

Search contacts (including non-connected) by name, email or phone.

google_contacts_createC

Create a new contact with a name and optional email/phone/address/organization/photo.

google_contacts_updateA

Update an existing contact's name, email, phone, address, organization, or photo (partial update by resourceName).

google_contacts_getB

Get a contact by resourceName with rich fields (name, email, phone, address, org).

google_contacts_deleteC

Delete a contact by resourceName.

google_tasks_list_listsB

List the account's Google Tasks lists.

google_tasks_listC

List tasks in a task list (default list if not specified).

google_tasks_createB

Create a task, optionally with notes, due date, or as a subtask.

google_tasks_updateC

Update a task's title, notes, due date, or status (partial).

google_tasks_create_listC

Create a new Google Tasks list.

google_tasks_update_listC

Rename a Google Tasks list.

google_tasks_delete_listC

Delete a Google Tasks list (removes its tasks).

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_readC

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_appendB

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_updateB

Send raw Sheets batchUpdate requests (add/delete sheets, formatting, etc.).

google_sheets_add_sheetC

Add a new tab (sheet) to a spreadsheet.

google_sheets_delete_sheetA

Permanently delete a tab (sheet) from a spreadsheet.

google_sheets_rename_sheetC

Rename a tab (sheet) in a spreadsheet.

google_sheets_insert_rowsB

Insert blank rows into a sheet at a 0-based row index.

google_sheets_delete_rowsC

Delete rows from a sheet starting at a 0-based row index.

google_sheets_get_named_rangesB

List named ranges on a spreadsheet.

google_sheets_set_named_rangeC

Create a named range over a grid region.

google_docs_getB

Get the full Google Docs document (structural JSON).

google_docs_readB

Read a Google Docs document as plain text.

google_docs_createA

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_textB

Replace all occurrences of a string in a document (template filling).

google_docs_batch_updateC

Send raw Docs batchUpdate requests (styles, tables, headers, etc.).

google_docs_delete_rangeC

Delete a range of content from a document.

google_docs_insert_tableC

Insert an empty table at a model index (a newline is added before it).

google_docs_insert_inline_imageB

Insert an inline image from a public URI and return the created object id.

google_slides_getB

Get a Google Slides presentation (structural JSON).

google_slides_createC

Create a new Google Slides presentation with a title.

google_slides_replace_textB

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_slides_get_pageA

Get the contents of a single slide page by object ID.

google_slides_batch_updateC

Send raw Slides batchUpdate requests (create textboxes, shapes, images, style elements, etc.).

google_slides_duplicate_slideC

Duplicate a slide and return the new slide object ID.

google_slides_move_slideB

Move a slide to a new position in the deck by insertion index.

google_slides_create_textboxC

Create a text box on a slide, optionally with initial text. Sizes in points.

google_slides_create_imageC

Insert an image from a URL onto a slide. Sizes in points.

google_youtube_searchB

Search YouTube for videos and return titles, IDs and channels.

google_youtube_uploadB

Upload a video to YouTube. Provide a local file path (preferred) or base64 content. Defaults to private.

google_youtube_get_videoA

Get details, statistics and content details for a video.

google_youtube_update_videoC

Update a video's title, description, tags or privacy status.

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_remove_from_playlistC

Remove a video from a playlist by playlist item ID.

google_youtube_subscriptionsC

List the channels the user subscribes to.

google_youtube_list_commentsB

List comment threads for a video, most recent first.

google_youtube_insert_commentC

Post a top-level comment on a video.

google_youtube_set_comment_moderationC

Hold, reject, or flag a comment as likely spam.

google_youtube_mark_comment_spamC

Mark a comment as spam.

google_forms_getA

Get a Google Form's structure and questions.

google_forms_responsesC

List responses submitted to a form.

google_forms_createC

Create a new Google Form with a title.

google_forms_add_questionB

Add a text or multiple-choice question to a form.

google_forms_update_questionC

Update a question's title, description, options or required flag.

google_forms_delete_questionC

Delete a question from a form by questionId.

google_forms_move_questionC

Reorder a question to a new position in the form.

google_forms_renameC

Update a form's title.

google_forms_deleteB

Permanently delete a form.

google_forms_export_responsesC

Append form responses (headers + rows) to a spreadsheet tab.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 134 tools

Disambiguation4/5

Service-prefixed names and specific descriptions make most tools easy to distinguish (e.g., drive_list vs drive_list_permissions, docs_get vs docs_read). Minor overlaps exist, such as tasks_complete vs tasks_update(status) and calendar_create_event vs calendar_create_meet, but they are usually resolvable from descriptions.

Naming Consistency4/5

Names follow a strong google_<service>_<action>_<object> snake_case convention, with clear verbs for most operations. Deviations like google_account_status, google_youtube_my_videos, and Gmail's resource-first names (google_gmail_threads_list, google_gmail_drafts_list) keep it from being perfect.

Tool Count1/5

134 tools is far beyond a manageable MCP surface, even for a multi-service Google integration. The breadth forces agents to sift through many near-neighbor operations and creates high selection overhead.

Completeness4/5

Coverage is broad: Gmail, Calendar, Drive, Contacts, Tasks, Sheets, Docs, Slides, YouTube, Forms, and account management all have core CRUD/lifecycle operations. Gaps remain for some secondary areas (e.g., Drive comments/revisions, Calendar ACLs, Gmail forwarding/delegates), though raw batch_update tools provide escape hatches.

Maintenance

ActivityMaintained
ResponsivenessResponsive