Skip to main content
Glama

☎️ five9-mcp

Dein Five9-Contact-Center in den Händen deiner KI.

Ein Open-Source-MCP-Server, der Claude, ChatGPT oder jeden MCP-Client mit dem Five9-Cloud-Contact-Center verbindet – und auf Cloudflare Workers mit null Abhängigkeiten läuft.

License: MIT Runtime Dependencies MCP Tools

Schnellstart · Claude verbinden · ChatGPT verbinden · Tools · Architektur


Frag deine KI zum Beispiel:

„Wer ist gerade in einem Anruf und wie tief ist die Verkaufs-Warteschlange?“ 📊 „Erstelle eine Preview-Kampagne für die Win-back-Liste, weise den Verkaufs-Skill zu und starte sie.“ 🛠️ „Stoppe die OUTBOUND_AGED-Kampagne und füge diese 3 Leads zur Rückrufliste hinzu.“ 📞 „Binde den neuen Agenten ein: Erstelle den Benutzer, weise den Abrechnungs-Skill auf Stufe 2 zu.“ 🧑💼 „Ist 555-867-5309 auf unserer DNC-Liste? Prüfe das, bevor jemand die Nummer wählt.“ 🚫 „Hole den gestrigen Call-Log-Bericht und fasse die Abandon-Raten zusammen.“ 📈 „Baue mir eine komplette IVR: Option 1 Terminplanung, Option 2 Abrechnung, außerhalb der Geschäftszeiten geht es an die Voicemail.“ 🧩

Unter der Haube spricht dieser Server mit den SOAP-Web-Services von Five9s Configuration (admin) und Statistics (supervisor) – den APIs, die noch immer Five9s Admin-Oberfläche betreiben – und stellt sie als saubere JSON-Tools über MCP streamable HTTP bereit. Handgebaute Envelopes, ein ~60-zeiliger XML-Parser, keine npm-Pakete. Jedes Tool wurde gegen eine Live-Five9-Domain getestet.

✨ Integrierte Web-UI

Stell es bereit und dein Worker liefert mehr als eine API:

Seite

Was du bekommst

/

Eine polierte Landingpage: Live-Serverstatus, dieser Einrichtungsleitfaden, KI-Verbindungsanleitungen Schritt für Schritt und der vollständige Tool-Katalog

/setup

Der Setup-Assistent – gib deine Five9-Zugangsdaten im Browser ein, lass sie live verifizieren und erhalte deinen Zugriffsschlüssel. Kein Terminal, keine Secret-Befehle

/console

Eine interaktive Konsole – füge deinen Zugriffsschlüssel ein, wähle eines der 77 gruppierten Tools, fülle ein aus seinem Schema generiertes Formular aus und führe es direkt im Browser gegen deine Live-Five9-Domain aus

/mcp

Der MCP-Endpunkt selbst (streamable HTTP, zustandslos)

/health

JSON-Healthcheck

Die Konsole ist der schnellste Weg, um Zugangsdaten zu prüfen, zu erkunden, was jedes Tool zurückgibt, oder eine Kampagne zu debuggen – ganz ohne KI.

Related MCP server: five9-mcp

🚀 Schnellstart – kein Terminal nötig

Du brauchst ein kostenloses Cloudflare-Konto und einen Five9-Benutzer mit API-Zugriff – erstelle einen dedizierten Five9-API-Benutzer, der genau auf das beschränkt ist, was eine KI tun soll, und verwende nicht erneut einen persönlichen Admin-Login.

1 – Bei Cloudflare bereitstellen (ein Klick, im Browser)

Deploy to Cloudflare

Melde dich bei Cloudflare an und klicke durch – es erstellt deine eigene Kopie dieses Workers (plus den benötigten KV-Namespace) und gibt dir eine URL wie https://five9-mcp.you.workers.dev.

2 – Den Setup-Assistenten ausführen (im Browser)

Öffne /setup auf deinem neuen Server. Gib deinen Five9-Benutzernamen, dein Passwort und deine Region ein – der Assistent verifiziert sie live gegen Five9, bevor er speichert, und übergibt dir dann deinen Zugriffsschlüssel (wird nur einmal angezeigt – bewahre ihn in einem Passwort-Manager auf).

