
Better Call Claude
io.github.sns45由 GitHub 帳號 sns45 發布v3.1.3更新於 Oct 24, 2026
Voice Calls, SMS, and WhatsApp for Claude Code with cross-channel context sharing.
發布方自己的服務:Claude Platform Docs
概覽
一個本機 MCP 伺服器,讓 Claude Code 透過電話與你溝通:撥入撥出語音通話、簡訊和 WhatsApp,並共享跨頻道對話脈絡。
- 可以做什麼
- 處理語音通話:接聽來電、發起通話、繼續通話、只播報不等待回覆、結束通話並查詢通話狀態,語音經 OpenAI Whisper 轉寫與語音合成。收發簡訊與 WhatsApp 訊息,可選擇等待回覆。回覆既有會話,並讀取語音、簡訊和 WhatsApp 的完整訊息歷史。任務從通話轉到 WhatsApp 時保留脈絡,並讓會話持續存活以監聽新訊息。
- 適用情境
- 適合想離開鍵盤啟動或指揮 Claude Code 任務的情境,或讓 Claude 在長任務完成、卡住或需要決策時打電話或傳訊息通知你。也適合只能用手錶或手機操作、無法空出雙手的流程。
- 執行需求
- 以 stdio 在本機執行,從 npm 安裝(bunx 或全域安裝)並加入 Claude Code 設定。語音和簡訊需要 Twilio 或 Telnyx 帳號及已購買號碼,並設定 BETTERCALLCLAUDE_PHONE_PROVIDER、BETTERCALLCLAUDE_PHONE_ACCOUNT_SID、BETTERCALLCLAUDE_PHONE_AUTH_TOKEN、BETTERCALLCLAUDE_PHONE_NUMBER、BETTERCALLCLAUDE_USER_PHONE_NUMBER 和 BETTERCALLCLAUDE_OPENAI_API_KEY。Webhook 需要 Tailscale Funnel。僅用 Baileys 的 WhatsApp 不需服務商金鑰,但需另外掃碼配對。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Better Call Claude,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Better Call Claude
[Better Call Claude - Agentic AI Communication Solution]
Bi-directional communication for Claude Code via Voice Calls, SMS, and WhatsApp.
Call Claude from your phone to start tasks, and receive callbacks when Claude needs input or wants to share status.
📞 "Hey Claude, refactor the auth module and call me when you're done or need a decision."
[20 minutes later, phone rings]
🤖 "I've finished the refactor but found a security issue. Should I fix it now or create a ticket?"
💬 Or via SMS/WhatsApp:
You: "Claude, how's the deployment going?"
Claude: "Deployment complete. 3 services updated, all health checks passing."
Features
- 📱 Inbound calls - Call Claude Code from your phone to start tasks
- 📲 Outbound calls - Claude calls you when done, stuck, or needs decisions
- 💬 SMS messaging - Send and receive text messages with Claude
- 📱 WhatsApp - Full WhatsApp Business integration
- 🔄 Cross-channel context - Start on voice, continue on WhatsApp seamlessly
- 🔗 Persistent sessions - Claude stays alive listening for WhatsApp messages
- 🔒 Secure transport - Tailscale Funnel with guided auto-setup
- 🗣️ Natural conversations - Multi-turn interactions across all channels
- 🔧 Tool composable - Claude can use other tools while communicating
- ⚡ Auto-webhook updates - Twilio webhooks auto-update when URL changes
- 🆓 Free WhatsApp via Baileys - Personal WhatsApp with zero API costs, no business verification
- ⌚ Works anywhere - Phone, smartwatch, or any device
⚠️ Testing Status
Contributions welcome for testing other provider/channel combinations!
Quick Start
1. Choose Your Setup
Just want WhatsApp? Skip to Option C: Baileys — no accounts, no API keys, completely free.
2. Set Up Phone Provider
Option A: Telnyx (Recommended - 50% cheaper)
- Create account at portal.telnyx.com and verify identity
- Buy a phone number (~$1/month)
- Create a Voice API application:
- Set webhook URL to your tunnel URL +
/webhook/telnyx/inbound - Set API version to v2
- Set webhook URL to your tunnel URL +
- Enable SMS on your phone number:
- Go to Messaging and create a Messaging Profile
- Assign your phone number to the profile
- Set SMS webhook URL to your tunnel URL +
/webhook/telnyx/sms
- Enable WhatsApp (optional):
- Go to WhatsApp in portal
- Complete WhatsApp Business verification
- Set webhook URL to your tunnel URL +
/webhook/telnyx/whatsapp
- Verify your phone number for outbound calls
- Get your Connection ID (or Messaging Profile ID) and API Key
Option B: Twilio
- Create account at twilio.com/console
- Buy a phone number
- Configure webhooks for your number:
- Voice webhook: your tunnel URL +
/webhook/twilio/inbound - SMS webhook: your tunnel URL +
/webhook/twilio/sms
- Voice webhook: your tunnel URL +
- Enable WhatsApp (optional):
- Go to WhatsApp Senders
- Complete WhatsApp Business setup
- Set webhook URL to your tunnel URL +
/webhook/twilio/whatsapp
- Get your Account SID and Auth Token
Option C: Baileys (Free WhatsApp — no API provider needed)
Baileys connects directly to WhatsApp's Web protocol via WebSocket. It uses your personal WhatsApp account — no business verification, no API costs, no Twilio/Telnyx required.
How it works: Same as WhatsApp Web — you link a device by scanning a QR code.
Step 1: Clone and install
Step 2: Pair your WhatsApp
- A QR code will appear in your terminal
- Open WhatsApp on your phone > Settings > Linked Devices > Link a Device
- Scan the QR code
- Wait for "Paired successfully!" message
Your session is saved in data/baileys-auth/ — you won't need to scan again.
Step 3: Add to Claude Code (~/.claude.json or ~/.claude/settings.json):
That's it! No Tailscale, no Twilio, no OpenAI keys needed.
Step 4: Restart Claude Code and test
Send a WhatsApp message to yourself (or have someone message you) — Baileys receives it and spawns a Claude task. Or ask Claude to send you a WhatsApp:
"Send me a WhatsApp saying hello"
Option D: Hybrid (Twilio/Telnyx voice + Baileys WhatsApp)
Get the best of both worlds: Twilio/Telnyx handles voice calls and SMS, Baileys handles WhatsApp for free.
- Set up Twilio or Telnyx (Options A/B above)
- Run
bun run baileys:pairto pair your WhatsApp - Add to your MCP config:
Voice calls and SMS go through Twilio. WhatsApp goes through Baileys (free).
3. Set Up Tailscale Funnel (for webhooks)
Skip this step if you're using Baileys-only mode (Option C). Baileys doesn't need webhooks.
Tailscale Funnel provides free, stable public URLs for receiving webhooks from your phone provider.
Why Tailscale? Free unlimited tunnels, stable URLs (no random subdomains), enterprise-grade security.
Path: Better Call Claude uses
/bccpath (e.g.,https://your-hostname.ts.net/bcc) to avoid conflicts with other services.
First-time setup (automated):
When you first start the MCP server, it will guide you through setup:
-
Install Tailscale (if not installed):
-
Authenticate - The server will auto-run
tailscale upand open your browser -
Enable Funnel - Visit the URL shown in the terminal to enable Funnel on your tailnet (one-time admin step)
That's it! The server handles the rest automatically.
4. Install Better Call Claude
5. Add to Claude Code
Add to ~/.claude/settings.json:
Note: Tailscale setup is automatic on first run. The server will guide you through installation and authentication if needed.
Restart Claude Code. Done!
Environment Variables
Required Variables
Baileys (Free WhatsApp)
Baileys-only mode: When
WHATSAPP_PROVIDER=baileysand no Twilio/Telnyx credentials are set, onlyUSER_PHONE_NUMBERis required. No Tailscale, no OpenAI key needed.
Tailscale (Optional)
Optional Variables
Usage
Voice Calls
[Voice Call Example - Comic Style]
You → Claude (Inbound Calls)
Call your Telnyx/Twilio phone number from your personal phone:
📱 "Hey Claude, I need you to write unit tests for the payment module. Call me when you're done."
Claude will acknowledge and start working. When done, it calls you back.
Claude → You (Outbound Calls)
Claude can initiate calls when it needs your input:
🤖 "I found 3 different approaches for the caching layer. Want me to explain them so you can choose?"
Voice Commands During Calls
- "Hang up" or "Goodbye" - End the call
- "Hold on" - Claude waits for you to continue
- "Go ahead" - Claude continues with the task
- "Cancel that" - Abort current action
SMS Messaging
You → Claude (Inbound SMS)
Text your Telnyx/Twilio number:
💬 "Hey Claude, what's the status of the deployment?"
Claude will respond via SMS:
🤖 "Deployment is 80% complete. Running integration tests now. ETA: 5 minutes."
Claude → You (Outbound SMS)
Claude can send you text updates:
🤖 "Build failed on line 42 of auth.ts. Reply with 'fix' to auto-fix or 'skip' to continue."
You → Claude (Inbound WhatsApp)
Send a WhatsApp message to your business number:
💬 "Show me the error logs from the last hour"
Claude responds in WhatsApp:
🤖 "Found 3 errors:\n1. Connection timeout at 14:32\n2. Auth failure at 14:45\n3. Rate limit at 15:01\n\nWant me to investigate any of these?"
Claude → You (Outbound WhatsApp)
Claude can send rich WhatsApp messages:
🤖 "Code review complete! Found 2 issues:\n• Line 23: Unused variable\n• Line 67: Missing error handling\n\nReply 'fix' to auto-fix or 'details' for more info."
Cross-Channel Context
Start a task on voice and seamlessly continue on WhatsApp - Claude remembers everything.
[WhatsApp Continuation Example]
Example Flow
-
Call Claude:
📞 "Hey Claude, run the todo app in dev mode and let's continue on WhatsApp"
-
Claude starts the app and enters WhatsApp listening mode:
🤖 "Todo app running on port 5173. Send me WhatsApp messages for more instructions."
-
Send WhatsApp message:
💬 "Expose it via localtunnel and add the URL to allowed hosts"
-
Claude responds via WhatsApp:
🤖 "Done! Localtunnel URL: https://xyz.loca.lt - I've added it to vite.config.ts allowedHosts"
-
Continue the conversation:
💬 "What's the public IP so I can access it remotely?"
🤖 "Your public IP is 203.0.113.42. Access the app at https://xyz.loca.lt"
Key phrases to trigger WhatsApp listening:
- "Continue on WhatsApp"
- "Let's talk on WhatsApp"
- "Listen for my WhatsApp messages"
WhatsApp Sandbox (Twilio)
For testing, you can use Twilio's WhatsApp Sandbox instead of a full WhatsApp Business account.
- Go to Twilio Console > Messaging > WhatsApp Sandbox
- Send the join code to the sandbox number (+1 415 523 8886)
- Set the webhook URL to
{your-tailscale-url}/bcc/webhook/twilio/whatsapp - Add to your config:
Note: Sandbox requires re-joining every 72 hours.
How It Works
Communication Flows
Voice:
- Inbound: You call → Provider → Webhook → MCP Server → Claude Code
- Outbound: Claude Code → MCP Server → Provider → Your phone rings
- Speech: Your voice → Whisper STT → Text → Claude → TTS → Audio playback
SMS:
- Inbound: You text → Provider → Webhook → MCP Server → Claude Code
- Outbound: Claude Code → MCP Server → Provider API → SMS delivered
WhatsApp:
- Inbound: You message → Provider → Webhook → MCP Server → Claude Code
- Outbound: Claude Code → MCP Server → Provider API → WhatsApp delivered
MCP Tools
Voice Tools
receive_inbound_call
Accept and process an incoming call from the user.
initiate_call
Start a phone call to the user.
continue_call
Continue an active call with follow-up messages.
speak_to_user
Speak without waiting for a response (for acknowledgments).
end_call
End an active call.
get_call_status
Check status of current or recent calls.
Messaging Tools
receive_inbound_message
Check for incoming SMS or WhatsApp messages.
send_sms
Send an SMS message to the user.
send_whatsapp
Send a WhatsApp message to the user.
reply_to_conversation
Reply to an existing conversation (works for voice, SMS, or WhatsApp).
get_conversation_history
Get the full message history for any conversation.
Costs
Voice Calls
Typical voice conversation: ~$0.03-0.05/minute
SMS
Typical SMS exchange: ~$0.01-0.02/exchange
Typical WhatsApp exchange: Free (Baileys) or ~$0.01-0.02 (Twilio/Telnyx)
Infrastructure
Security Considerations
Tailscale Funnel Security
- Funnel creates a public endpoint but traffic routes through Tailscale's secure network
- Integrates with SSO/SCIM for enterprise use
- Audit logs available in Tailscale admin console
- Webhook signatures verified by default
General
- Phone numbers are never logged
- Call transcripts are ephemeral (cleared on restart)
- Use environment variables, never hardcode credentials
Capability attestation
This repo ships a smithmark capability manifest, smithmark.yaml, at the repo root. It is a "trust as code" declaration of everything this server touches outside its own process: the network hosts it egresses to (Twilio, Telnyx, OpenAI, WhatsApp/Baileys infrastructure, and, transitively, api.anthropic.com via the spawned claude subprocess), the filesystem paths it reads/writes (Baileys auth state, spawn debug logs), the binaries it executes (claude, tailscale, which, open, sudo), the environment variables it reads, and the secret types it handles (Twilio, Telnyx, and OpenAI API keys).
On every GitHub release, .github/workflows/smithmark-attest.yml produces a keyless Sigstore attestation over the published npm tarball: GitHub's OIDC token is exchanged for a short-lived Fulcio signing certificate, the attestation is signed with it, and the signature is recorded in the public Rekor transparency log. There are no signing keys and no secrets involved. The resulting smithmark-attestation.sigstore.json is attached to the GitHub release.
Verify a published version with:
(substitute the actual release tag for v3.1.1)
smithmark.yaml is the authoritative declaration of this server's capability surface. smithmark lint (and verify in strict mode) is deliberately host-unaware: it flags every network/exec/filesystem call site as a generic "undeclared" finding regardless of what the manifest declares at the host level, so it will report advisory findings against any real MCP server that talks to the network. Those findings are expected noise, not a sign the manifest is out of date; the manifest above is the record to trust.
Troubleshooting
Voice Issues
Claude doesn't answer calls
- Check the MCP server is running:
claude --debug - Verify webhook URL is configured in provider dashboard
- Ensure Tailscale Funnel is active
Can't make outbound calls
- Verify
BETTERCALLCLAUDE_USER_PHONE_NUMBERis correct - Check phone number is verified with provider
- Ensure sufficient balance in provider account
Audio quality issues
- Check network connectivity
- Try different TTS voice:
BETTERCALLCLAUDE_TTS_VOICE=nova - Adjust silence detection:
BETTERCALLCLAUDE_STT_SILENCE_DURATION_MS=1000
SMS Issues
SMS not being received
- Verify SMS is enabled on your phone number in provider dashboard
- Check SMS webhook URL is set:
/webhook/telnyx/smsor/webhook/twilio/sms - Verify Messaging Profile is assigned to phone number (Telnyx)
Can't send outbound SMS
- Check phone number has SMS capability
- Verify destination number format (E.164: +15551234567)
- Check provider account balance
WhatsApp Issues
WhatsApp messages not received
- Verify WhatsApp Business is set up in provider portal
- Check webhook URL:
/webhook/telnyx/whatsappor/webhook/twilio/whatsapp - Ensure WhatsApp Business verification is complete
Can't send WhatsApp messages
- User must have messaged you first (WhatsApp 24-hour rule)
- Check WhatsApp Business approval status
- Verify message template compliance (for outbound-first messages)
Baileys Issues
QR code doesn't appear
The QR code cannot display inside the MCP server (stdout is reserved for MCP protocol). Run the pairing script separately:
Once paired, the session is saved and the MCP server connects automatically.
"Baileys configured but no session found"
Run bun run baileys:pair to pair your WhatsApp first, then restart Claude Code.
WhatsApp logged out
Delete the auth directory and re-pair:
Messages not being received
- Check that Baileys is connected (look for
[Baileys] Connectedin stderr) - Ensure messages are from individual chats (group messages are filtered out)
- Verify the sender is not the linked account itself (own messages are filtered)
Tailscale Issues
"Tailscale not running"
- macOS: Open the Tailscale app from Applications
- Linux:
sudo systemctl start tailscaled && tailscale up
"Funnel not enabled"
- Visit the URL shown in the terminal to enable Funnel
- Or go to https://login.tailscale.com/admin/acls and add Funnel capability
Funnel starts but webhooks don't work
- Check
tailscale funnel statusshows/bccpointing to your port - Verify your phone provider webhook URL matches the Tailscale URL (with
/bccpath) - Test with
curl https://your-hostname.ts.net/bcc/health
Development
Testing locally
Tech Stack
- Runtime: Bun - Fast JavaScript runtime
- Web Framework: Hono - Lightweight, fast web framework
- Phone: Telnyx / Twilio - Telephony APIs
- WhatsApp: Baileys - Free WhatsApp Web protocol
- Speech: OpenAI Whisper - STT/TTS
- Transport: Tailscale Funnel - Public URL tunneling
- Protocol: MCP - Model Context Protocol
Contributing
PRs welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT
來源:README.md,提交 028bd9c
工具
0版本歷史
1- v3.1.3最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Claude 整合
Claude Platform Docs
com.claude.platform官方發布者
遠端 MCP 伺服器,讓助理搜尋並閱讀 Claude 平台文件與 API 參考。

Insta Edits for Claude
由 GitHub 帳號 faisalkhanzemi 發布
讓 Claude 驅動 Mac 版 Instagram Edits 完整 274 個工具編輯器的橋接服務,並隨專案開啟同步工具清單。

Claude Checkpoint Mcp
由 GitHub 帳號 daniel-munoz 發布
本機 MCP 伺服器,把 Claude Code 工作階段狀態存成專案內的檢查點檔案,並可重新載入為精簡的續接摘要。

Qwen DAP MCP — C/C++ Debugger for Claude Code, Codex & Qwen
由 GitHub 帳號 spk-c 發布
通過 GDB、LLDB 和 MCP 為 Claude Code、Codex 和 Qwen 提供 C/C++ 崩潰、掛起和轉儲除錯AI 翻譯

AVE for Claude Code — Local Video Editing
由 GitHub 帳號 lemberalla 發布
僅適用於 Claude Code 的本機 AVE 時間軸編輯與匯出。需要現有 AVE 連接。AI 翻譯