workspace-mcp:把十二個 Google Workspace 服務塞進一個 MCP Server
Control Gmail, Google Calendar, Docs, Sheets, Slides, Chat, Forms, Tasks, Search & Drive with AI - Comprehensive Google Workspace MCP Server & CLI Tool
秒懂
- 它是什麼?
- 這個專案用單一 MCP Server 包住 Gmail、Calendar、Drive、Docs 等十二個服務,提供 OAuth 2.1 多使用者驗證、三層工具分級與無狀態容器部署。判斷重點在於:你需要的是本機單人使用,還是要替整個組織集中託管。
- 適合誰用?
- 這個專案適合已經有自己的 GCP 專案與 OAuth 用戶端、想把 Workspace 操作集中到單一 MCP Server 的團隊,也適合只需要本機 stdio 單人使用的開發者。不適合不願自行處理 Google Cloud 憑證與 OAuth 同意畫面設定的使用者,因為 README 明確把這些前置作業指向網站的 Quick Start 與 FAQ,而非在倉庫內完整交代。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 2 天前。
- 用什麼語言寫的?
- 主要是 Python(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
它要解決的是工具碎片化,不是單一 API 包裝
多數人接 LLM 到 Google 服務時,會針對單一產品寫一個小工具:一個讀 Gmail、一個查 Calendar。專案數量一多,每個都要各自處理 OAuth、各自維護 token 刷新、各自定義工具描述,最後變成一堆彼此不相容的小服務。workspace-mcp 的作法相反,把十二個服務收進同一個 MCP Server,README 描述為「120+ tools behind a single MCP server」。
目標使用者寫得很清楚:需要自然語言控制 Workspace 的 MCP 用戶端使用者,以及要用 Claude Code、Codex 這類開發工具的人。README 另外提到 multi-user support 與集中託管,這代表它同時想涵蓋個人開發者與組織層級的部署需求。這兩種情境的安裝路徑差很多,後續章節會分開談。
一個容易被忽略的定位問題:Google 自家的整合與 Claude、ChatGPT 內建連接器也在做類似的事。README 直接宣稱這個專案「can do things that Google's own tooling and the built in integrations with Claude and ChatGPT can't come close to」,理由是細粒度編輯工具與 Workspace 覆蓋範圍。這是專案方的說法,讀者要自己判斷你的情境是否真的需要那些細粒度操作。
單一 Server、兩種傳輸、三層工具分級
架構的核心是「一個 server 進、多個服務出」。README 說明它在本機以 stdio 執行,供較舊的用戶端使用;遠端則走 streamable HTTP,並稱其為「full implementation of the latest MCP spec」。這條分界線決定了你的部署形態:stdio 是本機單一使用者,HTTP 才能談多使用者與集中託管。
工具數量是設計上的主要張力。120 個以上的工具全部塞進模型的上下文,會排擠掉真正需要的空間。專案對此的答案是三層漸進式工具分級(three progressive tool tiers),讓使用者只暴露當下需要的工具集。README 沒有在倉庫內列出三層的具體切分方式,細節指向網站的 docs。若你要評估這個機制是否合用,得先去看那份文件,倉庫本身不足以判斷。
驗證層面,README 提到原生 OAuth 2.1、無狀態部署能力,以及 external auth server 與 gateway passthrough auth 的支援。這幾項合起來的意義是:server 本身可以不在本機保存憑證狀態,身分驗證交給外部元件處理。這也是它敢宣稱能替整個組織集中託管的前提。
另外有一個 read-only 模式。對於只想讓模型讀取、不允許寫入的場景,這是比逐一封鎖工具更直接的開關。
安裝路徑與你必須自己準備的憑證
README 對安裝的交代刻意精簡,開頭就寫「The README covers just enough to get you running」,其餘導向網站。從倉庫能確認的資訊包括:PyPI 套件名為 workspace-mcp,Python 需求為 3.10 以上,依賴樹列在 pyproject.toml 並以 uv.lock 鎖定版本。
真正的前置作業在 Google 端,不在這個倉庫裡。README 把 Google Cloud 設定、憑證申請與用戶端連線都指向 Quick Start 頁面,並另設 FAQ 頁面處理 OAuth 錯誤、redirect URI、Google Chat 設定與用戶端差異。這意味著你無法只靠 clone 倉庫完成安裝,必須連到 workspacemcp.com 取得設定步驟。
設定面有幾個從 README 可直接確認的鍵值。ALLOWED_FILE_DIRS 控制本機檔案讀取可觸及的目錄範圍。validate_file_path() 是實際執行路徑檢查的函式,預設會阻擋 .env* 檔案,也會阻擋 ~/.ssh/ 與 ~/.aws/ 這類常見的家目錄憑證存放位置,即使你把 ALLOWED_FILE_DIRS 放寬也一樣。README 說明本機檔案讀取預設限制在受管理的附件目錄。
部署層面,README 列出的主題包含反向代理與 nginx 設定、origin 驗證、憑證儲存後端(GCS 與 CMEK),以及 trusted-gateway identity。這些全在網站的 Advanced Deployment 文件,倉庫內沒有對應的設定範例。若你的環境需要離線查閱,這會是實際的障礙。
資料流向與無狀態模式的實際邊界
README 對資料流向的說法很明確:預設情況下,這個 server 除了以已驗證使用者的身分呼叫 Google API 之外,不傳送任何資料到其他地方。沒有 usage reporting、沒有 analytics、沒有 license server,也沒有 SaaS 依賴,唯一的例外是你自己選擇啟用的 OTel 追蹤。
這句話有兩個需要拆開看的部分。第一,「on behalf of the authenticated user」表示所有動作都受該使用者的 OAuth 授權範圍限制,你能存取的東西取決於你申請的 scope。README 強調憑證與 GCP 專案都留在你的環境,scope 由你控制。第二,OTel 是選用的,README 說 tracing 預設關閉,除非你主動設定。對於需要向法務說明對外連線的團隊,這兩點是可以直接引用的具體描述。
無狀態模式(stateless mode)的賣點是零磁碟寫入,適合鎖定的容器環境。但要注意這與多使用者驗證的關係:如果 server 不保存狀態,身分與憑證就得由外部元件承擔,這正是 README 同時提到 external auth server 與 gateway passthrough 的原因。無狀態不是免費的,它把複雜度移到你的基礎設施上。
還有一點 README 沒有展開:這些工具實際會對 Workspace 做什麼層級的寫入。read-only 模式的存在暗示預設並非唯讀。在把這個 server 接上正式帳號之前,這一點值得先確認。
什麼情況下它會是錯的工具
最明顯的限制是前置成本。你必須有自己的 GCP 專案、自己的 OAuth 用戶端憑證,並處理同意畫面與 redirect URI。README 把這些全部外連到網站的 Quick Start 與 FAQ,倉庫內沒有逐步說明。對於只想花十分鐘試玩的人,這個門檻不低,而且失敗時的錯誤多半出現在 OAuth 階段,需要對照 FAQ 排查。
第二個限制是工具數量帶來的上下文壓力。120 個以上的工具即使分成三層,你仍要判斷該開哪一層。README 沒有在倉庫內說明分層的切分邏輯,這使得「該開哪一層」變成一個必須查外部文件才能回答的問題。
第三,如果你的需求只是讀取 Gmail 或查行事曆,這個專案的覆蓋範圍遠超過你需要的。一個只做單一服務的小型 MCP server 會更容易審計,依賴也更少。這個專案的價值在於廣度與細粒度編輯,不在於最小化。
第四,集中託管的情境會把你帶進反向代理、origin 驗證與憑證儲存後端的領域。README 提到 GCS 與 CMEK 這類後端選項,但沒有在倉庫內提供設定範例。若你的團隊沒有現成的這類基礎設施,集中託管的實際工作量會比預期大。
最後,README 對 Google Chat 這類服務的設定有專門的 FAQ 條目,這通常意味著它的 OAuth 或權限模型與其他服務不同。若 Chat 是你的主要使用場景,請先讀那一頁再決定。
與自建整合腳本的差異在哪
替代方案不是另一個 MCP server,而是自己寫整合腳本。這個對比值得講清楚,因為兩者的取捨很具體。
自建腳本的做法通常是:針對每個需要的 API 寫一支程式,用 Google 的用戶端函式庫處理 OAuth,把結果整理成模型看得懂的格式。這種做法的好處是範圍完全可控,你只實作真正需要的操作,依賴數量少,審計時要看的程式碼也少。缺點是每加一個服務就要重寫一次驗證流程與工具描述,而且工具描述的好壞直接影響模型能不能正確呼叫。
workspace-mcp 走的是相反的路:一次處理十二個服務的驗證與工具定義,代價是你要接受它的抽象層與它的工具設計。README 強調的「rich fine-grained editing tools」正是這個取捨的核心,如果你需要的是在 Docs 或 Sheets 裡做細緻的編輯操作,自己從零刻這些工具的成本很高,用現成的比較合理。
另一個實際差異是傳輸方式。自建腳本通常是本機執行,沒有多使用者的問題。workspace-mcp 提供 streamable HTTP 與 OAuth 2.1,讓同一個 server 服務多個使用者。若你的情境本來就只有一個人用,這個能力用不到,但你仍要承擔它的設定複雜度。
反過來說,若你的組織已經有集中式的身分驗證與閘道,README 提到的 gateway passthrough auth 可以讓你把驗證交給既有元件,不必在 server 內重建一套。這是自建腳本較難對等的地方。
授權、維護與升級成本
授權是 MIT,README 特別強調這不是 open core、不是 source available、也不是附帶 CLA 的免費版本。沒有雙重授權,沒有把功能鎖在商業層級,也沒有貢獻者授權協議。對採購與法務而言,這幾句是可以直接引用的:可商業使用、可 fork、可嵌入、可再散布,MIT 只要求保留姓名標示。README 也說明依賴鏈的授權為 MIT、Apache 2.0 與 BSD。這裡不構成法律意見,實際條款仍以 LICENSE 檔案為準。
維護節奏可以從版本紀錄看出輪廓。近期發布為 v1.26.0(2026-09-06)、v1.25.2(2026-08-28)、v1.25.1(2026-08-25),最後推送時間為 2026-09-08,倉庫未封存。patch 版本之間相隔數天,代表維護活躍;但活躍也意味著升級頻率不低。
升級成本的主要來源是 MCP 規格本身。README 說遠端模式是「full implementation of the latest MCP spec」,規格演進時這部分需要跟上,你的用戶端也必須同步。若你鎖定特定版本的用戶端,升級 server 前要先確認相容性。
依賴面相對可控。pyproject.toml 列出依賴樹,uv.lock 鎖定版本,這讓你能重現安裝環境,也讓升級變成一次明確的鎖定檔變更,而不是浮動版本帶來的不確定性。
還有一個容易被忽略的成本:README 把大量文件放在 workspacemcp.com,而非倉庫內。這不影響授權,但影響你查資料的方式。若你的團隊習慣在倉庫內找答案,需要調整預期。
CLI 與 Code Mode 是給開發工具用的另一條入口
README 標題下方寫著「Includes a full featured CLI & Code Mode for use with tools like Claude Code and Codex」。這代表除了 MCP 協定之外,專案還提供命令列介面,讓不透過 MCP 用戶端的情境也能操作同一組服務。
這條路徑的意義在於除錯。當 MCP 用戶端呼叫失敗時,你很難判斷問題出在模型、用戶端還是 server。有 CLI 就能繞過模型直接測試底層操作,把問題範圍縮小。README 沒有在倉庫內列出 CLI 的具體子命令,細節同樣指向網站文件。
Code Mode 的定位則與 Claude Code、Codex 這類工具綁在一起。這些工具本身就能執行程式碼,把 Workspace 操作包成可呼叫的介面,比逐一呼叫工具更貼近它們的工作方式。README 沒有說明 Code Mode 的實作細節,若這是你的主要使用方式,建議先確認它與你所用工具的整合程度。
對照之下,純 MCP 用戶端(例如桌面版助理)走的是工具呼叫路徑,會直接受到工具分層設定的影響。同一個 server,兩種入口的行為與除錯方式並不相同。
編輯結論
這個專案適合已經有自己的 GCP 專案與 OAuth 用戶端、想把 Workspace 操作集中到單一 MCP Server 的團隊,也適合只需要本機 stdio 單人使用的開發者。不適合不願自行處理 Google Cloud 憑證與 OAuth 同意畫面設定的使用者,因為 README 明確把這些前置作業指向網站的 Quick Start 與 FAQ,而非在倉庫內完整交代。採用前請先確認三件事:你的用戶端支援 stdio 還是 streamable HTTP、你要用哪一層工具分級、以及是否要開啟 read-only 模式;若要走集中託管,還要確認反向代理與來源驗證的設定方式。最後一點最實際:README 把部署細節全部外連到 workspacemcp.com/docs/deployment,若你的環境無法連外查文件,請先確認倉庫內的 pyproject.toml 與 uv.lock 是否足以支撐你的安裝流程。
社群筆記