Daktela MCP Server¶
Der Daktela MCP Server verbindet KI-Assistenten (Claude Code, Claude Desktop, Cursor und andere) über das Model Context Protocol (MCP) mit Ihrem Daktela Contact Centre. Er bietet Zugriff auf Ihre Contact-Centre-Daten und ermöglicht Aufgaben wie Qualitätsaudits von E-Mails, Überprüfungen der Verkaufspipeline und Anrufanalysen — ganz ohne Programmierung.
Info
Standardmäßig bietet der MCP Server schreibgeschützten Zugriff auf Ihre Daktela-Daten. Schreibzugriff kann für bestimmte Rollen aktiviert werden, aber nur der Daktela-Support kann ihn für Ihre Instanz einschalten — siehe Schreibzugriff unten.
Es gibt zwei Möglichkeiten, den Daktela MCP Server zu nutzen:
- Gehostet (integriert) — der MCP Server läuft als Teil Ihrer Daktela-Instanz. Keine Installation erforderlich.
- Selbst gehostet — betreiben Sie den Open-Source-PHP-Server selbst für individuelle Deployments oder Cloud-Setups.
Was ist MCP?¶
Das Model Context Protocol ist ein offener Standard, der es KI-Anwendungen ermöglicht, sich mit externen Datenquellen und Werkzeugen zu verbinden. Durch die Verbindung mit dem Daktela MCP Server erhält Ihr KI-Assistent strukturierten Zugriff auf Ihre Daktela-Instanz — und ermöglicht so Analyse- und Berichtsaufgaben ohne individuellen Code.
Schreibzugriff¶
Standardmäßig stellt der MCP Server nur schreibgeschützte Werkzeuge bereit — er kann keine Datensätze erstellen oder aktualisieren. Schreibgeschützte Vorgänge sind immer verfügbar und werden vom Schreibzugriff nie beeinträchtigt.
Info
Schreibzugriff ist kein Self-Service. Um ihn zu aktivieren, wenden Sie sich an den Daktela-Support und bitten Sie darum, ihn fĂĽr Ihre Instanz einzuschalten.
Sobald der Daktela-Support den Schreibzugriff aktiviert hat, muss Ihr Daktela-Administrator noch die Berechtigung MCP Write Access für die betreffende(n) Rolle(n) unter Verwalten → Benutzer → Zugriffe erteilen — siehe Zugriffe. Für jede Rolle standardmäßig deaktiviert — bis sie erteilt wird, werden Schreibvorgänge mit einem Fehler wegen unzureichender Berechtigungen abgelehnt.
Dies gilt fĂĽr alle MCP-Clients (Claude, Cursor und alle anderen).
Gehostet (integriert)¶
Der gehostete MCP Server ist in Ihre Daktela-Instanz integriert. Es werden weder PHP, Docker noch Composer benötigt. Es stehen zwei Authentifizierungsmethoden zur Verfügung:
- OAuth-Anmeldung (empfohlen) — melden Sie sich über einen geführten Browser-Bildschirm an. Kein Token muss generiert oder kopiert werden.
- Zugriffstoken (manuell) — generieren Sie einen persönlichen Token und fügen Sie ihn in die Konfiguration Ihres Clients ein. Nützlich für Clients, die keine OAuth-basierten Verbindungen unterstützen, oder für Headless-/Skript-Setups.
Tip
Bevor Sie Ihren KI-Client einrichten, öffnen Sie in Daktela Einstellungen → System → Integrationen → Daktela MCP Server → Einrichtungsanleitung. Dort werden die genaue Server-URL und Konfigurationsausschnitte für Ihre Instanz angezeigt — eine schnelle Referenz für beide unten beschriebenen Authentifizierungsmethoden.
OAuth-Anmeldung (empfohlen)¶
Wenn Ihr KI-Client die Verbindung zu entfernten MCP-Servern über OAuth unterstützt — zum Beispiel, indem Sie Daktela als „Remote-MCP-Connector" hinzufügen und einfach dessen Server-URL eingeben — ist dies der schnellste Weg zur Verbindung.
- FĂĽgen Sie in Ihrem KI-Client den Daktela MCP Server ĂĽber seine URL hinzu:
https://YOUR_DOMAIN/mcp-server/mcp. - Der Client erkennt, dass eine Authentifizierung erforderlich ist, und öffnet einen Daktela-Anmelde-/Genehmigungsbildschirm in Ihrem Browser.
- Wenn Sie bereits bei Daktela angemeldet sind, klicken Sie auf Genehmigen, um Zugriff zu gewähren. Andernfalls melden Sie sich zuerst mit Ihren üblichen Daktela-Anmeldedaten an und genehmigen dann.
- Nach der Genehmigung ist Ihr KI-Client automatisch verbunden — Sie sehen oder verwenden nie einen rohen Zugriffstoken.
Info
Im Hintergrund verwendet dies den standardmäßigen OAuth-2.0-+-PKCE-Autorisierungsablauf, der in der MCP-Spezifikation definiert ist, einschließlich dynamischer Client-Registrierung und Token-Austausch. Der resultierende Zugriffstoken ist auf Ihren Daktela-Benutzer beschränkt und 60 Minuten lang gültig.
Tip
Noch nicht jeder MCP-Client unterstĂĽtzt OAuth-basierte Remote-Verbindungen. Falls Ihrer dies nicht tut, verwenden Sie stattdessen die unten beschriebene Methode Zugriffstoken.
Zugriffstoken (manuell)¶
Wenn Ihr KI-Client keine OAuth-basierten Remote-Verbindungen unterstützt oder Sie eine Headless-/Skript-Integration einrichten, generieren Sie stattdessen einen persönlichen Zugriffstoken.
Schritt 1 — Zugriffstoken abrufen¶
Sie benötigen einen persönlichen API-Zugriffstoken aus Ihrem Daktela-Benutzerprofil. Gehen Sie zu Ihrem Benutzerprofil → Access Tokens und generieren Sie einen neuen Token.
Tip
Erstellen Sie einen eigenen Token für Ihren KI-Assistenten, damit Sie ihn bei Bedarf unabhängig widerrufen können.
Schritt 2 — KI-Client konfigurieren¶
FĂĽgen Sie die untenstehende Konfiguration zu Ihrem KI-Client hinzu. Ersetzen Sie YOUR_DOMAIN durch Ihren Daktela-Hostnamen (z. B. yourcompany.daktela.com) und YOUR_ACCESS_TOKEN durch den Token aus Schritt 1.
Claude Code¶
FĂĽgen Sie dies zu Ihrer Projektdatei .mcp.json hinzu:
{
"mcpServers": {
"daktela": {
"type": "http",
"url": "https://YOUR_DOMAIN/mcp-server/mcp",
"headers": {
"X-Daktela-Access-Token": "YOUR_ACCESS_TOKEN"
}
}
}
}
Alternativ können Sie die Konfiguration global in Ihrer Claude-Code-Einstellungsdatei vornehmen (macOS / Linux: ~/.claude/settings.json; Windows: %USERPROFILE%\.claude\settings.json, was sich zu C:\Users\<you>\.claude\settings.json auflöst):
{
"mcpServers": {
"daktela": {
"type": "http",
"url": "https://YOUR_DOMAIN/mcp-server/mcp",
"headers": {
"X-Daktela-Access-Token": "YOUR_ACCESS_TOKEN"
}
}
}
}
Claude Desktop¶
Fügen Sie Folgendes zu Ihrer Claude-Desktop-Konfigurationsdatei hinzu. Der Speicherort der Datei hängt von Ihrem Betriebssystem ab:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json(löst sich zuC:\Users\<you>\AppData\Roaming\Claude\claude_desktop_config.jsonauf)
{
"mcpServers": {
"daktela": {
"type": "http",
"url": "https://YOUR_DOMAIN/mcp-server/mcp",
"headers": {
"X-Daktela-Access-Token": "YOUR_ACCESS_TOKEN"
}
}
}
}
Tip
Unter Windows ist der Ordner AppData im Datei-Explorer standardmäßig ausgeblendet. Um den Claude-Ordner schnell zu öffnen, drücken Sie Win+R, fügen Sie %APPDATA%\Claude ein und drücken Sie die Eingabetaste. Alternativ aktivieren Sie Ausgeblendete Elemente unter Ansicht → Einblenden im Datei-Explorer.
Andere MCP-Clients¶
Jeder Client, der den MCP-HTTP-Transport unterstĂĽtzt, kann sich mit Folgendem verbinden:
- URL:
https://YOUR_DOMAIN/mcp-server/mcp - Authentifizierung: HTTP-Header
X-Daktela-Access-Token: YOUR_ACCESS_TOKEN
Selbst gehostet (fortgeschritten)¶
Für individuelle oder Cloud-Deployments können Sie den MCP Server mithilfe des Open-Source-PHP-Pakets selbst betreiben.
- GitHub-Repository: Daktela/daktela-v6-php-mcp-server
Anforderungen¶
- PHP 8.2 oder höher
- Composer (PHP-Paketmanager)
- Eine Daktela-Instanz mit API-Lesezugriff
- Ein API-Zugriffstoken aus Ihrem Daktela-Konto
Installation¶
-
Klonen Sie das Repository:
-
Installieren Sie die Abhängigkeiten:
Konfiguration¶
Der Server wird ĂĽber Umgebungsvariablen konfiguriert. Erstellen Sie eine .env-Datei auf Basis des bereitgestellten Beispiels oder ĂĽbergeben Sie die Variablen direkt beim Start des Servers.
| Variable | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
DAKTELA_URL |
Ja | — | Die URL Ihrer Daktela-Instanz, z. B. https://your-instance.daktela.com |
DAKTELA_ACCESS_TOKEN |
Ja | — | API-Zugriffstoken aus Ihrem Daktela-Konto |
CACHE_ENABLED |
Nein | true |
Caching von Referenzdaten aktivieren (Warteschlangen, Benutzer, Status usw.) |
CACHE_TTL_SECONDS |
Nein | 3600 |
Cache-Dauer in Sekunden |
Tip
Sie können in Ihrer Daktela-Instanz unter Verwalten → Benutzer → Benutzer bearbeiten → Access Tokens einen API-Zugriffstoken generieren.
Deployment-Optionen¶
Der selbst gehostete Server unterstĂĽtzt zwei Transportmodi: stdio (fĂĽr lokale KI-Desktop-Apps) und HTTP (fĂĽr Remote-/Cloud-Deployments).
Claude Desktop — Docker¶
Dies ist der empfohlene Ansatz fĂĽr den Selbstbetrieb. Erstellen Sie das Docker-Image und konfigurieren Sie Claude Desktop so, dass es verwendet wird.
-
Erstellen Sie das Image:
-
FĂĽgen Sie Folgendes zu Ihrer
claude_desktop_config.jsonhinzu:
Claude Desktop — direktes PHP¶
Wenn Sie PHP lieber direkt ohne Docker ausführen möchten:
{
"mcpServers": {
"daktela": {
"command": "php",
"args": ["/path/to/daktela-v6-php-mcp-server/bin/server.php"],
"env": {
"DAKTELA_URL": "https://your-instance.daktela.com",
"DAKTELA_ACCESS_TOKEN": "your-api-token"
}
}
}
}
Docker — eigenständig¶
Betreiben Sie den Server als eigenständigen Docker-Container:
docker run -i --rm \
-e DAKTELA_URL=https://your-instance.daktela.com \
-e DAKTELA_ACCESS_TOKEN=your-api-token \
daktela-v6-php-mcp-server
HTTP-Servermodus (Cloud-Deployment)¶
Für Remote-Deployments wie Google Cloud Run läuft der Server im HTTP-Modus, in dem Clients ihre Anmeldedaten über Header übergeben:
docker run --rm -p 8080:8080 \
-e DAKTELA_URL=https://your-instance.daktela.com \
-e DAKTELA_ACCESS_TOKEN=your-api-token \
daktela-v6-php-mcp-server php bin/http-server.php
Beispiel fĂĽr ein Cloud-Deployment mit Google Cloud Run:
gcloud run deploy daktela-v6-php-mcp-server \
--source . \
--dockerfile Dockerfile.prod \
--region europe-west1 \
--allow-unauthenticated \
--memory 1Gi
Warning
Wenn Sie mit --allow-unauthenticated in die Cloud deployen, stellen Sie sicher, dass Sie geeignete Zugriffskontrollen implementieren, um Ihre Daktela-Daten zu schĂĽtzen.
VerfĂĽgbare Werkzeuge¶
Der MCP Server stellt 81 Werkzeuge bereit, die in die folgenden Kategorien unterteilt sind: 43 schreibgeschützte und 38 schreibende. Als „Write" gekennzeichnete Werkzeuge funktionieren erst, wenn der Schreibzugriff aktiviert ist — sowohl die globale Einstellung als auch die rollenspezifische Berechtigung müssen aktiviert sein. Alle Listenwerkzeuge unterstützen Paginierung, Sortierung und kontextbezogene Filterung.
Info
Es gibt keine Lösch-Werkzeuge — der MCP Server kann keine Datensätze entfernen, auch nicht mit aktiviertem Schreibzugriff.
Tickets¶
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
count_tickets |
Read | Tickets zählen, die den Filterkriterien entsprechen |
get_ticket |
Read | Ein bestimmtes Ticket anhand der ID abrufen |
get_ticket_detail |
Read | Detaillierte Ticketinformationen abrufen |
list_account_tickets |
Read | Tickets fĂĽr ein bestimmtes Konto auflisten |
list_ticket_categories |
Read | VerfĂĽgbare Ticketkategorien auflisten |
list_tickets |
Read | Tickets mit Filterung und Paginierung auflisten |
create_ticket |
Write | Ein neues Ticket erstellen |
update_ticket |
Write | Ein bestehendes Ticket aktualisieren |
create_ticket_category |
Write | Eine neue Ticketkategorie erstellen |
update_ticket_category |
Write | Eine bestehende Ticketkategorie aktualisieren |
Aktivitäten¶
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
count_activities |
Read | Aktivitäten zählen, die den Filterkriterien entsprechen |
get_activity |
Read | Eine bestimmte Aktivität anhand der ID abrufen |
list_activities |
Read | Aktivitäten mit Filterung und Paginierung auflisten |
create_activity |
Write | Eine neue Aktivität erstellen |
update_activity |
Write | Eine bestehende Aktivität aktualisieren |
Anrufe¶
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
count_calls |
Read | Anrufe zählen, die den Filterkriterien entsprechen |
get_call |
Read | Einen bestimmten Anruf anhand der ID abrufen |
get_call_transcript |
Read | Das Transkript eines bestimmten Anrufs abrufen |
list_call_transcripts |
Read | VerfĂĽgbare Anruftranskripte auflisten |
list_calls |
Read | Anrufe mit Filterung und Paginierung auflisten |
create_call |
Write | Einen neuen Anrufdatensatz erstellen |
update_call |
Write | Einen bestehenden Anrufdatensatz aktualisieren |
E-Mails¶
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
count_emails |
Read | E-Mails zählen, die den Filterkriterien entsprechen |
get_email |
Read | Eine bestimmte E-Mail anhand der ID abrufen |
list_emails |
Read | E-Mails mit Filterung und Paginierung auflisten |
create_email |
Write | Eine neue E-Mail erstellen |
update_email |
Write | Eine bestehende E-Mail aktualisieren |
Messaging¶
Umfasst Webchat, SMS, Facebook Messenger, Instagram, WhatsApp und Viber.
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
count_chats |
Read | Chatnachrichten zählen, die den Filterkriterien entsprechen |
get_chat |
Read | Eine bestimmte Chatnachricht anhand der ID abrufen |
list_chats |
Read | Chatnachrichten mit Filterung und Paginierung auflisten |
create_message |
Write | Eine neue Chat-/Messaging-Nachricht erstellen |
update_message |
Write | Eine bestehende Chat-/Messaging-Nachricht aktualisieren |
Kontakte und CRM¶
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
count_accounts |
Read | Konten zählen, die den Filterkriterien entsprechen |
count_contacts |
Read | Kontakte zählen, die den Filterkriterien entsprechen |
count_crm_records |
Read | CRM-Datensätze zählen, die den Filterkriterien entsprechen |
get_account |
Read | Ein bestimmtes Konto anhand der ID abrufen |
get_contact |
Read | Einen bestimmten Kontakt anhand der ID abrufen |
get_crm_record |
Read | Einen bestimmten CRM-Datensatz anhand der ID abrufen |
list_accounts |
Read | Konten mit Filterung und Paginierung auflisten |
list_contacts |
Read | Kontakte mit Filterung und Paginierung auflisten |
list_crm_records |
Read | CRM-Datensätze mit Filterung und Paginierung auflisten |
create_account |
Write | Ein neues Konto erstellen |
update_account |
Write | Ein bestehendes Konto aktualisieren |
create_contact |
Write | Einen neuen Kontakt erstellen |
update_contact |
Write | Einen bestehenden Kontakt aktualisieren |
create_crm_record |
Write | Einen neuen CRM-Datensatz erstellen |
update_crm_record |
Write | Einen bestehenden CRM-Datensatz aktualisieren |
Kampagnen¶
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
count_campaign_records |
Read | Kampagnendatensätze zählen, die den Filterkriterien entsprechen |
get_campaign_record |
Read | Einen bestimmten Kampagnendatensatz anhand der ID abrufen |
list_campaign_records |
Read | Kampagnendatensätze mit Filterung und Paginierung auflisten |
list_campaign_types |
Read | VerfĂĽgbare Kampagnentypen auflisten |
create_campaign_record |
Write | Einen neuen Kampagnendatensatz erstellen |
update_campaign_record |
Write | Einen bestehenden Kampagnendatensatz aktualisieren |
create_campaign_type |
Write | Einen neuen Kampagnentyp erstellen |
update_campaign_type |
Write | Einen bestehenden Kampagnentyp aktualisieren |
Referenzdaten¶
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
list_groups |
Read | Agentengruppen auflisten |
list_pauses |
Read | VerfĂĽgbare Pausentypen auflisten |
list_queues |
Read | Warteschlangen auflisten |
list_statuses |
Read | Ticket-/Aktivitätsstatus auflisten |
list_templates |
Read | Nachrichtenvorlagen auflisten |
list_users |
Read | Benutzer auflisten |
create_group |
Write | Eine neue Agentengruppe erstellen |
update_group |
Write | Eine bestehende Agentengruppe aktualisieren |
create_pause |
Write | Einen neuen Pausentyp erstellen |
update_pause |
Write | Einen bestehenden Pausentyp aktualisieren |
create_queue |
Write | Eine neue Warteschlange erstellen |
update_queue |
Write | Eine bestehende Warteschlange aktualisieren |
create_status |
Write | Einen neuen Ticket-/Aktivitätsstatus erstellen |
update_status |
Write | Einen bestehenden Ticket-/Aktivitätsstatus aktualisieren |
create_template |
Write | Eine neue Nachrichtenvorlage erstellen |
update_template |
Write | Eine bestehende Nachrichtenvorlage aktualisieren |
create_user |
Write | Einen neuen Benutzer erstellen |
update_user |
Write | Einen bestehenden Benutzer aktualisieren |
Echtzeit¶
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
list_realtime_sessions |
Read | Aktuelle Echtzeit-Agentensitzungen auflisten |
Wissensbasis¶
| Werkzeug | Zugriff | Beschreibung |
|---|---|---|
list_article_folders |
Read | Ordner der Wissensbasis auflisten |
list_articles |
Read | Artikel der Wissensbasis auflisten |
get_article |
Read | Einen bestimmten Artikel der Wissensbasis abrufen |
create_article |
Write | Einen neuen Artikel in der Wissensbasis erstellen |
update_article |
Write | Einen bestehenden Artikel der Wissensbasis aktualisieren |
create_article_folder |
Write | Einen neuen Ordner in der Wissensbasis erstellen |
update_article_folder |
Write | Einen bestehenden Ordner der Wissensbasis aktualisieren |
Integrierte Prompts¶
Der Server enthält vier vorgefertigte Prompt-Vorlagen für gängige Analyse-Workflows. Diese Prompts sind direkt in Ihrem KI-Client verfügbar, wenn der MCP Server verbunden ist.
| Prompt | Beschreibung |
|---|---|
email_quality_audit |
Aktuelle E-Mails auf negative Stimmung, unprofessionellen Ton und verlorene Geschäfte prüfen |
sales_pipeline_review |
Den Zustand der Deals überprüfen und gefährdete Opportunities identifizieren |
call_quality_review |
Anrufe auf Eskalationen, Wissenslücken und Qualitätsprobleme analysieren |
daily_call_analysis |
Tägliche Anrufüberprüfung auf Abwanderungsrisiko und wiederkehrende Probleme |
Anwendungsbeispiele¶
Sobald der MCP Server mit Ihrem KI-Client verbunden ist, können Sie Fragen stellen wie:
- „Zeige mir alle offenen Tickets der letzten 7 Tage und fasse häufige Probleme zusammen."
- „Prüfe die letzten 50 E-Mails auf negative Stimmung und unprofessionellen Ton."
- „Liste alle heutigen verpassten Anrufe auf und identifiziere Muster."
- „Überprüfe die Verkaufspipeline und markiere Deals, die seit mehr als 2 Wochen stagnieren."
- „Analysiere die Anruftranskripte dieser Woche und hebe etwaige Eskalationen hervor."
Der KI-Assistent verwendet die passenden MCP-Werkzeuge, um Daten aus Ihrer Daktela-Instanz abzurufen und eine strukturierte Analyse bereitzustellen.
Best Practices¶
- Token-Sicherheit: Geben Sie Ihren API-Zugriffstoken niemals öffentlich weiter. Verwenden Sie Umgebungsvariablen oder Secret-Management-Dienste, um Anmeldedaten zu speichern.
- Caching: Lassen Sie das Caching aktiviert (Standard), um API-Aufrufe fĂĽr Referenzdaten wie Warteschlangen, Benutzer und Status zu reduzieren.
- Zugriffskontrolle: Erstellen Sie fĂĽr den MCP Server einen dedizierten API-Benutzer mit minimalen, schreibgeschĂĽtzten Berechtigungen, anstatt einen Admin-Token zu verwenden.
- Cloud-Deployments: Implementieren Sie immer eine Authentifizierung, wenn Sie den HTTP-Server-Endpunkt öffentlich zugänglich machen.
Support¶
Wenn Sie auf Fehler stoĂźen oder FunktionswĂĽnsche haben, verwenden Sie bitte den Bereich Issues im GitHub-Repository.