| **For Security Teams** By default, this server sends no data anywhere except Google's APIs, on behalf of the authenticated user, using your own OAuth client credentials. There is no usage reporting, analytics, license server, or SaaS dependency outside optional OTel support for your own usage. - **Fully open source** — every line is auditable in this repo - **Your OAuth client, your GCP project** — credentials never leave your environment & you control scopes - **You control the network** — deploy behind your reverse proxy, in your VPC, on your own terms - **Stateless mode** — zero disk writes for locked-down container environments - **Sensitive path blocking** — local file reads default to the managed attachment directory, and `validate_file_path()` still blocks `.env*` files plus common home-directory credential stores such as `~/.ssh/` and `~/.aws/` even if `ALLOWED_FILE_DIRS` is broadened Full dependency tree in `pyproject.toml`, pinned in `uv.lock`. | **For Legal & Procurement** This project is [MIT licensed](LICENSE) — - **Use commercially without restriction** — build products, sell services, deploy internally - **Fork, embed, redistribute** — MIT requires only attribution - **No CLA** — contributions remain under MIT - **No built-in telemetry to disclose** — optional tracing is off unless you configure it - **No network effects** — the server never contacts any endpoint you didn't configure - **Standard dependency licenses** — MIT, Apache 2.0, and BSD throughout the dependency chain; no copyleft, no AGPL |
📧Gmail15 tools - search, send, draft, labels, filters, attachments |
📁Drive16 tools - search, create, share, import Office files |
📅Calendar7 tools - events, free/busy, Out of Office, Focus Time |
📝Docs19 tools - edit, style, tables, tabs, comments, export |
📊Sheets14 tools - ranges, tables, formatting, conditional rules |
🖼️Slides7 tools - create, batch update, slide images, comments |
📋Forms6 tools - build forms, publish, read responses |
✅Tasks6 tools - tasks & lists with hierarchy |
👤Contacts8 tools - people, groups, batch operations |
💬Chat6 tools - spaces, messages, search, reactions |
🔍Custom Search2 tools - programmable web search |
⚡Apps Script15 tools - write, deploy, run & debug scripts |
| **Confidential Client** ```bash # 1. Credentials export GOOGLE_OAUTH_CLIENT_ID="..." export GOOGLE_OAUTH_CLIENT_SECRET="..." # 2. Launch - pick a tier uvx workspace-mcp --tool-tier core # essential tools uvx workspace-mcp --tool-tier extended # core + management ops uvx workspace-mcp --tool-tier complete # everything # Or cherry-pick services uvx workspace-mcp --tools gmail drive calendar ``` | **OAuth 2.1 (PKCE)** ```bash # 1. Credentials - MCP clients connect with PKCE and no # secret, but Google still requires one server-side export MCP_ENABLE_OAUTH21=true export GOOGLE_OAUTH_CLIENT_ID="..." export GOOGLE_OAUTH_CLIENT_SECRET="..." # Alternatively, point GOOGLE_CLIENT_SECRET_PATH at a client_secret.json # that contains the client id and secret (env vars take precedence). export WORKSPACE_MCP_PORT=8000 export GOOGLE_OAUTH_REDIRECT_URI="http://localhost:${WORKSPACE_MCP_PORT}/oauth2callback" export OAUTHLIB_INSECURE_TRANSPORT=1 # 2. Launch - OAuth 2.1 requires HTTP transport uvx workspace-mcp --transport streamable-http --tool-tier core ``` |