This release includes 2 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+14 more
Affected surfaces
Summary
AI summaryPackage renamed from google-workspace-mcp to workspace-mcp and entry‑point changed.
Full changelog
📦 Release v1.0.0 – Streamable-HTTP & Single-User Edition
(package name 302 google-workspace-mcp, now workspace-mcp due to pypi name conflict)
A major overhaul that graduates the project from PoC to a production-ready MCP server with first-class Streamable-HTTP support, richer Google Workspace coverage, and a revamped developer experience.
🔧 Expanded Toolset (v1.0.0)
Service | Icon | Key Capabilities
-- | -- | --
Google Sheets | 📊 | Read / write ranges, create spreadsheets, add sheets, batch updates, formatting helpers
Google Slides | 🖼️ | Create presentations, insert slides, update text & images, export to PDF
Google Forms | 📝 | Create forms, get & list responses, adjust publish / auth settings
Google Chat | 💬 | List spaces, fetch messages, send or search chat history
All new modules live under
g{service}/(e.g.gsheets/sheets_tools.py) and are auto-registered when you start the server withworkspace-mcp --tools sheets slides forms chat
🚀 Highlights
Area | What’s New
-- | --
Transport Layer | Supports everything, Stdio, Streamable-HTTP is now a first-class citizen (SSE fallback kept). Unified CLI flag --transport [stdio|streamable-http].
Docker | Completely rebuilt Dockerfile• Debian Slim base → smaller image• System deps & uv pre-installed for blazing-fast lockfile installs• Health-checks, non-root user, debug hooks
Auth | New transport-aware OAuth callback server• Works in both stdio & HTTP modes• Centralised HTML success/error templates• auth/google_auth.py refactor → cleaner caching, PKCE refresh, single-user shortcut
Single-User Mode | --single-user (or MCP_SINGLE_USER_MODE=1) lets you bypass per-session state and reuse any creds in .credentials/. Perfect for desktop assistants.
Tooling | install_claude.py one-liner auto-wires the server into Claude Desktop.
CLI & Logging | Rich argparse interface, coloured startup banner, credential-directory pre-flight, file + console logging split by level.
Docs | README completely rewritten: clearer quick-start, animated demo, new badges, expanded tool matrix (Calendar, Drive, Gmail, Docs, Sheets, Slides, Forms, Chat).
Packaging | • Package renamed to workspace-mcp • Version bumped to 1.0.0 • workspace-mcp entry-point script • pyproject.toml now PEP 621 + curated classifiers
Cleanup | Removed legacy auth/oauth_manager.py; many files reorganised for clarity.
💥 Breaking Changes
-
Package rename
pip uninstall google-workspace-mcp pip install workspace-mcp==1.0.0 -
Entry-point
# old uv run main.py # new workspace-mcp [flags] -
CLI flags changed (
--transport,--single-user,--tools …). -
OAuth redirect URI remains
http://localhost:8000/oauth2callback, but stdio mode now spins up a minimal FastAPI server automatically—remove your oldoauth_callback_serverwork-arounds. -
Docker users: rebuild with
docker build -t workspace-mcp:1.0 .(old image tags won’t work).
See Migration Guide below for one-liner updates.
📝 Detailed Changelog — v1.0.0
➕ Added
File / Feature | Purpose
-- | --
auth/oauth_callback_server.py | Lightweight HTTP callback server for OAuth when running in stdio mode.
auth/oauth_responses.py | Re-usable HTML templates for OAuth success / error pages.
install_claude.py | One-command installer that wires the server into Claude Desktop.
New CLI flags | --single-user, --transport, --tools for fine-grained startup control.
Docker | Health-check endpoint, non-root user, and credential-directory safety check.
➖ Removed
-
auth/oauth_manager.py— logic merged into the new auth modules.
🛠️ Migration Guide
# 1 — Upgrade package
pip install -U workspace-mcp
2 — (If using Docker) rebuild image
docker build -t workspace-mcp:1.0 .
3 — Use the new entry-point
workspace-mcp --transport streamable-http # or omit flag for stdio
4 — (Optional) Single-user desktop mode
export MCP_SINGLE_USER_MODE=1
5 — (Re)generate uv.lock if you track lockfiles
uv lock # first-time create
uv lock --upgrade # refresh to latest allowed versions
🔒 Security Notes
-
Credentials now include
expirytimestamps; stale refresh tokens trigger re-auth gracefully. -
.credentials/directory check prevents container failures due to volume-permission mismatches. -
OAuth callback still defaults to HTTP on localhost—remember to switch to HTTPS in production.
🙏 Acknowledgements
Huge thanks to everyone who provided early feedback, especially testing Streamable-HTTP convergence with Claude Desktop.
Happy building!
— @taylorwilsdon / workspace-mcp team
Breaking Changes
- Package name changed from google-workspace-mcp to workspace-mcp; uninstall old package and reinstall new one.
- Execution entry‑point changed from `uv run main.py` to the command `workspace-mcp [flags]`.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About taylorwilsdon/google_workspace_mcp
Comprehensive Google Workspace MCP server with full support for Google Calendar, Drive, Gmail, and Docs, Forms, Chats, Slides and Sheets over stdio, Streamable HTTP and SSE transports.
Related context
Beta — feedback welcome: [email protected]