2.1.1 is a reliability release. Gmail sends no longer risk duplicate delivery when the connection drops mid-send, and Gmail search, Chat space naming, Apps Script deployments, Docs table borders and Drive uploads each get targeted fixes. Enterprise deployments also get clearer OpenTelemetry attribution of which Google identity each tool call ran as.
Gmail
- gmail:
send_gmail_messageand forwards never retry a send. A timeout, connection drop or 5xx now returns an error saying the message may already be delivered and to check Sent, instead of risking a second copy. See fix(gmail): prevent duplicate delivery after an ambiguous send by @justadityaraj in #1062 - gmail:
search_gmail_messageswithinclude_headersnow lists each result's labels (e.g.DRAFT,SENT), so a re-saved draft can be told apart from sent mail. See fix(gmail): list message labels in search results with include_headers by @pacocartones in #1271 - gmail:
send_gmail_messageis now annotateddestructiveHint=True, since a sent email can't be taken back. See fix(gworkspace): correct two tool risk annotations by @CRYPTONIKAV in #1252
Drive & files
- gdrive: when local file access is disabled (stateless mode or
WORKSPACE_MCP_DISABLE_LOCAL_FILES),file://and localhost/private-network URLs are refused with a pointer toreturn_upload_url, the route that actually works there. See Point local-file and private-host refusals at return_upload_url by @123andy in #1264 - gdrive: share
expiration_timevalidation no longer lets a timestamp with a trailing newline slip through to the API. See fix(drive): reject a trailing newline in share expiration_time by @pacocartones in #1267 - core: attachments with very long file names are trimmed to fit the 255-byte filesystem limit instead of failing with "File name too long". See fix(attachments): shorten over-long attachment names so they can be saved by @pacocartones in #1254
Chat, Docs & Apps Script
- gchat: a single space you can no longer read (a 403 on its members) no longer leaves every later DM and group chat with a fallback name; only a real missing-scope 403 or a 429 stops naming. See fix(gchat): keep naming Chat spaces after a per-space 403 by @alex-feel in #1256
- gdocs:
update_table_cell_styleacceptsborder_width: 0to hide a cell border, and still rejects negative, boolean and NaN/infinite widths. See fix(gdocs): accept border_width 0 for table cells by @ConnorMoss02 in #1245 - gappsscript: updating a deployment merges into its existing config, so changing only the description no longer repoints a version-pinned deployment to HEAD, and concurrent updates to one script apply in order. See fix(gappsscript): keep existing deployment config when updating by @Bortlesboat in #924
Observability
- auth/core: each tool call's span now records
workspace_mcp.auth.mode(service-account, OAuth 2.1 or 2.0) and, with theWORKSPACE_MCP_OTEL_USER_EMAILopt-in,workspace_mcp.google.principal, the account Google calls actually run as under domain-wide delegation. See enterprise love by @taylorwilsdon in #1270
New Contributors
- @pacocartones made their first contribution in #1267
- @alex-feel made their first contribution in #1256
- @CRYPTONIKAV made their first contribution in #1252
Full Changelog: v2.1.0...v2.1.1