開源 · 自行架設 · 遠端 MCP 伺服器
多個 Gmail 收件匣,一個 Claude 連接器。
Surfski 讓 Claude 能跨多個 Gmail 與 Google Workspace 信箱搜尋、閱讀郵件及撰寫草稿。只要新增一個連接器,就能連結任意數量的收件匣,而且每位使用者都只看得到自己的信箱。
支援網頁版、桌面版與行動版 Claude,以及任何支援 Streamable HTTP 與 OAuth 的 MCP 用戶端。
「幫我找出這個月所有收件匣裡來自 Acme 的郵件。」
search_all_accounts(query="from:acme newer_than:30d")
- work發票 #4821:10 月份Acme Billing10月18日
- personal您的訂單已出貨Acme Store10月15日
- support回覆:發票 #4790 退款jo@acme.example10月12日
運作方式
兩次獨立的 Google 登入,分別回答兩個問題:提出請求的是哪位 Claude 使用者,以及該使用者授權了哪些信箱。兩者都使用您自己 Google Cloud 專案中的同一個 OAuth 用戶端。
- 1第 A 層 · 您是誰
將 Surfski 加入 Claude(只需一次)
將您的伺服器新增為自訂連接器,並使用 Google 帳號登入。Surfski 只會比對您的身分是否在允許清單中,絕不會看到您的密碼。
權限範圍:openid, email
- 2第 B 層 · 哪些信箱
以別名連結每個信箱
請 Claude「把我的工作 Gmail 連結為 work」。您以該信箱登入,並授予讀取與撰寫權限。personal、support 等其他信箱依此類推。
權限範圍:gmail.readonly, gmail.compose
- 3接著
一次查詢所有信箱
Claude 可在您指定的信箱中搜尋、閱讀郵件串並儲存草稿,也能跨所有已連結的信箱進行。
功能特色
每人可連結多個信箱
可連結任意數量的 Gmail 與 Google Workspace 帳號,每個都用簡短別名命名,例如 work、personal 或 support。
跨所有收件匣搜尋
一次搜尋即可涵蓋所有已連結的信箱,並標示每個郵件串來自哪個信箱。
嚴格的使用者隔離
每次查詢都限定於已登入的 Claude 使用者。共用同一台伺服器的人,彼此絕對看不到對方的信箱。
靜態資料加密
更新權杖(refresh token)在您的伺服器上以 Fernet 加密儲存,存取權杖只保留在記憶體中。日誌絕不記錄權杖或郵件內文。
您的 Google 專案,您的伺服器
自行架設時使用您自己的 OAuth 用戶端,因此不必通過 Google 的應用程式驗證,最多可支援 100 位使用者。
架設您自己的執行個體
Gmail 的讀取權限範圍屬於受限範圍。公開應用程式需通過 Google 驗證及每年一次的安全評估;而您自己的執行個體只要使用者不超過 100 人,就不需要。
- 使用您自己的 Google Cloud 專案與 OAuth 用戶端。
- 更新權杖永遠不會離開您的伺服器。
- 只需一個 Docker 容器,置於您的 TLS 反向代理之後。
# 在已安裝 Docker 的 Linux 主機上
git clone https://github.com/rayhu/surfski /opt/surfski
cd /opt/surfski
python3 scripts/gen_secrets.py
sudo docker compose -p surfski up -d --build
# 接著在 Claude 中:設定 → 連接器
# → 新增自訂連接器 → https://<host>/mcp即將推出
代管版本
代管版 Surfski 將分階段推出:先是僅限邀請的測試版,接著為自備內部(Internal)OAuth 用戶端的 Google Workspace 組織提供代管服務;公開自助式代管則要等通過 Google 的 OAuth 驗證與年度安全評估後才會推出。目前尚無確切日期,也尚未開放註冊。