Release notes

Everything that has shipped in Workspace MCP, explained in plain language. For the full technical changelog, every entry links to its release on GitHub.

Releases
119
Feature releases
36
Months shipping
19
New contributors
106

119 releases, newest first

November 2026 3 releases

v2.4.2 Latest

Docs can insert date chips and Chat can list who is in a space. Hosted sign-in can now show Google's account chooser, Chat tools take a space ID in either form, and a warning that legacy OAuth logged on every tool call is gone.

  • batch_update_doc has an insert_date operation that adds a date smart chip, with an optional date format, time format and timezone. It is placed the same way as insert_person.
  • list_spaces takes space_id to list that space's members instead: people, apps and groups, each with their role, and pending invitations marked.
  • get_messages, send_message and search_messages accept a bare space ID as well as spaces/<id>, and a malformed ID gets an error that shows the expected format.
  • WORKSPACE_MCP_OAUTH_PROXY_GOOGLE_PROMPT sets the prompt the OAuth proxy sends to Google. select_account consent shows the account chooser, so someone signed in to a different Google account can connect the right one. Left unset, nothing changes.
  • Legacy OAuth 2.0 no longer logs Could not save credentials to session store on every tool call. The write behind it never stored anything, so it was removed.
v2.4.1

Sheets can copy a range the way the Sheets UI does, formulas and formatting included. The rest are fixes: Gmail links open the right account in a browser signed in to several, plain-text emails with attachments stop getting hard-wrapped, calendar time ranges respect your timezone, and a failed Google API call logs one clean line instead of two tracebacks.

Heads up Tool error messages no longer start with Error calling tool '<name>': . Anything that matches on that prefix needs updating.

  • modify_sheet_values takes source_range and paste_type to copy a range within a spreadsheet, across tabs too, with formulas shifting and formatting coming along. The destination can be just its top-left cell.
  • Web links name the mailbox by email address instead of /u/0/, so in a browser signed in to several Google accounts they open the account the message belongs to.
  • Plain-text drafts and sends with attachments get the same HTML version as messages without them, so Gmail no longer hard-wraps every line at about 76 characters when they are sent.
  • Out-of-office and focus-time ranges read times without an offset, like 09:00:00, in the timezone you pass instead of as UTC.
  • Contact URLs that differ only by path or query capitalisation are kept apart, so removing one no longer deletes the wrong entry.
  • search_messages results include the space, message and thread IDs, so any hit can be opened with get_messages, even in unnamed conversations.
  • batch_update_presentation reports how many matches each find-and-replace changed.
  • Drive uploads accept this server's own /attachments download links, reading the file from local storage instead of refusing it as a localhost URL.
  • A failed Google API call logs one scrubbed line instead of two tracebacks, one of which included the full request URL and its query string.
v2.4.0

More from the tools you already have

Calendar creation and sharing fold into one manage_calendar tool, Sheets can copy a tab into another spreadsheet, Docs can read a single heading section, and Drive can create shortcuts, all without a new tool definition. HTTP deployments can narrow the tool list per request with headers, and multi-account sign-in stops looping on re-auth.

Heads up create_calendar is removed. Call manage_calendar with action="create" instead; it takes the same parameters and returns the same output.

  • manage_calendar creates secondary calendars and manages who a calendar is shared with: list the sharing rules, grant access by user, group or domain, change a role, or remove it. The owner's own rule cannot be changed.
  • Streamable HTTP clients sharing one server can narrow the tool list per request with the X-MCP-Toolsets and X-MCP-Tools headers, the same names the GitHub MCP server uses. Headers only filter what the server already loaded, so they never expose a tool removed by the tier, --tools, --read-only or --permissions.
  • get_doc_content and get_doc_as_markdown take heading and heading_level to return just that heading and everything under it until the next heading of the same or a higher level. A heading that is not found lists the available ones.
  • create_sheet takes destination_spreadsheet_id to copy a tab, with its formatting and formulas, into a different spreadsheet, then rename and position it there.
  • create_drive_file takes shortcut_target_id to create a shortcut to an existing file or folder, so an item shows up in a second folder without being copied.
  • get_messages takes page_token and reports the next token when more messages remain, so long spaces can be read past the first page.
  • Cached People API names are kept per signed-in user, so one person's private contact label for a colleague is never shown to another user of the same server.
  • In multi-account mode, a refreshed token for an account other than the one bound to the session is kept instead of being treated as a failed refresh, and a refused rebind no longer wipes another session's binding.
  • Single-user mode finds the stored account regardless of email capitalisation, so a client that sends [email protected] for a saved [email protected] no longer loops on re-auth.
  • Startup logs where the default encrypted OAuth proxy store writes and names the environment variable that selects another backend.
  • The streamable HTTP port check no longer fails on a fast restart because of lingering sockets, and a real bind failure is logged at ERROR so it shows up in container logs.
  • get_form_response lists the files uploaded to file-upload questions instead of leaving those answers blank.
  • list_script_projects includes projects stored in shared drives.
  • When a Gmail or Drive tool falls back after an attachment save fails, the trace span is marked as an error, so a read-only home directory shows up in traced error rates instead of only in logs.
  • pyasn1, pypdf, joserfc and oauthlib move to their latest patch releases.

October 2026 9 releases

v2.3.0

Long reads, one page at a time

Long Drive files and Gmail messages can be read a page at a time instead of landing in the model's context all at once, and Sheets reads come back smaller, with every row labelled by its real row number. Calendar shows reminders and visibility in detailed reads, and Drive can download Google Drawings.

