Voxplo
Give AI agents a phone: outbound AI calls that return a summary, transcript, and extracted fields.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"voxplo": {
"command": "npx",
"args": [
"voxplo-mcp"
]
}
}
}Paquetes ejecutables
0.1.1stdioPuntos de conexión remotos
https://mcp.voxplo.ai/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (4)
🟢place_call(to, objective, context, fields, webhookUrl, ...)
Place an outbound AI phone call toward an objective. Returns a callId immediately; the call is conducted asynchronously. Poll get_call with that callId until status is terminal (completed | no_answer | voicemail | declined | failed).
Esquema de entrada
{
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "Destination phone number in E.164, e.g. +14155550123."
},
"objective": {
"type": "string",
"description": "What the call should accomplish."
},
"context": {
"type": "string",
"description": "Background context for the assistant."
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"string",
"boolean",
"number"
]
},
"description": {
"type": "string"
}
},
"required": [
"name"
],
"additionalProperties": false
},
"description": "Structured fields to extract from the call."
},
"webhookUrl": {
"type": "string",
"description": "Optional https URL to receive the signed result."
},
"callerId": {
"type": "string",
"description": "Optional caller ID; must be a number on your account."
},
"toolAllowlist": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tools this call may use, e.g. [\"send_digits\",\"reached_human\",\"add_participant\",\"enter_account_number\"]. Omit for the default set."
},
"navMode": {
"type": "string",
"enum": [
"auto",
"keypad",
"speech"
],
"description": "How to navigate the far-end IVR: auto (detect keypad menu vs conversational assistant live), keypad (stay muted and press keys), or speech (talk)."
},
"listenFirst": {
"type": "boolean",
"description": "If true, stay silent until the callee/IVR speaks first, then respond. Recommended for any outbound call into a phone tree."
},
"accountNumber": {
"type": "string",
"description": "Account/phone digits the enter_account_number tool keys deterministically (keypad chars only)."
},
"callbackNumber": {
"type": "string",
"description": "Our callback DID digits the enter_callback_number tool keys (callback-to-AI mode)."
}
},
"required": [
"to",
"objective"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡set_appointment(to, subject, durationMinutes, timePreference, slots, ...)
Place an outbound AI phone call to set up a meeting. The assistant calls the person, agrees a time, and the result (poll get_call) carries outcome (appointment_set | callback_requested | declined | no_answer | failed) and, when set, the appointment (startISO, timezone, durationMinutes, attendee, subject). Returns a callId immediately.
Esquema de entrada
{
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "Who to call, in E.164, e.g. +14155550123."
},
"subject": {
"type": "string",
"description": "What the meeting is about."
},
"durationMinutes": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Meeting length in minutes (default 30)."
},
"timePreference": {
"type": "string",
"description": "Natural-language window, e.g. \"weekday mornings next week\"."
},
"slots": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startISO": {
"type": "string"
}
},
"required": [
"startISO"
],
"additionalProperties": false
},
"description": "Specific start times to offer, ISO-8601 with offset."
},
"timezone": {
"type": "string",
"description": "IANA timezone for the appointment, e.g. Asia/Jerusalem."
},
"autoBook": {
"type": "boolean",
"description": "Also book the agreed time on your connected calendar."
},
"webhookUrl": {
"type": "string",
"description": "Optional https URL to receive the signed result."
},
"callerId": {
"type": "string",
"description": "Optional caller ID; must be a number on your account."
}
},
"required": [
"to",
"subject"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_call(callId)
Get the status and result of a call by id. status is one of queued | ringing | in_progress (still running, poll again) or completed | no_answer | voicemail | declined | failed (terminal). Returns summary, transcript, and extracted fields.
Esquema de entrada
{
"type": "object",
"properties": {
"callId": {
"type": "string",
"description": "The callId returned by place_call."
}
},
"required": [
"callId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_calls(limit)
List recent calls placed by your account (most recent first).
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100,
"description": "Max calls to return (default 20, max 100)."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Prompts recomendados
get_callget_calllist_callslist_callslist_callsget_callComunidad
Evidencia