CallMe
Fork of ZeframLou/call-me with security hardening and support for background agents.
MCP server that lets AI agents call you on the phone.
Start a task, walk away. Your phone rings when the agent is done, stuck, or needs a decision. Built for background agents (Claude Code, Cursor Cloud Agents, custom agent loops) that run unattended and need a reliable way to reach a human.
- Background-agent friendly - Designed for long-running, unattended agents that need human input at key decision points.
- Multi-turn conversations - Talk through decisions naturally over a real phone call.
- Works anywhere - Smartphone, smartwatch, or landline.
- Tool-use composable - The agent can do other work (web searches, file edits) while on a call with you.
- Hardened auth - Required API tokens, webhook signature verification, and timing-safe WebSocket authentication.
Quick Start
1. Get Required Accounts
You'll need:
- Phone provider: Telnyx or Twilio
- OpenAI API key: For speech-to-text and text-to-speech
- ngrok account: Free at ngrok.com (for webhook tunneling)
2. Set Up Phone Provider
Choose one of the following:
Option A: Telnyx (Recommended - 50% cheaper)
- Create account at portal.telnyx.com and verify your identity
- Buy a phone number (~$1/month)
- Create a Voice API application:
- Set webhook URL to
https://your-ngrok-url/twiml and API version to v2
- You can see your ngrok URL on the ngrok dashboard
- Note your Application ID and API Key
- Verify the phone number you want to receive calls at
- (Optional but recommended) Get your Public Key from Account Settings > Keys & Credentials for webhook signature verification
Environment variables for Telnyx:
CALLME_PHONE_PROVIDER=telnyx
CALLME_PHONE_ACCOUNT_SID=<Application ID>
CALLME_PHONE_AUTH_TOKEN=<API Key>
CALLME_TELNYX_PUBLIC_KEY=<Public Key> # Optional: enables webhook security
Option B: Twilio (Not recommended - need to buy $20 of credits just to start and more expensive overall)
- Create account at twilio.com/console
- Use the free number your account comes with or buy a new phone number (~$1.15/month)
- Find your Account SID and Auth Token on the Console Dashboard
Environment variables for Twilio:
CALLME_PHONE_PROVIDER=twilio
CALLME_PHONE_ACCOUNT_SID=<Account SID>
CALLME_PHONE_AUTH_TOKEN=<Auth Token>
3. Set Environment Variables
Add these to ~/.claude/settings.json (recommended) or export them in your shell:
{
"env": {
"CALLME_PHONE_PROVIDER": "telnyx",
"CALLME_PHONE_ACCOUNT_SID": "your-connection-id-or-account-sid",
"CALLME_PHONE_AUTH_TOKEN": "your-api-key-or-auth-token",
"CALLME_PHONE_NUMBER": "+15551234567",
"CALLME_USER_PHONE_NUMBER": "+15559876543",
"CALLME_OPENAI_API_KEY": "sk-...",
"CALLME_API_AUTH_TOKEN": "your-secret-token",
"CALLME_NGROK_AUTHTOKEN": "your-ngrok-token"
}
}
Required Variables
| Variable | Description |
|---|
CALLME_PHONE_PROVIDER | telnyx (default) or twilio |
CALLME_PHONE_ACCOUNT_SID | Telnyx Connection ID or Twilio Account SID |
CALLME_PHONE_AUTH_TOKEN | Telnyx API Key or Twilio Auth Token |
CALLME_PHONE_NUMBER | Phone number Claude calls from (E.164 format) |
CALLME_USER_PHONE_NUMBER | Your phone number to receive calls |
CALLME_OPENAI_API_KEY | OpenAI API key (for TTS and realtime STT) |
CALLME_API_AUTH_TOKEN | Shared secret for MCP HTTP request authentication |
CALLME_NGROK_AUTHTOKEN | ngrok auth token for webhook tunneling. Required unless CALLME_PUBLIC_URL is set |
Optional Variables