Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat
MCP SunucularıSalesforce MCP

Salesforce MCP

LibreChat içinde Harici İstemci Uygulaması ve kullanıcı bazlı OAuth ile Salesforce Barındırılan MCP sunucularını yapılandırın.

Salesforce Barındırılan MCP sunucuları, LibreChat kullanıcılarının kullanıcı bazlı OAuth aracılığıyla Salesforce'a bağlanmasını sağlar. Her araç çağrısı, alan düzeyi güvenliği, nesne izinleri ve paylaşım kuralları dahil olmak üzere kimliği doğrulanmış Salesforce kullanıcısının izinleriyle çalışır.

Harici Bir İstemci Uygulaması Kullanın

Salesforce Barındırılan MCP sunucuları bir External Client App gerektirir. Klasik Salesforce Connected Apps, Barındırılan MCP kimlik doğrulaması için desteklenmez.

Yapılandıracaklarınız

Bu kılavuz, en güvenli ilk bağlantı olduğu için salt okunur SObject sunucusu ile başlar. Bu çalıştıktan sonra, daha geniş kapsamlı bir Salesforce sunucusuna geçiş yapabilirsiniz.

SunucuErişim seviyesiÜretim URL'siSandbox veya karalama URL'si
SObject ReadsOkuma, sorgulama, arama, ilişkilerhttps://api.salesforce.com/platform/mcp/v1/platform/sobject-readshttps://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-reads
SObject MutationsOkuma, oluşturma, güncelleme, silme yokhttps://api.salesforce.com/platform/mcp/v1/platform/sobject-mutationshttps://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-mutations
SObject DeletesSilme odaklı iş akışlarıhttps://api.salesforce.com/platform/mcp/v1/platform/sobject-deleteshttps://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-deletes
SObject AllTam oluşturma, okuma, güncelleme, silmehttps://api.salesforce.com/platform/mcp/v1/platform/sobject-allhttps://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-all

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 yer alan anahtardır. Aşağıdaki örneklerde salesforce kullanılmıştır, bu nedenle yerel geri çağırma adresi http://localhost:3080/api/mcp/salesforce/oauth/callback olur.

Ön Koşullar

  • Barındırılan (Hosted) MCP sunucularını ve API erişimini destekleyen bir Salesforce organizasyonu.
  • System Administrator izinleri veya External Client Apps oluşturmak ve MCP sunucularını etkinleştirmek için eşdeğer izinler.
  • librechat.yaml dosyası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:3080 veya üretim ortamı için https://chat.example.com.

Henüz bir Salesforce org'unuz yoksa, developer.salesforce.com/signup adresinden ücretsiz bir Developer Edition org oluşturun, hesabı e-posta yoluyla doğrulayın ve ardından login.salesforce.com adresinden giriş yapın. Bu kılavuzdaki Salesforce Kurulum menüleri org içinde görünmüyorsa, Hosted MCP sunucuları etkinleştirilmiş desteklenen bir üretim, sandbox veya deneme org'u kullanın.

Kurulum

Salesforce MCP sunucusunu etkinleştirin

Salesforce içinde Setup kısmını açın.

  1. Quick Find içinde MCP Servers araması yapın.
  2. API Catalog altında MCP Servers kısmını açın.
  3. Kullanmak istediğiniz sunucuyu etkinleştirin. İlk kurulum için platform/sobject-reads öğesini etkinleştirin.
  4. Sunucunun aktif hale gelmesi için 2 dakikaya kadar bekleyin.

Tam erişimli örneği kullanmayı planlıyorsanız, bunun yerine platform/sobject-all seçeneğini etkinleştirin.

Harici Bir İstemci Uygulaması Oluşturun

Salesforce Kurulumu'nda:

  1. Quick Find içinde External Client App Manager araması yapın.
  2. New External Client App öğesine tıklayın.
  3. Temel uygulama bilgilerini doldurun. LibreChat Salesforce MCP gibi net bir isim kullanın.
  4. API (Enable OAuth Settings) kısmını genişletin ve OAuth'u etkinleştirin.
  5. LibreChat geri çağırma (callback) URL'sini ekleyin.

Yerel geliştirme için:

http://localhost:3080/api/mcp/salesforce/oauth/callback

Üretim ortamı için, temel URL'yi herkese açık LibreChat URL'niz ile değiştirin:

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

OAuth kapsamlarını ve güvenliği yapılandırın

Harici İstemci Uygulaması (External Client App) OAuth ayarlarında şu kapsamları (scopes) ekleyin:

mcp_api
refresh_token

Barındırılan MCP sunucuları için standart Salesforce api kapsamını kullanmayın. MCP sunucusu mcp_api kapsamını bekler.

Harici İstemci Uygulaması (External Client App) güvenlik ayarlarında:

  • JSON Web Token (JWT) tabanlı erişim belirteçlerini adlandırılmış kullanıcılar için ver seçeneğini belirleyin.
  • Desteklenen Yetkilendirme Akışları için Kod Değişimi için Kanıt Anahtarı (PKCE) uzantısını zorunlu kıl seçeneğini belirleyin.
  • Bu kılavuzdaki temel kurulum için Require Secret for Web Server Flow seçeneğini devre dışı bırakın.
  • Bu kılavuzdaki temel kurulum için Require Secret for Refresh Token Flow seçeneğini devre dışı bırakın.

