github taylorwilsdon/google_workspace_mcp v1.0.0

latest releases: v1.4.5, v1.4.4, v1.4.3...
2 months ago

📦 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 with

workspace-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

  1. Package rename

    pip uninstall google-workspace-mcp
    pip install workspace-mcp==1.0.0
    
  2. Entry-point

    # old
    uv run main.py
    # new
    workspace-mcp [flags]
    
  3. CLI flags changed (--transport, --single-user, --tools …).

  4. OAuth redirect URI remains http://localhost:8000/oauth2callback, but stdio mode now spins up a minimal FastAPI server automatically—remove your old oauth_callback_server work-arounds.

  5. 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 expiry timestamps; 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

Don't miss a new google_workspace_mcp release

NewReleases is sending notifications on new releases.