io.famulor/famulor-mcp
Official75 toolsby bekservice · TypeScript
Famulor
AI voice agents: assistants, calls, campaigns, leads, knowledge bases, WhatsApp, SMS & SIP trunks.
Voice agents for calls, campaigns, and leads via WhatsApp, SMS, and SIP.
Topics
Captured live from the server via tools/list.
get_me
Get the authenticated Famulor user profile, including total balance.
No parameters.
get_assistants
List all AI assistants on the Famulor account (paginated). Returns the assistant configurations including their fixed variable names.
Parameters (2)
- pageinteger
- per_pageinteger
get_outbound_assistants
List all outbound-capable assistants.
No parameters.
get_phone_numbers
List phone numbers eligible to be attached to an assistant (filter by inbound/outbound).
Parameters (1)
- typestring
get_models
List available LLM / multimodal / dualplex model IDs.
Parameters (1)
- typestring
get_voices
List voices compatible with a given engine mode and optional language.
Parameters (2)
- modestring
- language_idinteger
get_languages
List all supported assistant languages.
No parameters.
get_synthesizer_providers
List custom TTS providers selectable on an assistant.
No parameters.
get_transcriber_providers
List custom STT providers selectable on a pipeline assistant.
No parameters.
create_assistant
Create a new AI assistant. Required: name, voice_id, language_id, type, mode, timezone, initial_message, system_prompt, and either llm_model_id (pipeline) or multimodal_model_id (multimodal/dualplex). For multimodal/dualplex, knowledgebase_mode must be "function_call" when a knowledgebase is attached.
Parameters (57)
- namestringrequired
Display name of the assistant (max 255 chars)
- voice_idintegerrequired
Voice ID from get_voices
- language_idintegerrequired
Primary language ID from get_languages
- secondary_language_idsarray
Additional language IDs the assistant can speak
- typestringrequired
Assistant call direction
- modestringrequired
- timezonestringrequired
IANA timezone, e.g. "Europe/Berlin"
- initial_messagestringrequired
First message spoken at call start (max 200 chars)
- system_promptstringrequired
System prompt defining behavior
- llm_model_idinteger
Required for mode=pipeline
- multimodal_model_idinteger
Required for mode=multimodal/dualplex
- chat_llm_fallback_idinteger
- turn_detection_thresholdnumber
- knowledgebase_idinteger
- knowledgebase_modestring
- phone_number_idinteger | null
- tool_idsarray
- toolsarray
- tts_emotion_enabledboolean
- voice_stabilitynumber
- voice_similaritynumber
- speech_speednumber
- llm_temperaturenumber
- synthesizer_provider_idinteger
- transcriber_provider_idinteger
- allow_interruptionsboolean
- fillersboolean
- filler_configobject
- recordboolean
- enable_noise_cancellationboolean
- wait_for_customerboolean
- max_durationinteger
- max_silence_durationinteger
- max_initial_silence_durationinteger
- ringing_timeinteger
- reengagement_intervalinteger
- reengagement_promptstring
- end_call_on_voicemailboolean
- voice_mail_messagestring
- endpoint_typestring
- endpoint_sensitivitynumber
- interrupt_sensitivitynumber
- min_interrupt_wordsinteger
- ambient_soundstring
- ambient_sound_volumenumber
- is_webhook_activeboolean
- webhook_urlstring | null
- send_webhook_only_on_completedboolean
- include_recording_in_webhookboolean
- post_call_evaluationboolean
- post_call_schemaarray
- variablesobject
- folder_idinteger | null
Folder to place the assistant in (one folder per assistant). See list_folders. Send null to remove.
- label_idsarray
Label IDs to tag the assistant with (an assistant can carry multiple labels). See list_labels.
- conversation_inactivity_timeoutinteger
- conversation_ended_retriggerboolean
- conversation_ended_webhook_urlstring
update_assistant
Update an existing assistant (partial). Only the fields you send are changed.
Parameters (58)
- idintegerrequired
Assistant ID to update
- namestring
Display name of the assistant (max 255 chars)
- voice_idinteger
Voice ID from get_voices
- language_idinteger
Primary language ID from get_languages
- secondary_language_idsarray
Additional language IDs the assistant can speak
- typestring
Assistant call direction
- modestring
- timezonestring
IANA timezone, e.g. "Europe/Berlin"
- initial_messagestring
First message spoken at call start (max 200 chars)
- system_promptstring
System prompt defining behavior
- llm_model_idinteger
Required for mode=pipeline
- multimodal_model_idinteger
Required for mode=multimodal/dualplex
- chat_llm_fallback_idinteger
- turn_detection_thresholdnumber
- knowledgebase_idinteger
- knowledgebase_modestring
- phone_number_idinteger | null
- tool_idsarray
- toolsarray
- tts_emotion_enabledboolean
- voice_stabilitynumber
- voice_similaritynumber
- speech_speednumber
- llm_temperaturenumber
- synthesizer_provider_idinteger
- transcriber_provider_idinteger
- allow_interruptionsboolean
- fillersboolean
- filler_configobject
- recordboolean
- enable_noise_cancellationboolean
- wait_for_customerboolean
- max_durationinteger
- max_silence_durationinteger
- max_initial_silence_durationinteger
- ringing_timeinteger
- reengagement_intervalinteger
- reengagement_promptstring
- end_call_on_voicemailboolean
- voice_mail_messagestring
- endpoint_typestring
- endpoint_sensitivitynumber
- interrupt_sensitivitynumber
- min_interrupt_wordsinteger
- ambient_soundstring
- ambient_sound_volumenumber
- is_webhook_activeboolean
- webhook_urlstring | null
- send_webhook_only_on_completedboolean
- include_recording_in_webhookboolean
- post_call_evaluationboolean
- post_call_schemaarray
- variablesobject
- folder_idinteger | null
Folder to place the assistant in (one folder per assistant). See list_folders. Send null to remove.
- label_idsarray
Label IDs to tag the assistant with (an assistant can carry multiple labels). See list_labels.
- conversation_inactivity_timeoutinteger
- conversation_ended_retriggerboolean
- conversation_ended_webhook_urlstring
delete_assistant
Permanently delete an assistant. Cannot be undone.
Parameters (1)
- idintegerrequired
enable_assistant_inbound_webhook
Enable inbound-call webhook notifications for an assistant.
Parameters (2)
- assistant_idintegerrequired
- webhook_urlstringrequired
HTTPS URL that receives the webhook payload
disable_assistant_inbound_webhook
Disable inbound-call webhook notifications.
Parameters (1)
- assistant_idintegerrequired
enable_assistant_conversation_ended_webhook
Enable conversation-ended (chat) webhook for an assistant.
Parameters (2)
- assistant_idintegerrequired
- webhook_urlstringrequired
disable_assistant_conversation_ended_webhook
Disable conversation-ended (chat) webhook.
Parameters (1)
- assistant_idintegerrequired
disable_assistant_webhook
Disable the post-call webhook for an assistant.
Parameters (1)
- assistant_idintegerrequired
make_call
Initiate an outbound AI phone call with a configured assistant.
Parameters (3)
- assistant_idstringrequired
Assistant UUID or ID
- phone_numberstringrequired
E.164-formatted destination number
- variablesobject
get_call
Retrieve a single call by ID.
Parameters (1)
- call_idstringrequired
list_calls
List calls with pagination and optional assistant filter.
Parameters (3)
- assistant_idstring
- pageinteger
- per_pageinteger
delete_call
Delete a call record. Cannot be undone.
Parameters (1)
- call_idstringrequired
list_conversations
List conversations across your assistants with cursor pagination and filters.
Parameters (7)
- typestring
- assistant_idinteger
- customer_phonestring
- whatsapp_sender_phonestring
- external_identifierstring
- per_pageinteger
- cursorstring
get_conversation
Get the full message history of a chat conversation by UUID.
Parameters (1)
- uuidstringrequired
create_conversation
Start a new chat session with an assistant (widget=paid, test=free).
Parameters (3)
- assistant_idstringrequired
- typestring
- variablesobject
send_message
Send a user message in an existing chat conversation and get the assistant reply.
Parameters (2)
- uuidstringrequired
- messagestringrequired
User message (max 2000 chars)
enable_conversation_ai
Re-enable AI replies for a conversation after a human takeover.
Parameters (1)
- uuidstringrequired
disable_conversation_ai
Disable AI replies for a conversation so a human can take over.
Parameters (1)
- uuidstringrequired
list_campaigns
List all outbound calling campaigns.
No parameters.
create_campaign
Create a new outbound campaign tied to an outbound-capable assistant.
Parameters (13)
- namestringrequired
Campaign name (max 255 chars)
- assistant_idintegerrequired
- timezonestring
- max_calls_in_parallelinteger
- allowed_hours_start_timestring
H:i, e.g. "09:00"
- allowed_hours_end_timestring
H:i, e.g. "17:00"
- allowed_daysarray
- max_retriesinteger
- retry_intervalinteger
- retry_on_voicemailboolean
- retry_on_goal_incompleteboolean
- goal_completion_variablestring
- mark_complete_when_no_leadsboolean
update_campaign_status
Start or stop a campaign.
Parameters (2)
- campaign_idintegerrequired
- actionstringrequired
delete_campaign
Delete a campaign. Cannot be undone.
Parameters (1)
- idintegerrequired
list_leads
List leads with pagination.
Parameters (2)
- pageinteger
- per_pageinteger
create_lead
Create a new lead in a campaign. IMPORTANT: variable names come from the associated assistant configuration and are fixed; only their values can be supplied here.
Parameters (5)
- phone_numberstringrequired
E.164 format, e.g. +491234567890
- campaign_idintegerrequired
- variablesany
Either an object (key/value pairs matching assistant variables) or an array of such objects.
- allow_dupplicateboolean
- secondary_contactsarray
update_lead
Update a lead. Variables are merged with existing ones.
Parameters (5)
- idintegerrequired
- campaign_idinteger
- phone_numberstring
- statusstring
- variablesobject
delete_lead
Delete a lead.
Parameters (1)
- idintegerrequired
send_sms
Send an SMS from one of your Famulor phone numbers (must be SMS-capable). Costs are deducted from your balance.
Parameters (3)
- fromintegerrequired
Phone number ID
- tostringrequired
Recipient in E.164 format
- bodystringrequired
Message body (max 300 chars)
list_mid_call_tools
List mid-call tools (HTTP integrations callable by an assistant during a call).
No parameters.
get_mid_call_tool
Get a single mid-call tool by ID.
Parameters (1)
- idintegerrequired
create_mid_call_tool
Create a new mid-call HTTP tool.
Parameters (7)
- namestringrequired
Tool identifier: lowercase letters and underscores, starts with a letter
- descriptionstringrequired
When the AI should use it (max 255 chars)
- endpointstringrequired
HTTPS URL to call
- methodstringrequired
- timeoutinteger
Seconds, 1-30
- headersarray
- schemaarray
update_mid_call_tool
Update a mid-call tool. headers/schema fully replace existing values when provided.
Parameters (8)
- idintegerrequired
- namestring
- descriptionstring
- endpointstring
- methodstring
- timeoutinteger
- headersarray
- schemaarray
delete_mid_call_tool
Delete a mid-call tool.
Parameters (1)
- idintegerrequired
list_knowledgebases
List all knowledge bases on the account.
No parameters.
get_knowledgebase
Get a knowledge base by ID.
Parameters (1)
- idintegerrequired
create_knowledgebase
Create a new knowledge base.
Parameters (2)
- namestringrequired
Max 255 chars
- descriptionstring
Optional, max 255 chars
update_knowledgebase
Rename or describe an existing knowledge base.
Parameters (3)
- idintegerrequired
- namestring
- descriptionstring
delete_knowledgebase
Delete a knowledge base permanently.
Parameters (1)
- idintegerrequired
list_documents
List documents in a knowledge base.
Parameters (1)
- knowledgebase_idintegerrequired
get_document
Get a single document by ID.
Parameters (2)
- knowledgebase_idintegerrequired
- document_idintegerrequired
create_document
Add a website (URL-scraped) document to a knowledge base. File uploads (pdf/txt/docx) must use the Famulor dashboard or a direct multipart/form-data call.
Parameters (7)
- knowledgebase_idintegerrequired
- namestringrequired
Max 255 chars
- descriptionstring
Optional, max 255 chars
- typestringrequired
Only website is supported via MCP
- urlstring
Main URL to scrape (required if links is not set)
- linksarray
- relative_links_limitinteger
update_document
Update a document name or description. Content cannot be changed.
Parameters (4)
- knowledgebase_idintegerrequired
- document_idintegerrequired
- namestring
- descriptionstring
delete_document
Delete a document from a knowledge base.
Parameters (2)
- knowledgebase_idintegerrequired
- document_idintegerrequired
list_all_phone_numbers
List every phone number on the account (regardless of SMS or subscription status).
No parameters.
search_phone_numbers
Search for purchasable phone numbers via the Famulor provider.
Parameters (2)
- country_codestring
ISO 3166-1 alpha-2, default DE
- containsstring
Digits the number should contain (numeric only, max 10)
purchase_phone_number
Purchase a phone number returned by search_phone_numbers (monthly subscription).
Parameters (1)
- phone_numberstringrequired
update_phone_number
Update a phone number you own. Currently sets the nickname — a short human-readable label (max 50 chars) shown next to the number. Send null/empty to clear it. Granted (shared) numbers cannot be updated.
Parameters (2)
- idintegerrequired
Phone number ID to update
- nicknamestring | null
Short label, max 50 chars. null clears it.
release_phone_number
Release (cancel) a purchased phone number.
Parameters (1)
- idintegerrequired
list_folders
List assistant folders (paginated), each with its assistants_count. Folders group assistants, e.g. per customer or brand; an assistant belongs to at most one folder.
Parameters (2)
- pageinteger
- per_pageinteger
1-100, default 15
create_folder
Create a folder to group assistants. Assign assistants via the folder_id field on create_assistant / update_assistant.
Parameters (2)
- namestringrequired
Folder name (max 255 chars, unique per account)
- colorstring
Badge color
update_folder
Rename a folder or change its color (partial — only sent fields change).
Parameters (3)
- idintegerrequired
Folder ID
- namestring
New name (max 255 chars, unique per account)
- colorstring | null
New badge color, or null to remove
delete_folder
Delete a folder. Assistants inside are NOT deleted — they just become uncategorized.
Parameters (1)
- idintegerrequired
list_labels
List assistant labels (paginated), each with its assistants_count. Labels are tags; an assistant can carry multiple labels across folders.
Parameters (2)
- pageinteger
- per_pageinteger
1-100, default 15
create_label
Create a label to tag assistants (e.g. "inbound", "outbound"). Assign via the label_ids field on create_assistant / update_assistant.
Parameters (2)
- namestringrequired
Label name (max 255 chars, unique per account)
- colorstring
Badge color
update_label
Rename a label or change its color (partial — only sent fields change).
Parameters (3)
- idintegerrequired
Label ID
- namestring
New name (max 255 chars, unique per account)
- colorstring | null
New badge color, or null to remove
delete_label
Delete a label. It is removed from all assistants it was assigned to — the assistants themselves are NOT affected.
Parameters (1)
- idintegerrequired
list_sip_trunks
List all SIP trunks on the account.
No parameters.
get_sip_trunk
Get a SIP trunk by ID.
Parameters (1)
- idintegerrequired
create_sip_trunk
Provision a new SIP trunk (extension or DID number).
Parameters (10)
- sip_trunk_typestringrequired
- phone_numberstringrequired
Extension (1-15 chars) or E.164 number
- sip_usernamestringrequired
3-128 chars
- sip_passwordstringrequired
Min 3 chars
- sip_addressstringrequired
SIP server without port
- sip_calling_formatstringrequired
- inbound_authorization_typestringrequired
- allowed_inbound_ipsarray
- country_codestringrequired
ISO 3166-2, e.g. US/GB/DE
- outbound_proxyboolean
update_sip_trunk
Update a SIP trunk (partial).
Parameters (10)
- idintegerrequired
- phone_numberstring
- sip_usernamestring
- sip_passwordstring
- sip_addressstring
- sip_calling_formatstring
- inbound_authorization_typestring
- allowed_inbound_ipsarray
- country_codestring
- outbound_proxyboolean
delete_sip_trunk
Delete a SIP trunk by phone-number ID.
Parameters (1)
- idintegerrequired
get_whatsapp_senders
List WhatsApp Business senders. status defaults to "online" — pass "all" to see all.
Parameters (1)
- statusstring
get_whatsapp_templates
List approved templates for a WhatsApp sender (status defaults to "approved").
Parameters (2)
- sender_idintegerrequired
- statusstring
get_whatsapp_session_status
Check whether a 24h messaging window is open for a recipient.
Parameters (2)
- sender_idintegerrequired
- recipient_phonestringrequired
send_whatsapp_template
Send a WhatsApp template message (required when initiating or outside the 24h window).
Parameters (5)
- sender_idintegerrequired
- template_idintegerrequired
- recipient_phonestringrequired
E.164
- recipient_namestring
- variablesobject
send_whatsapp_freeform
Send a freeform WhatsApp message. Requires an open 24h session (use get_whatsapp_session_status to check).
Parameters (3)
- sender_idintegerrequired
- recipient_phonestringrequired
- messagestringrequired
Max 4096 chars
generate_ai_reply
Generate a context-aware AI reply for a customer message. The system keeps conversation state per customer_identifier (e.g. phone, email, CRM ID).
Parameters (4)
- assistant_idintegerrequired
- customer_identifierstringrequired
Stable per-customer ID; max 255 chars
- messagestringrequired
- variablesobject
README not available yet.
Install
Configuration
FAMULOR_API_KEYrequiredsecretFamulor API key (create at https://app.famulor.de → API Keys)
claude_desktop_config.json
{
"mcpServers": {
"famulor-mcp": {
"command": "npx",
"args": [
"-y",
"famulor-mcp@0.3.1"
],
"env": {
"FAMULOR_API_KEY": "<YOUR_FAMULOR_API_KEY>"
}
}
}
}