github taylorwilsdon/google_workspace_mcp v1.29.0

3 hours ago

This release consolidates the Apps Script toolset into a few action-based tools and adds trigger management. It also adds Sheets smart chips, and hosted servers can now accept Drive uploads without routing file bytes through the model. It also fixes contact name updates, calendar attendee objects, and missing Excel text.

Apps Script

  • gappsscript: The Apps Script tools are now consolidated into action-based tools (get_script_project, manage_script_project, manage_script_content, manage_script_version, get_script_version, list_script_deployments, get_script_activity, manage_script_trigger), which frees up a large share of tool-list space. The old per-operation tools are gone, and project deletion now requests the full drive scope. Overhaul Tool Endpoints for Apps Script, Add Script Trigger Management by @taylorwilsdon in #1157
  • gappsscript: Installable triggers can now be listed and deleted without opening the editor. A small helper file is provisioned in the project and run through the Execution API, since the REST API has no triggers resource (shipped as manage_script_trigger via #1157). feat(gappsscript): list and delete Apps Script triggers by @CapitalX in #1122

Sheets & Docs

  • gsheets: New insert_smart_chips tool places Drive file/folder and People chips into a cell or range, and read_sheet_values can return chip metadata with include_smart_chips. feat(gSheets) Manage “Smart Chips” by @antoine2711 in #1147
  • gdocs / gsheets: create_doc and create_spreadsheet take an optional folder_id, so agents no longer need a second call to move the new file. Optional folder_id argument for creating a document or spreadsheet by @fmgs31 in #1158
  • core: Excel text is no longer silently dropped: inline-string cells and Strict Open XML workbooks now extract their labels instead of returning numbers only (or nothing). fix(utils): preserve spreadsheet text fidelity in extract_office_xml_text by @123andy in #1163

Drive & remote deployments

  • gdrive / gmail: New WORKSPACE_MCP_DISABLE_LOCAL_FILES setting (implied by stateless mode) for hosted servers that can't see the caller's disk. When it is set, tools stop advertising file_path, and a local path gets an error that names the routes that do work (URL or inline content). fix(drive,gmail): stop advertising client-side file_path on remote transports; honest boundary errors by @123andy in #1036
  • gdrive: create_drive_file, update_drive_file, and the import_to_google_* tools accept return_upload_url, which returns a resumable upload URL the client PUTs to directly. Large and binary files skip the MCP server and the model context entirely. The parameter is offered only when WORKSPACE_MCP_DISABLE_LOCAL_FILES is set, and upload session creation retries transient failures. feat(drive): optional return_upload_url parameter on the Drive upload tools - no new tools by @123andy in #1160

Gmail, Calendar & Contacts

  • gmail: manage_gmail_label can now set the third visibility value, labelShowIfUnread. feat(gmail): let manage_gmail_label set labelShowIfUnread by @ConnorMoss02 in #1165
  • gmail / core: get_gmail_message_content accepts format="metadata" for headers only, matching the batch tool. Tool schemas are also now advertised without null unions or const, so Gemini clients accept the tool list. Accept format on get_gmail_message_content by @taylorwilsdon in #1172
  • gcalendar: manage_event creation accepts attendee objects as well as plain emails, fixing a 400 Missing attendee email error. fix(gcalendar): normalize attendee objects on event creation (#1145) by @truecallerabreham in #1155
  • gcontacts: Updating one part of a contact's name (e.g. given_name) no longer wipes the family name, middle name, and suffix, in both manage_contact and manage_contacts_batch. Keep unchanged name parts when updating a contact by @taylorwilsdon in #1170

Auth

  • auth: New WORKSPACE_MCP_OAUTH_PROXY_REFRESH_TOKEN_EXPIRY_SECONDS shortens the OAuth 2.1 refresh-token lifetime, and with it how long per-login proxy records sit in storage, which otherwise defaults to a year. It first landed in #1161, was reverted in #1166, and re-landed in #1167.
    • feat(auth): expose OAuthProxy refresh token expiry as env var by @star67 in #1161
    • Revert "feat(auth): expose OAuthProxy refresh token expiry as env var" by @taylorwilsdon in #1166
    • feat(auth): expose OAuthProxy refresh token expiry as env varrefac by @taylorwilsdon in #1167

New Contributors

Full Changelog: v1.28.0...v1.29.0

Don't miss a new google_workspace_mcp release

NewReleases is sending notifications on new releases.