{"id":29113616,"url":"https://github.com/taylorwilsdon/google_workspace_mcp","last_synced_at":"2026-08-31T14:15:05.032Z","repository":{"id":290241724,"uuid":"973788136","full_name":"taylorwilsdon/google_workspace_mcp","owner":"taylorwilsdon","description":"Control Gmail, Google Calendar, Docs, Sheets, Slides, Chat, Forms, Tasks, Search \u0026 Drive with AI - Comprehensive Google Workspace MCP Server \u0026 CLI Tool","archived":false,"fork":false,"pushed_at":"2026-08-27T19:33:31.000Z","size":17640,"stargazers_count":3076,"open_issues_count":187,"forks_count":965,"subscribers_count":17,"default_branch":"main","last_synced_at":"2026-08-27T20:31:48.023Z","etag":null,"topics":["ai","chatgpt","claude","claude-code","claude-desktop","gmail","google-calendar","google-chat","google-docs","google-drive","google-forms","google-sheets","google-tasks","google-workspace","gsuite","llm","llm-tools","mcp","mcp-server","model-context-protocol-server"],"latest_commit_sha":null,"homepage":"https://workspacemcp.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taylorwilsdon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null},"funding":{"github":"taylorwilsdon"}},"created_at":"2025-04-27T18:31:13.000Z","updated_at":"2026-08-27T14:34:29.000Z","dependencies_parsed_at":"2026-08-17T01:24:37.922Z","dependency_job_id":null,"html_url":"https://github.com/taylorwilsdon/google_workspace_mcp","commit_stats":null,"previous_names":["taylorwilsdon/google_workspace_mcp"],"tags_count":110,"template":false,"template_full_name":null,"purl":"pkg:github/taylorwilsdon/google_workspace_mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylorwilsdon%2Fgoogle_workspace_mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylorwilsdon%2Fgoogle_workspace_mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylorwilsdon%2Fgoogle_workspace_mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylorwilsdon%2Fgoogle_workspace_mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taylorwilsdon","download_url":"https://codeload.github.com/taylorwilsdon/google_workspace_mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylorwilsdon%2Fgoogle_workspace_mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36969218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-29T02:00:05.978Z","response_time":51,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chatgpt","claude","claude-code","claude-desktop","gmail","google-calendar","google-chat","google-docs","google-drive","google-forms","google-sheets","google-tasks","google-workspace","gsuite","llm","llm-tools","mcp","mcp-server","model-context-protocol-server"],"created_at":"2025-06-29T11:05:41.834Z","updated_at":"2026-08-31T14:15:05.014Z","avatar_url":"https://github.com/taylorwilsdon.png","language":"Python","funding_links":["https://github.com/sponsors/taylorwilsdon"],"categories":["Productivity","Workflow \u0026 Automation Mcp Servers","📚 Projects (1974 total)","Community Servers","پیاده‌سازی‌های سرور","Python","Communication","The latest additions 🎉","Containerised MCP Servers","📦 Other","Workplace \u0026 Productivity","🤖 AI \u0026 Machine Learning","可用服务","MCP Servers \u0026 Protocol","📂 By Category","🏢 Workplace \u0026 Productivity (25 servers)","MCP Ecosystem","Server Implementations","MCP Servers","Servers"],"sub_categories":["Google Workspace","MCP Servers","🏢 \u003ca name=\"workplace-and-productivity\"\u003e\u003c/a\u003eمحیط کار و بهره‌وری","How to Submit","Usage","Web \u0026 Content","生产力工具","📊 Productivity \u0026 Collaboration","Servers","🏢 \u003ca name=\"workplace-and-productivity\"\u003e\u003c/a\u003eWorkplace \u0026 Productivity","Other MCP Servers","Productivity"],"readme":"\u003c!-- mcp-name: io.github.taylorwilsdon/workspace-mcp --\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# \u003cspan style=\"color:#cad8d9\"\u003eGoogle Workspace MCP Server\u003c/span\u003e \u003cimg src=\"https://github.com/user-attachments/assets/b89524e4-6e6e-49e6-ba77-00d6df0c6e5c\" width=\"80\" align=\"right\" /\u003e\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://www.python.org/downloads/)\n[![PyPI](https://img.shields.io/pypi/v/workspace-mcp.svg)](https://pypi.org/project/workspace-mcp/)\n[![PyPI Downloads](https://static.pepy.tech/personalized-badge/workspace-mcp?period=total\u0026units=NONE\u0026left_color=GREY\u0026right_color=BLUE\u0026left_text=pypi+downloads)](https://pepy.tech/projects/workspace-mcp)\n[![MCP Toplist](https://mcptoplist.com/badge/glama%2Ftaylorwilsdon%2Fgoogle_workspace_mcp.svg)](https://mcptoplist.com/server/glama%2Ftaylorwilsdon%2Fgoogle_workspace_mcp)\n[![Website](https://img.shields.io/badge/Website-workspacemcp.com-green.svg)](https://workspacemcp.com/?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=badge-website)\n\n*Full natural language control over Google Calendar, Drive, Gmail, Docs, Sheets, Slides, Forms, Tasks, Contacts, and Chat through all MCP clients, AI assistants and developer tools.*\n*Includes a full featured CLI \u0026 Code Mode for use with tools like Claude Code and Codex!*\n\n**The most feature-complete Google Workspace MCP server** is in a class of it's own: it can do things that Google's own tooling and the built in integrations with Claude and ChatGPT can't come close to with multi-user support, rich fine-grained editing tools and the most extensive coverage of any Workspace AI integration in existence. \n\nBy leveraging native OAuth 2.1, stateless deployment capability and external auth server \u0026 gateway passthrough auth support, it's also the only Workspace MCP you can host for your whole organization centrally \u0026 securely!\n\n###### Supports all free Google accounts \u0026 Google Workspace plans with expanded app options like Chat \u0026 Spaces. \u003cbr/\u003eInterested in a managed cloud instance? [That can be arranged](https://workspacemcp.com/workspace-mcp-cloud?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=hero-cloud) (starting at $5/mo).\n\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=hero-docs\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Read%20the%20Docs-0969DA?style=for-the-badge\u0026logo=readthedocs\u0026logoColor=white\" alt=\"Read the Docs\"\u003e\n  \u003c/a\u003e\u003ca href=\"https://workspacemcp.com/quick-start?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=hero-quickstart\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Quick%20Start-2EA44F?style=for-the-badge\" alt=\"Quick Start Guide\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://www.pulsemcp.com/servers/taylorwilsdon-google-workspace\"\u003e\n\u003cimg width=\"375\" src=\"https://github.com/user-attachments/assets/0794ef1a-dc1c-447d-9661-9c704d7acc9d\" align=\"center\"/\u003e\n\u003c/a\u003e\n\u003c/div\u003e\n\n---\n\n**See it in action:**\n\u003cdiv align=\"center\"\u003e\n  \u003cvideo width=\"400\" src=\"https://github.com/user-attachments/assets/a342ebb4-1319-4060-a974-39d202329710\"\u003e\u003c/video\u003e\n\u003c/div\u003e\n\n---\n\n## What It Does\n\nWorkspace MCP connects AI assistants to all twelve major Google Workspace services - 120+ tools behind a single MCP server, with OAuth 2.1 multi-user auth, three progressive tool tiers, read-only mode, a full CLI, and stateless container deployment. It runs locally over stdio for legacy clients and remotely over streamable HTTP with full implementation of the latest MCP spec.\n\nThe README covers just enough to get you running, with extensive documentation on the website:\n\n| Where to go | What you'll find |\n|:---|:---|\n| **[Quick\u0026nbsp;Start](https://workspacemcp.com/quick-start?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=nav-quickstart)** | Google Cloud setup, credentials, and client connection with screenshots |\n| **[Full\u0026nbsp;Documentation](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=nav-docs)** | Every tool, parameter, and auth mode |\n| **[Advanced\u0026nbsp;Deployment](https://workspacemcp.com/docs/deployment?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=nav-deployment)** | Reverse proxy \u0026 nginx config, origin validation, credential store backends (GCS/CMEK), [trusted-gateway identity](https://workspacemcp.com/docs/deployment/gateway-identity?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=nav-gateway-identity), and the complete environment variable reference |\n| **[Client\u0026nbsp;Setup\u0026nbsp;Guides](https://workspacemcp.com/guides?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=nav-guides)** | Claude Desktop/web Connectors, ChatGPT Developer Mode, and more |\n| **[FAQ\u0026nbsp;\u0026\u0026nbsp;Troubleshooting](https://workspacemcp.com/welcome/faq?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=nav-faq)** | OAuth errors, redirect URIs, Google Chat setup, client quirks |\n\n## \u003cspan style=\"color:#adbcbc\"\u003eSecurity \u0026 Compliance\u003c/span\u003e\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\" width=\"50%\"\u003e\n\n**For Security Teams**\n\nBy 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.\n\n- **Fully open source** — every line is auditable in this repo\n- **Your OAuth client, your GCP project** — credentials never leave your environment \u0026 you control scopes\n- **You control the network** — deploy behind your reverse proxy, in your VPC, on your own terms\n- **Stateless mode** — zero disk writes for locked-down container environments\n- **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\n\nFull dependency tree in `pyproject.toml`, pinned in `uv.lock`.\n\n\u003c/td\u003e\n\u003ctd valign=\"top\" width=\"50%\"\u003e\n\n**For Legal \u0026 Procurement**\n\nThis project is [MIT licensed](LICENSE) — not \"open core,\" not \"source available,\" not \"free with a CLA.\" There is no dual licensing, no commercial tier gating features, and no contributor license agreement.\n\n- **Use commercially without restriction** — build products, sell services, deploy internally\n- **Fork, embed, redistribute** — MIT requires only attribution\n- **No CLA** — contributions remain under MIT\n- **No built-in telemetry to disclose** — optional tracing is off unless you configure it\n- **No network effects** — the server never contacts any endpoint you didn't configure\n- **Standard dependency licenses** — MIT, Apache 2.0, and BSD throughout the dependency chain; no copyleft, no AGPL\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Services\n\n\u003ctable width=\"100%\" align=\"center\"\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e📧\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/gmail?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-gmail\"\u003e\u003cb\u003eGmail\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e15 tools - search, send, draft,\u003cbr\u003elabels, filters, attachments\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e📁\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-drive?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-drive\"\u003e\u003cb\u003eDrive\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e16 tools - search, create, share,\u003cbr\u003eimport Office files\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e📅\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-calendar?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-calendar\"\u003e\u003cb\u003eCalendar\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e7 tools - events, free/busy,\u003cbr\u003eOut of Office, Focus Time\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e📝\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-docs\"\u003e\u003cb\u003eDocs\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e19 tools - edit, style, tables,\u003cbr\u003etabs, comments, export\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e📊\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-sheets?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-sheets\"\u003e\u003cb\u003eSheets\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e14 tools - ranges, tables,\u003cbr\u003eformatting, conditional rules\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e🖼️\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-slides?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-slides\"\u003e\u003cb\u003eSlides\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e7 tools - create, batch update,\u003cbr\u003ethumbnails, comments\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e📋\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-forms?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-forms\"\u003e\u003cb\u003eForms\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e6 tools - build forms, publish,\u003cbr\u003eread responses\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e✅\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-tasks?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-tasks\"\u003e\u003cb\u003eTasks\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e6 tools - tasks \u0026 lists\u003cbr\u003ewith hierarchy\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e👤\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-contacts?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-contacts\"\u003e\u003cb\u003eContacts\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e8 tools - people, groups,\u003cbr\u003ebatch operations\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e💬\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-chat?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-chat\"\u003e\u003cb\u003eChat\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e6 tools - spaces, messages,\u003cbr\u003esearch, reactions\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e🔍\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-search?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-search\"\u003e\u003cb\u003eCustom Search\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e2 tools - programmable\u003cbr\u003eweb search\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"25%\"\u003e\n\u003ch3\u003e⚡\u003c/h3\u003e\u003ca href=\"https://workspacemcp.com/google-apps-script?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-google-apps-script\"\u003e\u003cb\u003eApps Script\u003c/b\u003e\u003c/a\u003e\u003cbr\u003e\n\u003csub\u003e15 tools - write, deploy,\u003cbr\u003erun \u0026 debug scripts\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nEach page lists every tool with its tier, parameters, required scopes, and example prompts. The [complete reference](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-docs-all) covers all twelve in one place.\n\n\u003e 💬 **Google Chat** needs a one-time Chat app configuration and a Workspace account - see the [Chat setup FAQ](https://workspacemcp.com/welcome/faq?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=services-chat-faq).\n\n## Quick Start\n\n\u003e Set credentials → pick a launch command → connect your client. Full walkthrough with screenshots: **[workspacemcp.com/quick-start](https://workspacemcp.com/quick-start?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=quickstart-hero)**\n\nYou'll need an OAuth client from [Google Cloud Console](https://console.cloud.google.com/) with the APIs enabled for the services you plan to use - the [quick start guide](https://workspacemcp.com/quick-start?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=quickstart-inline) walks through it in about five minutes.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\" width=\"50%\"\u003e\n\n**Confidential Client**\n\n```bash\n# 1. Credentials\nexport GOOGLE_OAUTH_CLIENT_ID=\"...\"\nexport GOOGLE_OAUTH_CLIENT_SECRET=\"...\"\n\n# 2. Launch - pick a tier\nuvx workspace-mcp --tool-tier core       # essential tools\nuvx workspace-mcp --tool-tier extended   # core + management ops\nuvx workspace-mcp --tool-tier complete   # everything\n\n# Or cherry-pick services\nuvx workspace-mcp --tools gmail drive calendar\n```\n\n\u003c/td\u003e\n\u003ctd valign=\"top\" width=\"50%\"\u003e\n\n**OAuth 2.1 (PKCE)**\n\n```bash\n# 1. Credentials - MCP clients connect with PKCE and no\n#    secret, but Google still requires one server-side\nexport MCP_ENABLE_OAUTH21=true\nexport GOOGLE_OAUTH_CLIENT_ID=\"...\"\nexport GOOGLE_OAUTH_CLIENT_SECRET=\"...\"\nexport WORKSPACE_MCP_PORT=8000\nexport GOOGLE_OAUTH_REDIRECT_URI=\"http://localhost:${WORKSPACE_MCP_PORT}/oauth2callback\"\nexport OAUTHLIB_INSECURE_TRANSPORT=1\n\n# 2. Launch - OAuth 2.1 requires HTTP transport\nuvx workspace-mcp --transport streamable-http --tool-tier core\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n**Tool tiers** keep context windows lean: `core` is the essential set, `extended` adds management operations, `complete` loads everything. Combine with `--tools \u003cservice\u003e ...`, `--read-only`, or per-service `--permissions`, and subtract individual tools with `--disabled-tools \u003cname\u003e ...` - details in the [server modes docs](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=tiers-server-modes#server-modes).\n\n## Connect Your Client\n\n**Claude Desktop, web \u0026 mobile** - run the server in HTTP mode and add it as a **Connector** (Settings → Connectors → Add custom connector). This is the recommended path; the [Connector guide](https://workspacemcp.com/guides/claude-connectors?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=clients-connectors) has step-by-step screenshots. Legacy stdio configuration remains available for clients without Connector support - see the [FAQ](https://workspacemcp.com/welcome/faq?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=clients-connectors-faq).\n\n**Claude Code**\n\n```bash\n# Start the server in HTTP mode, then:\nclaude mcp add --transport http workspace-mcp http://localhost:8000/mcp\n\n# Optional: install the bundled skill for better Workspace tool routing\nln -s \"$(pwd)/skills/managing-google-workspace\" ~/.claude/skills/managing-google-workspace\n```\n\n**ChatGPT** - connect via Developer Mode with the [ChatGPT guide](https://workspacemcp.com/guides/chatgpt-developer-mode?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=clients-chatgpt).\n\n**VS Code, LM Studio, Open WebUI, and everything else** - any MCP client works over streamable HTTP (recommended) or stdio. Client-specific walkthroughs live in the [guides](https://workspacemcp.com/guides?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=clients-guides) and [FAQ](https://workspacemcp.com/welcome/faq?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=clients-guides-faq).\n\n## CLI\n\n`workspace-cli` lists and calls tools against a running server with encrypted, disk-backed OAuth token caching - authenticate once, script forever:\n\n```bash\nuv run workspace-cli list\nuv run workspace-cli call search_gmail_messages query=\"is:unread\" max_results=5\n```\n\nInstall globally with `uv tool install .` from this repo. ⚠️ Don't use `uvx workspace-cli` - an abandoned PyPI package squats that name.\n\n## Deployment \u0026 Advanced Configuration\n\nEverything you need to run this in production lives in two places. The [documentation](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-docs) covers auth modes and server configuration:\n\n- **[OAuth 2.1 multi-user auth](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-oauth21#authentication)** - bearer tokens, required for remote or shared HTTP endpoints\n- **[Stateless container mode](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-stateless#authentication)** - zero disk writes for locked-down deployments\n- **[OAuth proxy storage backends](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-proxy-storage#authentication)** - memory, disk, or Valkey/Redis for distributed setups\n- **[External OAuth provider mode](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-external-oauth#authentication)** - bring your own auth server, validate bearer tokens only\n- **[Service accounts with domain-wide delegation](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-service-accounts#authentication)** - per-request user impersonation with an optional domain allowlist\n- **[Trusted-gateway identity](https://workspacemcp.com/docs/deployment/gateway-identity?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-gateway-identity)** - proxy-verified per-user isolation with Pomerium, Cloudflare Access, oauth2-proxy, or any JWKS-verifiable gateway\n- **[OpenTelemetry tracing](https://workspacemcp.com/docs?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-otel#server-modes)** - optional, off unless you configure an OTLP endpoint\n- **Docker** - `docker build -t workspace-mcp . \u0026\u0026 docker run -p 8000:8000 workspace-mcp`\n\nThe **[Advanced Deployment guide](https://workspacemcp.com/docs/deployment?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-advanced)** covers self-hosting specifics: reverse proxy setup with `WORKSPACE_EXTERNAL_URL` (including the nginx `Origin: null` consent workaround, the `WORKSPACE_MCP_ALLOW_NULL_ORIGIN_CONSENT` escape hatch, and the `Referrer-Policy` pitfall), origin validation and VS Code webview allowlisting, credential store backends (local directory or GCS with CMEK enforcement), and the **[complete environment variable reference](https://workspacemcp.com/docs/deployment?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=deploy-env-vars#environment-variables)**.\n\nAdvanced OAuth 2.1 deployments affected by concurrent client token refreshes can tune FastMCP's early-refresh threshold and client-facing access-token lifetime. See [`.env.oauth21`](.env.oauth21) for the bounded settings, recommended values, and security tradeoffs. These settings reduce how often the race occurs; they do not add a grace period to FastMCP's one-time-use refresh-token rotation.\n\n## Security Best Practices\n\nBy default this server sends no data anywhere except Google's APIs, using your own OAuth client credentials - no usage reporting, analytics, license server, or SaaS dependency. MIT licensed with no CLA, no dual licensing, and no copyleft in the dependency chain. The full security posture - scope minimization, sensitive-path blocking, stateless mode - is documented at [workspacemcp.com](https://workspacemcp.com/privacy?utm_source=github.com\u0026utm_medium=referral\u0026utm_campaign=readme\u0026utm_content=security-privacy).\n\nA few things worth internalizing before you connect an LLM to your email:\n\n- **Prompt injection is real.** Emails, docs, and events can contain hidden instructions. Only connect trusted data to an LLM, and be deliberate about which write tools you enable.\n- **Never commit** `.env`, `client_secret.json`, or `.credentials/` to source control.\n- **Local file reads are sandboxed** to the managed attachment directory. Broaden with `ALLOWED_FILE_DIRS` only if you trust the client and its data sources; `.env*`, `~/.ssh/`, `~/.aws/`, and similar paths are always blocked.\n- **Production** deployments should use HTTPS and OAuth 2.1.\n\n## Development\n\n```bash\nuv sync --group dev    # install deps\nuv run ruff check .    # lint\nuv run pytest          # test\n```\n\nSingle-file service modules live in `g\u003cservice\u003e/`, tools are registered with `@server.tool` decorators, and tiers are defined in `core/tool_tiers.yaml`. PRs welcome.\n\n## License\n\nMIT - see [`LICENSE`](LICENSE). The license is 21 lines and says what it means.\n\n---\n\nValidations:\n[![MCP Badge](https://lobehub.com/badge/mcp/taylorwilsdon-google_workspace_mcp)](https://lobehub.com/mcp/taylorwilsdon-google_workspace_mcp)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaylorwilsdon%2Fgoogle_workspace_mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaylorwilsdon%2Fgoogle_workspace_mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaylorwilsdon%2Fgoogle_workspace_mcp/lists"}