Audact MCP-Server — Einrichtungsanleitung für Clients
KI-Assistenten mit Audact über das Model Context Protocol verbinden. Agenten, Webhooks, Anrufe und Compliance mit 161 bereitgestellten Werkzeugen verwalten.
Was ist das? Der Audact-MCP-Server (Model Context Protocol) stellt eine ausgewählte Menge von Audact-Operationen als Werkzeuge für KI-Assistenten bereit – Claude, Cursor, Claude Desktop oder jeden MCP-kompatiblen Client – über eine einfache HTTP-Schnittstelle. Verbinden Sie sich mit Ihrem Mandanten-API-Schlüssel und prüfen Sie Anrufe, verwalten Sie Agenten und Webhooks, erstellen Sie Compliance-Automatisierungen und steuern Sie Sprachoperationen.
Verfügbare Werkzeuge: 161 über alle Rollen hinweg
Endpunkte:
- Produktion:
https://api.audact.ai/mcp/
1. Was es ist
Der MCP-Server ist ein zustandsloser HTTP-Endpunkt, der Werkzeugaufrufe in Audact-REST-API-Operationen übersetzt. Er läuft über Streamable HTTP (den MCP-Standard für Server-zu-Client- und Client-zu-Server-JSON-RPC), erfordert zur Authentifizierung ausschließlich Ihren API-Schlüssel (Bearer-Token) und setzt exakt dieselben Berechtigungen und die Isolierung wie die REST-API selbst durch.
Warum MCP?
- Einrichtung mit einer Zeile: Keine handgeschriebenen Integrationen oder eigenen Brücken.
- Echtzeitkontext: Ihr KI-Assistent hat Live-Zugriff auf Agenten, Webhooks, Nummern, Anrufe und Nachweise.
- Berechtigungssicher: Jeder Werkzeugaufruf wird mit Ihrem Schlüssel weitergeleitet – ein Assistent kann nur das tun, was Ihre Schlüsselrolle erlaubt.
- Keine gespeicherten Geheimnisse: Der MCP-Server hält keine Anmeldedaten vor und schafft keine neue Angriffsfläche; er leitet Ihren Schlüssel Byte für Byte an die zugrunde liegende API weiter.
Transport und Protokoll
- Protokoll: Model Context Protocol (MCP), Version 2025-06-18 (rückwärtskompatibel mit 2025-03-26).
- Transport: Streamable HTTP POST an
/mcp/auf der Basis-URL Ihrer Umgebung. - Inhalt: JSON-RPC 2.0 Anfragen und Antworten.
- Authentifizierung:
Authorization: Bearer aud_live_…(Ihr Mandanten-API-Schlüssel, derselbe wie für REST). - Zustandslos: Keine Sitzungen, keine Cookies. Jede Anfrage ist unabhängig; jedes Replikat kann sie bedienen.
Was OAuth hier bedeutet
OAuth wird nicht unterstützt. MCP Clients, die für Remote-Server zwingend OAuth erfordern, können sich nicht verbinden. Unterstützte Clients (Claude Code, Cursor, Claude Desktop über mcp-remote, MCP SDKs) übergeben Header direkt:
- ✅ Claude Code, Cursor, Claude Desktop mit
mcp-remote: funktioniert - ✅ MCP SDK Clients mit
--headeroder Umgebungsvariable: funktioniert - ✅ Eigene MCP-Implementierungen, die Bearer-Token unterstützen: funktioniert
- ❌ Clients, die für Remote-Server ausschließlich OAuth unterstützen: in v1 nicht unterstützt
2. Ihren KI-Assistenten verbinden
Claude Code
bash
claude mcp add --transport http audact https://api.audact.ai/mcp/ \ --header "Authorization: Bearer aud_live_…"
Ersetzen Sie aud_live_… durch Ihren tatsächlichen API-Schlüssel (siehe Ihren Schlüssel abrufen weiter unten).
Zur Überprüfung: Starten Sie Claude Code nach dem Hinzufügen neu und fragen Sie: „Liste meine Agenten auf." Wenn dabei list_agents fehlerfrei aufgerufen wird, ist die Verbindung hergestellt.
Claude Desktop
Verwenden Sie mcp-remote, um den MCP-Server hinter dem lokalen Gateway zu betreiben:
bash
# In der Konfigurationsdatei von Claude Desktop (~/.config/Claude/claude_desktop_config.json unter Linux/Mac,
# oder %APPDATA%\Claude\claude_desktop_config.json unter Windows):
{
"mcpServers": {
"audact": {
"command": "npx",
"args": ["mcp-remote", "https://api.audact.ai/mcp/"],
"env": {
"MCP_REMOTE_HEADER_Authorization": "Bearer aud_live_…"
}
}
}
}Starten Sie Claude Desktop neu. Die Audact-Werkzeuge sollten nun in Ihrer Werkzeugliste erscheinen.
Cursor
Wie bei Claude Desktop: Fügen Sie es zur mcp_server_config.json von Cursor hinzu:
json
{
"audact": {
"command": "npx",
"args": ["mcp-remote", "https://api.audact.ai/mcp/"],
"env": {
"MCP_REMOTE_HEADER_Authorization": "Bearer aud_live_…"
}
}
}3. Ihren Schlüssel abrufen
- Melden Sie sich beim Audact-Dashboard unter Ihrer Umgebungs-URL an.
- Navigieren Sie zu API-Schlüssel (oder Einstellungen → API-Schlüssel).
- Kopieren Sie einen Schlüssel mit der benötigten Rolle (Viewer, Developer oder Owner; siehe Rollenzuordnung weiter unten).
- Verwenden Sie ihn in der obigen Konfiguration.
Halten Sie Ihren Schlüssel geheim. Behandeln Sie ihn wie ein Passwort. Falls er bekannt wird, widerrufen Sie ihn sofort im Dashboard.
4. Was Sie tun können: Werkzeuge nach Rolle
Der MCP-Server stellt insgesamt 161 Werkzeuge bereit, gruppiert nach Berechtigungsstufe und Fachbereich. Ein Werkzeug erscheint in den verfügbaren Werkzeugen Ihres Assistenten nur, wenn Ihr Schlüssel die erforderliche Rolle besitzt. Selbst wenn Sie ein Werkzeug auflisten, für das Sie keine Berechtigung haben, lehnt das Backend den Aufruf mit einer eindeutigen Fehlermeldung ab.
Rollenstufen
- Viewer: Nur-Lese-Zugriff. Prüfen Sie Anrufe, Nachweise, Konfigurationen, Webhooks und Nummern.
- Developer: Lese- und Schreibzugriff. Agenten, Werkzeuge, Webhooks und Zuweisungen erstellen/aktualisieren. Kein Löschen/Bereinigen.
- Owner: Vollzugriff, einschließlich Löschen und Einstellungsänderungen.
Werkzeugkategorien
Legende: R = nur lesend | D = destruktiv | C = erfordert Bestätigung (den Benutzer zuerst fragen, dann mit confirm: true erneut versuchen)
Agenten
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_agents | Viewer | ✓ | Alle Agenten in Ihrem Mandanten auflisten | ||
get_agent | Viewer | ✓ | Einen Agenten anhand der ID abrufen | ||
list_agent_tools | Viewer | ✓ | Anzeigen, welche Werkzeuge ein Agent verwenden kann | ||
create_agent | Developer | Einen neuen Agenten erstellen | |||
replace_agent | Developer | Einen Agenten ersetzen (vollständige Aktualisierung) | |||
update_agent | Developer | Einen Agenten aktualisieren (teilweise Aktualisierung) | |||
duplicate_agent | Developer | Einen vorhandenen Agenten klonen | |||
attach_tool_to_agent | Developer | Ein Werkzeug zum Toolkit eines Agenten hinzufügen | |||
detach_tool_from_agent | Developer | ✓ | Ein Werkzeug von einem Agenten entfernen | ||
delete_agent | Owner | ✓ | Einen Agenten dauerhaft löschen |
Werkzeuge
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_tools | Viewer | ✓ | Alle eigenen Werkzeuge auflisten | ||
get_tool | Viewer | ✓ | Ein Werkzeug anhand der ID abrufen | ||
create_tool | Developer | Ein neues Werkzeug erstellen | |||
replace_tool | Developer | Ein Werkzeug ersetzen (vollständige Aktualisierung) | |||
update_tool | Developer | Ein Werkzeug aktualisieren (teilweise Aktualisierung) | |||
test_tool | Developer | Ein plattformbereitgestelltes Werkzeug wie Cal.com testen (eigene HTTP-Werkzeuge haben keinen Test) | |||
delete_tool | Owner | ✓ | Ein Werkzeug vorläufig löschen |
Wissensdatenbanken
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_knowledge_bases | Viewer | ✓ | Wissensdatenbanken des Mandanten auflisten | ||
get_knowledge_base | Viewer | ✓ | Eine Wissensdatenbank anhand der ID abrufen | ||
create_knowledge_base | Developer | Eine Wissensdatenbank erstellen | |||
update_knowledge_base | Developer | Eine Wissensdatenbank umbenennen oder automatische Aktualisierung umschalten | |||
delete_knowledge_base | Owner | ✓ | Eine Wissensdatenbank mit allen Quellen und Agentenverknüpfungen löschen | ||
list_kb_sources | Viewer | ✓ | Quellen einer Wissensdatenbank und deren Aufnahme-Status auflisten | ||
get_kb_source | Viewer | ✓ | Eine Quelle abrufen | ||
add_kb_source | Developer | Eine URL- oder Textquelle hinzufügen (Datei-Uploads nur über die REST-API) | |||
update_kb_source | Developer | Den Titel einer Quelle oder bei Textquellen deren Inhalt ändern | |||
reingest_kb_source | Developer | Eine Quelle neu crawlen und neu indexieren | |||
delete_kb_source | Owner | ✓ | Eine Quelle und deren indexierten Inhalt löschen | ||
list_kb_agent_links | Viewer | ✓ | Die Agenten auflisten, mit denen eine Wissensdatenbank verknüpft ist | ||
list_kb_links_by_agent | Viewer | ✓ | Die mit einem Agenten verknüpften Wissensdatenbanken auflisten | ||
attach_knowledge_base_to_agent | Developer | Eine Wissensdatenbank mit Abrufeinstellungen an einen Agenten anhängen | |||
update_kb_agent_link | Developer | Abrufeinstellungen (top_k, threshold, instruction) für eine Verknüpfung anpassen | |||
detach_knowledge_base_from_agent | Developer | ✓ | Eine Wissensdatenbank von einem Agenten trennen | ||
list_kb_exclusions | Viewer | ✓ | Crawl-Ausschlussregeln auflisten | ||
add_kb_exclusion | Developer | Ein Pfad-Präfix oder eine URL vom Crawlen ausschließen | |||
delete_kb_exclusion | Developer | ✓ | Eine Crawl-Ausschlussregel entfernen | ||
test_kb_retrieval | Developer | ✓ | Eine Frage stellen und sehen, welche Abschnitte der Abruf zurückgibt |
Stimmen
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_voices | Viewer | ✓ | Verfügbare Stimmen für Agenten auflisten | ||
get_voice | Viewer | ✓ | Eine Stimme anhand der ID abrufen |
Integrationen
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_connections | Viewer | ✓ | Externe Integrationen (Slack, Zapier usw.) auflisten | ||
get_connection | Viewer | ✓ | Eine Integration anhand der ID abrufen | ||
list_connection_event_types | Viewer | ✓ | Anzeigen, welche Ereignisse diese Integration auslöst | ||
create_connection | Developer | Eine neue Integration hinzufügen | |||
test_connection | Developer | Eine Integration testen (Probelauf) | |||
delete_connection | Developer | ✓ | Eine Integration entfernen |
Konfigurationen
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_configurations | Viewer | ✓ | Alle Konfigurationen auflisten | ||
get_configuration | Viewer | ✓ | Eine Konfiguration anhand der ID abrufen | ||
get_configuration_version | Viewer | ✓ | Eine frühere Version einer Konfiguration abrufen (mit der ein Anruf, der auf diese Version festgelegt war, ausgeführt wurde) | ||
create_configuration | Developer | Eine neue Konfiguration erstellen | |||
update_configuration | Developer | Eine Konfiguration aktualisieren | |||
delete_configuration | Owner | ✓ | Eine Konfiguration dauerhaft löschen |
Anrufe und Nachweise
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_calls | Viewer | ✓ | Anrufe in Ihrem Mandanten suchen | ||
get_call_detail | Viewer | ✓ | Vollständiger Anrufdatensatz, Transkript, Metadaten, PII-Token | ||
get_call_summary | Viewer | ✓ | Zusammenfassung eines Anrufs auf hohem Niveau | ||
get_delivery_status | Viewer | ✓ | Prüfen, ob eine Aufnahme oder ein Transkript an Webhooks zugestellt wurde | ||
get_chain | Viewer | ✓ | Die Hash-Kette abrufen, die die Integrität eines Anrufs belegt | ||
verify_chain | Viewer | ✓ | Eine Kette kryptografisch verifizieren | ||
reconstruct_call | Viewer | ✓ | Einen Anruf aus seinen Nachweis-Ereignissen rekonstruieren | ||
list_violations | Viewer | ✓ | Compliance-Verstöße in einem Anruf | ||
list_compliance_events | Viewer | ✓ | Zeitgestempelte Compliance-Aufzeichnungen | ||
get_article50_report | Viewer | ✓ | EU-KI-Gesetz Artikel-50-Nachweisbericht für einen Anruf (signiertes JSON) | ||
get_receipt | Viewer | ✓ | Compliance-Quittung für einen Anruf | ||
list_proofs | Viewer | ✓ | Metachain-Nachweise für Anrufe | ||
get_proof | Viewer | ✓ | Einen Nachweis anhand der ID abrufen | ||
get_call_recording | Viewer | ✓ | Aufnahme-URL eines Anrufs abrufen (gibt einen signierten Download-Link zurück) | ||
delete_call_recording | Owner | ✓ | ✓ | Die Anrufaufnahme dauerhaft löschen |
Webhooks
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_webhooks | Viewer | ✓ | Alle Webhook-Abonnements auflisten | ||
get_webhook | Viewer | ✓ | Einen Webhook anhand der ID abrufen | ||
list_webhook_deliveries | Viewer | ✓ | Zustellungshistorie eines Webhooks anzeigen | ||
list_webhook_event_types | Viewer | ✓ | Abonnierbare Ereignisse anzeigen | ||
get_webhook_event_schema | Viewer | ✓ | JSON-Schema für ein Ereignis | ||
get_webhook_secret_status | Viewer | ✓ | Prüfen, ob ein Webhook-Geheimnis aktiv ist | ||
create_webhook | Developer | Ereignisse abonnieren (z. B. call_ended) | |||
update_webhook | Developer | Eine Webhook-URL oder Ereignisse ändern | |||
test_webhook | Developer | Ein signiertes Testereignis an den Endpunkt senden | |||
resend_webhook_delivery | Developer | Eine vergangene Zustellung erneut auslösen | |||
delete_webhook | Owner | ✓ | Von einem Webhook abbestellen |
Telefonnummern
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_numbers | Viewer | ✓ | Alle DIDs (Telefonnummern) auflisten | ||
lookup_number | Viewer | ✓ | Eine DID anhand von Telefonnummer oder ID nachschlagen | ||
list_available_numbers | Viewer | ✓ | Nicht zugewiesene Nummern finden | ||
list_number_orders | Viewer | ✓ | Verlauf der Nummernbereitstellung anzeigen | ||
get_number_order | Viewer | ✓ | Einen Auftrag anhand der ID abrufen | ||
set_number_trunk | Developer | Trunk einer Telefonnummer setzen | |||
assign_number | Developer | Eine DID einem Agenten zuweisen | |||
suspend_number | Developer | Eine Nummer vorübergehend deaktivieren | |||
resume_number | Developer | Eine gesperrte Nummer wieder aktivieren | |||
create_number | Developer | ✓ | ✓ | Telefonnummer hinzufügen (kann Kosten verursachen) | |
create_number_order | Developer | ✓ | ✓ | Telefonnummern bestellen (kostet Geld) | |
release_number | Developer | ✓ | ✓ | Zuweisung einer Nummer aufheben (die Nummer kann dauerhaft verloren gehen) | |
delete_number | Developer | ✓ | ✓ | Eine Nummer dauerhaft aus dem Pool entfernen |
Mandant, Schlüssel und Sitzung
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
get_tenant | Viewer | ✓ | Metadaten Ihres Mandanten abrufen | ||
get_tenant_usage | Viewer | ✓ | Nutzungs- und Kontingentinformationen | ||
list_keys | Developer | ✓ | API-Schlüssel auflisten | ||
update_tenant | Owner | ✓ | Mandanteneinstellungen aktualisieren | ||
rotate_webhook_secret | Owner | ✓ | Webhook-Geheimnis rotieren | ||
generate_key | Owner | ✓ | ✓ | API-Schlüssel generieren (Geheimnis wird einmalig in diese Konversation zurückgegeben) | |
revoke_key | Owner | ✓ | ✓ | API-Schlüssel sofort widerrufen | |
exchange_key | Viewer | ✓ | ✓ | API-Schlüssel gegen Sitzungstoken eintauschen (in diese Konversation) | |
create_ws_ticket | Viewer | WebSocket-Ticket erstellen |
BYO-Telefonie (Bring Your Own)
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
get_byo_config | Viewer | ✓ | BYO-Telefoniekonfiguration abrufen | ||
list_byo_connections | Viewer | ✓ | BYO-SIP-Verbindungen auflisten | ||
get_byo_connection | Viewer | ✓ | BYO-SIP-Verbindung abrufen | ||
verify_byo_connection | Developer | BYO-SIP-Verbindung verifizieren | |||
create_byo_connection | Owner | BYO-SIP-Verbindung erstellen | |||
update_byo_connection | Owner | ✓ | BYO-SIP-Verbindung aktualisieren | ||
delete_byo_connection | Owner | ✓ | ✓ | BYO-SIP-Verbindung löschen (Anrufe darüber werden unterbrochen) |
KYC (Know Your Customer)
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_kyc_requirements | Viewer | ✓ | KYC-Anforderungen auflisten | ||
list_kyc_document_sets | Viewer | ✓ | KYC-Dokumentensätze auflisten | ||
get_kyc_document_set | Viewer | ✓ | KYC-Dokumentensatz abrufen | ||
list_kyc_documents | Viewer | ✓ | KYC-Dokumente auflisten | ||
get_kyc_document | Viewer | ✓ | KYC-Dokument abrufen | ||
create_kyc_document_set | Owner | KYC-Dokumentensatz erstellen | |||
upload_kyc_document | Owner | KYC-Dokument hochladen (siehe KYC-Dokumente hochladen) | |||
replace_kyc_document | Owner | KYC-Dokument ersetzen | |||
delete_kyc_document | Owner | ✓ | ✓ | KYC-Dokument löschen (löscht dauerhaft den behördlichen Nachweis) | |
delete_kyc_document_set | Owner | ✓ | ✓ | KYC-Dokumentensatz löschen | |
rotate_kyc_dek | Owner | ✓ | ✓ | KYC-Verschlüsselungsschlüssel rotieren |
PII-Tresor
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
pii_get_settings | Viewer | ✓ | PII-Tresorkonfiguration abrufen | ||
pii_list_exemptions | Viewer | ✓ | Von der Verschlüsselung ausgenommene Nummern | ||
pii_list_shreds | Viewer | ✓ | Vernichtungs-Prüfprotokoll (dauerhaftes Löschen) | ||
pii_list_erased_keysets | Viewer | ✓ | Nicht mehr verwendete Schlüssel | ||
pii_decrypt_call | Viewer | Anruf-PII entschlüsseln (gibt PII im Klartext zurück – siehe Personenbezogene Daten) | |||
pii_list_call_identities | Viewer | ✓ | Anrufidentitäten auflisten (gibt PII im Klartext zurück – siehe Personenbezogene Daten) | ||
pii_link_call_identity | Developer | Anrufidentität verknüpfen | |||
pii_shred_call | Owner | ✓ | ✓ | Anruf-PII vernichten (löscht personenbezogene Daten unwiderruflich – DSGVO-Löschung) | |
pii_shred_by_hash | Owner | ✓ | ✓ | PII anhand von Hash vernichten (löscht überall unwiderruflich – DSGVO-Löschung) | |
pii_add_exemption | Owner | ✓ | ✓ | PII-Ausnahme hinzufügen (nimmt einen Bezeichner von der Verschlüsselung aus) | |
pii_delete_exemption | Owner | ✓ | ✓ | PII-Ausnahme löschen | |
pii_delete_exemption_by_path | Owner | ✓ | ✓ | PII-Ausnahme nach Pfad löschen | |
pii_put_settings | Owner | ✓ | ✓ | PII-Tresor-Einstellungen aktualisieren (mandantenweite Verschlüsselung ein-/ausschalten) |
Anrufe (SIP) — Live-Anrufverwaltung
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
get_call_status | Viewer | ✓ | Anrufstatus abrufen | ||
initiate_inbound_call | Developer | ✓ | ✓ | Eingehenden Anruf starten (startet einen Live-Eingangsanruf-Raum) | |
initiate_outbound_call | Developer | ✓ | ✓ | Ausgehenden Anruf starten (tätigt einen echten Telefonanruf – kostet Geld, klingelt bei einer echten Person) | |
create_browser_call | Developer | ✓ | ✓ | Browser-Testanruf starten (startet einen Live-Testanruf und setzt KI-Agenten ein – kostet Agenten-Minuten) | |
hangup_call | Developer | ✓ | ✓ | Anruf beenden (beendet einen Live-Anruf sofort) |
Weiterleitungen und Übergaben
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
get_transfer_state | Viewer | ✓ | Weiterleitungsstatus abrufen | ||
get_handover | Developer | ✓ | Übergabeinformationen abrufen | ||
initiate_transfer | Developer | ✓ | ✓ | Anruf weiterleiten (leitet einen Live-Anruf an eine andere Partei weiter) | |
initiate_handover | Developer | ✓ | ✓ | Anruf an einen Menschen übergeben | |
bridge_transfer | Developer | ✓ | ✓ | Bridge-Weiterleitung (verbindet den Anrufer mit dem Weiterleitungsziel) | |
cancel_transfer | Developer | ✓ | ✓ | Weiterleitung abbrechen (bricht eine laufende Live-Weiterleitung ab) | |
end_transfer | Developer | ✓ | ✓ | Weiterleitung beenden |
SIP-Routing
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
list_trunks | Viewer | ✓ | SIP-Trunks auflisten | ||
list_dispatch_rules | Viewer | ✓ | Dispatch-Regeln auflisten | ||
create_dispatch_rule | Developer | ✓ | ✓ | Dispatch-Regel erstellen (ändert die Routing-Logik für eingehende Anrufe) | |
create_inbound_trunk | Owner | ✓ | ✓ | Eingehenden SIP-Trunk erstellen (erstellt einen SIP-Trunk, der echte Anrufe trägt) | |
create_outbound_trunk | Owner | ✓ | ✓ | Ausgehenden SIP-Trunk erstellen (erstellt einen SIP-Trunk, der echte Anrufe trägt) | |
get_admission_url | Viewer | ✓ | Zulassungs-URL abrufen | ||
set_admission_url | Developer | ✓ | ✓ | Zulassungs-URL setzen (ändert die URL, die Audact vor der Verbindung jedes eingehenden Anrufs aufruft) |
Compliance-Laufzeit-API
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
validate_text | Developer | Text gegen Richtlinie validieren | |||
validate_audio | Developer | Audio validieren (bis zu ca. 11 MiB; siehe Limits) | |||
reconcile_audio | Developer | Audio abgleichen (bis zu ca. 11 MiB; siehe Limits) | |||
evaluate_policy | Viewer | Richtlinie auswerten | |||
get_policy | Viewer | ✓ | Richtlinie abrufen | ||
confirm_delivery | Developer | Zustellung bestätigen | |||
reconcile_transcript | Developer | Transkript abgleichen | |||
generate_c2pa_manifest | Developer | C2PA-Manifest generieren | |||
list_c2pa_manifests | Viewer | ✓ | Für einen Anruf ausgestellte C2PA-Manifeste auflisten | ||
create_event | Developer | ✓ | ✓ | Nachweis-Ereignis erstellen (hängt ein dauerhaftes, manipulationserkennbares Ereignis an die Nachweis-Kette an) | |
trigger_aggregation | Owner | Aggregation auslösen |
LLM-Proxy
| Werkzeug | Rolle | R | D | C | Was es tut |
|---|---|---|---|---|---|
proxy_openai | Developer | ✓ | ✓ | OpenAI-Anfrage proxyn (tätigt einen kostenpflichtigen LLM-Aufruf; siehe LLM-Proxy) |
5. Bestätigung für gefährliche Aktionen
Einige Werkzeuge erfordern explizite Bestätigung, bevor sie ausgeführt werden. Dabei handelt es sich um Operationen, die Geld ausgeben, nicht rückgängig gemacht werden können oder die Sicherheit betreffen:
Die 33 Werkzeuge, die eine Bestätigung erfordern:
- Geldausgaben:
create_number,create_number_order,initiate_outbound_call - Irreversible Löschungen:
delete_kyc_document,delete_kyc_document_set,delete_call_recording,pii_shred_call,pii_shred_by_hash,pii_delete_exemption,pii_delete_exemption_by_path,revoke_key,release_number,delete_number,delete_byo_connection - Anrufsteuerung:
initiate_inbound_call,create_browser_call,hangup_call,initiate_transfer,initiate_handover,bridge_transfer,cancel_transfer,end_transfer - Konfiguration:
create_dispatch_rule,create_inbound_trunk,create_outbound_trunk,set_admission_url,rotate_kyc_dek,pii_add_exemption,pii_put_settings - Sicherheit:
generate_key,exchange_key,create_event,proxy_openai
Wie die Bestätigung funktioniert
Wenn ein Werkzeug eine Bestätigung erfordert:
-
Der erste Aufruf schlägt mit
CONFIRMATION_REQUIREDfehl:json
{ "isError": true, "content": [ { "type": "text", "text": "CONFIRMATION_REQUIRED: {consequence}. Ask the user explicitly, and then retry the same call with \"confirm\": true." } ] } -
Das Modell fragt den Nutzer: „Dies wird {consequence}. Soll ich fortfahren?"
-
Nach Zustimmung des Nutzers wiederholt das Modell den Aufruf mit
confirm: true:json
{ "name": "create_number_order", "arguments": { "body": {"set_id": "11111111-2222-3333-4444-555555555555", "country_code": "NL", "number_type": "local"}, "confirm": true } }
Wichtig: confirm ist eine Schutzmaßnahme gegen Prompt-Injection, kein Berechtigungssystem. Die Rolle Ihres API-Schlüssels bestimmt weiterhin, ob Sie das Werkzeug aufrufen dürfen. Ein confirm: true ohne die erforderliche Rolle wird mit einem 403-Fehler des Backends abgewiesen.
6. KYC-Dokumente hochladen
Der Upload von KYC-Dokumenten (Know Your Customer) erfolgt über den MCP-Server, indem die Binärdatei in JSON als base64 kodiert wird.
Parameter
file_base64(erforderlich): Der Dateiinhalt in base64 kodiert (Standard- oder URL-sicheres base64 werden beide akzeptiert; ungültige Kodierung → WerkzeugfehlerINVALID_FILE_ENCODING)file_name(erforderlich): Originaldateiname (z. B."passport.pdf")file_content_type(optional): MIME-Typ (z. B."application/pdf"). Weglassen, wenn unbekannt.doc_type(erforderlich): Dokumenttyp-Code, der vom KYC-Backend akzeptiert wird (z. B."passport"oder"proof_of_address")
Limits
- Dekodierte Dateigrößenbeschränkung: 10 MiB. Größere Dateien → Werkzeugfehler
FILE_TOO_LARGE. - Anfragegrößenlimit: 15 MiB für die gesamte
/mcp/-Anfrage, was Platz für eine 10-MiB-Datei als base64 lässt. - Werkzeuge ohne Datei sind auf 1 MiB Argumente begrenzt (
ARGUMENTS_TOO_LARGE), außervalidate_audioundreconcile_audio, die bis zum 15-MiB-Anfragelimit verwenden dürfen.
Beispiel
json
{
"doc_type": "passport",
"file_base64": "JVBERi0xLjQKJeLjz9MNCjExIDAgb2JqCjw8L1R5cGUvRm9udERlc2NyaXB0b3IvRm9udE5hbWUvQSsvQmFzZUZvbnQvVGltZXMtQm9sZD4+CmVuZG9iCmZv...",
"file_name": "my_passport.pdf",
"file_content_type": "application/pdf"
}So erzeugen Sie base64 aus Ihrer Datei in der Kommandozeile:
bash
base64 < my_passport.pdf
7. Personenbezogene Daten
pii_decrypt_call und pii_list_call_identities geben personenbezogene Daten im Klartext (Namen, E-Mail-Adressen, Telefonnummern usw.) direkt in das Kontextfenster des KI-Assistenten zurück.
Audact protokolliert keine Werkzeugargumente oder -ergebnisse, daher protokollieren wir selbst keine personenbezogenen Daten. Ob der KI-Assistent eines Mandanten personenbezogene Daten im Klartext empfangen darf, liegt in der Verantwortung des Mandanten gemäß seinem Datenverarbeitungsvertrag. Jeder Kunde muss sicherstellen, dass sein Datenvertrag dies zulässt.
Falls Sie mit einem Verantwortlichen zusammenarbeiten, der personenbezogene Daten in KI-Kontexten einschränkt, verwenden Sie statt des MCP-Servers direkt die REST-API mit angemessenen Zugriffskontrollen.
Zugangsdaten im Gespräch. generate_key gibt einen neuen API-Schlüssel zurück und exchange_key gibt ein Sitzungstoken zurück. Beide landen im Gesprächsverlauf des Assistenten (und überall, wo Ihr KI-Client diesen speichert). Beide erfordern confirm: true; widerrufen Sie einen Schlüssel, der möglicherweise offengelegt wurde, mit revoke_key.
Hinweis zu delete_call_recording: Die API erfordert die Eigentümer-Rolle, und der MCP-Server erfordert zusätzlich confirm: true.
8. Limits
Ratenlimit
/mcp/-Endpunkt: 600 Anfragen/Minute pro Schlüssel. Zählt jeden Werkzeugaufruf, jedestools/list.- Timeout: 30 Sekunden pro Aufruf.
Argumentgrößenlimits
| Kategorie | Limit | Fehler |
|---|---|---|
| Die meisten Werkzeuge | 1 MiB | ARGUMENTS_TOO_LARGE |
| KYC-Dokument-Upload (dekodiert) | 10 MiB | FILE_TOO_LARGE |
Werkzeuge mit großen Argumenten (validate_audio, reconcile_audio) | 15 MiB | ARGUMENTS_TOO_LARGE (wenn größer) |
Hinweis: Audio größer als etwa 11 MiB erfordert weiterhin die REST-API; verwenden Sie für sehr große Dateien direkt POST /v1/validate-audio und POST /v1/audio-reconciliation.
Antwortgröße
- 256-KiB-Limit: Überschreitet ein Listenergebnis 256 KiB, werden vollständige Einträge vom Ende her abgeschnitten, sodass das Ergebnis gültiges JSON bleibt. Ein
_mcp_truncated-Feld zeigt an, wie viele zurückgegeben wurden und wie viele auf die Seite gepasst hätten. Wiederholen Sie den Aufruf mit einem kleinerenlimitoder engeren Filtern. - Einzel-Element-Antworten: Überschreitet ein einzelnes Element 256 KiB (selten), erhalten Sie stattdessen einen Werkzeugfehler
RESPONSE_TOO_LARGE.
Weitere Limits
- Dateikodierung: Für
file_base64wird nur base64 (Standard oder URL-sicher) akzeptiert. Ungültige Kodierung →INVALID_FILE_ENCODING. - Base64-Dekodierung: Die kodierte Größe muss in 10 MiB (dekodiert) passen; zu große Dateien →
FILE_TOO_LARGE.
9. LLM-Proxy
Das Werkzeug proxy_openai leitet eine Anfrage an den Audact-LLM-Proxy weiter, der die Authentifizierung und das Routing zu Ihrem konfigurierten LLM-Anbieter verwaltet.
Parameter
call_id(erforderlich): UUID des Anruf-Kontexts (X-Audact-Call-ID-Header)config_id(erforderlich): UUID der LLM-Konfiguration (X-Audact-Config-ID-Header)turn(erforderlich): Turnnummer im Gespräch (X-Audact-Turn-Header)- Weitere Felder: Werden als Anfragekörper an den LLM-Anbieter übergeben (z. B.
messages,temperatureusw.)
Wichtige Hinweise
- Mandant immer aus Ihrem Schlüssel: Sie können keinen anderen Mandanten angeben; er wird automatisch aus dem authentifizierten API-Schlüssel ermittelt.
- Bestätigung erforderlich:
proxy_openaiwird mit"confirm": trueaufgerufen, da es einen kostenpflichtigen LLM-Aufruf tätigt. - Streaming über MCP nicht verfügbar: Streaming (
text/event-stream) ist nur per REST möglich. MCP ist rein JSON-basiert; verwenden Sie für Streaming-Antworten direkt/v1/llm-proxy/openai. - Latenz: Dieser Aufruf läuft auf dem Hot Path (40 ms harte Frist für die Compliance-Validierung); erwarten Sie Sub-Sekunden-Antworten für den Proxy selbst.
Beispiel
json
{
"call_id": "550e8400-e29b-41d4-a716-446655440000",
"config_id": "660e8400-e29b-41d4-a716-446655440001",
"turn": 1,
"messages": [{"role": "user", "content": "Hello"}],
"temperature": 0.7,
"confirm": true
}10. Was NICHT bereitgestellt wird (und warum)
Der MCP-Server schließt in v1 absichtlich einige Operationen aus:
| Ausgeschlossen | Grund |
|---|---|
Org- & Plattform-Admin (/v1/org/*, /v1/platform/*, org-/plattformexklusive Endpunkte) | Erfordern Org- oder Plattform-Zugangsdaten, keine Mandanten-API-Schlüssel |
Voice Cloning (create_agent_worker_voice, delete_agent_worker_voice) | Hinter plattformexklusiver Authentifizierung; kein Mandantenschlüssel kann sie aufrufen |
Export/Import (exportAgent, exportTenant, importTenant) | Erfordern Plattform-Token oder speziellen Registrierungsablauf |
Registrierung (createTenant) | Keine Mandantenoperation; kein Mandantenschlüssel kann sie aufrufen |
Cal.com OAuth (calcom_oauth_start, calcom_oauth_callback) | Außerhalb des Umfangs: OAuth-/Autorisierungscode-Abläufe werden in dieser Phase nicht unterstützt |
Streaming-LLM-Proxy (proxyOpenAIStream) | Gibt text/event-stream zurück; MCP ist rein JSON-basiert. Verwenden Sie für Streaming die REST-API. |
Interne Pipeline-Endpunkte (finalizeCallScore, checkCallingHours) | Nicht öffentlich geroutet; keine mandantenorientierten Operationen |
| Eingehende Webhooks (receive_*-Endpunkte) | Anbieter-Webhooks sind eingehende Callbacks, keine MCP-Werkzeuge |
| Öffentliche Schlüssel, Nachweisexport-Download, SIP-Steuerungsebene | Systemendpunkte, token-gesicherte URLs oder nicht mit Mandanten-API-Operationen verbunden |
Öffentliche Verifikation (getMetachain, verifyInclusion) und Dashboard-Sitzungsaktualisierung (refreshToken) | Akzeptieren keinen Mandanten-API-Schlüssel |
Die maßgebliche Liste mit einem Grund pro Eintrag wird in der Ausschlusskonfiguration des MCP-Servers gepflegt.
Für all diese Fälle verwenden Sie die REST-API direkt mit Ihrem Schlüssel oder das Audact-Dashboard.
11. Fehler & Ratenlimits
Werkzeugfehler
Wenn ein Werkzeugaufruf des MCP-Servers fehlschlägt, erhalten Sie einen Werkzeugfehler mit:
- code: Der Audact-API-Fehlercode (z. B.
CALL_NOT_FOUND,INVALID_API_KEY,CONFIRMATION_REQUIRED,ARGUMENTS_TOO_LARGE,FILE_TOO_LARGE,INVALID_FILE_ENCODING) - hint: Ein menschenlesbarer Hinweis
- message: Vollständiger Fehlertext
Beispiel:
json
{
"isError": true,
"content": [
{
"type": "text",
"text": "404 CALL_NOT_FOUND: Call not found\nHint: Provide a valid UUID for call_id"
}
]
}Authentifizierung & Ratenlimits
- Transport 401 (HTTP 401): Ungültiger oder widerrufener API-Schlüssel. Überprüfen Sie, ob Ihr Schlüssel korrekt und nicht widerrufen ist.
- Werkzeugfehler 403 (vom Backend): Ihre Schlüsselrolle ist für dieses Werkzeug unzureichend. Wechseln Sie bei Bedarf zu Developer oder Owner.
- HTTP 429 (Ratenlimit):
/mcp/ist auf 600 Anfragen/Minute pro Schlüssel begrenzt, wobei jede MCP-Anfrage gezählt wird. Bei Erreichen des Limits erhalten Sie HTTP 429 mit einemRetry-After-Header; warten Sie die angegebene Anzahl an Sekunden, bevor Sie es erneut versuchen. - Antwortgrößenlimit (256 KiB): Ist ein Listenergebnis größer als 256 KiB, werden vollständige Einträge vom Ende her entfernt, sodass das Ergebnis gültiges JSON bleibt, und ein
_mcp_truncated-Feld gibt an, wie viele angezeigt wurden.next_cursorwird von einer abgeschnittenen Seite entfernt. Ein einzelnes Element über dem Limit gibt stattdessen einen WerkzeugfehlerRESPONSE_TOO_LARGEzurück.
Timeouts
- Jeder Werkzeugaufruf hat ein 30-Sekunden-Timeout. Netzwerkverzögerungen oder langsame vorgelagerte Operationen können dies gelegentlich auslösen. Versuchen Sie es nach einer kurzen Verzögerung erneut.
12. Weiterleitung & Architektur
Ihre MCP-Aufrufe werden mit Ihrem Schlüssel an die echte Audact-REST-API (/v1) weitergeleitet, genau so, als hätten Sie sie direkt aufgerufen. Das bedeutet:
- Berechtigungen: Ihre Schlüsselrolle bestimmt, was Sie tun können. Ein Viewer-Schlüssel sieht nur Lese-Werkzeuge; ein Developer- oder Owner-Schlüssel kann schreiben.
- Mandantenisolierung: Ihr Schlüssel ist an einen Mandanten gebunden. Sie können keine Daten eines anderen Mandanten lesen oder ändern, auch wenn Sie deren IDs übergeben.
- Prüfprotokoll: Jeder Aufruf wird unter Ihrem Schlüssel protokolliert, genau wie ein REST-Aufruf.
- Idempotenz: Wird von denselben Backend-Diensten wie REST verarbeitet; übergeben Sie
idempotency_key, wo ein Werkzeug dies anbietet.
Kurzgefasst: Ein Werkzeugaufruf über den MCP-Server kann niemals mehr tun, als derselbe Schlüssel direkt gegen /v1 könnte.
13. Beispiele
Agenten auflisten
Tool: list_agents Arguments: (none) → Returns a list of your tenant's agents
Webhook erstellen
Tool: create_webhook
Arguments:
- body:
url: "https://example.com/hook"
events: ["call_ended", "call_summary"]
scope: "account"
→ Returns the new webhook ID and configurationZustellung bestätigen
Tool: confirm_delivery
Arguments:
- body:
call_id: "aaaabbbb-cccc-dddd-eeee-ffff00001111"
delivered_text: "Your balance is low"
mechanism: "voice"
→ Returns 200 OK; evidence event recordedKYC-Dokument hochladen
Tool: upload_kyc_document Arguments: - doc_type: "passport" - file_base64: "JVBERi0xLjQK..." (base64-encoded PDF) - file_name: "my_passport.pdf" - file_content_type: "application/pdf" → Returns the document ID and upload timestamp
14. Support & Feedback
- REST-API-Referenz: Audact-API-Referenz
- MCP-Protokollspezifikation: Model Context Protocol
- Fehlerbehebung:
- Stellen Sie sicher, dass Ihr API-Schlüssel korrekt und nicht widerrufen ist.
- Stellen Sie sicher, dass Sie
https://api.audact.ai/mcp/als Endpunkt-URL verwenden. - Wenn
tools/listeine leere Liste zurückgibt: Ihre Schlüsselrolle könnte unzureichend sein. Versuchen Sie einen Developer-Schlüssel. - Bei spezifischen Werkzeugfehlern: Fehlercode und Hinweis verweisen auf die REST-API-Dokumentation.
- Probleme melden: Audact Support
Kurzübersicht
| Element | Wert |
|---|---|
| Protokoll | MCP (Model Context Protocol) 2025-06-18 |
| Transport | Streamable HTTP, POST /mcp/ |
| Produktions-URL | https://api.audact.ai/mcp/ |
| Authentifizierung | Authorization: Bearer aud_live_… |
| Werkzeuge | 161 ausgewählte Operationen aus der Audact-REST-API |
| Rollen | Viewer, Developer, Owner |
| Ratenlimit | 600 Anfragen/Min. pro Schlüssel auf /mcp/ |
| Timeout | 30 Sekunden pro Aufruf |
| Werkzeuge mit Bestätigungspflicht | 33 (Geld, irreversibel, sicherheitskritisch) |
| Argumentlimit (die meisten Werkzeuge) | 1 MiB |
| Argumentlimit (Audio-Validierung) | 15 MiB (Audio: ca. 11 MiB empfohlen) |
| KYC-Dokumentlimit | 10 MiB (dekodiert) |
