Sponsored by Deepsite.site

Voxplo

Created By
allexp1a month ago
Give AI agents a phone. Voxplo places real outbound AI phone calls: the AI calls a person, conducts the conversation toward an objective, and returns a summary, transcript, and structured extracted fields. Connect the hosted server at https://mcp.voxplo.ai/mcp (Streamable HTTP + OAuth) or run locally with npx voxplo-mcp. Tools: place_call, set_appointment, get_call, list_calls. Docs: https://voxplo.ai/docs/agent-api/mcp
Overview

voxplo-mcp

Give your AI agent a phone. This MCP server lets any MCP client (Claude, Cursor, ChatGPT developer mode, and others) place real outbound AI phone calls through Voxplo: the AI calls a person, conducts the conversation toward an objective, and returns a summary, transcript, and structured extracted fields.

  • Hosted (remote) server: https://mcp.voxplo.ai/mcp (Streamable HTTP + OAuth, no install)
  • Local (stdio) server: npx voxplo-mcp (this package)
  • Docs: https://voxplo.ai/docs/agent-api/mcp
  • Tools: place_call, set_appointment, get_call, list_calls

No install. Add https://mcp.voxplo.ai/mcp as a remote MCP server in your client:

{
  "mcpServers": {
    "voxplo": { "type": "streamable-http", "url": "https://mcp.voxplo.ai/mcp" }
  }
}

In Claude: Settings, then Connectors, then "Add custom connector", paste https://mcp.voxplo.ai/mcp. Your browser opens Voxplo's consent screen; approve by pasting an Agent API key from your Developers page. The client never sees the key itself, only an OAuth token.

Option B: local server (this package)

Prerequisites: Node 18+, a Voxplo Agent API key (starts with bys_ak_, from your Developers page).

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on your OS:

{
  "mcpServers": {
    "voxplo": {
      "command": "npx",
      "args": ["-y", "voxplo-mcp"],
      "env": { "VOXPLO_API_KEY": "bys_ak_your_key_here" }
    }
  }
}

Cursor

Add the same block to .cursor/mcp.json in your project (or the global ~/.cursor/mcp.json).

To point at a staging or self-hosted instance, add "VOXPLO_API_BASE": "https://staging.example.com" to the env block.

Tools

place_call

Places an outbound AI phone call toward an objective. Returns a callId immediately; the call runs asynchronously. Poll get_call with that callId until status is terminal.

Inputs:

FieldTypeRequiredDescription
tostringyesDestination number in E.164 (e.g. +14155550123)
objectivestringyesWhat the call should accomplish
contextstringnoBackground context for the assistant
fieldsarraynoStructured fields to extract (up to 20 items: { name, type?, description? })
webhookUrlstringnoHTTPS URL to receive the signed result when the call ends
callerIdstringnoCaller ID override; must be a number on your account

Returns: { callId, status } where status is queued on success.

set_appointment

Places 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 an outcome (appointment_set | callback_requested | declined | no_answer | failed) and, when set, the appointment details (startISO, timezone, durationMinutes, attendee, subject). Returns a callId immediately.

Inputs:

FieldTypeRequiredDescription
tostringyesWho to call, in E.164
subjectstringyesWhat the meeting is about
durationMinutesnumbernoMeeting length in minutes (default 30)
timePreferencestringnoNatural-language window, e.g. "weekday mornings next week"
slotsarraynoSpecific start times to offer: [{ startISO }], ISO-8601 with offset
timezonestringnoIANA timezone for the appointment, e.g. Asia/Jerusalem
autoBookbooleannoAlso book the agreed time on your connected calendar
webhookUrlstringnoHTTPS URL to receive the signed result
callerIdstringnoCaller ID override; must be a number on your account

get_call

Fetches the current status and result of a call.

Inputs:

FieldTypeRequiredDescription
callIdstringyesThe callId from place_call or set_appointment

Returns: { id, status, summary, transcript, extracted, recordingUrl, to, objective, startedAt, endedAt, durationSec, error? }

list_calls

Lists recent calls placed by your account (most recent first).

Inputs:

FieldTypeRequiredDescription
limitnumbernoMax calls to return (default 20, max 100)

Returns: { calls: [ { id, to, objective, status, summary, createdAt, startedAt, endedAt, durationSec, error? } ] }

Call statuses

StatusTerminal?Meaning
queuednoCall accepted, not yet dialing
ringingnoDialing the destination
in_progressnoCall is live
completedyesCall finished normally
no_answeryesDestination did not pick up
voicemailyesReached voicemail
declinedyesCall was rejected
failedyesTechnical failure

Place your first call

  1. Configure your MCP client as above.
  2. Ask your assistant: "Place a call to +14155550123 with the objective: confirm the meeting time for tomorrow at 2pm."
  3. The assistant calls place_call and gets back a callId.
  4. Ask: "Check on call <callId> -- did it complete?"
  5. The assistant calls get_call and returns the status, summary, and any extracted fields.

Safety

Outbound destinations are screened server-side (premium-rate, satellite, and other high-risk routes are blocked), calls carry an AI disclosure when asked, and the call-placing tools are annotated openWorldHint: true so clients ask for confirmation before dialing. Details: https://voxplo.ai/security

Development

Run tests:

node --test

Smoke test (with dummy key, should print "ready on stdio" to stderr):

VOXPLO_API_KEY=bys_ak_test node src/server.js

Server Config

{
  "mcpServers": {
    "voxplo": {
      "type": "streamable-http",
      "url": "https://mcp.voxplo.ai/mcp"
    }
  }
}
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Serper MCP ServerA Serper MCP Server
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Amap Maps高德地图官方 MCP Server
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Tavily Mcp
RedisA Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
WindsurfThe new purpose-built IDE to harness magic
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
ChatWiseThe second fastest AI chatbot™
CursorThe AI Code Editor
Playwright McpPlaywright MCP server
DeepChatYour AI Partner on Desktop
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.