Heads up get_drive_file_content now returns up to 40,000 characters per call and tells you the offset to continue from. Set WORKSPACE_MCP_MAX_CONTENT_CHARS=0 to get whole files again, or pass full_content=True on a single call. read_sheet_values output also changes shape, so anything parsing the old Row 1: [...] lines needs updating.

  • get_drive_file_content pages long text by offset, keeping the fetched file for 10 minutes so later pages skip the re-download. WORKSPACE_MCP_MAX_CONTENT_CHARS sets the page size and WORKSPACE_MCP_PAGED_CONTENT_CACHE_BYTES caps the memory used.
  • get_gmail_message_content takes page_offset and page_size to read a long body in pages of up to 20,000 characters, with expected_sha256 to catch a body that changed between pages.
  • read_sheet_values returns tab-separated rows numbered with the sheet's own row numbers, which uses noticeably fewer tokens and stops writes going to the wrong "Row 1".
  • Detailed get_events reads show custom reminders, non-default visibility and free/busy transparency, so settings made with manage_event can be checked.
  • get_drive_file_download_url exports Google Drawings as PNG by default, or as PDF, JPEG or SVG, instead of failing.
  • Authlib moves to 1.9.1 and dnspython to 2.9.0 or later to clear open security alerts.
v2.2.1

Gmail reads come back whole: mail in other character sets keeps every character, and bodies Gmail tucks behind an attachment are no longer empty. Calendar can change "this and all following" occurrences, comments can be edited and deleted, and Docs can insert person chips.

Heads up The Docs, Sheets and Slides comment tools can now delete comments, so they are marked as destructive. Clients that confirm destructive tools may start asking before using them.

  • Message bodies are decoded with the character set the email declares, so windows-1252, iso-8859-1 and shift_jis mail no longer loses characters.
  • Text and HTML bodies that Gmail stores behind an attachment are fetched instead of coming back empty, in reads, exports, forwards and replies.
  • Message and thread reads take an opt-in include_links that lists the links from the HTML body that the plain-text version leaves out.
  • get_gmail_message_content takes include_headers=False to skip the Subject/From/To/Date summary, and full exports are then named by message ID.
  • HTML signatures sit the right distance below the message instead of under a stack of extra blank lines.
  • manage_event gains this_and_following, which applies an update to one occurrence of a recurring event and every one after it, leaving earlier occurrences alone.
  • Comments on Docs, Sheets and Slides can be edited or deleted, for top-level comments you wrote.
  • batch_update_doc adds an insert_person operation that writes a person chip from an email address.
  • Docs built from markdown use normal paragraph spacing instead of filling the page with empty paragraphs.
  • Dropdown chips show their selected value when a doc is read as markdown or plain text.
  • Python 3.13 is now the default runtime, including the Docker image, and tests run on both 3.11 and 3.13.
v2.2.0

Images the model can actually see

Slides pages and Drive image files come back as real images instead of thumbnail links or base64 text. Docs can edit a section by its heading, Contacts can sync just what changed, and Gmail gains reply-all and smarter reply subjects.

Heads up get_page_thumbnail has been removed from Slides. Use render_page_to_image, which returns the rendered page as an image.

  • render_page_to_image renders a slide at the width you ask for and hands it to the model as an image, so it sees the page directly.
  • get_drive_file_content returns images as images and SVGs as markup, with any embedded pictures attached, instead of base64 text.
  • modify_doc_text can target a section by heading (and heading_level) instead of a raw start_index.
  • get_doc_as_markdown takes an opt-in include_colors that marks colored text in the output.
  • list_contacts supports incremental sync with request_sync_token and sync_token, returning only what changed since the last call.
  • Sending an empty value clears a contact address.
  • manage_event accepts event colors by name or ID (1-11). Out-of-office and focus time events need time zone aware start and end times.
  • Sends and drafts support reply-all.
  • Replies sent without a subject inherit the thread's subject, and Re: detection sees past [list] and ticket tags so prefixes stop piling up.
  • Emails with tables, like many signatures, no longer run words together when converted to plain text.
  • Space search reads every page of results.
  • Resizing rows and columns in the same call applies both correctly.
  • Drive search handles backslashes and apostrophes in queries.
  • list_script_deployments and version listing read every page, so scripts with many deployments or versions are listed in full.
  • The HTTP server restarts cleanly instead of failing with "port already in use" over connections left behind by the previous run, ending crash loops under process managers like PM2.
  • Validation errors read the same way across Calendar, Contacts, Gmail and comments, and the bundled skills are refreshed.
v2.1.2

A big community release. Gmail composes, replies and forwards exactly like Gmail web, Sheets gains borders, dropdowns, merges and tab styling, and HTTP deployments get a Host allowlist and a configurable OAuth consent screen.

  • Sends, drafts, replies and forwards are built the way Gmail web builds them, quoted reply trail and forwarded-message block included. A new direction option handles right-to-left mail.
  • from_email is checked against your send-as addresses, so an unknown alias fails with the valid ones listed instead of quietly sending from your default address.
  • An HTML body that arrives escaped (&lt;div&gt;...) is rejected before sending, so recipients never get raw markup.
  • batch_modify_gmail_message_labels accepts thread_ids to relabel whole conversations at once.
  • Inline images show up inline instead of as attachments.
  • format_sheet_range can merge and unmerge cells, draw borders and add dropdowns, and manage_sheet_tab gains a style action for tab color and gridlines.
  • Markdown tables become real Google Docs tables in populate_from_markdown, and body text after a heading no longer inherits the heading style.
  • debug_table_structure takes tab_id, and table edits fail on an unknown tab instead of silently writing into the first one.
  • list_calendars shows each calendar's time zone, and compact get_events output marks cancelled events so they no longer look live.
  • copy_drive_file can carry comments over with copy_comments.
  • New opt-in WORKSPACE_MCP_ALLOWED_HOSTS rejects requests addressed to any other host, closing a DNS rebinding path.
  • WORKSPACE_MCP_OAUTH_PROXY_REQUIRE_CONSENT=remember shows the consent screen once per browser for each client instead of on every sign-in.
  • --permissions accepts combinations like gmail:readonly+send to grant exactly those scopes and nothing more.
  • The local server starts even when every OAuth callback port is busy, for example with a second copy of Claude Desktop open, and only needs a port once you actually sign in.
  • A streamed response that fails partway, such as a large download, is now reported as failed instead of ending as a clean but truncated success.
  • The Helm chart is published to GHCR on chart releases.