Create düğmesine tıklayın, ardından uygulama ayarlarına gidin ve Consumer Key değerini kopyalayın. Salesforce, yeni bir External Client App'in kullanılabilir hale gelmesinin 30 dakikayı bulabileceğini belirtmektedir.

İsteğe bağlı istemci gizli anahtarı

LibreChat, bir istemci gizli anahtarını (client secret) sunucu tarafında saklayabilir. Salesforce yöneticiniz Require Secret for Web Server Flow (Web Sunucusu Akışı için Gizli Anahtar Gerektir) seçeneğini etkinleştirirse, bir istemci gizli anahtarı da oluşturun ve bu kılavuzun ilerleyen kısımlarında gösterilen isteğe bağlı client_secret alanlarını ekleyin.

Salesforce istemci kimliğini (client ID) .env dosyasına ekleyin

Harici İstemci Uygulaması tüketici anahtarını LibreChat .env dosyanıza ekleyin:

SALESFORCE_MCP_CLIENT_ID=your-salesforce-consumer-key

Eğer Require Secret for Web Server Flow özelliğini etkinleştirdiyseniz, şunu da ekleyin:

SALESFORCE_MCP_CLIENT_SECRET=your-salesforce-client-secret

Salesforce MCP'yi librechat.yaml dosyasına ekleyin

Bu örnek, bir üretim veya Developer Edition organizasyonu için salt okunur SObject sunucusunu yapılandırır:

mcpServers:
  salesforce:
    type: streamable-http
    url: 'https://api.salesforce.com/platform/mcp/v1/platform/sobject-reads'
    timeout: 90000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://login.salesforce.com/services/oauth2/authorize'
      token_url: 'https://login.salesforce.com/services/oauth2/token'
      client_id: '${SALESFORCE_MCP_CLIENT_ID}'
      scope: 'mcp_api refresh_token'
      redirect_uri: 'http://localhost:3080/api/mcp/salesforce/oauth/callback'

Bir sandbox veya scratch org için, sandbox MCP URL'sini ve Salesforce sandbox OAuth endpoint'lerini kullanın:

mcpServers:
  salesforce:
    type: streamable-http
    url: 'https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-reads'
    timeout: 90000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://test.salesforce.com/services/oauth2/authorize'
      token_url: 'https://test.salesforce.com/services/oauth2/token'
      client_id: '${SALESFORCE_MCP_CLIENT_ID}'
      scope: 'mcp_api refresh_token'
      redirect_uri: 'http://localhost:3080/api/mcp/salesforce/oauth/callback'

Harici İstemci Uygulamanız bir istemci gizli anahtarı (client secret) gerektiriyorsa, bu alanları oauth içine ekleyin:

oauth:
  client_secret: '${SALESFORCE_MCP_CLIENT_SECRET}'
  token_exchange_method: default_post
  token_endpoint_auth_methods_supported: ['client_secret_post']

LibreChat herkese açık bir URL'de dağıtılmışsa, redirect_uri değerini Salesforce'ta kayıtlı olan geri çağırma (callback) URL'si ile tam olarak eşleşecek şekilde güncelleyin.

Katı MCP etki alanı izin listeleri

Eğer librechat.yaml dosyanız mcpSettings.allowedDomains ayarını da yapılandırıyorsa, api.salesforce.com adresini ekleyin. Salesforce sandbox OAuth endpoint'lerini kullanıyorsanız ve politikanız OAuth ana bilgisayarları için de geçerliyse, test.salesforce.com adresine veya sandbox My Domain ana bilgisayarınıza da izin verin.

Gerekirse tam Salesforce erişimine geçin

Salt okunur sunucu çalıştıktan sonra, url kısmını değiştirerek başka bir etkin Salesforce sunucusuna geçiş yapabilirsiniz.

Bir üretim veya Developer Edition organizasyonunda tam SObject erişimi için:

url: 'https://api.salesforce.com/platform/mcp/v1/platform/sobject-all'

Bir sandbox veya scratch org içinde tam SObject erişimi için:

url: 'https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-all'

Değişiklik yapma veya silme yeteneğine sahip sunucuları, yalnızca bir asistan aracılığıyla Salesforce kayıtlarını oluşturmasına, güncellemesine veya silmesine izin verilmesi gereken kullanıcılara açın.

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ımKomut
Dockerdocker compose up -d
YerelSunucuyu durdurun, ardından tekrar başlatın

Sunucunun Docker içinde yüklendiğini doğrulamak için API günlüklerini kontrol edin:

docker logs LibreChat --tail 200 | grep MCP

LibreChat içinde Salesforce'u 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.

  1. Salesforce sunucusu için Connect düğmesine tıklayın.
  2. Salesforce OAuth akışını tamamlayın.
  3. İstenen mcp_api ve refresh_token kapsamlarını gözden geçirin.
  4. OAuth başarı sayfası kapandıktan sonra LibreChat'e dönün.

