Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat
Các máy chủ MCPGoogle Workspace MCP

Google Workspace MCP

Cấu hình các máy chủ MCP Workspace từ xa của Google cho Gmail, Drive, Calendar, People và Chat trong LibreChat.

Google cung cấp các máy chủ Model Context Protocol (MCP) từ xa cho các sản phẩm Google Workspace. Trong LibreChat, mỗi sản phẩm Google Workspace được cấu hình như một máy chủ MCP từ xa có hỗ trợ OAuth riêng.

Bản xem trước dành cho nhà phát triển

Google đánh dấu các máy chủ MCP của Workspace là một phần của Chương trình Xem trước dành cho Nhà phát triển Google Workspace (Google Workspace Developer Preview Program). Hãy xem lại tài liệu hiện tại của Google trước khi triển khai rộng rãi, vì các sản phẩm, phạm vi và yêu cầu xác minh khả dụng có thể thay đổi.

Những gì bạn sẽ cấu hình

Google Workspace MCP không phải là một máy chủ kết hợp duy nhất. Chỉ cấu hình các sản phẩm bạn muốn hiển thị cho người dùng:

Sản phẩmURL máy chủ MCP
Gmailhttps://gmailmcp.googleapis.com/mcp/v1
Google Drivehttps://drivemcp.googleapis.com/mcp/v1
Google Calendarhttps://calendarmcp.googleapis.com/mcp/v1
People APIhttps://people.googleapis.com/mcp/v1
Google Chathttps://chatmcp.googleapis.com/mcp/v1

Mỗi người dùng kết nối từng máy chủ từ giao diện người dùng LibreChat. LibreChat lưu trữ các token OAuth theo từng người dùng, vì vậy quyền truy cập vào Gmail, Drive, Calendar, People và Chat sẽ tuân theo tài khoản Google đã ủy quyền kết nối đó.

Điều kiện tiên quyết

  • Một dự án Google Cloud.
  • Quyền cho phép kích hoạt các API và tạo các OAuth client trong dự án đó.
  • gcloud đã được cài đặt và xác thực, hoặc có quyền truy cập vào Google Cloud console.
  • Một instance LibreChat đang chạy với librechat.yaml được mount hoặc được tải theo cách khác.
  • URL cơ sở công khai mà người dùng sử dụng để mở LibreChat, ví dụ: http://localhost:3080 cho môi trường phát triển cục bộ hoặc https://chat.example.com cho môi trường sản xuất.

Đường dẫn callback OAuth

Đường dẫn callback OAuth MCP của LibreChat là BASE_URL/api/mcp/SERVER_NAME/oauth/callback. SERVER_NAME là khóa nằm trong mcpServers trong librechat.yaml, ví dụ như gmail hoặc drive.

Thiết lập

Bật các Google Workspace API

Thay thế PROJECT_ID bằng ID dự án Google Cloud của bạn:

gcloud services enable gmail.googleapis.com \
  drive.googleapis.com \
  calendar-json.googleapis.com \
  chat.googleapis.com \
  people.googleapis.com \
  --project=PROJECT_ID

Kích hoạt các dịch vụ MCP của Google Workspace

Bật các dịch vụ MCP cho các sản phẩm bạn dự định cấu hình:

gcloud services enable gmailmcp.googleapis.com \
  drivemcp.googleapis.com \
  calendarmcp.googleapis.com \
  chatmcp.googleapis.com \
  people.googleapis.com \
  --project=PROJECT_ID

Cấu hình Google Chat, nếu cần

Máy chủ MCP Google Chat yêu cầu một ứng dụng Chat trong cùng dự án Google Cloud.

Trong Google Cloud console, mở Google Chat API > Manage > Configuration và tạo một ứng dụng Chat:

  • Tên ứng dụng: Chat MCP
  • Avatar URL: https://developers.google.com/chat/images/quickstart-app-avatar.png
  • Mô tả: Chat MCP server
  • Chức năng: tắt Enable interactive features
  • Logs: chọn Log errors to Logging

Nhấp vào Save.

Yêu cầu tài khoản Workspace để Chat

Cấu hình ứng dụng Google Chat có thể không khả dụng đối với các tài khoản Google cá nhân. Nếu bảng điều khiển thông báo rằng Google Chat API chỉ khả dụng cho người dùng Google Workspace, hãy bỏ qua máy chủ MCP chat hoặc sử dụng dự án/tài khoản được hỗ trợ bởi Workspace.

Cấu hình Google Auth Platform

Trong Google Cloud console, hãy đi tới Google Auth Platform.

Nếu Google Auth Platform chưa được cấu hình, hãy nhấp vào Get Started và cung cấp:

  • Tên ứng dụng: sử dụng một tên rõ ràng, chẳng hạn như LibreChat Google Workspace MCP.
  • Email hỗ trợ người dùng: email hỗ trợ hoặc Google group của bạn.
  • Audience: chọn Internal cho tổ chức Google Workspace, hoặc External nếu người dùng nằm ngoài tổ chức của bạn hoặc bạn đang sử dụng tài khoản Google cá nhân.
  • Thông tin liên hệ của nhà phát triển: một địa chỉ email để Google có thể thông báo cho bạn về dự án.

