Skip to main content

🤖 Famulor MCP Server

Ein MCP (Model Context Protocol) Server für die Famulor Voice Agent Platform, der KI-gestützte Telefonanrufe, Assistentenverwaltung und Anrufdatenabruf über ChatGPT und andere MCP-kompatible Clients ermöglicht. Famulor MCP Server

Demo Video

Übersicht

Dieser MCP Server bietet Zugriff auf die Famulor Voice Agent Platform und ermöglicht es Benutzern, KI-gestützte Telefonanrufe zu tätigen, Voice-Assistenten zu verwalten und Anruf-Transkripte und Aufnahmen abzurufen - alles direkt aus jedem MCP-kompatiblen Client wie ChatGPT Desktop, Claude Desktop oder anderen MCP-kompatiblen Anwendungen.

🌐 Online MCP Server

Sie können den gehosteten MCP Server ohne lokale Installation verwenden: Der Server ist einsatzbereit! Für Anweisungen zur Online-Nutzung siehe die Online Deployment Guide.

Features

  • 📞 Anrufe tätigen - KI-gestützte Telefongespräche initiieren
  • 🤖 Assistenten verwalten - Ihre KI-Assistenten abrufen und verwalten
  • 📊 Anrufdaten abrufen - Transkripte, Aufnahmen und Metadaten abrufen
  • 🔒 Sichere Authentifizierung - API-Schlüssel-basierte Authentifizierung pro Benutzer

Entwicklung

# Entwicklung mit Hot Reload
npm run dev

# Build für Produktion
npm run build

# Produktions-Build starten
npm start

# Code linten
npm run lint

# Code formatieren
npm run format

Verfügbare Tools

Call Tools

Tätigt einen Telefonanruf mit einem KI-AssistentenParameter:
  • assistant_id (erforderlich) - Die ID des Assistenten
  • phone_number (erforderlich) - Die Telefonnummer im E.164-Format
  • variables (optional) - Variablen, die an den Assistenten übergeben werden sollen
Ruft Details eines bestimmten Anrufs abParameter:
  • call_id (erforderlich) - Die ID des Anrufs
Listet alle Anrufe mit optionalen Filtern auf (paginiert)Parameter:
  • assistant_id (optional) - Nach Assistenten-ID filtern
  • page (optional) - Seitennummer (Standard: 1)
  • per_page (optional) - Anzahl der Anrufe pro Seite (Standard: 15)
Rückgabe: Paginierte Antwort mit data-Array, das Anrufe und Paginierungs-Metadaten enthält

Assistant Tools

Ruft alle verfügbaren KI-Assistenten ab (paginiert)Parameter:
  • page (optional) - Seitennummer (Standard: 1)
  • per_page (optional) - Anzahl der Assistenten pro Seite (Standard: 10)
Rückgabe: Paginierte Antwort mit data-Array, das Assistenten und Paginierungs-Metadaten enthält (current_page, per_page, total, last_page, next_page_url, etc.)
Ruft alle verfügbaren Telefonnummern für die Assistentenzuweisung abParameter:
  • type (optional) - Telefonnummern nach Assistententyp filtern: ‘inbound’ oder ‘outbound’
Rückgabe: Array von verfügbaren Telefonnummern mit Details einschließlich ID, Telefonnummer, Ländercode, Typ-Label und Verfügbarkeitsstatus
Ruft alle verfügbaren LLM-Modelle für die Assistentenkonfiguration abParameter: KeineRückgabe: Array von verfügbaren LLM-Modellen mit ID und Name
Ruft alle verfügbaren Stimmen für die Assistentenkonfiguration abParameter:
  • mode (optional) - Stimmen nach Assistentenmodus filtern: ‘pipeline’ oder ‘multimodal’
