github taylorwilsdon/google_workspace_mcp v2.4.1

2 hours ago

A fixes release with one new trick: modify_sheet_values can now copy a range the way the Sheets UI does. The rest tightens up behavior that was quietly wrong, including Gmail links opening the wrong account in multi-account browsers, plain-text emails with attachments getting hard-wrapped, calendar time ranges ignoring timezone, and noisy, URL-leaking error logs.

New

  • gsheets: modify_sheet_values takes source_range and paste_type (default PASTE_NORMAL) to copy a range within a spreadsheet, across tabs too, with formulas shifting and formatting coming along; range_name can be just the top-left destination cell (#1369) - feat(sheets): copy a range with source_range on modify_sheet_values by @taylorwilsdon in #1369

Fixes

  • gcalendar: offset-free date-times like 2026-11-10T09:00:00 in out-of-office and focus-time ranges are read in the given timezone instead of being treated as UTC, still falling back to UTC when timezone is unset or unknown (#1365) - fix(calendar): honor timezone for offset-free date-times in time range params by @taylorwilsdon in #1365
  • gcontacts: URL matching lowercases only the scheme and host, so contact URLs that differ by path or query case are no longer merged and remove deletes the right one (#1366) - fix(contacts): lowercase only scheme and host when normalizing URLs by @taylorwilsdon in #1366
  • gchat: search_messages results include space_id, message_id and thread_id for each hit, so a result can be passed straight to get_messages even when the conversation label is a users/... ID (#1324) - Include canonical resource IDs in Chat search results by @yavzius in #1324
  • gslides: batch_update_presentation reports Replaced N occurrence(s) for each replaceAllText request instead of a generic completion message (#1362) - fix(gslides): report replaceAllText counts in batch_update_presentation by @ConnorMoss02 in #1362
  • gmail: web links address the mailbox by email (/mail/u/<email>/) rather than /u/0/, so in a browser signed in to several Google accounts they open the account the message actually belongs to (#1356) - fix(gmail): account-specific web links for multi-account browsers by @jorgebaptista in #1356
  • gmail: plain-text drafts and sends with attachments get the same HTML alternative as attachment-free messages, so Gmail no longer opens them in plain-text compose and hard-wraps every line at ~76 characters on send (#1360) - fix(gmail): give plain bodies with attachments an HTML alternative by @BlaisedEstais in #1360
  • core: a failing Google API call logs one scrubbed ERROR line instead of two tracebacks, one of which exposed the full request URI with its query string; client-facing errors also drop the Error calling tool 'x': prefix (#1367) - fix(core): log tool API errors once without tracebacks or query strings by @taylorwilsdon in #1367
  • gdrive: create_drive_file, update_drive_file and the import_to_google_* tools read this server's own /attachments/<id> links from local storage instead of rejecting them as localhost in the SSRF guard; links on any other origin are still guarded (#1368) - fix(drive): read this server's own /attachments links from storage by @taylorwilsdon in #1368

New Contributors

Full Changelog: v2.4.0...v2.4.1

Don't miss a new google_workspace_mcp release

NewReleases is sending notifications on new releases.