Sally MCP mit OpenHands (OpenDevin)
OpenHands (ehemals OpenDevin) ist eine Open-Source-Plattform für autonome Software-Agents. Das Model Context Protocol (MCP) ist ein offener Standard, über den KI-Tools auf externe Datenquellen zugreifen können. OpenHands unterstützt MCP-Server sowohl in OpenHands Cloud als auch im Agent SDK nativ. Nach der Verbindung können Agents deine Sally-Meetings, Zusammenfassungen und Transkripte im Rahmen automatisierter Workflows abfragen, zum Beispiel um Kontext aus vergangenen Besprechungen zu sammeln, offene Aufgaben zusammenzustellen oder Transkriptdaten in nachgelagerte Aufgaben einzuspeisen.
Hintergrundinformationen zum Sally MCP Connector, den verfügbaren Tools und Best Practices zur Sicherheit findest du im Allgemeinen Setup-Guide.
Schnellnavigation
- Personal Access Token in Sally erstellen
- MCP-Verbindung in OpenHands einrichten
- Alternative: OpenHands SDK verwenden
- Zugriffsumfang
- Troubleshooting
- Ein OpenHands Cloud-Konto unter app.all-hands.dev oder das OpenHands SDK lokal installiert (
pip install openhands-ai). - Einen aktiven Sally-Account mit Zugriff auf mindestens ein Unternehmenskonto.
- Sally MCP aktiviert in deinem Unternehmenskonto (Admin-Einstellung).
Sally akzeptiert sowohl OAuth 2.1 als auch einen Personal Access Token. Die MCP-Einstellungen von OpenHands bieten für Remote-Server ein Feld url und ein Feld api_key, aber keinen Browser-Login. Deshalb ist der Token-Weg der, der in der Oberfläche funktioniert. Über CLI, SDK oder die TOML-Konfiguration kann OpenHands auch OAuth nutzen, siehe dazu OAuth 2.1 mit Dynamic Client Registration.
1. Personal Access Token in Sally erstellen
Ein Personal Access Token (PAT) ist der Schlüssel, mit dem sich der OpenHands-Agent am Sally MCP-Endpoint authentifiziert. Du erstellst ihn einmal.
- Öffne unten links in der Seitenleiste die Einstellungen.
- Wähle unter Konfiguration den Punkt Integrationen und dort den Reiter MCP. Klicke unter Sally MCP auf Token erstellen. Ist noch kein Token vorhanden, steht der Button in der Mitte, sonst oben rechts.
-
Fülle den Dialog Sally MCP-Token erstellen aus:
- Name: Pflichtfeld. Wähle einen sprechenden Namen, an dem du den Token später wiedererkennst.
- Ablaufdatum (optional): setze ein Datum, wenn der Token von selbst ungültig werden soll. Ohne Angabe läuft er nicht ab.
Klicke dann auf Erstellen.
- Sally zeigt den kompletten Token genau einmal an. Kopiere ihn sofort über das Symbol rechts im Feld und lege ihn in einem Passwortmanager oder einem sicheren Secret-Store ab. Sobald du den Dialog schließt, kommst du nicht mehr an ihn heran.
Der Token gibt Lese-Zugriff auf alle Termine, Aufzeichnungen und Zusammenfassungen, die dein Sally-Benutzer in diesem Unternehmenskonto sieht. Teile ihn nicht über Chat, E-Mail oder Tickets, sondern lege ihn in einem Passwortmanager ab.
- Klicke auf Fertig. Der Token steht danach unter Deine aktiven Tokens, mit seinem Anfang, dem Ablaufdatum und einem Papierkorb. Über den Papierkorb entziehst du dem Token den Zugriff. Einen ersetzten Token legst du danach einfach neu an.
2. MCP-Verbindung in OpenHands einrichten
- Klicke in OpenHands Cloud links unten auf das Profil-Symbol.
- Wähle im aufpoppenden Menü den Punkt MCP.
- Klicke oben rechts auf Add Server. Fülle im Konfigurationsformular die folgenden Felder aus.
- Wähle bei Server Type den Wert SHTTP.
Im Dropdown ist standardmäßig SSE vorausgewählt. Sally nutzt aber das modernere Streamable-HTTP-Protokoll, daher unbedingt auf SHTTP umstellen. Bei SSE schlägt die Verbindung fehl.
- Trage bei URL ein:
https://app.sally.io/api/v1/McpExternal - Füge bei API Key den kompletten Sally-Token ein, also
sally_user_mcp_...mit Präfix. Schreibe keinBearerdavor. - Timeout (seconds) ist optional und darf leer bleiben. OpenHands rechnet dann mit 60 Sekunden. Dieser Wert steht auch als grauer Platzhalter im Feld.
Sally-Anfragen sind normalerweise in 1-3 Sekunden durch, die 60 Sekunden sind also mehr als ausreichend. Bei sehr großen Abfragen (z. B. lange Transkripte mehrerer Meetings) kannst du den Wert nachträglich über das Stift-Symbol am Server-Eintrag erhöhen.
- Klicke auf Add Server.
OpenHands zeigt nach dem Speichern des Servers keine Erfolgsmeldung an. Der Eintrag erscheint einfach in der Server-Liste, das bestätigt nur, dass die Konfiguration gespeichert wurde, nicht dass die Verbindung tatsächlich funktioniert. Die Verbindung muss in einer echten Konversation geprüft werden:
- Kehre über das OpenHands-Logo oben links zur Startseite zurück.
- Klicke unter Start from Scratch auf New Conversation.
- Stelle eine echte Sally-Anfrage, zum Beispiel:
„Was wurde in meinem letzten Termin besprochen?“
Wenn der Agent die Sally-Tools (search_appointments, get_recordings, get_summary, search_summaries, get_transcription) aufruft und tatsächliche Meeting-Inhalte zurückliefert, ist die Anbindung erfolgreich.
Damit der Agent die Sally-Tools überhaupt aufrufen kann, muss unter Settings → Language Model (LLM) ein Modell konfiguriert sein. OpenHands Cloud bringt standardmäßig das Modell openhands/minimax-m2.5 mit, das sofort funktioniert. Stärkere Modelle (Claude, GPT) lassen sich über eigene API-Keys einbinden, sind für Sally-Anfragen aber nicht nötig.
3. Alternative: OpenHands SDK verwenden
Wenn du das OpenHands Agent SDK statt der Cloud-UI nutzt, kannst du die Sally MCP-Config programmatisch übergeben.
mcp_config = {
"mcpServers": {
"sally": {
"url": "https://app.sally.io/api/v1/McpExternal",
"headers": {
"Authorization": "Bearer DEIN_SALLY_TOKEN"
}
}
}
}
Ersetze DEIN_SALLY_TOKEN durch den Token, den du in Schritt 1 erstellt hast.
Für Produktiv-Workflows empfiehlt es sich, den Token in einer Umgebungsvariable zu speichern, statt ihn fest einzutragen:
import os
sally_token = os.environ["SALLY_MCP_TOKEN"]
mcp_config = {
"mcpServers": {
"sally": {
"url": "https://app.sally.io/api/v1/McpExternal",
"headers": {
"Authorization": f"Bearer {sally_token}"
}
}
}
}
Variable vorher setzen: export SALLY_MCP_TOKEN=sally_user_mcp_abc123...
Übergib die Config an den Agent und führe ihn aus:
from openhands.sdk import Agent, LLM
llm = LLM(model="anthropic/claude-sonnet-4-20250514")
agent = Agent(
llm=llm,
tools=[],
mcp_config=mcp_config,
)
result = agent.run(
"Suche meine Sally-Meetings der letzten 14 Tage zum Thema Produkt-Roadmap "
"und fasse die wichtigsten Entscheidungen zusammen."
)
print(result)
Der Agent ruft search_appointments oder search_summaries auf, um relevante Meetings zu finden. Dann nutzt er get_summary oder get_transcription, um Details zu extrahieren.
4. Zugriffsumfang
Der Sally MCP-Connector liefert nur Meetings, die zu deinem eigenen Sally-User gehören oder dir explizit freigegeben sind. Die folgende Tabelle fasst zusammen, was über deinen Token erreichbar ist und was nicht:
| Quelle | Über MCP zugänglich? |
|---|---|
| Eigene Meetings (du bist Owner / Technical Owner) | Ja |
| Meetings, die dir über einen Aufzeichnungsordner freigegeben sind (direkt oder über eines deiner Teams) | Ja |
| Meetings von Personen, für die du als Vertretung eingetragen bist | Nein |
Auch wenn du in Sally als Vertretung für andere Personen eingetragen bist, sind deren Meetings nicht über MCP verfügbar. Der Connector liefert aktuell nur deine eigenen Aufzeichnungen sowie Aufzeichnungen, die dir explizit über einen Ordner freigegeben wurden. Wenn du die Meetings einer Vertretungs-Person in deinem KI-Tool brauchst, lass sie dir vom Owner über einen Aufzeichnungsordner freigeben.
5. Troubleshooting
| Problem | Lösung |
|---|---|
| Agent erwähnt nur seine internen Tools (Bash, Browser etc.), keine Sally-Tools | Server Type prüfen (muss SHTTP sein, nicht SSE). Token-Format prüfen: nur der nackte sally_user_mcp_...-Wert, ohne Bearer-Präfix. |
| Agent ruft Sally-Tool auf, bekommt aber 401 Unauthorized | Token in Sally löschen und neu anlegen, dann den Server-Eintrag in OpenHands über das Stift-Symbol bearbeiten und den neuen Token einsetzen. |
| Anfragen brechen mit Timeout ab | Server-Eintrag bearbeiten und Timeout-Wert von 60 auf 120 oder höher setzen. |
| Sally-Tools tauchen auf, werden aber nicht aufgerufen | Sprachmodell prüfen. Schwächere Modelle ignorieren manchmal verfügbare Tools. Auf ein stärkeres Modell wechseln. |
Weitere Tipps findest du im Allgemeinen Setup-Guide → Troubleshooting.