3 – Verbinde deine KI (Anleitungen unten) und bitte sie dann, „die Verbindung zu prüfen und meine Kampagnen aufzulisten“. 🎉

git clone https://github.com/ryanshatz/five9-mcp
cd five9-mcp
npx wrangler deploy   # provisions the CONFIG KV namespace on first deploy

Nutze dann entweder den /setup-Assistenten oder überspringe ihn und verwalte die Zugangsdaten als Wrangler-Secrets (Secrets überschreiben den Assistenten):

npx wrangler secret put FIVE9_USERNAME   # e.g. apiuser@yourdomain
npx wrangler secret put FIVE9_PASSWORD
npx wrangler secret put MCP_AUTH_TOKEN   # a long random string — this is the key to your server

Die Standardwerte stehen in wrangler.toml und funktionieren für US-Domains:

Var

Standard

Hinweise

FIVE9_API_HOST

api.five9.com

EU: api.eu.five9.com · Kanada: api.ca.five9.com

FIVE9_ADMIN_VERSION

v13

Config Web Services WSDL-Version

FIVE9_SUPERVISOR_VERSION

v13

Statistics Web Services WSDL-Version

🔌 Verbinde deine KI

Claude verbinden (Web & Desktop)

Benutzerdefinierte Connectors sind in den Plänen Free (ein Connector), Pro, Max, Team und Enterprise verfügbar.

  1. Öffne in claude.ai oder in der Claude Desktop-App Einstellungen → Connectors.

  2. Klicke auf Benutzerdefinierten Connector hinzufügen.

  3. Nenne ihn Five9 und füge deine Server-URL einschließlich des /mcp-Pfads ein: https://<your-worker>.workers.dev/mcp

  4. Klicke auf Hinzufügen, dann auf Verbinden. Claude erkennt das integrierte OAuth dieses Servers automatisch und öffnet seine Autorisierungsseite.

  5. Füge auf dem Bildschirm 🔐 five9-mcp deinen MCP_AUTH_TOKEN als Zugriffsschlüssel ein und klicke auf Autorisieren.

  6. Öffne in einem beliebigen Chat das Menü Suchen & Tools (+) und stelle sicher, dass der Five9-Connector aktiviert ist.

Team/Enterprise: Ein Owner fügt den Connector zuerst unter Organisationseinstellungen → Connectors hinzu; Mitglieder klicken dann in ihren eigenen Einstellungen auf Verbinden, um zu autorisieren.

ChatGPT verbinden

Benutzerdefinierte MCP-Connectors erfordern den Entwicklermodus (Plus/Pro; bei Business/Enterprise muss ein Admin benutzerdefinierte Connectors erlauben).

  1. Öffne in ChatGPT im Web Einstellungen → Apps & Connectors (manchmal auch nur als Connectors bezeichnet).

  2. Aktiviere unter Erweiterte Einstellungen den Entwicklermodus.

  3. Klicke zurück auf der Connectors-Seite auf Erstellen.

  4. Nenne ihn Five9, setze die MCP-Server-URL auf https://<your-worker>.workers.dev/mcp und wähle die OAuth-Authentifizierung.

  5. Bestätige den Vertrauenshinweis und speichere. ChatGPT öffnet die Autorisierungsseite dieses Servers – füge deinen MCP_AUTH_TOKEN ein und klicke auf Autorisieren.

  6. Öffne in einem neuen Chat das Menü + / Tools und aktiviere den Five9-Connector (Connectors im Entwicklermodus werden pro Konversation aktiviert). ChatGPT fragt dich bei jedem Tool-Aufruf um Bestätigung – sinnvoll bei allem, was einen Dialer starten kann. 😄

Claude Code verbinden

claude mcp add --transport http five9 https://<your-worker>.workers.dev/mcp \
  --header "Authorization: Bearer <your MCP_AUTH_TOKEN>"

Der rohe Zugriffsschlüssel funktioniert direkt als Bearer-Token – kein OAuth-Tanz. Führe /mcp in Claude Code aus, um es zu überprüfen.

Jeder andere MCP-Client

Alles, was MCP streamable HTTP spricht, funktioniert – schließe den OAuth-Flow ab oder sende den Zugriffsschlüssel als Bearer-Token:

curl -X POST https://<your-worker>.workers.dev/mcp \
  -H "Authorization: Bearer <MCP_AUTH_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_connection","arguments":{}}}'

