Zum Hauptinhalt springen

🤖 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

GitHub Repository

Quellcode und Dokumentation

Online MCP Server

Gehosteter Server ohne Installation

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
Passende Seiten: Client und Overview.