github taylorwilsdon/google_workspace_mcp v1.26.0

3 hours ago

Release v1.26.0

Feature release. Calendar finally paginates and can carry attachments, Chat can edit a message it already sent, Gmail labels take colors, Docs gains tab-scoped reads and anchors that survive an index shift, Sheets can manage its tabs, and deployments can cap how much any download is allowed to buffer into memory. Special thank you to @DrFaust92 who didn't get a credit here but did the leg work on one of these.

What's Changed

  • auth/OAuth: the OAuth 2.1 protocol path now falls back to the client secrets file instead of insisting on GOOGLE_OAUTH_CLIENT_ID/GOOGLE_OAUTH_CLIENT_SECRET, so a deployment configured only with GOOGLE_CLIENT_SECRET_PATH no longer dies at startup on OAuth 2.1 requires GOOGLE_OAUTH_CLIENT_SECRET; env vars still win per value, and a path that is set but missing or malformed raises a clear error instead of falling through by @gnomed in #1076
  • gmail: manage_gmail_label takes optional background_color and text_color hex strings on create and update, validated up front against Gmail's fixed palette so a bad value names the offending field rather than coming back as a bare 400 (#351) by @ConnorMoss02 in #1083
  • core: new WORKSPACE_MCP_MAX_FILE_BYTES bounds how many bytes Drive, Gmail, Chat, and Docs downloads may buffer into process memory; unset or 0 keeps today's uncapped behavior, and an oversized download returns a Drive link and alternative tools instead of OOMing the server by @SlayerBirden in #996
  • gchat: send_message accepts an optional message_name and patches that message in place instead of only ever creating, so a typo, a stale link, or a post pitched at the wrong room can be reworded; left unset, the create path is byte for byte unchanged and the tool count stays the same by @TidyMaze in #1092
  • gcalendar: get_events and list_calendars are paginated. gcalendar was the last package still dropping nextPageToken, so the 25-event default returned 25 events with nothing to indicate a 26th existed; callers who pass neither parameter send the same request as before (#1089) by @ConnorMoss02 in #1090
  • gdocs: inspect_doc_structure reports paragraph layout stats in both modes: empty-paragraph counts, up to 100 paragraph ranges with a truncation flag, and the last paragraph's list and empty status, with list membership and object anchors in detailed output. Object anchors do not count as empty, and ranges can cover protected newlines, so the docs spell out the cleanup constraints by @kryan007 in #1080
  • gdocs/gsheets/gcalendar/gslides/auth: the document-index and delegation batch, closing #1084, #1052, #1085 and #1086 by @taylorwilsdon in #1098
    • gdocs: get_doc_content, get_doc_as_markdown and inspect_doc_structure take a tab_id, so the read tools can finally target the tab the write tools already accepted
    • gdocs: inspect_doc_structure takes preview_chars (0 or None for untruncated text), so the index workflow its own docstring describes can actually be completed past the old 100-character cap
    • gdocs: insert operations accept after_heading, before_heading, or anchor_text plus anchor_position in place of a raw index, resolved against the document at execution time, which removes the class of bug where a shifted index lands an edit on unrelated content without failing
    • gsheets: new manage_sheet_tab renames, deletes, hides, unhides, and reorders tabs within a spreadsheet
    • gcalendar: create_event and modify_event take attachments as Drive file IDs or URLs; on modify_event the list replaces the event's existing attachments rather than appending to them
    • gslides: get_presentation and get_page take include_geometry to report each element's placement
    • auth: service-account mode substitutes the full Drive scope for drive.file, which under domain-wide delegation can never reach a pre-existing file because a DWD service account never passes through the Drive picker; authorize it in the Admin console DWD scope list
    • gmail: send_gmail_message states plainly that Gmail's REST API has no send-time parameter, so an agent stops telling users a message was scheduled when it was sent immediately

New Contributors

Full Changelog: v1.25.2...v1.26.0

A very gracious thank you to those who have sponsored,
@rajivpant + @123andy being a solo maintainer in open source can be a thankless job and your thank you's mean the world!

Don't miss a new google_workspace_mcp release

NewReleases is sending notifications on new releases.