ThunderPhone 2.0 is live.Self-serve, from 2¢/min.Read the announcement

Connect tools & data

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/mcp

Point 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:

DirectionResult
Remote MCP server → ThunderPhone agentYour voice agent can call the remote server's tools.
ThunderPhone → your MCP clientYour 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.

Generic client configuration
{
  "mcpServers": {
    "thunderphone": {
      "url": "https://api.thunderphone.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer sk_live_YOUR_API_KEY"
      }
    }
  }
}

Available tools

ToolArgumentsWhat it does
list_agentsnoneLists organization agents with id, name, product, and voice.
get_agentagent_idRetrieves one agent.
place_callagent_id, from_number, to_numberPlaces an outbound call with the same validation and billing gates as the REST call endpoint.
get_callcall_idRetrieves call status, summary, and grade.
list_callsoptional limit (1–100), optional statusLists recent calls.
get_call_transcriptcall_idRetrieves 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:

  • initialize
  • notifications/initialized
  • tools/list
  • tools/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.