mcp-google-multi
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MASTER_KEY | Yes | Base64-encoded 32-byte key to encrypt token store (e.g. openssl rand -base64 32) | |
| GOOGLE_PROFILE | No | Write policy: read-only (default), safe-writes, or full-writes | read-only |
| GOOGLE_ACCOUNTS | Yes | Comma-separated alias:email pairs, e.g. work:you@co.com,personal:you@gmail.com | |
| GOOGLE_CLIENT_ID | Yes | OAuth Desktop client ID from Google Cloud | |
| GOOGLE_READ_ONLY | No | Set to 'true' to hard-disable all writes | |
| TOKEN_STORE_PATH | No | Override path for encrypted token directory (default: ~/.config/mcp-google-multi/tokens) | |
| GOOGLE_WRITE_DENY | No | Glob overrides to deny specific write tools, e.g. '*:delete*' | |
| GOOGLE_WRITE_ALLOW | No | Glob overrides to allow specific write tools, e.g. 'calendar:*, sheets:update*' | |
| GOOGLE_CLIENT_SECRET | Yes | OAuth Desktop client secret from Google Cloud | |
| GOOGLE_ADMIN_ACCOUNTS | No | Aliases granted Workspace admin scopes | |
| GOOGLE_OPTIONAL_SCOPES | No | Extra scope bundles: 'forms', 'chat', or comma-separated |
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 |
|---|---|
| gmail_discoverA | List the available gmail operations. Operational gmail tools are hidden until discovered — call this first, then call the tool you need by name. Operations: search, read, read_thread, send, download_attachment, create_draft, modify_labels, trash, delete, batch_modify, batch_delete, list_drafts, get_draft, send_draft, list_labels, create_label, delete_label, get_profile, list_history, get_vacation, set_vacation, users_drafts_delete, users_drafts_update, users_labels_get, users_labels_patch, users_labels_update, users_messages_import, users_messages_insert, users_messages_untrash, users_settings_cse_identities_create, users_settings_cse_identities_delete, users_settings_cse_identities_get, users_settings_cse_identities_list, users_settings_cse_identities_patch, users_settings_cse_keypairs_create, users_settings_cse_keypairs_disable, users_settings_cse_keypairs_enable, users_settings_cse_keypairs_get, users_settings_cse_keypairs_list, users_settings_cse_keypairs_obliterate, users_settings_delegates_create, users_settings_delegates_delete, users_settings_delegates_get, users_settings_delegates_list, users_settings_filters_create, users_settings_filters_delete, users_settings_filters_get, users_settings_filters_list, users_settings_forwarding_addresses_create, users_settings_forwarding_addresses_delete, users_settings_forwarding_addresses_get, users_settings_forwarding_addresses_list, users_settings_get_auto_forwarding, users_settings_get_imap, users_settings_get_language, users_settings_get_pop, users_settings_send_as_create, users_settings_send_as_delete, users_settings_send_as_get, users_settings_send_as_list, users_settings_send_as_patch, users_settings_send_as_smime_info_delete, users_settings_send_as_smime_info_get, users_settings_send_as_smime_info_insert, users_settings_send_as_smime_info_list, users_settings_send_as_smime_info_set_default, users_settings_send_as_update, users_settings_send_as_verify, users_settings_update_auto_forwarding, users_settings_update_imap, users_settings_update_language, users_settings_update_pop, users_stop, users_threads_delete, users_threads_list, users_threads_modify, users_threads_trash, users_threads_untrash, users_watch. |
| drive_discoverA | List the available drive operations. Operational drive tools are hidden until discovered — call this first, then call the tool you need by name. Operations: search, read, list, upload, download, export, create_folder, update, delete, trash, untrash, empty_trash, copy, move, share, list_permissions, permission_update, remove_permission, comment_create, comment_list, comment_get, comment_update, comment_delete, reply_create, reply_list, reply_update, reply_delete, revision_list, revision_update, revision_delete, access_proposal_list, access_proposal_resolve, shared_drives_list, shared_drive_get, transfer, get_about, accessproposals_get, approvals_approve, approvals_cancel, approvals_comment, approvals_decline, approvals_get, approvals_list, approvals_reassign, approvals_start, apps_get, apps_list, changes_get_start_page_token, changes_list, changes_watch, channels_stop, drives_create, drives_delete, drives_hide, drives_unhide, drives_update, files_download, files_generate_cse_token, files_generate_ids, files_list_labels, files_modify_labels, files_watch, operations_get, permissions_get, replies_get, revisions_get, teamdrives_create, teamdrives_delete, teamdrives_get, teamdrives_list, teamdrives_update. |
| calendar_discoverA | List the available calendar operations. Operational calendar tools are hidden until discovered — call this first, then call the tool you need by name. Operations: list_calendars, list_events, get_event, create_event, update_event, delete_event, quick_add, move_event, list_instances, get_freebusy, create_calendar, acl_delete, acl_get, acl_insert, acl_list, acl_patch, acl_update, acl_watch, calendar_list_delete, calendar_list_get, calendar_list_insert, calendar_list_patch, calendar_list_update, calendar_list_watch, calendars_clear, calendars_delete, calendars_get, calendars_patch, calendars_transfer_ownership, calendars_update, channels_stop, colors_get, events_import, events_update, events_watch, settings_get, settings_list, settings_watch. |
| sheets_discoverA | List the available sheets operations. Operational sheets tools are hidden until discovered — call this first, then call the tool you need by name. Operations: create, get, read_range, write_range, append_rows, clear_range, batch_read, batch_write, add_sheet, delete_sheet, duplicate_sheet, update_sheet_properties, format_cells, update_borders, merge_cells, unmerge_cells, add_conditional_format_rule, sort_range, set_basic_filter, clear_basic_filter, find_replace, auto_resize_dimensions, insert_dimension, delete_dimension, set_data_validation, add_named_range, delete_named_range, batch_clear, batch_update, spreadsheets_developer_metadata_get, spreadsheets_developer_metadata_search, spreadsheets_get_by_data_filter, spreadsheets_sheets_copy_to, spreadsheets_values_batch_clear_by_data_filter, spreadsheets_values_batch_get_by_data_filter, spreadsheets_values_batch_update_by_data_filter. |
| docs_discoverA | List the available docs operations. Operational docs tools are hidden until discovered — call this first, then call the tool you need by name. Operations: create, get, read, insert_text, replace_text, delete_range, update_style, insert_table, create_named_range, delete_named_range, replace_named_range_content, update_paragraph_style, update_document_style, create_paragraph_bullets, delete_paragraph_bullets, insert_inline_image, insert_page_break, insert_section_break, create_header, delete_header, create_footer, delete_footer, modify_table, add_tab, delete_tab, update_tab_properties, batch_update. |
| contacts_discoverA | List the available contacts operations. Operational contacts tools are hidden until discovered — call this first, then call the tool you need by name. Operations: search, get, list, create, update, delete, groups_list, group_members, group_create, contact_groups_batch_get, contact_groups_delete, contact_groups_members_modify, contact_groups_update, other_contacts_copy_other_contact_to_my_contacts_group, other_contacts_list, other_contacts_search, people_batch_create_contacts, people_batch_delete_contacts, people_batch_update_contacts, people_delete_contact_photo, people_list_directory_people, people_search_directory_people, people_update_contact_photo. |
| searchconsole_discoverA | List the available searchconsole operations. Operational searchconsole tools are hidden until discovered — call this first, then call the tool you need by name. Operations: sites_list, sites_get, sites_add, sites_delete, sitemaps_list, sitemaps_get, sitemaps_submit, sitemaps_delete, searchanalytics_query, url_inspect, url_testing_tools_mobile_friendly_test_run. |
| tasks_discoverA | List the available tasks operations. Operational tasks tools are hidden until discovered — call this first, then call the tool you need by name. Operations: lists_list, list_get, list_insert, list_update, list_delete, list, get, insert, update, delete, move, clear, tasklists_update, tasks_update. |
| meet_discoverA | List the available meet operations. Operational meet tools are hidden until discovered — call this first, then call the tool you need by name. Operations: conference_records_list, conference_record_get, recordings_list, transcripts_list, transcript_entries_list, conference_records_participants_get, conference_records_participants_list, conference_records_participants_participant_sessions_get, conference_records_participants_participant_sessions_list, conference_records_recordings_get, conference_records_smart_notes_get, conference_records_smart_notes_list, conference_records_transcripts_entries_get, conference_records_transcripts_get, spaces_create, spaces_end_active_conference, spaces_get, spaces_patch. |
| workspaceevents_discoverA | List the available workspaceevents operations. Operational workspaceevents tools are hidden until discovered — call this first, then call the tool you need by name. Operations: message_stream, operations_get, subscriptions_create, subscriptions_delete, subscriptions_get, subscriptions_list, subscriptions_patch, subscriptions_reactivate, tasks_cancel, tasks_get, tasks_push_notification_configs_create, tasks_push_notification_configs_delete, tasks_push_notification_configs_get, tasks_push_notification_configs_list, tasks_subscribe. |
| google_api_searchA | Search the Google API Discovery index for any Workspace REST method, including ones with no dedicated tool here. Returns method ids + parameters to invoke via google_api_call. APIs: gmail, drive, calendar, sheets, docs, slides, forms, people, searchconsole, tasks, chat, meet, driveactivity, drivelabels, admin_directory, admin_reports, admin_datatransfer, groupssettings, appsmarket, classroom, cloudidentity, cloudsearch, groupsmigration, keep, licensing, postmaster, reseller, script, vault, workspaceevents. |
| google_api_callA | Invoke any Google Workspace REST method by Discovery id (escape hatch for operations without a dedicated tool). Find methods with google_api_search first. Subject to the same write-control policy as named tools. Returns JSON only — for binary/file content (media downloads, drive.files.export) use drive_download / drive_export instead. |
| account_listA | List the configured Google accounts: alias, email, admin flag, token health (ok / expired_refreshable / needs_reauth / missing / decrypt_error), and granted vs configured scopes. Use this to see which account aliases are available and healthy. |
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 13 tools
Each visible tool has a clearly distinct purpose: one discover tool per Google service, plus generic API search/call and account list. There is no overlap or ambiguity among the 13 top-level tools.
All tool names follow a consistent object_verb pattern using lowercase and underscores: gmail_discover, drive_discover, google_api_search, google_api_call, account_list. The naming convention is uniform and predictable.
13 tools is well within the optimal range for a multi-service server. Each discover tool serves a distinct Google API, and the generic search/call tools provide a compact escape hatch, so every tool earns its place.
The discover tools expose comprehensive operation lists for major Workspace services, and google_api_search/google_api_call cover any REST method across a wider API set. Account management is also included, making the surface effectively complete with no dead ends.