Nếu bạn chọn External và giữ ứng dụng ở chế độ thử nghiệm, hãy thêm chính bạn và bất kỳ người dùng được phép nào khác vào mục Audience > Test users.

Thêm các phạm vi truy cập dữ liệu (Data Access scopes)

Mở Data Access > Add or Remove Scopes. Trong phần Manually add scopes, hãy dán các scope cho các máy chủ mà bạn muốn sử dụng.

https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/gmail.compose
https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/calendar.calendarlist.readonly
https://www.googleapis.com/auth/calendar.events.freebusy
https://www.googleapis.com/auth/calendar.events.readonly
https://www.googleapis.com/auth/directory.readonly
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/contacts.readonly
https://www.googleapis.com/auth/chat.spaces.readonly
https://www.googleapis.com/auth/chat.memberships.readonly
https://www.googleapis.com/auth/chat.messages.readonly
https://www.googleapis.com/auth/chat.messages.create
https://www.googleapis.com/auth/chat.users.readstate.readonly

Nhấp vào Add to Table, Update, sau đó Save.

Các phạm vi nhạy cảm và bị hạn chế

Các phạm vi (scope) Gmail, Drive, Chat, Contacts và Directory có thể kích hoạt quy trình đánh giá phạm vi nhạy cảm hoặc bị hạn chế của Google. Đối với mục đích sử dụng cá nhân hoặc phát triển hạn chế, người dùng có thể thấy cảnh báo ứng dụng chưa được xác minh và giới hạn 100 người dùng. Đối với mục đích sử dụng công khai hoặc trên toàn tổ chức, hãy hoàn tất quy trình xác minh OAuth của Google và mọi đánh giá phạm vi bị hạn chế bắt buộc.

Tạo một OAuth client cho ứng dụng Web

Trong Google Auth Platform > Clients, hãy tạo một OAuth client:

  • Loại ứng dụng: Web application
  • Name: sử dụng một tên mô tả, chẳng hạn như LibreChat Google Workspace MCP

Thêm một URI chuyển hướng được ủy quyền cho mỗi máy chủ bạn cấu hình. Đối với môi trường phát triển cục bộ:

http://localhost:3080/api/mcp/gmail/oauth/callback
http://localhost:3080/api/mcp/drive/oauth/callback
http://localhost:3080/api/mcp/calendar/oauth/callback
http://localhost:3080/api/mcp/people/oauth/callback
http://localhost:3080/api/mcp/chat/oauth/callback

Đối với môi trường production, hãy thay thế http://localhost:3080 bằng URL LibreChat của bạn:

https://chat.example.com/api/mcp/gmail/oauth/callback

Nhấp vào Create, sau đó sao chép Client IDClient secret.

Thêm thông tin xác thực OAuth vào .env

Thêm các giá trị OAuth client vào tệp .env của LibreChat:

GOOGLE_WORKSPACE_MCP_CLIENT_ID=your-oauth-client-id
GOOGLE_WORKSPACE_MCP_CLIENT_SECRET=your-oauth-client-secret

Bạn có thể sử dụng các tên biến môi trường khác nhau nếu bạn cũng cập nhật các tham chiếu trong librechat.yaml.

Thêm các máy chủ MCP vào librechat.yaml

Thêm các máy chủ bạn muốn vào dưới mcpServers. Ví dụ này sử dụng tất cả các máy chủ MCP Google Workspace hiện đã được ghi lại trong tài liệu:

mcpServers:
  gmail:
    type: streamable-http
    url: 'https://gmailmcp.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.compose'
      redirect_uri: 'http://localhost:3080/api/mcp/gmail/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']

  drive:
    type: streamable-http
    url: 'https://drivemcp.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive.file'
      redirect_uri: 'http://localhost:3080/api/mcp/drive/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']

  calendar:
    type: streamable-http
    url: 'https://calendarmcp.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/calendar.calendarlist.readonly https://www.googleapis.com/auth/calendar.events.freebusy https://www.googleapis.com/auth/calendar.events.readonly'
      redirect_uri: 'http://localhost:3080/api/mcp/calendar/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']

  people:
    type: streamable-http
    url: 'https://people.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/directory.readonly https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/contacts.readonly'
      redirect_uri: 'http://localhost:3080/api/mcp/people/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']

  chat:
    type: streamable-http
    url: 'https://chatmcp.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/chat.spaces.readonly https://www.googleapis.com/auth/chat.memberships.readonly https://www.googleapis.com/auth/chat.messages.readonly https://www.googleapis.com/auth/chat.messages.create https://www.googleapis.com/auth/chat.users.readstate.readonly'
      redirect_uri: 'http://localhost:3080/api/mcp/chat/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']

Nếu LibreChat được triển khai tại một URL công khai, hãy cập nhật mọi redirect_uri để khớp chính xác với URI chuyển hướng đã đăng ký trong Google Cloud.

