🤖 Famulor MCP Server
An MCP (Model Context Protocol) Server for the Famulor Voice Agent Platform that enables AI-powered phone calls, assistant management, and call data retrieval via ChatGPT and other MCP-compatible clients.
Demo Video
Overview
This MCP Server provides access to the Famulor Voice Agent Platform, allowing users to make AI-powered phone calls, manage voice assistants, and retrieve call transcripts and recordings — all directly from any MCP-compatible client such as ChatGPT Desktop, Claude Desktop, or other MCP-compliant applications.🌐 Online MCP Server
You can use the hosted MCP server without any local installation:- Server URL: https://mcp.famulor.io
- SSE Endpoint: https://mcp.famulor.io/sse
- Health Check: https://mcp.famulor.io/health
Features
- 📞 Make Calls – Initiate AI-powered phone calls
- 🤖 Manage Assistants – Retrieve and manage your AI assistants
- 📊 Fetch Call Data – Get transcripts, recordings, and metadata
- 🔒 Secure Authentication – User-based API key authentication
Development
Available Tools
Call Tools
make_call
make_call
Initiates a phone call with an AI assistantParameters:
assistant_id(required) - The assistant’s IDphone_number(required) - Phone number in E.164 formatvariables(optional) - Variables to pass to the assistant
get_call
get_call
Retrieves details of a specific callParameters:
call_id(required) - Call ID
list_calls
list_calls
Lists all calls with optional filters (paginated)Parameters:
assistant_id(optional) - Filter by assistant IDpage(optional) - Page number (default: 1)per_page(optional) - Calls per page (default: 15)
data array containing calls and pagination metadataAssistant Tools
get_assistants
get_assistants
Retrieves all available AI assistants (paginated)Parameters:
page(optional) - Page number (default: 1)per_page(optional) - Assistants per page (default: 10)
data array containing assistants and pagination metadata (current_page, per_page, total, last_page, next_page_url, etc.)get_phone_numbers
get_phone_numbers
Retrieves all available phone numbers for assistant assignmentParameters:
type(optional) - Filter phone numbers by assistant type: ‘inbound’ or ‘outbound’
get_models
get_models
Retrieves all available LLM models for assistant configurationParameters: NoneReturns: Array of available LLM models with ID and name
get_voices
get_voices
Retrieves all available voices for assistant configurationParameters:
mode(optional) - Filter voices by assistant mode: ‘pipeline’ or ‘multimodal’
get_languages
get_languages
Retrieves all available languages for assistant configurationParameters: NoneReturns: Array of available languages with ID, name, and ISO 639-1 two-letter language code (
iso_2)update_assistant
update_assistant
Updates the configuration of an existing AI assistantParameters:
id(required) - Unique ID of the assistant to update- All other parameters are optional — only specified fields are updated:
assistant_name– Assistant name (max 255 chars)voice_id– Voice ID (must exist in available voices)language– Language name (max 100 chars)llm_model– LLM model name (max 100 chars)calls_direction– Call direction type: ‘receive’ or ‘make’engine_type– Engine type: ‘pipeline’ or ‘multimodal’timezone– Timezone (e.g., “Europe/Berlin”)initial_message– Initial message the assistant speaks at call startsystem_prompt– System prompt defining assistant behavior and personalityphone_number_id– Phone number ID to assign (set null to remove)tool_ids– Array of mid-call action IDs to sync with the assistantendpoint_type– Voice Activity Detection type: ‘vad’ or ‘ai’endpoint_sensitivity– Endpoint sensitivity level (0-5)interrupt_sensitivity– Interrupt sensitivity level (0-5)ambient_sound_volume– Ambient noise volume (0-1)post_call_evaluation– Whether post-call evaluation is enabledsend_webhook_only_on_completed– Whether webhooks are sent only on completed callsinclude_recording_in_webhook– Whether the recording URL is included in webhook payloadsis_webhook_active– Whether webhook notifications are activewebhook_url– Webhook URL for post-call notifications (set null to remove)use_min_interrupt_words– Whether minimum interrupt words setting is usedmin_interrupt_words– Minimum words before an allowed interruption (0-10)variables– Key-value pairs of custom variables for the assistantpost_call_schema– Schema definition for post-call data extractionend_call_tool– End-call tool configurationllm_temperature– LLM temperature setting (0-1)voice_stability– Voice stability setting (0-1)voice_similarity– Voice similarity setting (0-1)speech_speed– Speech speed multiplier (0.7-1.2)allow_interruptions– Whether interruptions by callers are allowedfiller_audios– Whether filler audio is played during processingre_engagement_interval– Re-engagement interval in seconds (7-600)max_call_duration– Maximum call duration in seconds (20-1200)max_silence_duration– Maximum silence duration in seconds (1-120)end_call_on_voicemail– Whether to end calls upon voicemail detectionnoise_cancellation– Whether noise cancellation is enabledrecord_call– Whether the call should be recordedwho_speaks_first– Who speaks first in the call: ‘AI assistant’ or ‘Customer’
Conversation Tools
get_conversation
get_conversation
Retrieves the full message history of an existing Famulor conversationParameters:
uuid(required) – The UUID of the conversation to retrieve
create_conversation
create_conversation
Starts a new chat session with an AI assistantParameters:
assistant_id(required) – UUID of the assistant handling the conversationtype(optional) – Conversation type: ‘widget’ (paid) or ‘test’ (free for development)variables(optional) – Custom variables to inject into the assistant context (accessible via template syntax in the system prompt)
send_message
send_message
Sends a user message to an existing conversation and receives the assistant’s replyParameters:
uuid(required) – UUID of the existing conversationmessage(required) – User message to send (max 2000 characters)
Campaign Tools
list_campaigns
list_campaigns
Lists all campaigns from the Famulor accountParameters: NoneReturns: Array of all campaigns with details including status, settings, and scheduling info
update_campaign_status
update_campaign_status
Starts or stops a campaign within the Famulor systemParameters:
campaign_id(required) – ID of the campaign to updateaction(required) – Action to perform: ‘start’ or ‘stop’
Lead Tools
list_leads
list_leads
Lists all leads for the authenticated user (paginated)Parameters:
page(optional) – Page number (default: 1)per_page(optional) – Leads per page (default: 15)
data array containing leads and pagination metadatacreate_lead
create_lead
Creates a new lead in the Famulor systemParameters:
phone_number(required) – Phone number in E.164 formatcampaign_id(required) – Campaign IDvariables(optional) – Array of variables to pass to the leadallow_dupplicate(optional) – Whether duplicate leads within a campaign are allowed
get_assistants to obtain assistant information and variables usable when creating leadsupdate_lead
update_lead
Updates an existing lead in your campaignsParameters:
id(required) – ID of the lead to updatecampaign_id(optional) – ID of the campaign to assign the lead tophone_number(optional) – Phone number (automatically formatted in E.164)status(optional) – Status: ‘created’, ‘completed’, or ‘reached-max-retries’variables(optional) – Custom variables to merge with existing lead variables
SMS Tools
send_sms
send_sms
Sends an SMS message via your phone numberParameters:
from(required) – ID of your phone number to send from (must be SMS-capable)to(required) – Recipient phone number in international format (e.g., “+4915123456789”)body(required) – SMS message content (max 300 characters)
- The sender phone number must belong to the authenticated user and be SMS-capable
- Sufficient account balance is required to cover SMS costs
- SMS costs vary by destination country and are charged per segment
- Long messages may be split into multiple segments, increasing costs
Mid-Call Tools
list_mid_call_tools
list_mid_call_tools
Lists all mid-call tools enabling AI assistants to interact with external APIs during callsParameters: NoneReturns: Array of all mid-call tools with details including name, description, endpoint, method, timeout, headers, and schema
get_mid_call_tool
get_mid_call_tool
Retrieves detailed information about a specific mid-call toolParameters:
id(required) – Unique ID of the mid-call tool
update_mid_call_tool
update_mid_call_tool
Updates an existing mid-call toolParameters:
id(required) – Unique ID of the tool to updatename(optional) – Tool name (lowercase letters and underscores only)description(optional) – Detailed explanation of when and how the AI should use this toolendpoint(optional) – Valid URL of the API endpoint to callmethod(optional) – HTTP method: GET, POST, PUT, PATCH, or DELETEtimeout(optional) – Request timeout in seconds (1-30)headers(optional) – HTTP headers to send with the requestschema(optional) – Parameter schema that AI will extract and send
Project Structure
About MCP
This is a Model Context Protocol (MCP) Server providing access to the Famulor Voice Agent Platform. MCP is a protocol that allows AI assistants like ChatGPT, Claude, and other AI tools to securely connect with external data sources and tools. The server exposes Famulor’s voice agent capabilities as MCP tools, enabling any MCP-compatible client (ChatGPT Desktop, Claude Desktop, or others) to interact with the Famulor platform.Security
- ✅ Each user configures their own API key
- ✅ API keys are stored locally in your MCP config file (encrypted by your MCP client)
- ✅ No API keys are sent over the network (stdio is local)
- ❌ Never commit your MCP config file with API keys to version control
- ❌ Never share your API key publicly
Resources
- 🌐 Online MCP Server: https://mcp.famulor.io
- Famulor Voice Agent Homepage
- Famulor Voice Agent Platform
- Famulor API Documentation
- MCP Protocol Documentation
- ChatGPT Desktop App
- Claude Desktop App
- GitHub Repository

