Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOOGLEMCP_PRODUCTSNoComma-separated list of Google product keys to enable. If unset, the default 15 products are enabled read-only.
GOOGLEMCP_WRITE_PRODUCTSNoComma-separated list of product keys for which write tools should be enabled. Read-only by default.
GOOGLEMCP_ALLOW_DESTRUCTIVENoSet to true to enable destructive tools such as delete, trash, and send, in addition to per-product write opt-in.

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
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
analytics_list_account_summariesB

List GA4 accounts and their properties visible to the user.

analytics_list_propertiesB

List GA4 properties under an account ('accounts/' or the numeric ID).

analytics_run_reportA

Run a GA4 Data API report.

property_id: numeric ID or 'properties/'. metrics: e.g. ["activeUsers", "sessions"] (max 10). dimensions: e.g. ["date", "country"] (max 9). date_ranges: [{"start_date": "28daysAgo", "end_date": "today"}] (max 4). Returns headers and rows (at most 1000 per call; page with offset).

calendar_list_calendarsB

List calendars on the user's calendar list, including 'primary'.

calendar_list_eventsA

List events in a time range.

Times are RFC 3339 with an offset, for example 2026-10-05T00:00:00Z.

single_events=true expands recurring events and orders by start time.

calendar_get_eventC

Get one event by id.

calendar_query_freebusyB

Return busy intervals for calendars (default: primary) between two RFC 3339 times.

docs_get_documentA

Read a Google Doc as plain text with a structure summary.

Text is truncated to max_chars (default 20000, ceiling 100000); truncated reports whether the cap applied.

drive_search_filesB

Search the user's Drive. query is optional raw Drive search syntax (for example "fullText contains 'budget'"); name_contains, mime_type and folder_id are safe structured filters. Trashed files are excluded by default.

drive_get_fileB

Get metadata for one file or folder.

drive_read_file_textA

Read the text of a Google Doc, Sheet (first sheet as CSV), Slides deck, or plain-text file. Output is capped at max_chars. Binary files are refused.

driveactivity_query_activityA

Query Drive activity, newest first, for one file (item_id), everything under a folder (folder_id), or the whole Drive (neither).

filter uses the Drive Activity syntax, for example 'time >= "2026-10-01T00:00:00Z" AND detail.action_detail_case:(EDIT RENAME)'. consolidate=true groups related actions.

forms_get_formB

Get a form's title, description, publish state, and question summary.

forms_list_responsesC

List form responses. submitted_after is an RFC 3339 timestamp filter.

forms_get_responseB

Get one form response by id.

gmail_search_messagesA

Search Gmail with Gmail search syntax (for example 'from:alice newer_than:7d').

Returns message ids with From, To, Subject, Date, and snippet when include_headers is true. Use gmail_get_message for the body.

gmail_get_messageA

Get one message: headers, plain-text body (size-capped), and attachment metadata.

Attachment contents are not downloaded.

gmail_get_threadA

Get every message in a thread with headers and size-capped plain-text bodies.

Bodies are capped per message (max_body_chars) and in total across the thread; once the total is spent, later bodies are empty and marked truncated.

gmail_list_labelsA

List Gmail labels (system and user labels) with their ids.

people_search_contactsB

Search the user's contacts by name, email, phone, or organization (prefix match).

people_get_personB

Get one contact by resource name (for example 'people/c123'), or 'people/me'.

people_list_connectionsC

List the user's saved contacts.

people_list_other_contactsC

List 'Other contacts': addresses Gmail saved automatically from conversations.

people_search_other_contactsA

Search 'Other contacts' (auto-saved Gmail correspondents) by name, email, phone.

photos_list_app_albumsA

List albums created by this app. Albums made in the Photos app or by other apps are not visible (Google API restriction since 2025-03-31).

photos_list_app_media_itemsA

List media items uploaded by this app, optionally only those in one app-created album. baseUrl values expire after about 60 minutes.

photos_create_picker_sessionA

Start a Google Photos Picker session so the user can choose existing photos. Give picker_uri to the user to open; then poll photos_get_picker_session until media_items_set is true.