v2.1.1

A reliability release. Gmail never risks sending the same email twice when a connection drops mid-send, and Gmail search, Chat space names, Apps Script deployments, Docs table borders and Drive uploads each get targeted fixes.

  • Sends and forwards are never retried. A timeout or dropped connection returns an error asking you to check Sent, instead of risking a second copy.
  • search_gmail_messages with include_headers lists each result's labels, so a re-saved draft can be told apart from sent mail.
  • send_gmail_message is marked destructive, since a sent email cannot be taken back.
  • When local file access is off, file:// and private-network URLs are refused with a pointer to return_upload_url, the upload route that works there.
  • Attachments with very long names are trimmed to fit instead of failing with "File name too long".
  • One space you can no longer read no longer leaves every later DM and group chat with a fallback name.
  • update_table_cell_style accepts border_width: 0 to hide a cell border.
  • Updating a deployment keeps its existing settings, so changing only the description no longer repoints a pinned deployment to HEAD.
  • OpenTelemetry spans record which auth mode each tool call used and, with WORKSPACE_MCP_OTEL_USER_EMAIL, the Google account it actually ran as under domain-wide delegation.
v2.1.0

Draft forwards and cloud attachment storage

Gmail can save a forward as a draft for review, and attachments can live in Google Cloud Storage so downloads work on scaled-out and stateless deployments. The 60-second Google API timeout that 2.0 cut in half is back.

  • draft_gmail_message can draft a forward of an existing message with forward_message_id, carrying over its subject, body and, optionally, its attachments.
  • Set WORKSPACE_MCP_FILES_GCS_BUCKET to store downloaded attachments in Cloud Storage behind signed URLs. This also turns file downloads back on in stateless mode.
  • The Docker image includes Valkey support, so multi-replica OAuth storage works out of the box.
  • Slow Google API calls like large Doc exports get 60 seconds again, tunable with WORKSPACE_MCP_GOOGLE_API_TIMEOUT_SECONDS.
  • Detailed event output shows the notes attendees leave with their RSVP.
  • manage_out_of_office and manage_focus_time page through long lists instead of stopping at the first page.
  • Drafts with several attachments no longer serve the wrong file after Gmail re-saves them.
  • Optional Docs tool arguments accept an explicit null instead of failing before the tool runs.
  • When your Apps Script API setting is off, the error points you to the switch instead of looking like an auth failure or an outage.
v2.0.1

The first 2.0 patch fixes OAuth sign-in for some clients and sneaks in a few features: reading a single Docs tab, cell-anchored Sheets comments, and comment anchors across Docs, Sheets and Slides.

Heads up manage_spreadsheet_comment now needs the Sheets write scope, so it is no longer available under sheets:readonly.

  • The sign-in challenge asks for the scopes the tools actually need, so clients that follow it get a usable token. A missing scope returns a clear "reconnect and grant access" message.
  • get_doc_content and get_doc_as_markdown take an optional tab_id, so you can read one tab of a large multi-tab doc. get_doc_as_markdown also picks it up from a ?tab= URL.
  • manage_spreadsheet_comment can attach a new comment to a specific cell.
  • Comment listings for Docs, Sheets and Slides show where each comment is anchored, so an agent can find the exact element it refers to.
  • search_drive_files accepts older query fields like title contains, and free-text search handles apostrophes and backslashes.
v2.0.0 Milestone

Version 2.0

A new foundation on FastMCP 4 and MCP SDK v2. Clients on the sessionless 2026-07-28 protocol can reach any replica behind a plain load balancer, with no sticky sessions, while older clients keep the session handshake they use today.

Heads up Every tool works exactly as before. The major version marks the new framework and protocol underneath, not breaking tool changes.

  • Idle HTTP sessions that clients abandon are closed after WORKSPACE_MCP_SESSION_IDLE_TIMEOUT (61 minutes by default), so their memory comes back.
  • WORKSPACE_MCP_GOOGLE_API_WORKERS sizes the pool for Google API calls, and connections to Google are pooled and reused.
  • Docker and Helm shut down cleanly on SIGTERM, and the startup banner shows the modes the server actually resolved.
  • In stdio mode, user_google_email reaches the auth layer correctly in either spelling.
  • set_drive_file_permissions checks every page of permissions before reporting link sharing off, so a public grant past the first page gets removed.
  • get_gmail_attachment_content recovers from stale attachment IDs and picks the right file when several attachments share a size.
v1.30.1

Valkey-backed OAuth storage reconnects after dropped connections and gets a real readiness probe, and Chat search says how much it actually searched.

  • A new /health/ready probe returns 503 when OAuth storage is unreachable or slow, so an instance can be drained instead of restarted. /health stays a pure liveness check.
  • search_messages says when it only searched the first N spaces instead of claiming it covered all of them.
  • Dependency floors raised for oauthlib, urllib3, pyjwt and pypdf to pick up security fixes.

September 2026 8 releases

v1.30.0

Full-fidelity Slides, smarter Gmail filters

Slides reads now capture everything on the page, Gmail filters can be edited and run against mail you already have, and busy multi-user gateways get two new tuning knobs.