Rückgabe: Array von verfügbaren Stimmen mit ID, Name und Modus-Kompatibilität
Ruft alle verfügbaren Sprachen für die Assistentenkonfiguration abParameter: KeineRückgabe: Array von verfügbaren Sprachen mit ID, Name und ISO 639-1 zweistelligem Sprachcode (iso_2)
Aktualisiert die Konfiguration eines bestehenden KI-AssistentenParameter:
  • id (erforderlich) - Die eindeutige ID des zu aktualisierenden Assistenten
  • Alle anderen Parameter sind optional - nur angegebene Felder werden aktualisiert:
    • assistant_name - Assistentenname (max. 255 Zeichen)
    • voice_id - Stimmen-ID (muss in verfügbaren Stimmen existieren)
    • language - Sprachname (max. 100 Zeichen)
    • llm_model - LLM-Modellname (max. 100 Zeichen)
    • calls_direction - Anrufrichtungstyp: ‘receive’ oder ‘make’
    • engine_type - Engine-Typ: ‘pipeline’ oder ‘multimodal’
    • timezone - Zeitzone (z.B. “Europe/Berlin”)
    • initial_message - Erste Nachricht, die der Assistent zu Beginn des Anrufs spricht
    • system_prompt - System-Prompt, der das Verhalten und die Persönlichkeit des Assistenten definiert
    • phone_number_id - Telefonnummer-ID zur Zuweisung (auf null setzen, um zu entfernen)
    • tool_ids - Array von Mid-Call-Aktions-IDs zur Synchronisation mit dem Assistenten
    • endpoint_type - Voice Activity Detection-Typ: ‘vad’ oder ‘ai’
    • endpoint_sensitivity - Endpoint-Empfindlichkeitsstufe (0-5)
    • interrupt_sensitivity - Unterbrechungsempfindlichkeitsstufe (0-5)
    • ambient_sound_volume - Umgebungsgeräusch-Lautstärke (0-1)
    • post_call_evaluation - Ob Post-Call-Evaluierung aktiviert werden soll
    • send_webhook_only_on_completed - Ob Webhooks nur bei abgeschlossenen Anrufen gesendet werden sollen
    • include_recording_in_webhook - Ob Aufnahme-URL in Webhook-Payload enthalten sein soll
    • is_webhook_active - Ob Webhook-Benachrichtigungen aktiviert sind
    • webhook_url - Webhook-URL für Post-Call-Benachrichtigungen (auf null setzen, um zu entfernen)
    • use_min_interrupt_words - Ob die Einstellung für minimale Unterbrechungswörter verwendet werden soll
    • min_interrupt_words - Minimale Anzahl von Wörtern vor erlaubter Unterbrechung (0-10)
    • variables - Schlüssel-Wert-Paare von benutzerdefinierten Variablen für den Assistenten
    • post_call_schema - Schema-Definition für Post-Call-Datenextraktion
    • end_call_tool - End-Call-Tool-Konfiguration
    • llm_temperature - LLM-Temperatur-Einstellung (0-1)
    • voice_stability - Stimmen-Stabilitätseinstellung (0-1)
    • voice_similarity - Stimmen-Ähnlichkeitseinstellung (0-1)
    • speech_speed - Sprachgeschwindigkeits-Multiplikator (0.7-1.2)
    • allow_interruptions - Ob Unterbrechungen durch Anrufer erlaubt sind
    • filler_audios - Ob Filler-Audio während der Verarbeitung verwendet werden soll
    • re_engagement_interval - Re-Engagement-Intervall in Sekunden (7-600)
    • max_call_duration - Maximale Anrufdauer in Sekunden (20-1200)
    • max_silence_duration - Maximale Stille-Dauer in Sekunden (1-120)
    • end_call_on_voicemail - Ob Anruf bei Voicemail-Erkennung beendet werden soll
    • noise_cancellation - Ob Rauschunterdrückung aktiviert ist
    • record_call - Ob der Anruf aufgezeichnet werden soll
    • who_speaks_first - Wer zuerst im Anruf spricht: ‘AI assistant’ oder ‘Customer’
Rückgabe: Erfolgsmeldung und aktualisierte Assistentendaten

Conversation Tools

Ruft die vollständige Nachrichtenhistorie einer bestehenden Famulor-Konversation abParameter:
  • uuid (erforderlich) - Die UUID der abzurufenden Konversation
Rückgabe: Vollständige Konversationshistorie mit Nachrichten, Rollen und Funktionsaufrufen
Startet eine neue Chat-Session mit einem KI-AssistentenParameter:
  • assistant_id (erforderlich) - UUID des Assistenten, der die Konversation bearbeitet
  • type (optional) - Konversationstyp: ‘widget’ (kostenpflichtig) oder ‘test’ (kostenlos für Entwicklung)
  • variables (optional) - Benutzerdefinierte Variablen zur Injektion in den Assistentenkontext (zugänglich über Template-Syntax im System-Prompt)
