Tool reference
Parameters and return shapes for every OpenPhn MCP tool.
All four tools are thin wrappers over REST endpoints. The parameter names below match what you pass to the MCP tool; the REST equivalent is noted alongside.
make_call
Create an outbound call. Maps to POST /v1/calls.
| Param | Type | Required | Notes |
|---|---|---|---|
to | string (E.164) | ✓ | Destination phone number. |
objective | string | ✓ | Plain-English goal for the call. |
outcome_schema | object | ✓ | Field definitions — types + optional flags. |
consent_type | enum | ✓ | prior_express · existing_business_relationship · emergency. |
voice_id | string | Defaults to the tenant's default voice. | |
voice_engine | enum | gemini_25 (default) · gemini_31. | |
language | string | BCP-47 code. Defaults to en-US. | |
from_number | string | Which of your numbers to call from. Defaults to your active number. |
Returns { call_id, status }. The call is async — poll with get_call
or register a webhook.
get_call
Fetch a call's current state. Maps to GET /v1/calls/{call_id}.
| Param | Type | Required |
|---|---|---|
call_id | string | ✓ |
Returns the full call row, including outcome (once status == "completed"),
transcript, cost_voice, cost_extraction, cost_total.
list_calls
Paginated recent calls. Maps to GET /v1/calls.
| Param | Type | Required |
|---|---|---|
status | enum | |
limit | int | |
offset | int |
list_numbers
Inbound numbers visible to the API key. Maps to GET /v1/numbers. If the
key has a number_ids restriction, only those numbers are returned.
| Param | Type | Required |
|---|---|---|
limit | int | |
cursor | string |
Local stdio transport
To run the MCP server locally (instead of pointing at mcp.openphn.com):
git clone https://github.com/knsgill/openphn
cd openphn/mcp
pip install -r requirements.txt
OPENPHN_API_KEY=sk_live_... python server.pyConfigure your MCP client to spawn it:
{
"mcpServers": {
"openphn": {
"command": "python",
"args": ["/path/to/openphn/mcp/server.py"],
"env": { "OPENPHN_API_KEY": "sk_live_..." }
}
}
}