src/oauth.js implementiert einen minimalen OAuth-2.1-Autorisierungsserver (Metadata-Discovery, dynamische Client-Registrierung, PKCE S256, Refresh-Tokens), der für eine Einzelbetreiber-Bereitstellung ausgelegt ist:

  • Der „Login“ auf dem Zustimmungsbildschirm ist der Zugriffsschlüssel des Servers (MCP_AUTH_TOKEN).

  • Alles ist zustandslos – Client-IDs, Auth-Codes und Tokens sind mit MCP_AUTH_TOKEN als Schlüssel HMAC-SHA256-signierte Blobs. Kein KV, keine Durable Objects.

  • Beide Auth-Pfade funktionieren gleichzeitig: per OAuth ausgestellte Tokens und der rohe Schlüssel als Bearer-Anmeldedaten.

  • Widerrufe alles auf einmal durch Rotieren des Secrets: npx wrangler secret put MCP_AUTH_TOKEN.

🧰 Die Toolbox

77 Tools. 🟢 = Lesen (immer sicher) · ✏️ = Schreiben (ändert deine Domain – der Server weist die KIs an, zuerst deine Bestätigung einzuholen)

69 SOAP-Tools (Benutzername/Passwort) + 8 OAuth-New-Platform-REST-Tools (Consumer Key/Secret – siehe OAuth New Platform APIs).

Der Clou: Beschreibe einen Anrufablauf in einem Absatz und die KI entwirft ihn, zeigt dir ein Mermaid-Diagramm im Chat und stellt ein funktionierendes IVR-Skript bereit. Das Modell erfindet Five9s IVR-XML nie frei: Es füllt eine eingeschränkte JSON-Flow-Spezifikation (play / menu / business-hours / skill transfer / voicemail / hangup), ein Graph-Validator prüft jeden Zweig und jede Referenz, und deterministischer Code erzeugt Designer-konformes XML (Modulverdrahtung, Prompt-Kodierung und Feldreihenfolge stammen alle aus echten exportierten Skripten).

Tool

Was es tut

🟢

validate_ivr_flow

Flow-Spezifikation als Graph prüfen und verifizieren, dass referenzierte Skills/Prompts auf der Domain existieren

🟢

render_ivr_flow

Eine Flow-Spezifikation oder ein vorhandenes IVR-Skript als Mermaid-Flussdiagramm rendern

✏️

build_ivr_script

Das vollständige Skript-XML erstellen und auf der Domain anlegen (dry_run, um es zuerst zu prüfen)

✏️

generate_prompt_audio

Einen Prompt mit einer modernen KI-Stimme vertonen und als Five9-taugliche G.711-u-law-WAV hochladen. Kein API-Key nötig: betrieben mit Workers AI (Deepgram Aura, ~40 Stimmen), direkt in deinen Worker integriert

Empfohlener Ablauf: validieren → rendern (dem Menschen zeigen!) → Prompts erzeugen → bauen → an eine Inbound-Kampagne anhängen. generate_prompt_audio läuft sofort auf Cloudflare Workers AI: kein externes TTS-Konto, kein API-Key, Bruchteile eines Cents pro Prompt, abgerechnet über das Cloudflare-Konto, auf dem du bereits deployed hast. ElevenLabs/OpenAI funktionieren ebenfalls, wenn du ihre Key-Secrets setzt, und {tts}-Prompts (Five9s eingebaute Roboterstimme) brauchen gar nichts.

Tool

Was es tut

🟢

about

Operator-Kontext für die KI – wer diesen Server betreibt und die Grundregeln

🟢

check_connection

Prüft, ob die Five9-Zugangsdaten funktionieren; gibt die Anzahl sichtbarer Skills zurück

🟢

get_api_usage

Aktuelle Five9-API-Nutzungszähler im Vergleich zu den Ratenlimits

Tool

Was es tut

🟢

list_campaigns

Kampagnen auflisten (Name, Typ, Status, Modus)

🟢

inspect_campaign

Status + zugeordnete Listen + DNIS in einem Aufruf

🟢

get_campaign_details

VOLLSTÄNDIGE Kampagnenkonfiguration (Wahlmodus, Verhältnisse, Aufzeichnung, Wrap-up…)