photos_get_picker_sessionA

Check a Picker session. media_items_set becomes true after the user finishes picking. Respect poll_interval between checks.

photos_list_picked_media_itemsB

List the items the user picked in a Picker session. baseUrl needs the same OAuth token to download and expires after about 60 minutes.

searchconsole_list_sitesA

List Search Console properties the user can access, with permission level.

searchconsole_query_search_analyticsA

Query clicks, impressions, CTR, and position for a property.

site_url: 'https://example.com/' or 'sc-domain:example.com'. Dates are YYYY-MM-DD (Pacific time), inclusive. dimensions: any of date, query, page, country, device, searchAppearance. filters: [{"dimension": "query", "operator": "contains", "expression": "mcp"}]. Returns at most 1000 rows per call; page with start_row.

searchconsole_inspect_urlA

Inspect Google's index status for one URL inside a property. Limited by Google to 2,000 inspections per property per day.

sheets_get_spreadsheetA

Get spreadsheet metadata: title, locale, time zone, and its sheets (tabs).

sheets_read_rangeA

Read cell values from an A1 range (a1_range) such as 'Sheet1!A1:D20'.

Accepts A1 ranges, a sheet title, or a named range. The request is bounded before it is sent: at most max_rows rows (default 200, ceiling 2000) and 52 columns, cell text capped at 1000 characters. truncated, columns_truncated, and cells_truncated report cuts.

slides_get_presentationB

Summarize a presentation: title and each slide's object id and text.

At most 100 slides and 2000 characters per slide are returned.

slides_get_thumbnailA

Get a PNG thumbnail URL for one slide.

The URL works without sign-in for about 30 minutes and acts as the signed-in user, so do not share it.

tasks_list_tasklistsC

List the user's Google Tasks lists.

tasks_list_tasksB

List tasks in a task list. Use tasklist_id '@default' for the default list.

show_completed=true also returns tasks completed in Google's apps.

tasks_get_taskC

Get one task by id.

youtube_list_my_channelsA

List the YouTube channels owned by the signed-in user. Costs 1 quota unit.

youtube_list_my_playlistsA

List playlists owned by the signed-in user. Costs 1 quota unit per page.

youtube_list_playlist_itemsB

List videos in a playlist. Costs 1 quota unit per page.

youtube_get_videosA

Get details and statistics for up to 50 videos by ID. Costs 1 quota unit.

youtube_searchA

Search YouTube. EXPENSIVE: each call costs 100 quota units (1% of the default daily quota). At most 25 results per call and 20 calls per server process. Prefer the list tools when possible. for_mine restricts results to the user's own videos (kind must be 'video').

youtube_analytics_query_reportA

Query a YouTube Analytics report for the user's channel.

metrics: e.g. ["views", "estimatedMinutesWatched", "likes"]. dimensions: e.g. ["day"] or ["video"] (top videos need sort "-views"). Dates are YYYY-MM-DD and inclusive. filters uses the API syntax, e.g. "video==VIDEO_ID". channel defaults to "channel==MINE". Returns column names and rows (at most 1000).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 45 tools

Disambiguation5/5

Tools are consistently scoped by Google service and action, with clear distinctions such as search vs get vs list vs query. Overlaps like contacts vs other contacts or app albums vs app media items are explicitly described and unlikely to be confused.

Naming Consistency5/5

The set follows a predictable service_verb_noun pattern throughout, e.g. gmail_get_message, calendar_list_events, sheets_read_range. Minor service prefixes like driveactivity and searchconsole are still used consistently within their services.

Tool Count2/5

With 45 tools, the surface is very large for an agent to navigate even though it aggregates many Google APIs. The count is justified by breadth, but it still exceeds the practical range for a coherent tool set.

Completeness3/5

Read, search, list, and query coverage is broad across Analytics, Gmail, Drive, Calendar, Sheets, YouTube, and others. However, most services lack write/update/delete operations, so common actions like sending email, creating events, or updating sheets would fail.

Maintenance

ActivityMaintained
ResponsivenessNo issues