Voxplo
Give AI agents a phone: outbound AI calls that return a summary, transcript, and extracted fields.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `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社群
證據