✏️

create_campaign

Outbound- oder Inbound-Kampagnen erstellen, BASIC oder ADVANCED

✏️

modify_campaign

Beliebige Kampagneneinstellung bearbeiten – Lesen-Ändern-Schreiben, nur die Änderungen übergeben

✏️

rename_campaign

Kampagne umbenennen

✏️

delete_campaign

Kampagne löschen

✏️

control_campaign

start / stop / force_stop / reset / reset_list_positions

✏️

manage_campaign_lists

Wahllisten mit Priorität zuordnen/entfernen

✏️

manage_campaign_skills

Routing-Fähigkeiten auf einer Kampagne hinzufügen/entfernen

✏️

manage_campaign_dnis

Inbound-Nummern zuordnen/entfernen

✏️

manage_campaign_dispositions

Agenten-Dispositionen auf einer Kampagne hinzufügen/entfernen

🟢

list_campaign_profiles

Kampagnenprofile auflisten (ANI, Versuche, Timeouts)

✏️

manage_campaign_profile

Kampagnenprofile erstellen / ändern / löschen

✏️

manage_campaign_profile_filter

CRM-Datensatzauswahlkriterien und Wahlreihenfolge eines Profils lesen / bearbeiten

Tool

Was es tut

🟢

list_dialing_lists

Wahllisten + Datensatzzahlen auflisten

✏️

create_list / delete_list

Wahlliste erstellen oder löschen

✏️

add_record_to_list

Lead in eine Liste einfügen (asynchroner Import)

✏️

add_records_to_list

Viele Leads in einem asynchronen Import hinzufügen (konfigurierbare CRM/Listen-Modi)

✏️

delete_record_from_list

Passende Datensätze aus einer Liste entfernen

🟢

get_import_result

Ergebnis eines asynchronen Listen-/CRM-Imports

Tool

Was es tut

🟢

search_contacts

Kontakte anhand exakter Feldwerte suchen

✏️

update_contact

Kontakt aktualisieren (standardmäßig Sicherheit bei eindeutigem Treffer)

✏️

bulk_update_contacts

Viele CRM-Kontakte in einem asynchronen Import aktualisieren (mit Typ "crm" abfragen)

✏️

delete_contact

Kontakt löschen (nur wenn genau einer übereinstimmt)

🟢

list_contact_fields

Das Kontaktfeldschema der Domain

✏️

manage_contact_field

Benutzerdefinierte CRM-Felder erstellen / ändern / löschen

Tool

Was es tut

✏️

manage_dnc

Nummern auf der Domain-DNC-Liste prüfen / hinzufügen / entfernen

🟢

get_dialing_rules

Domain-Wahlregeln (Zeit-/Bundesland-Einschränkungen)

Tool

Was es tut

🟢

list_users

Benutzer mit allgemeinen Informationen auflisten

🟢

get_user_details

Vollständiger Datensatz eines Benutzers: Rollen, Fähigkeiten, Gruppen

✏️

create_user

Benutzer mit Rollen, Fähigkeiten und Gruppen erstellen

✏️

modify_user

Benutzerinformationen bearbeiten – nur die Änderungen übergeben

✏️

delete_user

Benutzer löschen

🟢

list_user_profiles

Rollen-/Berechtigungsvorlagen

🟢

list_skills / get_skill_details

Fähigkeiten, mit oder ohne zugewiesene Benutzer

✏️

manage_skill

Fähigkeiten erstellen / ändern / löschen

✏️

manage_user_skills

Fähigkeiten Benutzern zuweisen, Stufen festlegen

✏️

set_user_roles

Rollen zuweisen / entziehen (agent, admin, supervisor, reporting, crmManager) mit Berechtigungsregisterkarten

🟢

list_agent_groups

Agentengruppen + Mitglieder

✏️

manage_agent_group

Gruppen erstellen / löschen, Agenten hinzufügen/entfernen

✏️

manage_reason_code

Nicht bereit / Abmelden-Grundcodes

Tool

Was es tut

🟢

list_dispositions

Anruf-Dispositionen und ihre Einstellungen

✏️

manage_disposition

Dispositionen erstellen / ändern / umbenennen / löschen (inkl. Rückwahl-Timer)

🟢

list_ivr_scripts / get_ivr_script

