Your first month is free.First month free on any plan.Thanks to the Deepgram for Startups program. Use codeStart free with DEEPGRAMStart free

Connect ChatGPT to ClawCall with remote MCP

Start with ChatGPT: add one OAuth-protected remote MCP endpoint to give it eleven bounded phone-call tools. Compatible AI hosts follow the same discovery contract; custom runtimes can still use the REST API or packaged agent skill.

Connect ChatGPT with remote MCP

ClawCall works with AI hosts that support remote Streamable HTTP MCP and OAuth. Add the endpoint below, sign in to ClawCall, and approve the bounded calls:read and calls:write scopes. The host receives revocable OAuth tokens—not your ClawCall API key. Authentication uses OAuth 2.1 authorization code with PKCE S256 and Dynamic Client Registration.

Remote MCP endpoint
https://api.clawcall.dev/mcp

Stateless Streamable HTTP, MCP revision 2026-07-28, with legacy negotiation for 2025-era clients.

OAuth discovery architecture

The host reads ClawCall's OAuth authorization-server metadata and RFC 9728 protected-resource metadata, dynamically registers a public client, then completes the authorization-code flow with PKCE S256. It receives revocable tokens for only the scopes approved on the consent screen.

Discoverhttps://api.clawcall.dev/.well-known/oauth-authorization-serverAuthorization, token, registration, revocation, and PKCE S256 metadata.
Discoverhttps://api.clawcall.dev/.well-known/oauth-protected-resource/mcpProtected MCP resource and supported scopes.
Registerhttps://api.clawcall.dev/registerDynamic Client Registration for a public OAuth client.
Revokehttps://api.clawcall.dev/revokeRevoke a token when the connection is disconnected.
Safe challenge check: an unauthenticated request to the MCP endpoint should return 401 with a WWW-Authenticate challenge pointing to the protected-resource metadata. That verifies discovery without placing a call.

Set up your host

Need the decision case first? Review the ten sourced agent capability comparisons.

Approve only the documented scopes

calls:read

Read plan/trial state, call settings, reserved-number status, call status, captured transcript evidence when present, history, and temporary recording access when available.

calls:write

Place and hang up real phone calls or update call settings when you ask the assistant to do so.

Verify without placing a call

Ask: “Check my ClawCall plan and remaining trial allowance. Do not place a call.” The host should select get_balance. Once the connection is enabled, it can select ClawCall automatically from normal phone-call requests; the connector picker is optional.

Review all eleven tools

get_calling_guide is required before any ClawCall work. Read it before call placement, then poll status and read the transcript evidence actually captured before deciding whether the task succeeded.

Readget_calling_guideRequired before any ClawCall work. Read current workflow guidance and examples before placing calls.
Readget_balanceRead the signed-in account's plan and remaining trial allowance.
Readget_call_settingsRead reusable voice/personality, reserved-number capabilities, and inbound-assistant availability.
Writeupdate_call_settingsUpdate global or inbound call settings in separate calls.
Writeplace_callStart one real outbound phone call and return immediately.
Writeplace_call_and_waitStart one call and wait up to 90 seconds for an initial result.
Readget_callRead a call's lifecycle, outcome, and a nullable bounded transcript tail.
Readget_call_transcriptRead the transcript evidence captured for a call.
Readlist_callsRead recent call history for the connected account.
Readget_recordingGet a temporary, playable recording URL when one is available.
Writehangup_callStop a queued or live phone call.

Disconnect and revoke

Remove ClawCall in the AI host. Then open ClawCall Dashboard → Settings → Connected AI assistants → Disconnect. The ClawCall action revokes that connection's token family.

What ClawCall does

ClawCall handles real phone calls on your behalf. It can navigate phone menus, wait on hold, speak to the person who answers, and report back with the call outcome.

Use ClawCall for user-directed English-language calls to US +1 numbers where the destination, objective, and decision boundaries are clear.

Use REST or the packaged agent skill

If the host cannot connect through MCP, use the REST API from a custom runtime or install the packaged skill in a skill-aware agent. For REST, grab an API key from the dashboard, then make a call from your language of choice. Replace +1XXXXXXXXXX with a real US number you control. POST /call returns a call_id immediately — poll GET /call/:id until it finalizes.

curl -X POST https://api.clawcall.dev/call \
  -H 'X-Api-Key: clawcall_sk_...' \
  -d to=+1XXXXXXXXXX \
  -d task='Reschedule my appointment for next week'

Start a call

Start with the phone number and the outcome you want. Add context the agent might need, such as names, dates, account details, or what to do if the other party asks a question.

  1. In the dashboard, open the assistant or call form.
  2. Enter a US phone number.
  3. Describe the task and confirm the call.

Join a live call

Ask ClawCall to bring you into the call when the other party is ready to talk directly. The AI handles the wait first, then your phone rings and you join the active conversation.