Heads up insert_smart_chips has been removed. Write smart chips through modify_sheet_values with chips and chip_type instead.

  • Slides reads can include styles and raw data, table cell text is no longer skipped, and thumbnails can come back inline as images.
  • manage_gmail_filter can update a filter safely and apply it to existing mail, with a dry run to preview what would change.
  • Docs, Sheets and Drive searches include shared drives by default and page through results, so nothing goes silently missing.
  • In stateless mode, get_drive_file_download_url returns the whole file instead of a tiny preview.
  • Optional caching of validated external tokens and a configurable validation pool, so multi-user gateways stop seeing false 401s under load.
  • Reply drafts no longer attach themselves to an emoji reaction at the end of a thread.
  • search_messages looks at the newest messages first, and send_message works in stricter MCP clients.
  • create_form accepts a title and description without erroring.
v1.29.0

Apps Script, consolidated

The Apps Script toolset collapses into a handful of action-based tools and learns to manage triggers. Sheets gets smart chips, and hosted servers can take large Drive uploads without routing file bytes through the model.

Heads up The per-operation Apps Script tools are gone, replaced by action-based tools like manage_script_project, manage_script_content and manage_script_trigger. Update any agent prompts that call the old names.

  • Eight action-based tools replace the old one-tool-per-operation set, freeing a big chunk of tool-list space.
  • Installable triggers can be listed and deleted without opening the script editor.
  • Place Drive file, folder and people smart chips in cells, and read chip details back.
  • create_doc and create_spreadsheet accept a folder_id, so new files land in the right folder in one call.
  • Hosted servers can hand clients a direct upload URL, so large and binary files skip both the server and the model context.
  • Excel text that used to be silently dropped now comes through.
  • Labels support "show if unread", and single-message reads can return headers only.
  • Events can be created with attendee objects as well as plain email addresses.
  • Updating one part of a contact's name no longer wipes the rest of it.
  • Tool schemas are simplified so Gemini clients accept the full tool list.
  • The refresh-token lifetime for OAuth 2.1 proxy logins is now configurable.
v1.28.0

Named ranges and a more honest Gmail

Sheets can manage named ranges, and Gmail is more honest about what it reads and writes. Office file extraction is hardened against files built to balloon in memory.

  • New manage_named_range tool lists, creates, renames, re-targets and deletes named ranges.
  • Emails forwarded as attachments, bounces and digests now show their full contents when read.
  • A bad thread_id returns a clear error instead of quietly creating a draft outside the thread.
  • Renaming a hidden label no longer makes it visible again.
  • Text extraction from .docx, .xlsx and .pptx stops at a size budget (25 MiB by default), so a tiny zip bomb cannot exhaust server memory.
v1.27.1

Google Chat direct messages and group chats show real names, and the room and DM filters work again.

  • DMs and unnamed group chats are labeled after their members ("Alice Smith, Bob Jones and 2 others") instead of "Unnamed Space".
  • Filtering list_spaces by room or DM no longer fails.
v1.27.0

More faithful Docs reading

Reading a Google Doc keeps the context that used to get lost: link destinations, smart chips, table boundaries and footnotes.

  • New preserve_context option on get_doc_content returns a readable view with links, chips, headers, footers and footnotes intact. Default output is unchanged.
  • The Markdown reader handles links split across styles, backticks inside code, and page or section breaks.
  • The server no longer writes unused FastMCP variables into your process environment.
v1.26.2

Calendar events land at exactly the time you asked for, HTML email looks the way it was written, and Drive and Apps Script each lose a crash.

  • Timestamps with an explicit UTC offset keep that exact moment, and confirmations report the saved start, end and duration.
  • Plain line breaks in HTML emails become real breaks instead of one run-on paragraph.
  • Injected signatures are marked so Gmail treats them as signatures.
  • Shared-drive organizer lookups no longer crash with SSL errors.
  • list_script_processes works when given a script ID.
v1.26.1

Apps Script function runs and Docs structure inspection work again, and startup failures are always visible to your MCP client.

  • run_script_function finds the right API Executable deployment automatically and explains the setup when there is none.
  • inspect_doc_structure no longer fails on every call.
  • Damaged Office files are reported as damaged rather than as an "unsupported encoding".
  • Comment tools return properly formatted output, and every fatal startup error is logged where MCP clients can see it.
v1.26.0

Paginated Calendar, editable Chat, colorful labels

A broad feature release. Calendar finally pages through long results, Chat can edit a message it already sent, Gmail labels get colors, Docs edits can target headings instead of fragile indexes, and Sheets can manage its tabs.

  • get_events and list_calendars are paginated, so you find out when there is a 26th event.
  • Events can carry Drive file attachments.
  • send_message can edit an existing message in place.
  • Labels can be created or updated with background and text colors.
  • Read tools accept a tab_id, and inserts can anchor to a heading or a piece of text instead of a raw index that shifts as the doc changes.
  • New manage_sheet_tab renames, deletes, hides, unhides and reorders tabs.
  • Presentation reads can include each element's position and size.
  • A new WORKSPACE_MCP_MAX_FILE_BYTES cap keeps oversized downloads from running the server out of memory.
  • OAuth 2.1 can read credentials from the client secrets file instead of requiring environment variables.

August 2026 6 releases

v1.25.2

Gmail replies land on the right message, Calendar understands recurring series, and Drive uploads get integrity and safety checks.

  • Replies target the latest real message in a thread, not an older one or an existing draft.
  • list_gmail_labels can filter by prefix, cutting one large account's response from 72 KB to under 1 KB.
  • get_events can show recurring events as one series or as individual occurrences.
  • Inline uploads are validated with SHA-256 checks, a 100 MB ceiling and zip-bomb protection.
  • Word document extraction reads headers, footers, footnotes and endnotes with cleaner spacing.
  • Deployments show which script version they point at.
  • Token expiry thresholds are configurable, and a slow token check no longer blocks the whole server.
