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ẩm | URL máy chủ MCP |
|---|---|
| Gmail | https://gmailmcp.googleapis.com/mcp/v1 |
| Google Drive | https://drivemcp.googleapis.com/mcp/v1 |
| Google Calendar | https://calendarmcp.googleapis.com/mcp/v1 |
| People API | https://people.googleapis.com/mcp/v1 |
| Google Chat | https://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:3080cho môi trường phát triển cục bộ hoặchttps://chat.example.comcho 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_IDKí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_IDCấ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.readonlyNhấ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/callbackNhấp vào Create, sau đó sao chép Client ID và Client 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-secretBạ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.com và people.googleapis.com.
Khởi động lại LibreChat
Khởi động lại LibreChat để tải lại .env và librechat.yaml.
| Triển khai | Lệnh |
|---|---|
| Docker | docker compose up -d |
| Local | Dừ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 MCPKế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:
- Nhấp vào Connect.
- Hoàn tất quy trình Google OAuth trong trình duyệt.
- Xem lại các phạm vi (scopes) được yêu cầu.
- 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ứng | Những điều cần kiểm tra |
|---|---|
Google báo lỗi redirect_uri_mismatch | URI 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ạn | Cá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óa | Sử 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 LibreChat | Nế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.
Các trang liên quan
Hướng dẫn này thế nào?