MCP voice agent
MCP in both directions: tools in, calls out.
Your phone agent uses your tools the way any AI agent does — through MCP. And any AI agent can use the phone the same way: through the MCPDial MCP server.
Calls out
Give any AI agent a phone.
Point an MCP client at one URL with an API key from the dashboard. Your agent can then create voice agents, place calls, read transcripts and book appointments.
- Streamable HTTP, stateless — every POST is answered with JSON
- Auth with
Authorization: Bearer cv_live_… - initialize, ping, tools/list and tools/call
- Batches of up to 10 messages per request
{
"mcpServers": {
"phone": {
"url": "https://mcpdial.com/api/v1/mcp",
"headers": { "Authorization": "Bearer cv_live_…" }
}
}
}# tools/call over Streamable HTTP — one POST, a JSON answer
curl -X POST https://mcpdial.com/api/v1/mcp \
-H "Authorization: Bearer cv_live_…" \
-H "Content-Type: application/json" \
-d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "place_call", "arguments": {
"agent_id": "agt_…", "to": "+41441234567",
"goal": "Confirm the Tuesday appointment",
"consent_basis": "web form 2026-09-01" } } }'
# The call may be dialled, scheduled for the callee's local hours,
# or refused — the result says which, and why.7 tools exposed
What your agent can do on the phone.
The full tool list your MCP client sees after tools/list — the same operations as the REST API.
| Tool | What it does | Arguments |
|---|---|---|
| list_agents | The agents in the workspace, with role and status. | — |
| create_agent | Create an agent from a role template and your company details. | role, company_name |
| place_call | Place or schedule an outbound call with an agent — same gate as the REST API. | agent_id, to (E.164), goal?, consent_basis? |
| get_call | Status, transcript, outcome and actions of a call. | call_id |
| list_calls | Recent calls, filterable by agent and status. | limit? |
| check_availability | Free slots on a calendar. | calendar_id, from?, days? |
| book_appointment | Book a free slot on a calendar. | calendar_id, start, name?, phone? |
A typical agent flow
Tools in
Register an MCP server once. Use it on every agent.
Dashboard → Tools → Add server. Give it a URL (Streamable HTTP or SSE) and, if needed, an auth header. The dashboard lists the server's tools and creates a default policy for each — then you allow tools per agent.
Slow tools never mean silence: see how the voice agent talks while tools run.
01
Allow-list per agent
02
Confirm before writing
03
Latency class
04
Screened results
Guardrails
An AI agent with a phone, under the same rules as you.
Giving software a phone line is a responsibility. The MCP server does not get a shortcut around any of it.
Consent and calling hours, enforced
place_call passes the same compliance gate as the REST API. Outside the callee's local hours the call is scheduled; without a consent basis where one is required, it is refused with the reason. Read the AI calling compliance rules.
Secrets and results, handled
MCP credentials are encrypted at rest and never returned to the dashboard or API. Tool results are screened for prompt injection before the model sees them. More on security and data residency.
FAQ
MCP questions.
Prefer plain HTTP? The REST API for AI phone calls covers the same operations. Or see the AI phone agent product overview.
What is an MCP voice agent?
Which MCP transports are supported for my tools?
How does an MCP client connect to MCPDial?
Where are my MCP credentials stored?
Can an AI agent start a call and get the result?
Does place_call bypass the compliance rules?
Connect your first tool — or your first agent.
Register an MCP server and allow its tools on an agent, or create an API key and let your own AI agent place the call.