v1.25.1

Accuracy fixes across Gmail, Calendar timezones, Drive shortcuts and log privacy.

  • Start and end times can use different timezones, and invalid timezones are rejected early.
  • Batch label changes report what Gmail actually did, not what was requested.
  • Drafts use your default Send-As identity, and reads include the Reply-To header.
  • Renaming or moving a shortcut no longer renames the file it points to.
  • Search queries, subjects, file names and other free text are kept out of normal logs.
v1.25.0

Large Drive downloads stream to disk instead of memory, stored attachments actually expire after a restart, and tools accept the camelCase argument names some clients send.

  • Downloads stream in 8 MB chunks, so a multi-gigabyte file costs one chunk of RAM.
  • Stored attachments are cleaned up by age, so a restart no longer leaves them on disk forever.
  • Event times include the weekday, so models stop guessing the wrong day.
  • Arguments like calendarId or maxResults are mapped to their snake_case names instead of failing validation.
v1.24.1

The ChatGPT connector can sign in again, OAuth 2.1 misconfiguration fails at startup with a clear message, and individual tools can be blocked by name.

Heads up OAuth 2.1 mode now requires GOOGLE_OAUTH_CLIENT_SECRET from a Web application client. The old "secretless" setup never completed sign-in, so the server now refuses to start until the secret is set.

  • ChatGPT developer-mode connectors complete their sign-in again.
  • OAuth 2.1 checks for the client secret at startup instead of failing on the last step of sign-in.
  • New --disabled-tools flag (or WORKSPACE_MCP_DISABLED_TOOLS) removes specific tools while keeping the rest of a tier.
v1.24.0

Real replies from send, and speaker notes

Sending mail gets the reply smarts drafts already had, Drive can append to files without converting them, and Slides speaker notes are readable and editable.

  • send_gmail_message can reply in-thread, reply all and quote the original.
  • Search results can include subject, sender and date, saving a second lookup.
  • Batch fetches retry rate-limited requests instead of quietly returning fewer messages.
  • File updates can replace, append or prepend, and keep .md, .txt and .pdf files in their original format.
  • Resumable uploads and shared-drive permission reads work correctly.
  • Read, replace, append or clear speaker notes.
  • Styling fixes, plus per-edge border control for table cells and paragraphs.
  • Reverse-proxy setups can opt in to accepting consent from a null origin.
v1.23.1

Multi-user identity fixes and a CLI quoting fix.

  • Identity is resolved on every request, so clients that open a new session per call always act as the right user.
  • workspace-cli no longer strips quotes from values, which fixes exact-phrase Gmail searches.

July 2026 3 releases

v1.23.0 Milestone

Gateway auth

Run the server behind an identity-aware proxy like Pomerium, Cloudflare Access or oauth2-proxy with true per-user isolation. Also: tools that returned the wrong thing now return the right one, and Apps Script updates stop deleting files you didn't touch.

  • New TRUST_GATEWAY_IDENTITY mode verifies the proxy's signed identity and uses it for every request. It fails closed: no valid assertion, no access.
  • Search skips trashed files by default.
  • Structure inspection works on documents with tabs.
  • Single and ranged event lookups return the same details.
  • Very large reads are capped at 1,000 rows to protect memory.
  • Updating a script merges your files into the project instead of replacing everything.
  • Optional per-user attribution in OpenTelemetry traces, and a cleaner startup screen.
v1.22.2

The hourly OAuth 2.1 re-login loop is gone, Sheets and Gmail return complete data, and OpenTelemetry tracing is available.

Heads up read_sheet_values no longer stops at 50 rows. If you relied on that cap, set range_name explicitly.

  • OAuth 2.1 proxy sessions refresh in the background instead of forcing a new sign-in every hour.
  • Reads return every row fetched, and malformed column references raise clear errors.
  • Messages can be exported in full without truncation, and thread reads include To and Cc.
  • Pin table header rows to repeat across pages, and set row heights.
  • Optional OpenTelemetry tracing using the standard OTEL_* settings, plus security updates.
v1.22.1

Fixes for Apps Script deployments, Slides inspection, Gmail reply threading, and startup when several servers launch at once.

  • Updating a deployment works and can point it at a new script version.
  • Pages show charts, images, videos and WordArt instead of "Unknown", including the spreadsheet behind a linked chart.
  • Reply drafts appear inside the original conversation, and multi-line signatures keep their line breaks.
  • Personal and work servers starting together no longer race and crash.

June 2026 3 releases

v1.22.0

Zoom, Teams and forwarding

Calendar events can carry Zoom, Webex or Teams links, Gmail can forward messages, and self-hosters can brand the sign-in screen.

  • Attach third-party conferencing (Zoom, Webex, Teams) to events, not only Google Meet.
  • New forward_gmail_message tool, attachments included.
  • Create Drive files directly from binary content.
  • Customize the OAuth consent page with your own name, logo and website, and get clearer diagnostics when token checks fail.
  • Form publish settings save correctly.
  • Comment listing is paginated, and the Helm chart gains persistent volumes.
v1.21.3

A security update and a Gmail fix.

  • Reply drafts created with a thread_id show up in the Gmail interface again.
  • Security update for pypdf.
v1.21.2

Contact birthdays, and fixes for hangs and port exhaustion.

  • Set or clear a contact's birthday.
  • Google API calls time out instead of hanging indefinitely.
  • Local mode no longer grabs its callback port at startup, so leftover processes cannot exhaust the port range.

May 2026 4 releases

v1.21.1

A smoother first sign-in, inline images in email, and Office-to-Google conversion on upload.

  • Sign-in opens your browser automatically and can pre-fill the account.
  • Embed images directly in message bodies.
  • Office files convert to native Google Slides and Sheets on import.
  • Text inside grouped shapes is read correctly.
  • Events show their creator and organizer, and editing Meet events no longer errors.
  • Running functions with parameters, creating versions and deleting projects work again.
  • Fixes a re-login loop after reauthorizing.
