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. 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
- 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¶
- 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.