Google Workspace MCP
LibreChat içinde Gmail, Drive, Calendar, People ve Chat için Google'ın uzak Workspace MCP sunucularını yapılandırın.
Google, Google Workspace ürünleri için uzak Model Context Protocol (MCP) sunucuları sağlar. LibreChat'te her bir Google Workspace ürünü, kendi OAuth özellikli uzak MCP sunucusu olarak yapılandırılır.
Geliştirici Önizlemesi
Google, Workspace MCP sunucularını Google Workspace Geliştirici Önizleme Programı'nın bir parçası olarak işaretlemektedir. Bunu geniş çapta dağıtmadan önce Google'ın güncel belgelerini inceleyin; çünkü mevcut ürünler, kapsamlar ve doğrulama gereksinimleri değişebilir.
Yapılandıracaklarınız
Google Workspace MCP tek bir birleşik sunucu değildir. Yalnızca kullanıcılara sunmak istediğiniz ürünleri yapılandırın:
| Ürün | MCP sunucu URL'si |
|---|---|
| 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 |
Her kullanıcı, LibreChat arayüzünden her sunucuya bağlanır. LibreChat, OAuth belirteçlerini kullanıcı bazında saklar; bu nedenle Gmail, Drive, Takvim, Kişiler ve Sohbet erişimi, bağlantıyı yetkilendiren Google hesabını takip eder.
Ön Koşullar
- Bir Google Cloud projesi.
- Bu projede API'leri etkinleştirme ve OAuth istemcileri oluşturma izni.
gcloudyüklü ve kimlik doğrulaması yapılmış veya Google Cloud konsoluna erişim.librechat.yamldosyasının bağlandığı veya başka bir şekilde yüklendiği çalışan bir LibreChat örneği.- Kullanıcıların LibreChat'i açmak için kullandıkları genel temel URL; örneğin yerel geliştirme için
http://localhost:3080veya üretim ortamı içinhttps://chat.example.com.
OAuth geri çağırma yolu
LibreChat'in MCP OAuth geri çağırma yolu BASE_URL/api/mcp/SERVER_NAME/oauth/callback şeklindedir.
SERVER_NAME, librechat.yaml içindeki mcpServers altında bulunan, gmail veya drive gibi anahtardır.
Kurulum
Google Workspace API'lerini etkinleştirin
PROJECT_ID ifadesini Google Cloud proje kimliğinizle (project ID) değiştirin:
gcloud services enable gmail.googleapis.com \
drive.googleapis.com \
calendar-json.googleapis.com \
chat.googleapis.com \
people.googleapis.com \
--project=PROJECT_IDGoogle Workspace MCP servislerini etkinleştirin
Yapılandırmayı planladığınız ürünler için MCP servislerini etkinleştirin:
gcloud services enable gmailmcp.googleapis.com \
drivemcp.googleapis.com \
calendarmcp.googleapis.com \
chatmcp.googleapis.com \
people.googleapis.com \
--project=PROJECT_IDGoogle Chat'i yapılandırın, gerekirse
Google Chat MCP sunucusu, aynı Google Cloud projesinde bir Chat uygulaması gerektirir.
Google Cloud konsolunda Google Chat API > Manage > Configuration kısmını açın ve bir Chat uygulaması oluşturun:
- Uygulama adı:
Chat MCP - Avatar URL:
https://developers.google.com/chat/images/quickstart-app-avatar.png - Açıklama:
Chat MCP server - İşlevsellik: Enable interactive features seçeneğini kapatın
- Günlükler: Hataları Günlüğe Kaydet (Log errors to Logging) seçeneğini seçin
Kaydet'e tıklayın.
Sohbet için Workspace hesabı gerekli
Google Chat uygulaması yapılandırması, bireysel Google hesapları için kullanılamayabilir. Eğer konsol, Google Chat API'sinin yalnızca Google Workspace kullanıcıları için mevcut olduğunu belirtiyorsa, chat MCP sunucusunu atlayın veya Workspace destekli bir proje/hesap kullanın.
Google Auth Platform'u Yapılandırın
Google Cloud konsolunda Google Auth Platform kısmına gidin.
Google Auth Platform henüz yapılandırılmadıysa, Get Started düğmesine tıklayın ve şunları sağlayın:
- Uygulama adı:
LibreChat Google Workspace MCPgibi net bir ad kullanın. - Kullanıcı destek e-postası: destek e-postanız veya Google grubunuz.
- Audience: Bir Google Workspace kuruluşu için Internal (Dahili) seçeneğini veya kullanıcılar kuruluşunuzun dışındaysa ya da kişisel bir Google hesabı kullanıyorsanız External (Harici) seçeneğini belirleyin.
- Geliştirici iletişim bilgileri: Google'ın proje hakkında sizi bilgilendirebileceği bir e-posta adresi.
External seçeneğini seçer ve uygulamayı test modunda tutarsanız, kendinizi ve izin verilen diğer kullanıcıları Audience > Test users altında ekleyin.
Veri Erişimi kapsamları ekleyin
Data Access > Add or Remove Scopes kısmını açın. Manually add scopes altında, kullanmak istediğiniz sunucular için kapsamları (scopes) yapıştırın.
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.readonlyTabloya Ekle'ye, Güncelle'ye ve ardından Kaydet'e tıklayın.
Hassas ve kısıtlı kapsamlar
Gmail, Drive, Chat, Contacts ve Directory kapsamları, Google'ın hassas veya kısıtlı kapsam incelemesini tetikleyebilir. Kişisel veya sınırlı geliştirme amaçlı kullanımlarda, kullanıcılar doğrulanmamış uygulama uyarısı ve 100 kullanıcı sınırı ile karşılaşabilirler. Genel veya kuruluş çapında kullanım için Google'ın OAuth doğrulama sürecini ve gerekli tüm kısıtlı kapsam incelemelerini tamamlayın.
Bir Web uygulaması OAuth istemcisi oluşturun
Google Auth Platform > Clients kısmında bir OAuth istemcisi oluşturun:
- Uygulama türü:
Web application - Name: açıklayıcı bir isim kullanın, örneğin
LibreChat Google Workspace MCP
Yapılandırdığınız her sunucu için yetkili bir yönlendirme URI'si ekleyin. Yerel geliştirme için:
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Üretim ortamı için http://localhost:3080 adresini kendi LibreChat URL'niz ile değiştirin:
https://chat.example.com/api/mcp/gmail/oauth/callbackCreate öğesine tıklayın, ardından Client ID ve Client secret bilgilerini kopyalayın.
OAuth kimlik bilgilerini .env dosyasına ekleyin
OAuth istemci değerlerini LibreChat .env dosyanıza ekleyin:
GOOGLE_WORKSPACE_MCP_CLIENT_ID=your-oauth-client-id
GOOGLE_WORKSPACE_MCP_CLIENT_SECRET=your-oauth-client-secretlibrechat.yaml referanslarını da güncellemeniz durumunda farklı ortam değişkeni isimleri kullanabilirsiniz.
MCP sunucularını librechat.yaml dosyasına ekleyin
mcpServers altında istediğiniz sunucuları ekleyin. Bu örnek, şu anda belgelenmiş olan tüm Google Workspace MCP sunucularını kullanmaktadır:
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']LibreChat herkese açık bir URL'de dağıtılmışsa, her redirect_uri değerini Google Cloud'da kayıtlı olan yönlendirme URI'si ile tam olarak eşleşecek şekilde güncelleyin.
Katı MCP etki alanı izin listeleri
Eğer librechat.yaml dosyanız aynı zamanda mcpSettings.allowedDomains yapılandırmasını da içeriyorsa, kullandığınız Google MCP ana bilgisayarlarını (örneğin gmailmcp.googleapis.com, drivemcp.googleapis.com, calendarmcp.googleapis.com, chatmcp.googleapis.com ve people.googleapis.com) ekleyin.
LibreChat'i Yeniden Başlatın
.env ve librechat.yaml dosyalarını yeniden yüklemesi için LibreChat'i yeniden başlatın.
| Dağıtım | Komut |
|---|---|
| Docker | docker compose up -d |
| Yerel | Sunucuyu durdurun, ardından tekrar başlatın |
Docker içinde yüklenen sunucuları doğrulamak için API günlüklerini kontrol edin:
docker logs LibreChat --tail 200 | grep MCPLibreChat içindeki her sunucuyu bağlayın
LibreChat'i açın, ardından sohbet girişindeki MCP Settings veya MCP Servers açılır menüsünü açın.
Her bir Google Workspace sunucusu için:
- Connect düğmesine tıklayın.
- Tarayıcıda Google OAuth akışını tamamlayın.
- İstenen kapsamları gözden geçirin.
- İzin Ver'e tıklayın.
OAuth başarılı olduktan sonra, sunucunun araçları sohbet içinde ve Agent Builder'da kullanılabilir hale gelir.
Test Etme
Her seferinde tek bir sunucuyu hedefleyen istemleri deneyin:
| Sunucu | İstemi |
|---|---|
| People | "Google profilime göre adım ne?" |
| Drive | "Marketing Plan adlı dosyayı bul ve özetle." |
| Gmail | "Pazarlama planı hakkındaki son e-postamı bul." |
| Gmail | "[email protected] adresine pazarlama planını onayladığımı belirten bir e-posta taslağı hazırla." |
| Calendar | "Ariel ile bir sonraki toplantım ne zaman?" |
| Chat | "Pazarlama planı hakkındaki son Google Chat mesajlarını ara." |
Sorun Giderme
| Belirti | Kontrol Edilmesi Gerekenler |
|---|---|
Google redirect_uri_mismatch hatası veriyor | Google OAuth istemcisi yönlendirme URI'si, protokol, ana bilgisayar adı, bağlantı noktası, sunucu adı ve yol dahil olmak üzere librechat.yaml içindeki redirect_uri ile tam olarak eşleşmelidir. |
| LibreChat sunucuyu gösteriyor ancak araçlar yok | Sunucuyu LibreChat arayüzünden bağlayın. OAuth özellikli uzak sunucular, kullanıcı kimlik doğrulamasını tamamladıktan sonra araçları kullanıma sunar. |
| Google doğrulanmamış uygulama uyarısı gösteriyor | Bu, hassas veya kısıtlı kapsamlar talep eden doğrulanmamış uygulamalar için beklenen bir durumdur. Kişisel veya sınırlı geliştirme kullanımı için kullanıcılar, proje Google'ın doğrulanmamış kullanıcı sınırına ulaşana kadar uyarıyı geçerek devam edebilirler. |
| OAuth test aşamasında çalışıyor ancak daha sonra süresi doluyor | Test modundaki harici uygulamalar, 7 gün sonra süresi dolan yenileme belirteçleri alabilir. Daha uzun ömürlü yenileme belirteçleri için uygulamayı üretime alın veya geliştirme sırasında yeniden kimlik doğrulaması yapın. |
| Google Chat yapılandırması devre dışı | Chat için Google Workspace destekli bir proje/hesap kullanın veya chat sunucusunu atlayın. |
| MCP istekleri LibreChat etki alanı politikası tarafından engelleniyor | Eğer mcpSettings.allowedDomains yapılandırılmışsa, kullandığınız Google MCP sunucusu ana bilgisayar adlarını ekleyin. |
Güvenlik Notları
- Google Workspace MCP sunucularını yalnızca güvendiğiniz LibreChat örneklerine bağlayın.
- Kullanıcılardan yalnızca gerçekten ihtiyaç duydukları ürünleri ve kapsamları talep edin.
- E-posta göndermeden, Chat mesajları paylaşmadan, dosya yüklemeden veya takvim etkinliklerini değiştirmeden önce asistan tarafından önerilen eylemleri gözden geçirin.
- E-posta iletilerini, belgeleri ve sohbet iletilerini güvenilmeyen girdi olarak değerlendirin. Bunlar, asistanı etkilemeye çalışan dolaylı istem enjeksiyonu (indirect prompt injection) girişimleri içerebilir.
- Genel kullanıma açık veya kurum genelindeki dağıtımlar için Google OAuth doğrulamasını tamamlayın ve kurumunuzun üçüncü taraf uygulama erişim kontrollerini izleyin.
İlgili Sayfalar
Bu rehber nasıl?