github taylorwilsdon/google_workspace_mcp v1.15.0
v1.15.0 - Major Quality of Life + New Functionality & Security Improvements

12 hours ago

Highlights

v1.15.0 is a quality-of-life release with real improvements across auth reliability, Gmail reply behavior, and day-to-day Workspace tooling. The big theme is fewer "almost works" edges: reply drafts thread correctly, quoted replies render more naturally, OAuth flow improvements, and more of the metadata real world users actually care about now shows up in tool output.

Authentication, Runtime, and Deployment

  • Single-user stdio sessions now refresh invalid cached credentials whenever a refresh token is available, instead of bouncing users back into OAuth just because the token was invalid but not explicitly marked expired. This closes a frustrating reauth loop for long-lived local setups. (#579) by @Bortlesboat
  • WORKSPACE_MCP_STATELESS_MODE=true now actually reaches FastMCP's stateless_http runtime flag. Before this, the app advertised stateless behavior while FastMCP still kept in-memory sessions, which could break clients after a pod or process restart. (#582) by @vdemay
  • Re-auth flows now choose select_account when the user already has the required scopes, instead of forcing an unnecessary consent prompt. The callback path also preserves an existing refresh token when Google omits it on reauth, which makes repeat auth materially less fragile. (#586) by @taylorwilsdon
  • macOS startup now captures stray stdout during module initialization and replays it to stderr so the MCP JSON-RPC handshake is not corrupted by platform strings or other unexpected startup noise. (#577) by @Bortlesboat
  • OAuth callback handling is more robust in two places: the browser response pages now degrade cleanly when window.close() is blocked, and the stdio auth flow now checks that the callback server is actually listening before sending users through Google auth. (#573, #572) by @seidnerj
  • External OAuth mode documentation was tightened up to reflect the current runtime behavior more clearly, which should reduce setup mistakes for deployments using an external identity layer. (#599) by @taylorwilsdon
  • Dependency maintenance in this release updates authlib from 1.6.7 to 1.6.9 and pyasn1 from 0.6.2 to 0.6.3. (#583, #587) by @dependabot

Gmail Reply Quality

  • Reply drafts can now auto-populate In-Reply-To and References from the Gmail thread when only a thread_id is provided. In practice, this fixes the classic "draft exists but does not render inline in the conversation" problem. (#578) by @Bortlesboat
  • Reply drafts can optionally include quoted original content, and the implementation deliberately puts the Gmail signature above the quoted block so the result looks like a native human reply instead of an awkward append-only transcript. Both HTML and plaintext paths are covered. (#581) by @Bortlesboat
  • Gmail reply handling is also stricter about RFC-style threading identifiers and now exposes In-Reply-To / References metadata more consistently, which helps keep agent-generated replies standards-compliant and easier to debug. (#560) by @hindmakarem-qa

Workspace Tooling Improvements

  • read_sheet_values can now include cell notes, not just raw values. That is especially useful for operational sheets where the real instructions live in comments/notes rather than the visible cells. The implementation also keeps metadata fetches bounded to the tight populated range instead of blindly expanding grid reads. (#580) by @Bortlesboat
  • Google Docs paragraph styling now explicitly supports TITLE and SUBTITLE, and validation now rejects conflicting heading_level plus named_style_type combinations instead of trying to guess intent. (#563) by @reinlemmens
  • Docs text formatting now supports strikethrough in both modify_doc_text and batch_update_doc, which fills in a pretty obvious gap beside bold, italic, and underline. (#575) by @gkatz2
  • Calendar event output now surfaces extracted meeting URLs from conferenceData and hangoutLink, so users can actually see Google Meet or third-party video links directly in tool output. (#565) by @reinlemmens
  • Google Chat reads are more queryable: get_messages now exposes API filters, and search_messages can combine free-text matching with createTime filters while capping cross-space scans to stay practical. (#594) by @taylorwilsdon

New Contributors

As always, a huge thanks to our contributors especially @Bortlesboat coming in on a hot streak and getting like 5 PRs merged!

Thanks to everyone who contributed code, reviews, and polish to this release.

Full Changelog: v1.14.3...v1.15.0

Don't miss a new google_workspace_mcp release

NewReleases is sending notifications on new releases.