π€ 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.
GitHub Repository
Source code and documentation
Online MCP Server
Hosted server without installation
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