IVR-Skripte – Metadaten oder das vollständige XML eines Skripts

✏️

manage_ivr_script

IVR-Skripte erstellen / ändern / löschen (vollständige xmlDefinition übergeben)

🟢

list_prompts

Sprachansagen auf der Domain

✏️

manage_tts_prompt

Text-to-Speech-Ansagen erstellen / ändern / löschen

✏️

manage_wav_prompt

Vorab aufgenommene WAV-Ansagen erstellen / ändern / löschen (base64; G.711 µ-law 8kHz mono)

🟢

list_dnis

Bereitgestellte Inbound-Nummern (optional nur nicht zugewiesene)

🟢

list_call_variables

Anrufvariablen und Variablengruppen

✏️

manage_call_variable

Benutzerdefinierte Anrufvariablen erstellen / löschen

🟢

list_web_connectors

Web-Connector-Integrationen

✏️

manage_web_connector

Web-Connectors erstellen / löschen (URL-Pops, die Agenten auslösen)

✏️

manage_speed_dial

Kurzwahlcodes auflisten / erstellen / löschen

🟢

get_vcc_configuration

VCC-Einstellungen auf Domain-Ebene

Tool

Was es tut

🟢

run_report

Beliebigen Bericht nach Ordner + Name starten, optionaler Zeitraum

🟢

get_report_result

CSV-Ausgabe des Berichts abfragen

🟢

get_realtime_stats

AgentState, ACDStatus, CampaignState, Kampagnenstatistiken (inkl. Dialer-Manager- und Autodial-Ansichten)

Diese Tools verwenden Five9s moderne OAuth 2.0 "New Platform" REST-APIs, nicht die SOAP-APIs, die die obigen Tools verwenden. Sie erfordern eine API Access Control-Anmeldeinformation (Consumer Key/Secret), nicht den SOAP-Benutzernamen/das SOAP-Passwort – siehe OAuth New Platform APIs.

Tool

Was es tut

🟢

rest_check_connection

OAuth-Anmeldeinformation verifizieren – erwirbt ein Bearer-Token (keine Domain-Daten)

🟢✏️

rest_call

Generischer authentifizierter Aufruf an einen beliebigen New Platform-Endpunkt (Methode + Pfad + Body), mit Rate-Limit/Backoff und ETag-Unterstützung

🟢✏️

manage_circle

Circles – auflisten / abrufen / erstellen / löschen (kein SOAP-Äquivalent)

🟢

list_np_prompts

Sprachansagen über die New Platform Prompts-API (paginiert)

🟢

list_interaction_dispositions

Dispositionen über die Interactions-API (umfangreicher als die SOAP-Liste; schreibgeschützt)

🟢

get_domain_info

Domain-Metadaten (id, name, tenant, service endpoints)

🟢

list_data_tables

Data Tables (strukturierte Nachschlagetabellen; kein SOAP-Äquivalent) – verwendet eine separate data-tables-Anmeldeinformation

🟢

get_data_table_rows

Zeilen einer Data Table nach id (paginiert)

🔐 OAuth New Platform APIs

Neben den SOAP-Tools kann der Server Five9s neuere OAuth 2.0 New Platform REST-APIs aufrufen (z. B. Circles, Interactions, Prompts, Domain-Metadaten). Diese verwenden eine andere Anmeldeinformation als der SOAP-Benutzername/das SOAP-Passwort:

  • Ein API Access Control-Consumer Key und Consumer Secret, erzeugt in der Five9-Admin Console → API Access Control (ein „Controlled-Availability“-Feature). Zum Erzeugen wird die Berechtigung security → applications → Create applications benötigt, und das Konto muss zum Five9 Identity Service migriert werden (Benutzer mit veralteten API-/Agent-/Supervisor-Rollen werden von der Migration ausgeschlossen, bis diese Rollen entfernt wurden).

  • Konfiguriere sie als Umgebungs-/Secret-Variablen (alle getrennt von den SOAP-Zugangsdaten):

FIVE9_CONSUMER_KEY=...           # "All APIs access" family credential (default)
FIVE9_CONSUMER_SECRET=...
FIVE9_DOMAIN_ID=131109           # your Admin Console domain id
FIVE9_REST_REGION=US             # US | US-ALPHA | CA | EU | IN | UK
# or pin the base URL directly: FIVE9_REST_BASE_URL=https://api.prod.us.five9.net