v1.21.0

Token passthrough and richer contacts

Run without sharing your client secret, write more contact fields, and stop fighting over port 8000 when several servers start.

  • Token passthrough mode validates bearer tokens and forwards them to Google, so the server never needs the client secret.
  • OAuth picks the first free port in a small range, ending "port already in use" errors across multiple processes.
  • Write support for nicknames, websites, custom fields and relationships.
  • Permission checks also return parent folders, owners, creation date and trash status.
  • Attachment filenames are safe to save on Windows.
  • Dates that arrive double-quoted or as "null" from some clients are handled gracefully.
v1.20.4

Per-request impersonation for service accounts, shared drive listing, and more resilient writes.

  • Domain-wide delegation can act as a different user on each call, with an optional domain allowlist.
  • New list_shared_drives tool.
  • Writes to Drive, Docs and Gmail retry on transient failures.
  • Invalid text inserts are caught before they reach the API.
  • Script execution gets the scopes it needs.
  • Fixes a GitHub Actions workflow vulnerability.
v1.20.3

Tool titles, a Claude Code plugin, and the Claude Desktop bundle moves from DXT to MCPB.

  • Every tool has a human-readable title and complete annotations.
  • A Claude Code marketplace plugin, and the Claude Desktop bundle switches from .dxt to .mcpb.
  • Choose whether to include your signature when sending.
  • New duplicate_sheet tool.
  • More reliable sender names.

April 2026 8 releases

v1.20.1

Credentials in Google Cloud Storage, new Sheets row tools, and a round of sign-in security fixes.

  • Store credentials in Google Cloud Storage.
  • Delete and move rows.
  • Replace a tab's content from Markdown.
  • Attachments can be returned as base64, and trashed messages no longer cause ghost reply drafts.
  • OAuth callbacks escape HTML and refuse foreign listeners on the callback port, and allowed redirect URIs are configurable.
v1.20.0

Email Drive files as attachments, notify guests of calendar changes, and more reliable single-user sign-in.

  • Attach Drive files to emails, and see attachment details in batch and thread reads.
  • Choose whether guests are notified on create, update and delete, and add descriptions to focus time.
  • Single-user mode survives two processes starting at once and no longer breaks hourly for secondary accounts.
  • Shared drive sorting fixed.
  • Tighter security on the attachment directory.
v1.19.0

Secretless PKCE and PDF text

A big one: sign-in without a client secret for public clients, PDF text extraction, a Google Workspace skill, and richer Chat and Contacts.

  • PKCE sign-in for public clients, no client secret required.
  • Read the text inside PDFs, and pass images straight through.
  • Multiple phone numbers and emails per contact, with merge modes.
  • Message search no longer crashes under parallel load.
  • A Google Workspace skill for agents, plus compatibility fixes for Claude Cowork.
v1.18.0

Scary Mode

Service-account authentication with domain-wide delegation, for administrators who know exactly what that implies.

Heads up Only enable service-account mode if you understand domain-wide delegation and have controls in place. It lets the server act as users across your domain.

  • Service accounts via key file or inline JSON, validated at startup.
  • New resize_sheet_dimensions tool.
  • Due dates are validated before they reach Google.
v1.17.3

Complete table editing in Docs, a new calendar tool, and tighter credential file security.

  • Full table operations in batch_update_doc.
  • New create_calendar tool.
  • Credential files are saved with owner-only permissions, and their paths are sanitized.
v1.17.2

Focus time, RSVPs, Sheets tables, and smart chips in Markdown.

  • Manage focus time, and RSVP to events you don't organize.
  • Structured table support.
  • Markdown output renders smart chips, tabs and every paragraph element, and tables fill their cells reliably.
  • Single-user mode fills in your email automatically.
v1.17.1

Restores a dependency the calendar tools needed.

  • Adds the missing pytz dependency.
v1.17.0

A Gmail drafts overhaul, out-of-office events, and formulas in Sheets reads.

  • Drafts overhauled end to end.
  • Manage out-of-office events.
  • Read formulas alongside values.
  • Moves to FastMCP 3.2, fixing disk storage issues.

March 2026 9 releases

v1.16.2

A small change with a big effect: Google Docs created with sophisticated formatting come out far closer to what you asked for.

  • Much richer formatting when building documents, including table background colors.
v1.16.1

Claude Desktop fixes and raw email access.

  • Fetch messages as HTML or raw source.
  • Claude Desktop bundle and local stdio mode fixed.
v1.16.0

Native CLI mode

A persistent workspace-cli for listing and calling tools, with encrypted token caching. Built for machine-to-machine use and central enterprise instances.

  • workspace-cli lists and invokes tools against local or remote servers.
  • Tokens are cached on disk, encrypted.
v1.15.1

Workarounds for Claude Cowork and Claude Desktop sending malformed arguments, plus suggestion views and mailing list headers.

  • Accepts list and object arguments that some Claude clients send as strings.
  • Read documents with suggestions shown or hidden, and improved comment tools.
  • Mailing list headers are exposed for spotting bulk mail.
v1.15.0

Quality of life

Fewer "almost works" moments: reply drafts thread properly, re-authentication stops looping, and stateless mode really is stateless.

  • Long-lived local setups refresh tokens instead of sending you back through sign-in, and re-auth skips unnecessary consent prompts.
  • Reply drafts thread inline and can quote the original, with the signature above the quote like a real reply.
  • Stateless mode is honored end to end, so restarts no longer break clients.
  • Reads can include cell notes.
  • Title and subtitle styles, plus strikethrough.
  • Meeting links appear in event output.
  • Message reads support filters and time-bounded search.
