Changelog

New tools, improvements, and fixes across the gateway and its connectors.

calendargws-mcp

Compact calendar_list_events

calendar_list_events now returns a compact view by default: per event you get the id, title, times, location, a plain-text description (HTML stripped and truncated, tune with max_description_chars), the organizer, an attendee count plus your own response status, and the video join link (Meet, or Zoom and friends from conference data). Meetings with 10 or fewer people keep their full roster, so a 1:1 still tells you who it's with; bigger meetings collapse to the count. Recurring events are flagged and attachments come through. What's gone from the default payload: large-meeting rosters, reminders, and raw conference metadata.

Why: on a busy calendar, a 7-day pull was returning ~55 KB for 25 events (mostly HTML meeting boilerplate and 100+ attendee objects) and overflowing the tool response limit before your assistant saw a single event. The compact view is roughly 85% smaller on the same calendar.

Need the raw Calendar API payload? Pass full: true. calendar_get_event also converts descriptions to plain text now, with the same full opt-out for the original HTML.

dashboardgateway

Playground runs and a rebuilt setup wizard

The dashboard now has a Playground. Example prompts don't just sit there anymore: hit Run and a Claude-powered agent executes them against your connected Google Workspace and Atlassian accounts, choosing tools and streaming results live. It's a demo surface for trying the connectors before you wire up your own client, with about 20 free runs per account. Every response gets a thumbs up/down so you can tell us what worked and what didn't.

The client setup wizard is rebuilt too, with step-by-step flows for Claude web, Claude Desktop, Claude Code, Cursor, and ChatGPT. A live status check flips to green when your first tool call comes through, so you know the connection works before you close the tab.

gmailgws-mcp

Batch mark-read

gmail_mark_read now accepts message_ids (up to 1,000) to change labels on a whole batch in one call, using the Gmail batchModify API. The single-message path is unchanged. Small quality-of-life fix in the same release: gws_run documentation now spells out dotted API resource paths (users.drafts, not drafts).

gmailgws-mcp

Leaner Gmail reads and search results

gmail_read gains a text_only mode: flattened from/to/cc/subject/date headers, the decoded plain-text body, and attachment metadata instead of the raw MIME payload. On a typical marketing email that is about 2% of the full response size. max_body_chars truncates long bodies with a marker. Default behavior is unchanged.

gmail_search and gmail_list results are now flattened to {id, threadId, from, to, subject, date, snippet, labelIds}. This also fixes a bug where search and list results were missing From/Subject headers entirely.

gmailgws-mcp

Gmail drafts: full lifecycle

Two new tools, gmail_send_draft and gmail_delete_draft, complete the draft lifecycle. Together with gmail_create_draft and gmail_update_draft (shipped earlier), your assistant can now create a draft, revise it across turns, and send or discard it when you give the word. The human-in-the-loop flow this enables: AI writes, you review in Gmail, AI sends.

gmailgws-mcpbreaking

Removed: gmail_triage

The experimental gmail_triage tool is removed. Its job is better done by composing gmail_search, gmail_read (now with text_only), and gmail_mark_read directly.

gmailgws-mcp

gmail_mark_read

New gmail_mark_read tool for label modification: mark messages read, and add or remove labels in the same call. Marking read always removes the UNREAD label regardless of other labels you add.

docsgws-mcp

docs_get returns inline image metadata

docs_get responses now include metadata for inline images embedded in a document, so assistants can see where images sit in the content flow instead of silently skipping them.