# Optional second credential for the "Data Tables access" family (its own key):
FIVE9_DT_CONSUMER_KEY=...
FIVE9_DT_CONSUMER_SECRET=...

Führe dann rest_check_connection aus, um den Token-Fluss zu bestätigen. Was jedes Credential erreichen kann, bestimmen seine API-Familie + Scopes – all-apis-access gewährt nicht buchstäblich jeden Dienst, und der Schreibzugriff ist pro Dienst festgelegt.

Mehrere Credentials / Familien. Jedes API-Access-Control-Credential gehört zu einer Familie (abgebildet auf ein Apigee-API-Produkt), und diese Familie entscheidet, welche Dienste der Schlüssel aufrufen darf. Der Server unterstützt benannte Credentials: default (aus FIVE9_CONSUMER_KEY/SECRET) plus data-tables (aus FIVE9_DT_CONSUMER_KEY/SECRET). Die Data-Tables-Tools verwenden automatisch das data-tables-Credential; rest_call und rest_check_connection akzeptieren ein credential-Argument, um eines auszuwählen.

Hinweis: Five9s Einstiegsdokument nennt den Token-Endpunkt /v1/auth/token, aber der tatsächliche Endpunkt ist /oauth2/v1/token (und diesen verwendet dieser Client).

🎨 Den Betreiber-Kontext anpassen

src/about.js enthält den Text, der verbundenen AIs über das MCP-instructions-Feld und das about-Tool bereitgestellt wird: wer den Server betreibt, warum es ihn gibt und wie sich die AI verhalten soll (z. B. „vor Schreibaktionen bestätigen“). Bearbeite ihn, um dein eigenes Deployment zu beschreiben – er wird mit dem Kontext des ursprünglichen Betreibers als Beispiel ausgeliefert.

🏗️ Architektur

Kein Build-Schritt, keine Abhängigkeiten – einfache JS-Module in src/:

src/
├── index.js   # router, CORS, MCP JSON-RPC handler, /setup endpoint
├── five9.js   # SOAP client: envelope builder, ~60-line XML parser, one method per Five9 op
├── tools.js   # MCP tool definitions (JSON Schema) + dispatch
├── oauth.js   # stateless OAuth 2.1 server (single-operator model)
├── config.js  # config resolution: Wrangler secrets > KV (setup wizard)
├── ui.js      # landing page, setup wizard, interactive console
└── about.js   # operator context — edit this for your deployment

