Google Workspace MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_CLIENT_ID | Yes | OAuth 2.0 client ID | |
| GOOGLE_TOKEN_PATH | No | Path to token JSON file | ~/.google-mcp/credentials.json |
| GOOGLE_TOKEN_SECRET | No | Google Secret Manager secret name for token fallback | google-mcp-oauth-tokens |
| GOOGLE_CLIENT_SECRET | Yes | OAuth 2.0 client secret |
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 |
|---|---|
| drive_searchC | Search for files in Google Drive using a query string |
| drive_readB | Read the content of a file from Google Drive. Exports Google Docs/Sheets/Slides as text/csv. |
| drive_listB | List files in a specific Google Drive folder |
| drive_file_infoC | Get detailed metadata about a file in Google Drive |
| drive_create_folderB | Create a new folder in Google Drive |
| drive_create_fileC | Create a new text file in Google Drive |
| drive_update_fileC | Update file metadata and/or content in Google Drive |
| drive_deleteA | Permanently delete a file from Google Drive |
| drive_trashB | Move a file to trash in Google Drive |
| drive_untrashB | Restore a file from trash in Google Drive |
| drive_copyC | Copy a file in Google Drive |
| drive_moveB | Move a file to a different folder in Google Drive |
| drive_shareC | Share a file with someone in Google Drive |
| drive_list_permissionsC | List sharing permissions on a file in Google Drive |
| drive_remove_permissionB | Remove a sharing permission from a file in Google Drive |
| drive_aboutA | Get Google Drive storage quota and user info |
| drive_upload_fileB | Upload a local file (binary or text) to Google Drive. Supports any file type. |
| drive_download_fileB | Download a file from Google Drive to a local path |
| drive_get_commentsB | List comments on a Google Drive file |
| drive_add_commentB | Add a comment to a Google Drive file |
| drive_export_fileA | Export a Google Workspace file (Doc, Sheet, Slides) to a different format (PDF, DOCX, CSV, PPTX, etc.) |
| drive_get_revisionsC | List revisions of a Google Drive file |
| drive_empty_trashA | Permanently delete all files in Google Drive trash |
| drive_get_changes_start_tokenA | Get the starting pageToken for listing future changes in Google Drive |
| drive_list_changesB | List changes to files in Google Drive since a given page token |
| drive_watch_changesC | Subscribe to changes in Google Drive via push notifications |
| drive_stop_channelB | Stop receiving push notifications for a channel |
| drive_get_commentA | Get a specific comment on a Google Drive file by ID |
| drive_update_commentB | Update the content of a comment on a Google Drive file |
| drive_delete_commentB | Delete a comment from a Google Drive file |
| drive_list_repliesC | List replies to a comment on a Google Drive file |
| drive_get_replyB | Get a specific reply to a comment on a Google Drive file |
| drive_create_replyB | Create a reply to a comment on a Google Drive file |
| drive_update_replyB | Update a reply to a comment on a Google Drive file |
| drive_delete_replyB | Delete a reply to a comment on a Google Drive file |
| drive_create_shared_driveB | Create a new shared drive in Google Drive |
| drive_get_shared_driveB | Get metadata of a shared drive in Google Drive |
| drive_list_shared_drivesC | List shared drives the user has access to |
| drive_update_shared_driveB | Update metadata of a shared drive (name, restrictions, etc.) |
| drive_delete_shared_driveA | Delete a shared drive (must be empty) |
| drive_hide_shared_driveC | Hide a shared drive from the default view |
| drive_unhide_shared_driveA | Restore a shared drive to the default view |
| drive_get_permissionA | Get a specific permission on a Google Drive file by permission ID |
| drive_update_permissionB | Update a permission on a Google Drive file (change role) |
| drive_get_revisionB | Get metadata of a specific revision of a Google Drive file |
| drive_update_revisionB | Update metadata of a revision (published, publishAuto, publishedOutsideDomain, keepForever) |
| drive_delete_revisionA | Delete a revision of a Google Drive file (cannot delete the last remaining revision) |
| drive_generate_idsA | Generate a set of file IDs that can be used in create or copy requests |
| drive_list_labelsB | List labels applied to a Google Drive file |
| drive_modify_labelsA | Modify (add, update, remove) labels on a Google Drive file |
| drive_watch_fileB | Subscribe to push notifications for changes to a specific Google Drive file |
| drive_list_access_proposalsA | List access proposals on a file (requests for access) |
| drive_get_access_proposalB | Get a specific access proposal by ID |
| drive_resolve_access_proposalB | Approve or deny an access proposal on a file |
| drive_list_appsB | List the user's installed Google Drive apps |
| drive_get_appA | Get a specific installed Drive app by ID |
| drive_get_operationA | Get the status of a long-running operation |
| calendar_list_eventsC | List upcoming Google Calendar events |
| calendar_search_eventsA | Search Google Calendar events by text query (searches summary, description, location, attendees) |
| calendar_create_eventC | Create a new Google Calendar event |
| calendar_update_eventB | Update an existing Google Calendar event |
| calendar_delete_eventB | Delete a Google Calendar event |
| calendar_list_calendarsB | List all Google Calendars accessible to the user |
| calendar_quick_addA | Create a Google Calendar event from natural language text (e.g. "Meeting tomorrow at 3pm") |
| calendar_get_eventA | Get detailed information about a specific Google Calendar event |
| calendar_move_eventB | Move a Google Calendar event from one calendar to another |
| calendar_recurring_instancesC | List instances of a recurring Google Calendar event |
| calendar_freebusyB | Check free/busy time for one or more Google Calendars |
| calendar_create_calendarC | Create a new Google Calendar |
| calendar_update_calendarB | Update a Google Calendar (name, description, time zone) |
| calendar_delete_calendarA | Delete a Google Calendar (cannot delete primary) |
| calendar_clearB | Clear all events from a Google Calendar (removes all events but keeps the calendar) |
| calendar_acl_listB | List access control rules (ACL) for a Google Calendar |
| calendar_acl_getA | Get a specific access control rule for a Google Calendar |
| calendar_acl_insertB | Create a new access control rule for a Google Calendar |
| calendar_acl_updateC | Update an existing access control rule for a Google Calendar |
| calendar_acl_deleteB | Delete an access control rule from a Google Calendar |
| calendar_acl_watchB | Watch for changes to ACL rules on a Google Calendar (push notifications) |
| calendar_list_getC | Get a specific calendar entry from the user's calendar list |
| calendar_list_insertB | Add an existing calendar to the user's calendar list |
| calendar_list_updateB | Update a calendar's settings in the user's calendar list (color, reminders, visibility) |
| calendar_list_deleteB | Remove a calendar from the user's calendar list |
| calendar_list_watchC | Watch for changes to the user's calendar list (push notifications) |
| calendar_stop_channelB | Stop receiving push notifications for a watch channel |
| calendar_get_colorsA | Get color definitions for Google Calendar (available colors for calendars and events) |
| calendar_import_eventA | Import an event into a Google Calendar (adds a private copy using iCalUID) |
| calendar_watch_eventsC | Watch for changes to events on a Google Calendar (push notifications) |
| calendar_get_settingA | Get a single Google Calendar user setting by name |
| calendar_list_settingsA | List all Google Calendar user settings |
| calendar_watch_settingsB | Watch for changes to Google Calendar user settings (push notifications) |
| calendar_get_calendarA | Get metadata for a specific Google Calendar by ID |
| contacts_listC | List Google Contacts or search by query |
| contacts_getB | Get a specific Google Contact by resource name |
| tasks_listA | List all Google Task lists |
| tasks_list_tasksB | List tasks in a specific task list |
| tasks_createB | Create a new Google Task |
| tasks_completeA | Mark a Google Task as completed |
| sheets_readB | Read data from a Google Spreadsheet |
| sheets_writeC | Write data to a Google Spreadsheet |
| contacts_createB | Create a new Google Contact |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/salviz/google-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server