Use ThunderPhone as an MCP server
Connect any Streamable HTTP MCP client to ThunderPhone to list agents, inspect calls and transcripts, and place outbound calls with an organization API key.
ThunderPhone exposes a Model Context Protocol server at:
https://api.thunderphone.com/v1/mcpPoint an MCP client at that Streamable HTTP endpoint to make your organization's agents and calls available as tools. This is the opposite direction from connecting a remote MCP server to a voice agent:
| Direction | Result |
|---|---|
| Remote MCP server → ThunderPhone agent | Your voice agent can call the remote server's tools. |
| ThunderPhone → your MCP client | Your MCP client can call ThunderPhone tools for agents and calls. |
Authenticate
Create an sk_live_ key under Organization → Keys and send it as a Bearer
token. The MCP endpoint accepts organization API keys, not dashboard session
cookies or publishable widget keys.
{
"mcpServers": {
"thunderphone": {
"url": "https://api.thunderphone.com/v1/mcp",
"headers": {
"Authorization": "Bearer sk_live_YOUR_API_KEY"
}
}
}
}Available tools
| Tool | Arguments | What it does |
|---|---|---|
list_agents | none | Lists organization agents with id, name, product, and voice. |
get_agent | agent_id | Retrieves one agent. |
place_call | agent_id, from_number, to_number | Places an outbound call with the same validation and billing gates as the REST call endpoint. |
get_call | call_id | Retrieves call status, summary, and grade. |
list_calls | optional limit (1–100), optional status | Lists recent calls. |
get_call_transcript | call_id | Retrieves the complete transcript for a call. |
All tools are scoped to the organization bound to the API key. An id from another organization behaves as unavailable.
Protocol methods
The endpoint implements the MCP JSON-RPC methods needed for Streamable HTTP clients:
initializenotifications/initializedtools/listtools/call
You can inspect the tool catalog directly:
curl -X POST https://api.thunderphone.com/v1/mcp \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'Call a tool with its name and arguments:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "list_calls",
"arguments": { "limit": 20, "status": "completed" }
}
}Tool results are MCP text-content items. Tool failures are returned in the
result with isError: true; unknown JSON-RPC methods return a protocol error.
Placing calls safely
place_call follows the same rules as
POST /v1/call: the agent and number must
belong to the key's organization, the number must be eligible for outbound
calling, the organization must have sufficient balance, and any applicable
outbound-calling confirmation must be complete.
Treat a client with access to place_call as a production caller. Restrict who
can use the client, make the intended agent and number clear in its own prompt,
and review calls in Call History.
Complete wire reference
See MCP Servers API for response examples, JSON-RPC errors, and the remote-server management API.