Alle Anfragen sind zustandslos: Jeder MCP-Aufruf öffnet einen neuen Five9-SOAP-Austausch mit HTTP-Basic-Auth. Die Statistics API erfordert zusätzlich einen setSessionParameters-Aufruf, den get_realtime_stats bei jedem Aufruf ausführt.

  • Five9s Endpunkte werden von JAXB generiert und validieren die Reihenfolge der Kind-Elemente gegen die WSDL-Sequenz. Wenn du diesen Server erweiterst, ziehe dir das WSDL (https://api.five9.com/wsadmin/v13/AdminWebService?wsdl, HTTP-BasisAuth) und gleiche die <xs:sequence>-Reihenfolge exakt ab – einschließlich Basistypen wie basicImportSettings, deren Elemente vor denen der Erweiterung kommen.

  • addToListCsv erfordert cleanListBeforeUpdate, crmAddMode, crmUpdateMode und listAddMode, obwohl das WSDL die meisten davon als minOccurs="0" markiert.

  • Listen-/CRM-Importe sind asynchron: Der Aufruf gibt sofort eine Import-ID zurück; frage get_import_result ab, um das Ergebnis zu erfahren.

  • Kontaktwerte werden verpackt zurückgegeben (<values><data>…</data></values>); einige Antworten liefern ein einzelnes Objekt, wo man ein Ein-Element-Array erwarten würde. toArray() in five9.js normalisiert das.

  • Bei Zeitkriterien von Reportings kommt <end> vor <start> (alphabetische JAXB-Reihenfolge).

  • Die IVR-xmlDefinition ist das persistierte Format des visuellen Designers: Module werden per GUID verdrahtet (ascendants / singleDescendant / branches), Inline-TTS-Texte werden als gzip+base64-speakElement-Dokumente gespeichert, und Geschäftszeiten-Prüfungen vergleichen die Systemvariablen __DAY__ (SUN=1..SAT=7) und __TIME__ (Minuten seit Mitternacht). ivr.js kapselt das alles.

  • getPrompts gibt keine Prompt-IDs zurück (nur Name + Typ). Datei-Prompt-Referenzen in IVR-XML werden mit id 0 + dem Prompt-Namen akzeptiert und serverseitig normalisiert; das übertragene Skript läuft mit der serverseitig vergebenen domainId im Roundtrip.

🛡️ Sicherheit

  • Five9-Zugangsdaten liegen ausschließlich in deinem Cloudflare-Konto – als Worker-Secrets oder (im Wizardverlauf) in einem Workers-KV-Namespace, verschlüsselt im Ruhezustand. Kein Tool gibt sie jemals zurück, und Wrangler-Secrets haben immer Vorrang vor KV.

  • Der Setup-Assistent ist nur auf einem frischen, unkonfigurierten Server geöffnet – führe ihn direkt nach dem Deployment aus. Ist er erst konfiguriert, erfordert jede Änderung den aktuellen Zugriffsschlüssel, und per Envvnie verwaltete Server lehnen Änderungen über den Assistenten vollständig ab.

  • Schließe das Setup immer ab (oder setze MCP_AUTH_TOKEN). Ein unkonfigurierter Server ohne Zugriffsschlüssel bleibt offen – jeder, der die URL findet, kann dein Contact-Center steuern.

  • Schreib-Tools (✏️ oben) verändern deine Domain. Drossle die Rolle des Five-9-API-Benutzers auf das, was du von einer AI erwartest – die Five9-Berechtigungen bilden die eigentliche Sicherheitsgrenze.

  • manage_dnc remove und delete_list erfordern besondere Vorsicht; die about-Anweisungen weisen AIs an, vor der Verwendung eine Bestätigung einzuholen.

  • Die Konsole speichert deinen Zugriffsschlüssel nur im localStorage des Browsers, und die Aufrufe werden gleich-originig zu deinem eigenen Worker ausgeführt.

💻 Entwicklung

npm run dev      # wrangler dev on http://localhost:8787
npm run deploy   # wrangler deploy

Lege lokale Secrets in .dev.vars an (gitignored):

FIVE9_USERNAME=apiuser@yourdomain
FIVE9_PASSWORD=...
MCP_AUTH_TOKEN=dev-local-token

# Optional — external AI voice providers for generate_prompt_audio.
# The default (Workers AI / Deepgram Aura) needs no key at all.
ELEVENLABS_API_KEY=...
OPENAI_API_KEY=...

# Optional — OAuth New Platform REST tools (separate credential; see below)
FIVE9_CONSUMER_KEY=...
FIVE9_CONSUMER_SECRET=...
FIVE9_DOMAIN_ID=131109
FIVE9_REST_REGION=US
FIVE9_DT_CONSUMER_KEY=...        # optional: "Data Tables access" family
FIVE9_DT_CONSUMER_SECRET=...

Öffne dann http://localhost:8787/console, füge dev-local-token ein und führe Tools gegen deine Domain aus – oder teste von der CLI mit dem curl-Snippet oben.

🤝 Mitwirken

PRs sind willkommen! Die Five9-Config-API kann ~180-Operationen und dieser Server kapselt 69 der nützlichsten – das Muster in five9.js + tools.js ist leicht anpassend (lies zuerst die SOAP-Anmerkungen und spar dir den Kampf mit. WSDL). Bitte halte am der Null-Abhängigkeits-Einschränkung fest.

📄 Lizenz

MIT · erstellt von [Ryan

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that connects AI assistants to Five9 contact center, allowing management of campaigns, agents, lists, and statistics via natural language commands.
    17
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server connecting AI assistants to the Five9 contact center, enabling management of campaigns, agents, IVR flows, and reports via natural language.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that connects AI assistants to Five9 cloud contact center, enabling management of campaigns, agents, IVR flows, and reports through natural language.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that connects AI assistants to Five9 cloud contact center, exposing 77 tools for configuration, statistics, IVR building, and campaign management via Cloudflare Workers with zero dependencies.
    MIT