Salesforce MCP
Konfigurieren Sie gehostete Salesforce MCP-Server in LibreChat mit einer externen Client-App und benutzerbezogenem OAuth.
Salesforce Hosted MCP-Server ermöglichen es LibreChat-Benutzern, sich über per-user OAuth mit Salesforce zu verbinden. Jeder Tool-Aufruf wird mit den Berechtigungen des authentifizierten Salesforce-Benutzers ausgeführt, einschließlich Feldebene-Sicherheit, Objektberechtigungen und Freigaberegeln.
Eine externe Client-App verwenden
Salesforce Hosted MCP-Server erfordern eine External Client App. Classic Salesforce Connected Apps werden für die Hosted MCP-Authentifizierung nicht unterstützt.
Was Sie konfigurieren werden
Dieser Leitfaden beginnt mit dem schreibgeschützten SObject-Server, da dies die sicherste erste Verbindung ist. Sobald dies funktioniert, können Sie zu einem umfassenderen Salesforce-Server wechseln.
| Server | Zugriffsebene | Produktions-URL | Sandbox- oder Scratch-URL |
|---|---|---|---|
| SObject Reads | Lesen, Abfragen, Suchen, Beziehungen | https://api.salesforce.com/platform/mcp/v1/platform/sobject-reads | https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-reads |
| SObject Mutations | Lesen, Erstellen, Aktualisieren, kein Löschen | https://api.salesforce.com/platform/mcp/v1/platform/sobject-mutations | https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-mutations |
| SObject Deletes | Lösch-fokussierte Workflows | https://api.salesforce.com/platform/mcp/v1/platform/sobject-deletes | https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-deletes |
| SObject All | Vollständiges Erstellen, Lesen, Aktualisieren, Löschen | https://api.salesforce.com/platform/mcp/v1/platform/sobject-all | https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-all |
OAuth-Callback-Pfad
Der MCP OAuth-Callback-Pfad von LibreChat lautet BASE_URL/api/mcp/SERVER_NAME/oauth/callback.
SERVER_NAME ist der Schlüssel unter mcpServers in der librechat.yaml. Die folgenden Beispiele verwenden
salesforce, daher lautet der lokale Callback http://localhost:3080/api/mcp/salesforce/oauth/callback.
Voraussetzungen
- Eine Salesforce-Org, die Hosted MCP-Server und API-Zugriff unterstützt.
- Systemadministrator-Berechtigungen oder gleichwertige Berechtigungen zum Erstellen von External Client Apps und zum Aktivieren von MCP-Servern.
- Eine laufende LibreChat-Instanz, bei der
librechat.yamleingebunden oder anderweitig geladen ist. - Die öffentliche Basis-URL, die Benutzer verwenden, um LibreChat zu öffnen, zum Beispiel
http://localhost:3080für die lokale Entwicklung oderhttps://chat.example.comfür die Produktion.
Wenn Sie noch keine Salesforce-Org haben, erstellen Sie eine kostenlose Developer Edition-Org unter developer.salesforce.com/signup, bestätigen Sie das Konto per E-Mail und melden Sie sich dann unter login.salesforce.com an. Wenn die Salesforce-Setup-Menüs in dieser Anleitung in der Org nicht sichtbar sind, verwenden Sie eine unterstützte Produktions-, Sandbox- oder Test-Org mit aktivierten Hosted MCP-Servern.
Einrichtung
Aktivieren des Salesforce MCP-Servers
Öffnen Sie in Salesforce Setup.
- Suchen Sie in Quick Find nach
MCP Servers. - Öffnen Sie MCP Servers unter API Catalog.
- Aktivieren Sie den Server, den Sie verwenden möchten. Aktivieren Sie für die Ersteinrichtung
platform/sobject-reads. - Warten Sie bis zu 2 Minuten, bis der Server aktiv ist.
Wenn Sie das Beispiel mit vollem Zugriff verwenden möchten, aktivieren Sie stattdessen platform/sobject-all.
Externe Client-App erstellen
In Salesforce Setup:
- Suchen Sie in Quick Find nach
External Client App Manager. - Klicken Sie auf New External Client App.
- Geben Sie die grundlegenden App-Informationen ein. Verwenden Sie einen eindeutigen Namen, wie z. B.
LibreChat Salesforce MCP. - Erweitern Sie API (Enable OAuth Settings) und aktivieren Sie OAuth.
- Fügen Sie die LibreChat Callback-URL hinzu.
Für die lokale Entwicklung:
Für die Produktion ersetzen Sie die Basis-URL durch Ihre öffentliche LibreChat-URL:
OAuth-Scopes und Sicherheit konfigurieren
Fügen Sie in den OAuth-Einstellungen der externen Client-App diese Scopes hinzu:
Verwenden Sie nicht den standardmäßigen Salesforce api scope für gehostete MCP-Server. Der MCP-Server erwartet den mcp_api scope.
In den Sicherheitseinstellungen der External Client App:
- Wählen Sie Issue JSON Web Token (JWT)-based access tokens for named users.
- Wählen Sie Require Proof Key for Code Exchange (PKCE) extension for Supported Authorization Flows aus.
- Lassen Sie Require Secret for Web Server Flow für die grundlegende Einrichtung in dieser Anleitung deaktiviert.
- Lassen Sie Require Secret for Refresh Token Flow für die grundlegende Einrichtung in dieser Anleitung deaktiviert.
Klicken Sie auf Create, öffnen Sie dann die App-Einstellungen und kopieren Sie den Consumer Key. Salesforce gibt an, dass es bis zu 30 Minuten dauern kann, bis eine neue External Client App verfügbar ist.
Optionales Client-Secret
LibreChat kann ein Client-Secret serverseitig speichern. Wenn Ihr Salesforce-Administrator Require Secret for Web Server Flow aktiviert, generieren Sie ebenfalls ein Client-Secret und fügen Sie die optionalen client_secret-Felder hinzu, die später in dieser Anleitung gezeigt werden.
Fügen Sie die Salesforce-Client-ID zur .env hinzu
Fügen Sie den Consumer-Key der External Client App zu Ihrer LibreChat .env Datei hinzu:
Wenn Sie Require Secret for Web Server Flow aktiviert haben, fügen Sie außerdem Folgendes hinzu:
Salesforce MCP zu librechat.yaml hinzufügen
Dieses Beispiel konfiguriert den schreibgeschützten SObject-Server für eine Produktions- oder Developer Edition-Org:
Verwenden Sie für eine Sandbox oder Scratch Org die Sandbox MCP URL und die Salesforce Sandbox OAuth endpoints:
Wenn Ihre externe Client-App ein Client-Secret erfordert, fügen Sie diese Felder innerhalb von oauth hinzu:
Wenn LibreChat unter einer öffentlichen URL bereitgestellt wird, aktualisieren Sie redirect_uri so, dass sie exakt mit der in Salesforce registrierten Callback-URL übereinstimmt.
Strenge MCP-Domain-Allowlists
Wenn Ihre librechat.yaml auch mcpSettings.allowedDomains konfiguriert, fügen Sie api.salesforce.com hinzu.
Wenn Sie Salesforce-Sandbox-OAuth-endpoints verwenden und Ihre Richtlinie auch für OAuth-Hosts gilt, erlauben Sie zusätzlich test.salesforce.com oder Ihren Sandbox-My-Domain-Host.
Bei Bedarf zum vollständigen Salesforce-Zugriff wechseln
Nachdem der schreibgeschützte Server funktioniert, können Sie zu einem anderen aktivierten Salesforce-Server wechseln, indem Sie die url ändern.
Für den vollständigen SObject-Zugriff in einer Produktions- oder Developer Edition-Org:
Für vollständigen SObject-Zugriff in einer Sandbox oder Scratch Org:
Stellen Sie Server, die Mutationen oder Löschvorgänge ausführen können, nur Benutzern zur Verfügung, die berechtigt sein sollen, Salesforce-Datensätze über einen Assistenten zu erstellen, zu aktualisieren oder zu löschen.
LibreChat neu starten
Starten Sie LibreChat neu, damit .env und librechat.yaml neu geladen werden.
| Bereitstellung | Befehl |
|---|---|
| Docker | docker compose up -d |
| Lokal | Stoppen Sie den Server und starten Sie ihn dann erneut |
Um zu bestätigen, dass der Server in Docker geladen wurde, überprüfen Sie die API-Logs:
Salesforce in LibreChat verbinden
Öffnen Sie LibreChat und dann MCP Settings oder das Dropdown-Menü MCP Servers in der Chateingabe.
- Klicken Sie auf Connect für den Salesforce-Server.
- Schließen Sie den Salesforce OAuth-Flow ab.
- Überprüfen Sie die angeforderten
mcp_api- undrefresh_token-Scopes. - Kehren Sie zu LibreChat zurück, nachdem sich die OAuth-Erfolgsseite geschlossen hat.
Nachdem OAuth erfolgreich war und die MCP-Verbindung initialisiert wurde, stehen Salesforce-Tools im Chat und im Agent Builder zur Verfügung.
Testen
Probiere Prompts aus, die zu dem von dir aktivierten Server passen:
| Server | Prompt |
|---|---|
| Any SObject server | "Wer bin ich in Salesforce?" |
| SObject Reads | "Zeige mir meine fünf zuletzt angesehenen Accounts." |
| SObject Reads | "Finde offene Fälle mit Bezug zu Acme Corp und fasse sie zusammen." |
| SObject Mutations | "Erstelle eine Folgeaufgabe für diesen Account. Frage mich, bevor du etwas speicherst." |
| SObject All | "Aktualisiere diese Opportunity-Phase auf 'Closed Won', nachdem der genaue Datensatz bestätigt wurde." |
Für eine grundlegende Überprüfung führen Sie einen Test desselben Salesforce-Servers mit Postman oder dem MCP Inspector durch. Wenn dies funktioniert, LibreChat jedoch nicht, vergleichen Sie die LibreChat Callback-URL, die OAuth-Scopes und die Server-URL mit dem funktionierenden Client.
Fehlerbehebung
| Symptom | Was zu prüfen ist |
|---|---|
Salesforce meldet redirect_uri_mismatch | Die Callback-URL der External Client App muss exakt mit der redirect_uri in librechat.yaml übereinstimmen, einschließlich Protokoll, Hostname, Port, Servername und Pfad. |
Salesforce Login-Verlauf meldet Invalid Code Verifier | Der PKCE-Status stimmte nicht mit dem Callback überein. Vermeiden Sie es, mehrere OAuth-Flows gleichzeitig zu starten. Stellen Sie bei Bereitstellungen mit mehreren Replikaten sicher, dass LibreChat einen gemeinsamen OAuth-Flow-Speicher wie Redis verwendet, damit Autorisierungs- und Callback-Anfragen sicher auf verschiedenen Replikaten landen können. |
Salesforce meldet JWT Token is required | Der Server wird ohne ein Salesforce MCP-Zugriffstoken aufgerufen. Schließen Sie OAuth über LibreChat ab, bestätigen Sie requiresOAuth: true und stellen Sie sicher, dass der Benutzer die External Client App autorisiert hat. |
Salesforce meldet Invalid token | Bestätigen Sie, dass die External Client App mcp_api verwendet, JWT-basierte Zugriffstoken ausstellt und PKCE aktiviert hat. Stellen Sie außerdem sicher, dass die MCP-URL und die OAuth-endpoints auf denselben Organisationstyp verweisen (Produktion vs. Sandbox). |
Salesforce meldet Server definition not found for: sobject-all | Der Server ist nicht aktiviert, befindet sich noch in der Bereitstellung oder die URL verwendet den falschen Pfad für Produktion bzw. Sandbox. Aktivieren Sie den Server in Salesforce Setup und warten Sie bis zu 2 Minuten. |
| Token-Aktualisierung schlägt mit einem bereichsbezogenen Fehler fehl | Verwenden Sie mcp_api refresh_token als konfigurierten Scope. Ersetzen Sie für Hosted MCP nicht den regulären Salesforce api-Scope. |
| LibreChat zeigt Salesforce an, aber keine Tools | Verbinden Sie den Server über die LibreChat-Benutzeroberfläche. OAuth-fähige Remote-Server stellen Tools erst bereit, nachdem der Benutzer sich authentifiziert hat und der Server initialisiert wurde. |
| MCP-Anfragen werden durch die LibreChat-Domain-Richtlinie blockiert | Wenn mcpSettings.allowedDomains konfiguriert ist, erlauben Sie api.salesforce.com sowie jeden Salesforce OAuth-Host, den Ihre Bereitstellung verwendet. |
Sicherheitshinweise
- Beginnen Sie mit
platform/sobject-reads, es sei denn, Benutzer benötigen tatsächlich Schreib- oder Löschzugriff. - Salesforce erzwingt die Berechtigungen des authentifizierten Benutzers, aber der Assistent kann dennoch weitreichende Aktionen vorschlagen. Überprüfen Sie Schreib- und Löschvorgänge sorgfältig.
- Verwenden Sie Salesforce-Berechtigungssätze und Richtlinien für externe Client-Apps, um einzuschränken, wer den MCP-Client autorisieren darf.
- Behandle Salesforce-Datensätze als nicht vertrauenswürdige Eingabe. Datensätze können indirekte Prompt-Injection-Versuche enthalten, die versuchen, den Assistenten zu beeinflussen.
- Für Produktionsbereitstellungen mit mehreren LibreChat API-Replikaten verwenden Sie einen gemeinsamen Speicher für den OAuth-Flow-Status, damit PKCE-Callbacks über Replikate hinweg persistent bleiben.
Verwandte Seiten
Wie finden Sie diese Anleitung?