Cursor quickstart
Add OpenPhn as an MCP server in Cursor.
1. Get an OpenPhn API key
See the Quickstart. You need an sk_live_* key on a
verified account.
2. Edit Cursor's MCP config
Cursor reads MCP config from the same JSON shape as Claude Desktop, at:
- macOS:
~/.cursor/mcp.json - Windows:
%USERPROFILE%\.cursor\mcp.json
Add the OpenPhn server:
{
"mcpServers": {
"openphn": {
"type": "sse",
"url": "https://mcp.openphn.com",
"headers": {
"Authorization": "Bearer sk_live_..."
}
}
}
}3. Enable the server in Cursor settings
Open Cursor → Settings → MCP → Enable the openphn server. Cursor will
connect to the hosted SSE endpoint and discover the four tools
(make_call, get_call, list_calls, list_numbers).
4. Use it from Composer or chat
@openphn make_call to=+14155551234 objective="Confirm order #A-14421 ships today"Cursor's agent invokes the tool, OpenPhn dials the number, and the structured outcome is returned when the call completes.
Scoping
Cursor shares the same key across all projects on your machine. If you
need per-project scoping, create separate keys restricted to different
number_ids (see API keys) and use different named
servers in mcp.json:
{
"mcpServers": {
"openphn-marketing": { "type": "sse", "url": "https://mcp.openphn.com", "headers": { "Authorization": "Bearer sk_live_AAAA..." } },
"openphn-support": { "type": "sse", "url": "https://mcp.openphn.com", "headers": { "Authorization": "Bearer sk_live_BBBB..." } }
}
}Troubleshooting
- Tools don't appear — MCP list refreshes on server restart. Disable + enable the server in Settings → MCP, or fully quit Cursor.
401in the MCP server log — your header is missing or the key is revoked / expired. Test withcurl -H "Authorization: Bearer $KEY" https://api.openphn.com/auth/me.- Corporate proxy strips SSE — use the local stdio transport instead.