OAuth başarılı olduktan ve MCP bağlantısı başlatıldıktan sonra, Salesforce araçları sohbet içinde ve Agent Builder'da kullanılabilir hale gelir.

Test Etme

Etkinleştirdiğiniz sunucuyla eşleşen istemleri deneyin:

Sunucuİstemi
Herhangi bir SObject sunucusu"Salesforce'ta ben kimim?"
SObject Okumaları"En son görüntülediğim beş hesabı göster."
SObject Okumaları"Acme Corp ile ilgili açık destek taleplerini bul ve özetle."
SObject Değişiklikleri"Bu hesap için bir takip görevi oluştur. Herhangi bir şeyi kaydetmeden önce bana sor."
SObject Tümü"Kesin kaydı onayladıktan sonra bu fırsat aşamasını 'Kapandı-Kazanıldı' olarak güncelle."

Daha düşük seviyeli bir doğrulama kontrolü için, aynı Salesforce sunucusunu Postman veya MCP Inspector ile test edin. Eğer bu çalışıyor ancak LibreChat çalışmıyorsa, LibreChat callback URL'sini, OAuth kapsamlarını (scopes) ve sunucu URL'sini çalışan istemci ile karşılaştırın.

Sorun Giderme

BelirtiKontrol Edilmesi Gerekenler
Salesforce redirect_uri_mismatch hatası veriyorExternal Client App geri çağırma (callback) URL'si; protokol, ana bilgisayar adı, port, sunucu adı ve yol dahil olmak üzere librechat.yaml içindeki redirect_uri ile tam olarak eşleşmelidir.
Salesforce Giriş Geçmişi Invalid Code Verifier hatası veriyorPKCE durumu geri çağırma ile eşleşmedi. Aynı anda birden fazla OAuth akışı başlatmaktan kaçının. Çoklu kopya (multi-replica) dağıtımlarında, LibreChat'in yetkilendirme ve geri çağırma isteklerinin farklı kopyalara güvenli bir şekilde ulaşabilmesi için Redis gibi paylaşılan bir OAuth akış depolama alanı kullandığından emin olun.
Salesforce JWT Token is required hatası döndürüyorSunucu, bir Salesforce MCP erişim belirteci olmadan çağrılıyor. LibreChat üzerinden OAuth işlemini tamamlayın, requiresOAuth: true ayarını doğrulayın ve kullanıcının External Client App'i yetkilendirdiğinden emin olun.
Salesforce Invalid token hatası döndürüyorExternal Client App'in mcp_api kullandığını, JWT tabanlı erişim belirteçleri verdiğini ve PKCE'nin etkinleştirildiğini doğrulayın. Ayrıca MCP URL'sinin ve OAuth uç noktalarının aynı organizasyon türünü (üretim veya sandbox) işaret ettiğinden emin olun.
Salesforce Server definition not found for: sobject-all hatası döndürüyorSunucu etkinleştirilmemiş, hala yayılma aşamasında veya URL yanlış üretim/sandbox yolu kullanıyor. Salesforce Kurulumu'nda sunucuyu etkinleştirin ve 2 dakikaya kadar bekleyin.
Belirteç yenileme, kapsam (scope) ile ilgili bir hatayla başarısız oluyorYapılandırılmış kapsam olarak mcp_api refresh_token kullanın. Hosted MCP için normal Salesforce api kapsamını kullanmayın.
LibreChat Salesforce'u gösteriyor ancak araçlar görünmüyorSunucuyu LibreChat arayüzünden bağlayın. OAuth özellikli uzak sunucular, kullanıcı kimlik doğrulamasını tamamladıktan ve sunucu başlatıldıktan sonra araçları gösterir.
MCP istekleri LibreChat etki alanı politikası tarafından engelleniyorEğer mcpSettings.allowedDomains yapılandırılmışsa, api.salesforce.com adresine ve dağıtımınızın kullandığı tüm Salesforce OAuth ana bilgisayarlarına izin verin.

Güvenlik Notları

  • Kullanıcıların gerçekten yazma veya silme erişimine ihtiyacı olmadığı sürece platform/sobject-reads ile başlayın.
  • Salesforce, kimliği doğrulanmış kullanıcının izinlerini uygular, ancak asistan yine de geniş kapsamlı eylemler önerebilir. Yazma ve silme işlemlerini dikkatlice inceleyin.
  • MCP istemcisini kimin yetkilendirebileceğini kısıtlamak için Salesforce izin kümelerini (permission sets) ve Harici İstemci Uygulaması (External Client App) politikalarını kullanın.
  • Salesforce kayıtlarını güvenilmeyen girdi olarak değerlendirin. Kayıtlar, asistanı etkilemeye çalışan dolaylı istem enjeksiyonu (indirect prompt injection) girişimleri içerebilir.
  • Birden fazla LibreChat API kopyasına sahip üretim dağıtımları için, PKCE geri çağırmalarının kopyalar arasında kalıcı olması adına OAuth akış durumu için paylaşımlı depolama kullanın.

Bu rehber nasıl?