Voxplo
Give AI agents a phone: outbound AI calls that return a summary, transcript, and extracted fields.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"voxplo": {
"command": "npx",
"args": [
"voxplo-mcp"
]
}
}
}실행 가능한 패키지
0.1.1stdio원격 엔드포인트
https://mcp.voxplo.ai/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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).
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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).
입력 스키마
{
"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#"
}권장 프롬프트
get_callget_calllist_callslist_callslist_callsget_call커뮤니티
증거