Rückgabe: Konversations-ID, Status und initiale Historie (wenn der Assistent eine Startnachricht hat)Hinweis: Widget-Konversationen sind kostenpflichtig; Test-Konversationen sind kostenlos für die Entwicklung
Sendet eine Benutzernachricht an eine bestehende Konversation und erhält die Antwort des AssistentenParameter:
  • uuid (erforderlich) - UUID der bestehenden Konversation
  • message (erforderlich) - Zu sendende Benutzernachricht (max. 2000 Zeichen)
Rückgabe: Assistenten-Antwortnachricht und alle während der Antwort ausgeführten FunktionsaufrufeHinweis: Widget-Konversationen kosten $0.01 pro Benutzernachricht; Test-Konversationen sind kostenlos

Campaign Tools

Listet alle Kampagnen aus dem Famulor-Konto aufParameter: KeineRückgabe: Array aller Kampagnen mit Details einschließlich Status, Einstellungen und Zeitplanungsinformationen
Startet oder stoppt eine Kampagne im Famulor-SystemParameter:
  • campaign_id (erforderlich) - Die ID der zu aktualisierenden Kampagne
  • action (erforderlich) - Die auszuführende Aktion: ‘start’ oder ‘stop’
Rückgabe: Erfolgsmeldung und aktualisierter KampagnenstatusHinweis: Das Starten einer Kampagne erfordert ausreichend Leads und Guthaben. Das Stoppen einer Kampagne bricht laufende Anrufe ab.

Lead Tools

Listet alle Leads für den authentifizierten Benutzer auf (paginiert)Parameter:
  • page (optional) - Seitennummer (Standard: 1)
  • per_page (optional) - Anzahl der Leads pro Seite (Standard: 15)
Rückgabe: Paginierte Antwort mit data-Array, das Leads und Paginierungs-Metadaten enthält
Erstellt einen neuen Lead im Famulor-SystemParameter:
  • phone_number (erforderlich) - Die Telefonnummer im E.164-Format
  • campaign_id (erforderlich) - Die ID der Kampagne
  • variables (optional) - Array von Variablen, die an den Lead übergeben werden sollen
  • allow_dupplicate (optional) - Ob doppelte Leads in einer Kampagne erlaubt sind
Rückgabe: Erstellte Lead-Informationen mit IDHinweis: Verwenden Sie get_assistants, um Assistenteninformationen und Variablen zu erhalten, die beim Erstellen von Leads verwendet werden können
Aktualisiert einen bestehenden Lead in Ihren KampagnenParameter:
  • id (erforderlich) - Die ID des zu aktualisierenden Leads
  • campaign_id (optional) - Die ID der Kampagne, der der Lead zugewiesen werden soll
  • phone_number (optional) - Die Telefonnummer (automatisch im E.164-Format formatiert)
  • status (optional) - Der Status: ‘created’, ‘completed’ oder ‘reached-max-retries’
  • variables (optional) - Benutzerdefinierte Variablen, die mit bestehenden Lead-Variablen zusammengeführt werden
Rückgabe: Erfolgsmeldung, die bestätigt, dass der Lead aktualisiert wurde

SMS Tools

Sendet eine SMS-Nachricht über Ihre TelefonnummerParameter:
  • from (erforderlich) - Die ID Ihrer Telefonnummer, von der die SMS gesendet werden soll (muss SMS-fähig sein)
  • to (erforderlich) - Die Telefonnummer des Empfängers im internationalen Format (z.B., “+4915123456789”)
  • body (erforderlich) - Der SMS-Nachrichteninhalt (max. 300 Zeichen)
Rückgabe: Erfolgsmeldung und SMS-Daten einschließlich SMS-ID, Segmente, Kosten und StatusHinweis:
  • Die Absender-Telefonnummer muss dem authentifizierten Benutzer gehören und SMS-fähig sein
  • Ausreichendes Kontoguthaben ist erforderlich, um SMS-Kosten zu decken
  • SMS-Kosten variieren je nach Zielland und werden pro Segment berechnet
  • Lange Nachrichten können in mehrere Segmente aufgeteilt werden, was die Kosten erhöht

