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.
Tip
Dies ist der Server fĂĽr Contact-Centre-Daten. Um Chatbots, Voicebots und Emailbots mit einem KI-Assistenten zu erstellen, zu bearbeiten und zu testen, siehe Daktela MCP - AI server.
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. Die Authentifizierung erfolgt ausschließlich per OAuth-Anmeldung: Sie melden sich über den normalen Daktela-Anmeldebildschirm an; es wird kein Token generiert, kopiert oder in einer Konfigurationsdatei gespeichert.
Info
Nur normale Benutzerkonten (Agenten) können sich verbinden. Reine Administratorkonten, Kundenportal-Benutzer (extern) und API-Benutzer werden vom Autorisierungsablauf abgelehnt.
KI-Client verbinden¶
Ihr KI-Client muss entfernte MCP-Server ĂĽber HTTP mit OAuth-Anmeldung unterstĂĽtzen. Claude, Cursor, VS Code und die meisten aktuellen Clients tun dies.
- FĂĽgen Sie in Ihrem KI-Client den Daktela MCP Server ĂĽber seine URL hinzu:
https://YOUR_DOMAIN/mcp-server/mcp. Ersetzen SieYOUR_DOMAINdurch den Hostnamen Ihrer Daktela-Instanz (z. B.ihrefirma.daktela.com). - Der Client erkennt, dass eine Anmeldung erforderlich ist, und öffnet Daktela in Ihrem Browser.
- Wenn Sie in diesem Browser bereits bei Daktela angemeldet sind, wird die Verbindung sofort hergestellt. Andernfalls melden Sie sich mit Ihren üblichen Daktela-Zugangsdaten an — Passwort, MFA und SSO funktionieren — und werden zu Ihrem Client zurückgeleitet.
- Ihr KI-Client ist jetzt verbunden. Sie sehen oder verwenden nie einen rohen Zugriffstoken.
Info
Im Hintergrund wird der standardmäßige OAuth-2.0-+-PKCE-Autorisierungsablauf der MCP-Spezifikation verwendet, einschließlich dynamischer Client-Registrierung. Der Zugriffstoken ist auf Ihren Daktela-Benutzer beschränkt und kurzlebig; Ihr Client erneuert ihn stillschweigend über einen Refresh-Token, sodass Sie sich nicht erneut anmelden müssen, solange Ihre Daktela-Sitzung gültig ist.
Tip
Wenn Ihr MCP-Client keine OAuth-basierten Remote-Verbindungen unterstĂĽtzt, verwenden Sie stattdessen den selbst gehosteten Server mit einem API-Zugriffstoken. Der gehostete Server akzeptiert keine statischen Token und keine Header-basierte Authentifizierung.
Claude Code¶
FĂĽgen Sie den Server ĂĽber das Terminal hinzu:
oder tragen Sie ihn in die .mcp.json Ihres Projekts ein:
Bei der ersten Verwendung öffnet Claude Code die Daktela-Anmeldung in Ihrem Browser. Die Anmeldung können Sie auch manuell mit dem Befehl /mcp starten.
Claude Desktop und claude.ai¶
Gehen Sie zu Settings → Connectors → Add custom connector, geben Sie einen Namen (z. B. Daktela) und die Server-URL ein und klicken Sie auf Connect. Daktela öffnet sich zur Anmeldung.
Cursor¶
Öffnen Sie Cursor Settings → MCP → Add new MCP server oder ergänzen Sie .cursor/mcp.json:
Cursor zeigt neben dem Server den Status Needs login an; klicken Sie darauf, um sich bei Daktela anzumelden.
Andere MCP-Clients¶
Jeder Client, der den MCP-Transport Streamable HTTP mit OAuth unterstĂĽtzt, kann sich mit Folgendem verbinden:
- URL:
https://YOUR_DOMAIN/mcp-server/mcp - Authentifizierung: OAuth 2.0 — der Client ermittelt die Anmelde-Endpunkte automatisch aus den Metadaten des Servers.
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, in der neuesten Patch-Version des jeweiligen Zweigs
- Composer (PHP-Paketmanager)
- Eine Daktela-Instanz mit API-Lesezugriff
- Ein API-Zugriffstoken aus Ihrem Daktela-Konto
Warning
Halten Sie PHP auf der neuesten Patch-Version eines Zweigs, der noch Sicherheitsupdates erhält. Sicherheitslücken in PHP werden in Patch-Versionen behoben, und ein Server, der über HTTP läuft, ist aus dem Netzwerk erreichbar – ein veraltetes PHP kann einem Angreifer daher ermöglichen, Code auf Ihrem Server auszuführen. Wenn Sie den Server in Docker betreiben, erstellen Sie das Image regelmäßig neu, damit es das gepatchte PHP aus dem Basis-Image übernimmt.
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¶
- Gehosteter Server: Der KI-Assistent handelt mit Ihren eigenen Daktela-Berechtigungen — er sieht genau das, was Sie sehen, nicht mehr. Es gibt keinen Token zu schützen; den Zugriff widerrufen Sie, indem Sie sich bei Daktela abmelden oder den Server in Ihrem Client trennen.
- Token-Sicherheit beim Selbsthosting: Geben Sie Ihren API-Zugriffstoken niemals öffentlich weiter. Speichern Sie Anmeldedaten in Umgebungsvariablen oder Secret-Management-Diensten und erstellen Sie statt eines Admin-Tokens einen dedizierten API-Benutzer mit minimalen, schreibgeschützten Berechtigungen.
- Caching: Lassen Sie das Caching aktiviert (Standard), um API-Aufrufe fĂĽr Referenzdaten wie Warteschlangen, Benutzer und Status zu reduzieren.
- Cloud-Deployments: Implementieren Sie immer eine Authentifizierung, wenn Sie den HTTP-Endpunkt des selbst gehosteten Servers öffentlich zugänglich machen.
Support¶
Wenn Sie auf Fehler stoĂźen oder FunktionswĂĽnsche haben, verwenden Sie bitte den Bereich Issues im GitHub-Repository.