v1.14.3

Tasks permissions, Docker disk storage, bullet lists and richer Forms reads.

  • New tasks:manage permission level.
  • Create bullet lists in batch updates.
  • get_form returns more of the form's structure.
  • Disk storage in Docker fixed.
  • Re-authentication is only suggested for actual auth errors.
v1.14.2

Google Docs tabs and a better fallback for HTML email.

  • Work with document tabs.
  • Better handling when an email only has an HTML body.
  • Single-user mode tells the model which account it is using.
v1.14.1

Sign-in fixes for local stdio mode.

  • PKCE is set up correctly on the very first sign-in.
  • Fixes a CORS middleware crash.
v1.14.0 Milestone

Consolidated toolset

Dozens of single-purpose tools merged into action-based ones like manage_event and manage_contact. Same capabilities, a much smaller tool list for your model to read.

Heads up Breaking for agents that call tools by name: create, update and delete tools became single manage_* tools with an action. Everyday chat use is unaffected.

  • New action-based tools: manage_event, manage_drive_access, manage_task, manage_task_list, manage_contact, manage_contacts_batch, manage_contact_group, manage_deployment, manage_gmail_filter and manage_conditional_formatting.
  • Drafts include your signature and keep their attachments when sent.
  • Checkbox handling.
  • Safer XML parsing with defusedxml.

February 2026 10 releases

v1.13.1

Granular permissions

Choose exactly how much access each service gets, work with partially granted scopes, and search Drive by file type.

  • Per-service permission levels, and support for partially granted scopes.
  • Search by file type, hide extra details, and page through results reliably.
v1.13.0 Milestone

FastMCP v3

The server moves to the next generation of FastMCP, plus attachment fixes.

  • Upgraded to FastMCP v3.
  • Windows attachment corruption fixed, and non-ASCII filenames are encoded properly.
v1.12.0

People, Markdown and attachments

Chat learns who's talking, Docs can be read as Markdown with comments, and Drive can create folders.

  • Real sender names via the People API, plus rich links, threads, reactions and attachments.
  • New get_doc_as_markdown with comment context, and comments show the text they are anchored to.
  • New create_drive_folder tool.
  • Sign-in refreshes automatically when the requested scopes change.
v1.11.2

Attachment security hardening and paragraph styling.

  • Hardened attachment handling and storage paths.
  • Paragraph styling in batch updates.
v1.11.1

A large batch of fixes as community contributions picked up pace.

  • SSRF protection when creating files from URLs.
  • Message ID headers so replies thread properly in non-Gmail clients.
  • Refreshes persist, and Docs and Sheets tools get the Drive scopes they need.
  • Script files load correctly, and schemas work with LangChain's Gemini integration.
  • CLI mode fixes and an official Docker publish workflow.
v1.10.7 Milestone

Listed in the MCP Registry

Published to the official MCP Registry. No functional changes.

v1.10.1

Drive permissions, Docs lists and Sheets hyperlinks.

  • New Drive permissions tool.
  • Bulleted and numbered lists at the paragraph level.
  • Hyperlinks in cells.
v1.10.0

Sheets formatting and better external token handling.

  • Text wrapping, alignment and fonts in format_sheet_range.
  • JWT handling improvements and external OAuth token fixes.
v1.9.0 Milestone

CLI mode

Use Google Workspace without MCP at all. Full CLI mode makes the server a natural fit for coding agents like Claude Code and Codex.

  • End-to-end CLI mode for every tool.
  • --read-only mode limits the server to read-only tools and scopes.
  • Styling tools, plus import_to_google_doc.
  • Configurable host, and a memory leak fix.

January 2026 4 releases

v1.8.3

Google Contacts

Google Contacts joins the lineup, and Gmail can send attachments.

  • Google Contacts support via the People API.
  • Send emails with attachments, and set a sender display name.
v1.8.2

Batch updates for Google Forms.

  • New batch_update_form tool.
  • External OAuth 2.1 provider fix.
v1.8.1

Compatibility fixes for FastMCP 2.14.4.

  • Access tokens are retrieved correctly on FastMCP 2.14.4.
  • Tool tier configuration fix.
v1.8.0

Apps Script arrives

Google Apps Script joins the lineup, Calendar gains free/busy and guest controls, and Gmail supports Send As.

  • New Google Apps Script integration.
  • Free/busy lookups and guest permission controls.
  • Send As for sends and drafts, and Date headers in message reads.
  • Export spreadsheets to PDF.
  • Copy any kind of Drive file.
  • Multi-account credential directories, and auth errors return 401.

December 2025 5 releases

v1.7.1

Valkey becomes optional so Windows uvx installs work.

  • The Valkey dependency is now optional.
v1.7.0

Pluggable storage

Choose where sessions live: memory, disk or Valkey. Plus Message-ID support and attachment serving fixes.

  • Pluggable storage backends: memory, disk and Valkey.
  • RFC 822 Message-ID support.
  • Attendee details and event colors survive when events are edited.
  • Exports from shared drives fixed.
v1.6.3

Gmail filters, cleaner HTML email and Drive sharing controls.

  • Create, list and delete Gmail filters.
  • HTML-only emails are handled gracefully.
  • Sharing and permission management tools.
  • Clearer error details on reads and writes.
v1.6.2

Rich Sheets formatting, Slides text extraction and direct download links.

  • Text and background colors, conditional formatting, and tab title fixes.
  • get_presentation extracts slide text.
  • Control event visibility.
  • New get_drive_file_download_url for HTTP downloads.
v1.6.1

Attachments served over HTTP, Gmail pagination and a token refresh fix.

  • Attachments are served by URL, and search is paginated.
  • Token refresh is no longer blocked by an unnecessary file check.