Mid-Call Tools

Listet alle Mid-Call-Tools auf, die es KI-Assistenten ermöglichen, während Anrufen mit externen APIs zu interagierenParameter: KeineRückgabe: Array aller Mid-Call-Tools mit Details einschließlich Name, Beschreibung, Endpoint, Methode, Timeout, Headers und Schema
Ruft detaillierte Informationen über ein bestimmtes Mid-Call-Tool abParameter:
  • id (erforderlich) - Die eindeutige ID des Mid-Call-Tools
Rückgabe: Vollständige Tool-Informationen einschließlich Konfiguration und Schema
Aktualisiert ein bestehendes Mid-Call-ToolParameter:
  • id (erforderlich) - Die eindeutige ID des zu aktualisierenden Tools
  • name (optional) - Tool-Name (nur Kleinbuchstaben und Unterstriche)
  • description (optional) - Detaillierte Erklärung, wann und wie die KI dieses Tool verwenden sollte
  • endpoint (optional) - Gültige URL des aufzurufenden API-Endpoints
  • method (optional) - HTTP-Methode: GET, POST, PUT, PATCH oder DELETE
  • timeout (optional) - Request-Timeout in Sekunden (1-30)
  • headers (optional) - HTTP-Header, die mit der Anfrage gesendet werden sollen
  • schema (optional) - Parameter-Schema, das die KI extrahieren und senden wird
Rückgabe: Erfolgsmeldung und aktualisierte Tool-Daten

Projektstruktur

Famulor-MCP/
├── src/
│   ├── index.ts          # MCP Server Entry Point
│   ├── server.ts         # MCP Server Setup
│   ├── tools/            # Famulor API Tools
│   │   ├── calls.ts      # Call Operations
│   │   ├── assistants.ts # Assistant Operations
│   │   ├── conversations.ts # Conversation Operations
│   │   ├── campaigns.ts   # Campaign Operations
│   │   ├── leads.ts       # Lead Operations
│   │   ├── sms.ts         # SMS Operations
│   │   ├── midCallTools.ts # Mid-Call Tools Operations
│   │   └── index.ts      # Tools Export
│   ├── auth/             # Authentication
│   │   └── famulor.ts    # Famulor API Client
│   └── types/            # TypeScript Types
│       └── famulor.ts    # Famulor API Types
├── dist/                 # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
├── README.md
├── QUICKSTART.md         # Quick start guide
├── MCP_SETUP.md          # Detailed setup guide
├── DEPLOYMENT.md          # Deployment guide
└── ONLINE_DEPLOYMENT.md   # Online deployment guide

Über MCP

Dies ist ein Model Context Protocol (MCP) Server, der Zugriff auf die Famulor Voice Agent Platform bietet. MCP ist ein Protokoll, das es KI-Assistenten wie ChatGPT, Claude und anderen KI-Tools ermöglicht, sich sicher mit externen Datenquellen und Tools zu verbinden. Der Server stellt die Voice-Agent-Funktionen von Famulor als MCP-Tools bereit und ermöglicht es jedem MCP-kompatiblen Client (ChatGPT Desktop, Claude Desktop oder anderen MCP-Anwendungen), mit der Famulor-Plattform zu interagieren.

Sicherheit

  • ✅ Jeder Benutzer konfiguriert seinen eigenen API-Schlüssel
  • ✅ API-Schlüssel werden lokal in Ihrer MCP-Konfigurationsdatei gespeichert (verschlüsselt von Ihrem MCP-Client)
  • ✅ Keine API-Schlüssel werden über das Netzwerk gesendet (stdio ist lokal)
  • Kommittieren Sie niemals Ihre MCP-Konfigurationsdatei mit API-Schlüsseln in die Versionskontrolle
  • Teilen Sie Ihren API-Schlüssel niemals öffentlich

Ressourcen

Beitragen

Beiträge sind willkommen! Bitte zögern Sie nicht, einen Pull Request einzureichen.

Lizenz

Proprietäre Lizenz - Nutzung nur für Famulor-Benutzer erlaubt Diese Software darf nur verwendet, kopiert und modifiziert werden, wenn Sie die Famulor Voice Agent Platform verwenden. Siehe LICENSE Datei für vollständige Details.

Autor

bekservice