MCP mã nguồn mở cho Google Workspace

Cho AI làm việc trên nhiều tài khoản Google, với quyền bạn kiểm soát

gws-mcp kết nối Claude và các MCP client với Gmail, Drive, Calendar cùng những dịch vụ Google khác trên nhiều tài khoản. Mã nguồn mở, dành cho dev tự cài và tự vận hành.

Claude search execute sandbox sdk.gmail.list() sdk.drive.copy() → plan personal work client
Tầm nhìn của gws-mcp

Từ điện thoại, nhờ AI làm việc với các tài khoản Google của bạn

Trên Claude ở điện thoại, bạn có thể nhờ AI đọc email, lịch và tệp từ những tài khoản Google bạn cho phép, qua gws-mcp chạy trên Cloudflare của chính bạn. Khi cần thay đổi dữ liệu, AI đưa ra bản xem trước và chỉ thực hiện khi bạn yêu cầu áp dụng.

Claude preview apply Gmail Calendar Drive personal · work · client

Ba tài khoản Google, mỗi lệnh lại phải đổi profile

Mình dùng ba tài khoản Google: cá nhân, công việc và A Realistic Dreamer. Trước đây, wrapper CLI mình viết chỉ xử lý một tài khoản trong mỗi lệnh. Muốn chuyển tài khoản thì phải đổi profile. Còn Claude.ai hay Claude trên điện thoại thì không gọi được công cụ chạy local đó.

Nhiều Google MCP khác cũng xoay quanh một tài khoản hoặc phơi từng REST call thành tool, khiến AI phải tự đoán URL và thiếu bước kiểm soát khi ghi dữ liệu. Mình build gws-mcp để giải quyết đúng những vướng mắc này.

$ gws --profile personal $ gws --profile work $ gws --profile client $ gws --profile personal

Hai tool, một cách làm việc bằng TypeScript

gws-mcp chỉ cung cấp hai tool là search và execute: AI tìm đúng phương thức, rồi viết một snippet TypeScript để thực hiện nhiều thao tác.

  1. gmail send messages.send(…) ghi drafts.send(…) ghi messages.list(…) đọc
    01

    search tìm đúng API

    AI tìm phương thức cần dùng và nhận về TypeScript signature, mô tả thao tác đọc hay ghi cùng ví dụ. Kết quả tìm kiếm gọn, tối đa 10 mục.

  2. await sdk.gmail .list({ acc: "work" }) await sdk.drive .list({ acc: "client" }) // lọc, ghép rồi trả về work client
    02

    execute chạy snippet

    AI viết một đoạn TypeScript gọi typed SDK, có thể phối hợp nhiều API và tài khoản trong cùng đoạn. Dữ liệu được lọc, ghép trước khi đưa về chat.

  3. DRY RUN + sheets.append ×3 ~ drive.rename ×1 ! drive.share public chưa ghi dữ liệu APPLIED ✓ sheets.append ×3 ✓ drive.rename ×1 ✓ drive.share public apply: true
    03

    Xem dry run trước khi ghi

    Lệnh ghi mặc định chỉ trả kế hoạch thay đổi, chưa sửa dữ liệu. Muốn thực hiện, AI phải chạy lại với apply.

Nhiều tài khoản Google, quyền riêng cho từng ứng dụng AI

Google Ứng dụng AI personal work client mới Claude Desktop personal work client Claude.ai personal client
  • Đặt alias như work, chọn tài khoản mặc định. Mỗi lệnh có thể chỉ định tài khoản hoặc dùng mặc định.
  • Thêm dịch vụ Google vào từng tài khoản sau khi kết nối, không bỏ các quyền cũ.
  • Ở chế độ remote, mỗi ứng dụng AI có trang phê duyệt và danh sách tài khoản được phép truy cập riêng. Kết nối tài khoản Google mới không tự mở rộng quyền của ứng dụng đã duyệt.
  • Quản lý trên web hoặc qua chat với AI. Khi ngắt tài khoản, quyền Google đã cấp sẽ bị thu hồi; bạn cũng có thể thu hồi quyền của từng ứng dụng AI.
Trang tổng quan của gws-mcp
Trang tổng quan
Trang phê duyệt một ứng dụng AI
Phê duyệt ứng dụng AI
Danh sách tài khoản Google
Tài khoản Google

Có thể xem và kiểm soát những gì AI làm

Ghi dữ liệu phải qua dry run

Mặc định, AI chỉ thấy kế hoạch thay đổi. Xóa, dọn thùng rác và chia sẻ công khai được đánh dấu là thao tác nguy hiểm; chỉ khi chạy lại với apply mới thực hiện.