November 2025 3 releases

v1.6.0

Drive shortcuts and media fixes.

  • Drive shortcuts are supported.
  • Media downloads fixed, and multi-service tools stop asking the client for internal parameters.
v1.5.5

Every Drive call works with shared drives, plus file metadata updates.

  • Shared drives are supported everywhere, and update_drive_file manages metadata.
  • Create files from file:// URLs.
  • To and Cc in message metadata.
v1.5.4

Gmail attachments, external OAuth providers and memory-friendly downloads.

  • Read attachments, send from the right address, and draft in HTML.
  • External OAuth 2.1 provider mode for bearer tokens.
  • Event attachment details and better timezone handling.
  • Downloads use temp files to save memory.

October 2025 4 releases

v1.5.3

HTML drafts, calendar attachment details and timezone fixes.

  • Draft messages in HTML.
  • Attachment details on events, and timezone-aware times.
  • Tasks fix.
v1.5.0

Native OAuth 2.1

OAuth 2.1 moves onto FastMCP's native provider, Gmail sends HTML, and calendar events show who's coming.

  • Native FastMCP OAuth 2.1 provider support.
  • Send HTML email.
  • Attendee responses, and a busy/free transparency option.

September 2025 3 releases

v1.4.8

Subtasks in Google Tasks and legacy OAuth compatibility.

  • Subtask hierarchy is shown, and parameters work across clients.
  • Legacy OAuth sessions work alongside modern methods.

August 2025 15 releases

v1.4.5

Only the scopes your enabled tools need are requested.

  • Scope requests follow the enabled tool set.
v1.4.4

Stateless mode for containers, and Docs to PDF.

  • Stateless mode for container deployments.
  • Export Google Docs to PDF.
v1.4.3

Safer logging and reverse proxy support.

  • WORKSPACE_EXTERNAL_URL for proxies, Docker Compose for local development, and safer log formatting.
v1.4.2

Insert images into Docs and check Drive permissions.

  • Insert images into documents.
  • Check file permissions before sharing.
v1.4.1

Clear guidance when a Drive file needs public sharing.

  • Detects when a file must be shared publicly and explains what to do.
v1.4.0 Milestone

Tool tiers

Load only the tools you need with core, extended and complete tiers. Also HTML email bodies and a cleaner multi-user mode.

  • Tool tiers for granular tool registration.
  • HTML body extraction with a text fallback.
  • Multi-user mode no longer needs a user_google_email parameter, and the credential store is pluggable.
  • Tasks are sorted the way Google Tasks shows them.
v1.3.2

Finer-grained Google Docs editing.

  • More precise document editing.
  • modify_sheet_values accepts values passed as a JSON string.
v1.3.0

Seamless OAuth for all

OAuth dramatically simplified. Multi-user sign-in works in Claude Code, VS Code, MCP Inspector and more, with no migration needed.

v1.2.0 Milestone

OAuth 2.1 and multi-user

Full client-to-server OAuth 2.1 following the June 2025 MCP spec, unlocking secure multi-user deployments. The largest change in the project to date.

  • OAuth 2.1 for secure, multi-tenant access.
  • Threaded replies, CC and BCC for sends and drafts.
  • Slide thumbnails fixed.

July 2025 17 releases

v1.1.16

Google Programmable Search Engine support.

  • Search the web through Google Programmable Search Engine.
v1.1.15

Create and edit events with Google Meet links.

  • Google Meet support when creating and editing events.
v1.1.12

Calendar search, and instant start for mcpo.

  • Search events by text.
v1.1.9

Batch Gmail label changes and Docs tabs.

  • Change labels on many messages at once.
  • get_doc_content reads every tab.
v1.1.8

Batch thread retrieval and automatic retries for network hiccups.

  • Fetch many threads in a single call.
  • Read operations retry transient SSL errors with backoff.
v1.1.5

The Claude Desktop extension ships with every release, plus a redirect URI fix.

v1.1.4

Google Tasks

Full Google Tasks management: lists, tasks, subtasks, moves and cleanup.

  • Create, update, move and delete tasks and task lists, and clear completed tasks.
v1.1.2 Milestone

One-click Claude Desktop install

Install through Anthropic's Desktop Extensions for a fully point-and-click setup.

v1.0.4

Comments everywhere

Read, reply to and resolve comments in Docs, Sheets, Slides and Drive.

  • Comment tools across Docs, Sheets, Slides and Drive.
  • USER_GOOGLE_EMAIL sets a default account for sign-in.

June 2025 4 releases

v1.0.3

Configure OAuth with environment variables, and manage Docs comments.

  • GOOGLE_OAUTH_CLIENT_ID and GOOGLE_OAUTH_CLIENT_SECRET environment variables.
  • Read, create, reply to and resolve document comments.
v1.0.2

Calendar attachments, Drive files from URLs, and consistent error handling.

  • Attach Drive files to events, and fetch a single event.
  • Create files from a public URL.
  • Consistent error handling across every service.
v1.0.0 Milestone

Version 1.0

From proof of concept to production: Streamable HTTP, Sheets, Slides, Forms and Chat, a single-user mode for desktop assistants, and a rebuilt Docker image.

Heads up The package was renamed from google-workspace-mcp to workspace-mcp, and the server now starts with the workspace-mcp command.

  • Google Sheets: read, write, create and format.
  • Google Slides: create presentations and edit slides.
  • Google Forms: create forms and read responses.
  • Google Chat: list spaces, read, send and search messages.
  • Streamable HTTP transport and single-user mode.

May 2025 1 release

0.1.0 Milestone

First release

Gmail, Drive, Docs and Calendar over MCP, with OAuth sign-in.

  • Search and read Gmail.
  • Search and read Drive files.
  • Google Docs support.
  • List, create, modify and delete events.