OpenPhn docs

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.
  • 401 in the MCP server log — your header is missing or the key is revoked / expired. Test with curl -H "Authorization: Bearer $KEY" https://api.openphn.com/auth/me.
  • Corporate proxy strips SSE — use the local stdio transport instead.

On this page