Danh sách cho phép miền MCP nghiêm ngặt

Nếu librechat.yaml của bạn cũng cấu hình mcpSettings.allowedDomains, hãy thêm các máy chủ Google MCP mà bạn sử dụng, chẳng hạn như gmailmcp.googleapis.com, drivemcp.googleapis.com, calendarmcp.googleapis.com, chatmcp.googleapis.compeople.googleapis.com.

Khởi động lại LibreChat

Khởi động lại LibreChat để tải lại .envlibrechat.yaml.

Triển khaiLệnh
Dockerdocker compose up -d
LocalDừng máy chủ, sau đó khởi động lại

Để xác nhận các máy chủ đã được tải trong Docker, hãy kiểm tra nhật ký API:

docker logs LibreChat --tail 200 | grep MCP

Kết nối từng máy chủ trong LibreChat

Mở LibreChat, sau đó mở MCP Settings hoặc menu thả xuống MCP Servers trong phần nhập liệu trò chuyện.

Đối với mỗi máy chủ Google Workspace:

  1. Nhấp vào Connect.
  2. Hoàn tất quy trình Google OAuth trong trình duyệt.
  3. Xem lại các phạm vi (scopes) được yêu cầu.
  4. Nhấp vào Allow.

Sau khi OAuth thành công, các công cụ của máy chủ sẽ khả dụng trong trò chuyện và trong Agent Builder.

Kiểm thử

Hãy thử các câu lệnh (prompts) nhắm mục tiêu vào từng máy chủ một:

Máy chủLời nhắc (Prompt)
People"Theo hồ sơ Google của tôi, tên tôi là gì?"
Drive"Tìm một tệp có tên Marketing Plan và tóm tắt nội dung tệp đó."
Gmail"Tìm email mới nhất của tôi về kế hoạch marketing."
Gmail"Soạn một email gửi [email protected] nói rằng tôi phê duyệt kế hoạch marketing."
Calendar"Cuộc họp tiếp theo của tôi với Ariel là khi nào?"
Chat"Tìm kiếm các tin nhắn Google Chat gần đây về kế hoạch marketing."

Khắc phục sự cố

Triệu chứngNhững điều cần kiểm tra
Google báo lỗi redirect_uri_mismatchURI chuyển hướng của ứng dụng khách Google OAuth phải khớp chính xác với redirect_uri trong librechat.yaml, bao gồm giao thức, tên máy chủ, cổng, tên máy chủ và đường dẫn.
LibreChat hiển thị máy chủ nhưng không có công cụKết nối máy chủ từ giao diện người dùng LibreChat. Các máy chủ từ xa được bật OAuth sẽ hiển thị các công cụ sau khi người dùng đã xác thực.
Google hiển thị cảnh báo ứng dụng chưa được xác minhĐây là điều bình thường đối với các ứng dụng chưa được xác minh yêu cầu các phạm vi nhạy cảm hoặc bị hạn chế. Đối với mục đích sử dụng cá nhân hoặc phát triển hạn chế, người dùng có thể tiếp tục bỏ qua cảnh báo cho đến khi dự án đạt đến giới hạn người dùng chưa được xác minh của Google.
OAuth hoạt động trong quá trình thử nghiệm nhưng sau đó hết hạnCác ứng dụng bên ngoài ở chế độ thử nghiệm có thể nhận được mã làm mới (refresh token) hết hạn sau 7 ngày. Hãy xuất bản ứng dụng sang môi trường sản xuất để có mã làm mới tồn tại lâu hơn, hoặc xác thực lại trong quá trình phát triển.
Cấu hình Google Chat bị vô hiệu hóaSử dụng dự án/tài khoản được hỗ trợ bởi Google Workspace cho Chat, hoặc bỏ qua máy chủ chat.
Các yêu cầu MCP bị chặn bởi chính sách tên miền của LibreChatNếu mcpSettings.allowedDomains đã được cấu hình, hãy thêm các tên máy chủ máy chủ Google MCP mà bạn sử dụng.

Ghi chú về bảo mật

  • Chỉ kết nối các máy chủ MCP của Google Workspace với các phiên bản LibreChat mà bạn tin tưởng.
  • Chỉ yêu cầu các sản phẩm và phạm vi mà người dùng thực sự cần.
  • Xem lại các hành động do trợ lý đề xuất trước khi gửi email, đăng tin nhắn Chat, tải tệp lên hoặc thay đổi sự kiện trên lịch.
  • Hãy coi các tin nhắn email, tài liệu và tin nhắn trò chuyện là dữ liệu đầu vào không đáng tin cậy. Chúng có thể chứa các nỗ lực chèn prompt gián tiếp nhằm cố gắng gây ảnh hưởng đến trợ lý.
  • Đối với các triển khai công khai hoặc trên toàn tổ chức, hãy hoàn tất xác minh Google OAuth và tuân thủ các kiểm soát truy cập ứng dụng của bên thứ ba trong tổ chức của bạn.

Hướng dẫn này thế nào?