In the dashboard assistant, say something like: "Join me when a human is ready." During an active dashboard call, use Join Live when the call panel offers it.

Review call history

Call History shows previous calls, current status, duration, and captured transcript evidence when present. Use it to verify what happened and decide whether the same task needs a follow-up call.

A completed call includes status and call duration, and can include captured transcript evidence when present and a temporary recording link when available.

Recordings

Temporary recording links stay available for 10 minutes after a call ends. Older calls remain in history, but their listen links expire automatically.

Review recordings soon after the call completes. Use transcript evidence actually captured for longer-lived review.

Reserved numbers

A reserved number gives your account a private caller ID for outbound AI calls. Search by US area code, reserve a number, complete checkout, and ClawCall activates it for future calls.

If billing becomes inactive, outbound calls fall back to the standard caller ID until the reserved number is active again.

Unlimited Reserve Plus numbers can also receive inbound calls. ClawCall answers first as your assistant using your inbound profile. Configure instructions, voice, personality, and an optional handoff number from the dashboard or API. The retained profile greeting does not replace or append to the fixed recording-disclosure opening.

API keys and agents

API keys let agents and scripts use your ClawCall account. Create a key in the dashboard, store it securely, and send it with theX-Api-Key header.

POST/callStart an outbound call.
GET/call/:idRead status plus nullable transcript and recording metadata.
POST/call/:id/hangupEnd an active call.
GET/me/call-preferencesRead global voice/personality + outbound greeting, plus the inbound assistant block (Reserve Plus).
PUT/me/call-preferencesUpdate global voice/personality/greeting; pass an `inbound` object to set the inbound assistant (Reserve Plus).
DELETE/me/call-preferencesReset global call preferences to default.
GET/balanceCheck remaining trial or account balance.

Start a call

curl -X POST https://api.clawcall.dev/call \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: clawcall_sk_...' \
  -d '{
    "to": "+1XXXXXXXXXX",
    "task": "Call the clinic and reschedule my appointment for next week",
    "voice": "chris"
  }'

Accepted response

The API returns immediately with a call identifier. This is not the final task result.

{
  "call_id": "call_...",
  "status": "queued",
  "message": "Call initiated. Poll GET /call/:id for status and transcript."
}

Structured errors

Errors use one envelope with a stable code, a human-readable message, and optional action or quota details. Follow a returned action URL instead of inventing a signup, verification, or billing destination.

{
  "error": {
    "code": "missing_fields",
    "message": "'to' and 'task' are required fields.",
    "action": {
      "type": "fix_input",
      "description": "Include both 'to' (phone number) and 'task' (what to accomplish) in the request"
    }
  }
}
400missing_fields / invalid_phoneFix the request fields or use a valid US +1 destination.
401auth_required / invalid_api_keySign in or provide a valid server-side API key.
402trial_exhausted / plan_requiredFollow the returned action URL to choose a plan.
403phone_verification_requiredComplete the account phone-verification action.
409reserved_number_busyWait for the active reserved-number call to finish.
503number_pool_exhaustedRetry later; no outbound number is currently available.

Check call status

curl https://api.clawcall.dev/call/<call_id> \
  -H 'X-Api-Key: clawcall_sk_...'

End a call

curl -X POST https://api.clawcall.dev/call/<call_id>/hangup \
  -H 'X-Api-Key: clawcall_sk_...'

Configure inbound profile

curl -X PUT https://api.clawcall.dev/me/call-preferences \
  -H 'Content-Type: application/json' \
  -H 'X-Api-Key: clawcall_sk_...' \
  -d '{
    "voice": "jessica",
    "personality": "Warm and concise.",
    "inbound": {
      "instructions": "Answer as my assistant and collect caller name, reason, urgency, and callback number.",
      "greeting": "Hi, this is the assistant. How can I help?",
      "handoff_number": "+1XXXXXXXXXX"
    }
  }'

For MCP-capable hosts, start with the hosted MCP hub. The packaged ClawCall skill remains a fallback for skill-aware agents such as Claude Code, Cursor, ClawHub, and OpenClaw — github.com/ClawCall-Dev/ClawCall.

Billing and trial limits

The free trial includes 30 calls and 30 minutes, whichever lasts later. A trial call counts only when it completes with at least 5 seconds of call time.

Paid plans use purchased call time. Connected call time counts against your balance; failed dials and very short calls do not consume a trial call.

Troubleshooting

The call will not start
Check that the number is a US number, includes the country code, and that your trial or paid balance has time remaining.
The recording link expired
Recording links are temporary. Open Call History for captured transcript evidence when present and place a follow-up call if more detail is needed.
An API key stopped working
Create a new key in the dashboard and update the agent or script that sends the X-Api-Key header.
Use ClawCall on iMessage