Snippet không được thấy token

Snippet chạy trong sandbox không có mạng, chỉ thấy sdk và console. Token không được đưa vào sandbox; chuỗi giống token trong output console cũng được che.

OAuth client là của bạn

Bạn tự tạo OAuth client trong Google Cloud project của mình. Refresh token được mã hóa AES-GCM; Tony và A Realistic Dreamer không nhận token hay dữ liệu Google của bạn.

Có audit, không lưu nội dung

Mỗi lần gọi có log về ứng dụng, tài khoản, phương thức, trạng thái và thời gian chạy. Audit không lưu nội dung email hay nội dung tệp.

Hai cách chạy, tùy nơi bạn dùng Claude

$ gws-mcp stdio SQLite keychain

Local: miễn phí trên máy bạn

  • Cài trên máy với Node 22+, kết nối ứng dụng AI qua stdio.
  • Dữ liệu nằm trong SQLite trên máy; khóa mã hóa nằm trong OS keychain.
  • Phù hợp một người dùng. Đăng nhập Google qua trình duyệt.
Worker Claude.ai

Remote: Worker trong Cloudflare của bạn

  • Tự triển khai Worker lên tài khoản Cloudflare của bạn bằng setup script.
  • Dùng từ Claude.ai hoặc điện thoại khi không ở cạnh máy.
  • Cần Cloudflare Workers Paid, USD 5/tháng do Cloudflare thu vì Worker Loader không có trong gói miễn phí. A Realistic Dreamer không thu khoản này.

8 dịch vụ Google, 216 phương thức API

216 phương thức được tạo từ tài liệu Discovery chính thức của Google, có kiểu dữ liệu và kiểm tra đầu vào, đầu ra. Có thêm helper để gửi email kèm tệp, thêm dòng vào Sheets, xuất Docs sang PDF và điền mẫu Slides.

  • Gmail
  • Drive
  • Calendar
  • Sheets
  • Docs
  • Forms
  • Tasks
  • Slides

gws-mcp hợp với bạn trong trường hợp nào?

Phù hợp

  • Bạn quen dùng terminal và có thể tự tạo Google Cloud OAuth client.
  • Bạn dùng Claude hoặc MCP client khác, cần làm việc với nhiều tài khoản Google.
  • Bạn muốn tự chạy MCP trên máy hoặc Cloudflare của mình.

Chưa phù hợp

  • Bạn muốn một ứng dụng bấm vài lần là dùng, không cần setup kỹ thuật.
  • Bạn cần bên khác host và quản lý tài khoản giúp mình.
  • Bạn cần tính năng cho team hoặc tích hợp Google Chat, Contacts, Admin.

Các câu hỏi thường gặp

Tony hoặc A Realistic Dreamer có đọc được email, file Google của mình không?

Không. Bạn tự tạo Google OAuth client trong Google Cloud project của mình và tự chạy server. Tony và A Realistic Dreamer không nhận Google token hay dữ liệu của bạn.

gws-mcp có miễn phí không?

gws-mcp miễn phí, mã nguồn mở theo giấy phép Apache-2.0, không có gói trả phí. Chạy local không mất phí phần mềm. Chạy remote cần Cloudflare Workers Paid, USD 5/tháng trả cho Cloudflare, không phải A Realistic Dreamer.

Mình có thể dùng với những ứng dụng AI nào?

Bất kỳ ứng dụng nào hỗ trợ MCP, gồm Claude Code, Claude.ai và Claude trên điện thoại. Để truy cập từ Claude.ai hoặc điện thoại, bạn cần tự triển khai remote mode.

AI có tự gửi email hoặc xóa dữ liệu luôn không?

Mặc định, thao tác ghi chỉ tạo dry run để xem dự kiến thay đổi, chưa ghi thật. AI phải chạy lại với apply mới thực hiện. Các thao tác xóa, dọn thùng rác và chia sẻ công khai được đánh dấu nguy hiểm trong kế hoạch.

Vì sao mình phải tự tạo Google OAuth client?

Để ứng dụng Google và quyền truy cập nằm trong Google Cloud project của bạn. Với nhu cầu cá nhân, app ở testing mode không cần Google verification; bạn có thể thêm tối đa khoảng 100 test user vào app đó.

Cài gws-mcp từ GitHub

README trên GitHub có hướng dẫn cài local hoặc remote. Nếu thấy hữu ích, bạn có thể star repo hoặc mở issue để góp ý.

—
0:00
Bắt đầu gõ để tìm kiếm...