Skip to main content
Glama
sebastienfi

MCP Vapi Caller

by sebastienfi

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VAPI_API_KEYYesVapi API key
MCP_TRANSPORTNostdio or streamable-httpstdio
VAPI_VOICE_IDYesElevenLabs voice ID
VAPI_LLM_MODELNoLLM model (validated against Vapi's Anthropic list)claude-sonnet-4-6
DEFAULT_LANGUAGENoDefault BCP-47 call languagefr
VAPI_VOICE_MODELNoElevenLabs TTS modeleleven_flash_v2_5
VAPI_VOICE_SPEEDNoSpeech speed1.0
VAPI_LLM_PROVIDERNoVapi LLM provideranthropic
DEFAULT_CALLER_NAMENoWho the agent calls on behalf of
VAPI_VOICE_PROVIDERNoTTS provider11labs
VAPI_PHONE_NUMBER_IDYesVapi phone number ID (UUID)
VAPI_VOICE_STABILITYNoVoice stability (0.0–1.0)0.5
VAPI_VOICE_SIMILARITY_BOOSTNoVoice similarity boost (0.0–1.0)0.75

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
make_callA

Make an outbound phone call with an AI voice agent via Vapi.

The voice agent will call the given phone number, follow your script, and extract structured data from the conversation. After initiating the call, use get_call_result() to retrieve the outcome.

WORKFLOW:

  1. Call make_call() with your parameters → get back a call_id

  2. Wait 1-3 minutes (typical call duration)

  3. Call get_call_result(call_id=..., wait_seconds=180) to get results

REQUIRED PARAMETERS:

  • phone_number: E.164 format ("+33142000000" for France, "+15551234567" for US)

  • call_goal: One clear sentence describing what the call should achieve. This is used for automatic success evaluation. Example: "Prendre un rendez-vous coiffeur pour mardi prochain après-midi"

  • call_script: Detailed behavioral instructions for the voice agent. Write this as if briefing a human assistant before a phone call. Be specific about what to say, what to ask, how to respond to common scenarios, and when to end the call. Example: "Appelle le salon et demande un rendez-vous coiffure pour mardi prochain après-midi. Si mardi est complet, demande mercredi. Accepte tout créneau entre 14h et 18h. Refuse les créneaux du matin. Réserve au nom de Jean Dupont."

RECOMMENDED PARAMETERS:

  • first_message: The exact opening line. If omitted, one is auto-generated, but providing your own gives much better results. Example: "Bonjour ! J'appelle pour prendre un rendez-vous coiffure s'il vous plaît."

  • caller_name: Who the agent represents. Example: "Jean Dupont"

  • structured_data_schema: JSON string of a JSON Schema defining what to extract from the conversation. Without this, you still get a transcript and summary but no structured fields. Example: '{"type":"object","properties":{"appointment_date":{"type":"string","description":"YYYY-MM-DD"},"appointment_time":{"type":"string","description":"HH:MM 24h"},"confirmed":{"type":"boolean"}}}'

  • language: BCP-47 code. Default: "fr". Use "en" for English, "es" for Spanish, etc. The voice agent will speak exclusively in this language.

OPTIONAL PARAMETERS:

  • caller_context: Additional identity context. Example: "Tu es l'assistant personnel de Jean Dupont"

  • structured_data_prompt: Instructions for the extraction model. Example: "Aujourd'hui c'est le 2026-04-11. Résoudre les dates relatives."

  • end_call_phrases: Comma-separated phrases that signal the call should end. Default per language (e.g. "au revoir,bonne journée" for French).

  • voice_id: ElevenLabs voice ID override (default from env VAPI_VOICE_ID).

  • customer_name: Label for the person/business being called (Vapi dashboard).

  • system_prompt_override: Replaces the entire auto-generated system prompt. Use only when you need full control over the voice agent's instructions.

TIPS FOR GOOD CALLS:

  • Keep call_script focused and concise — voice agents work best with clear, simple instructions

  • Always provide a first_message — auto-generated ones are generic

  • Include fallback behavior in call_script (what to do if the main goal fails)

  • For data extraction, keep schemas simple with clear field descriptions

Args: phone_number: Phone number in E.164 format (e.g. "+33142000000") call_goal: One sentence describing what the call should achieve call_script: Detailed behavioral instructions for the voice agent language: BCP-47 language code (default: "fr") caller_name: Who the agent calls on behalf of caller_context: Additional identity context for the voice agent first_message: Opening line when the call connects structured_data_schema: JSON string of a JSON Schema for data extraction structured_data_prompt: Instructions for the extraction model end_call_phrases: Comma-separated end-call phrases voice_id: ElevenLabs voice ID override customer_name: Name of the person/business being called system_prompt_override: Full system prompt (replaces auto-generated one)

get_call_resultA

Check the outcome of a call initiated by make_call().

Returns the call status, transcript, AI-generated summary, success evaluation, structured extracted data, and recording URL.

USAGE:

  • For a quick status check: get_call_result(call_id="...")

  • To wait for completion: get_call_result(call_id="...", wait_seconds=180) This polls every 5 seconds until the call ends or the timeout is reached.

TYPICAL CALL DURATION: 1-3 minutes. Use wait_seconds=180 for most calls.

RETURNED FIELDS (when call has ended):

  • call_id: The call identifier

  • status: "ended" when complete

  • ended_reason: Why the call ended (e.g. "assistant-ended", "customer-ended")

  • summary: AI-generated summary of the conversation

  • success: Success evaluation based on the call_goal

  • structured_data: Extracted data matching the schema from make_call (if provided)

  • transcript: Full conversation transcript

  • recording: URL to the call recording audio file

If the call is still in progress, returns the current status without the analysis fields. Call again with wait_seconds to poll.

Args: call_id: The call ID returned by make_call wait_seconds: If > 0, poll every 5s up to this duration waiting for the call to end. 0 means check once and return immediately.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sebastienfi/mcp-vapi-generic-caller'

If you have feedback or need assistance with the MCP directory API, please join our Discord server