Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Description from the maker (original English)
Voice Calls, SMS, and WhatsApp for Claude Code with cross-channel context sharing.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
BETTERCALLCLAUDE_PHONE_PROVIDER, BETTERCALLCLAUDE_PHONE_NUMBER, BETTERCALLCLAUDE_PHONE_ACCOUNT_SID, BETTERCALLCLAUDE_PHONE_AUTH_TOKEN, BETTERCALLCLAUDE_USER_PHONE_NUMBER, BETTERCALLCLAUDE_OPENAI_API_KEY, BETTERCALLCLAUDE_WHATSAPP_NUMBER, BETTERCALLCLAUDE_PORT, TAILSCALE_HOSTNAME, BETTERCALLCLAUDE_WHATSAPP_PROVIDER, BETTERCALLCLAUDE_BAILEYS_AUTH_DIR, BETTERCALLCLAUDE_WHATSAPP_CHAT_HISTORY_SIZEValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"better-call-claude": {
"command": "npx",
"args": [
"-y",
"better-call-claude"
],
"env": {
"BETTERCALLCLAUDE_PHONE_PROVIDER": "your-value",
"BETTERCALLCLAUDE_PHONE_NUMBER": "your-value",
"BETTERCALLCLAUDE_PHONE_ACCOUNT_SID": "your-value",
"BETTERCALLCLAUDE_PHONE_AUTH_TOKEN": "your-value",
"BETTERCALLCLAUDE_USER_PHONE_NUMBER": "your-value",
"BETTERCALLCLAUDE_OPENAI_API_KEY": "your-value",
"BETTERCALLCLAUDE_WHATSAPP_NUMBER": "your-value",
"BETTERCALLCLAUDE_PORT": "your-value",
"TAILSCALE_HOSTNAME": "your-value",
"BETTERCALLCLAUDE_WHATSAPP_PROVIDER": "your-value",
"BETTERCALLCLAUDE_BAILEYS_AUTH_DIR": "your-value",
"BETTERCALLCLAUDE_WHATSAPP_CHAT_HISTORY_SIZE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add better-call-claude --env BETTERCALLCLAUDE_PHONE_PROVIDER=your-value --env BETTERCALLCLAUDE_PHONE_NUMBER=your-value --env BETTERCALLCLAUDE_PHONE_ACCOUNT_SID=your-value --env BETTERCALLCLAUDE_PHONE_AUTH_TOKEN=your-value --env BETTERCALLCLAUDE_USER_PHONE_NUMBER=your-value --env BETTERCALLCLAUDE_OPENAI_API_KEY=your-value --env BETTERCALLCLAUDE_WHATSAPP_NUMBER=your-value --env BETTERCALLCLAUDE_PORT=your-value --env TAILSCALE_HOSTNAME=your-value --env BETTERCALLCLAUDE_WHATSAPP_PROVIDER=your-value --env BETTERCALLCLAUDE_BAILEYS_AUTH_DIR=your-value --env BETTERCALLCLAUDE_WHATSAPP_CHAT_HISTORY_SIZE=your-value -- npx -y better-call-claudeFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"better-call-claude": {
"command": "npx",
"args": [
"-y",
"better-call-claude"
],
"env": {
"BETTERCALLCLAUDE_PHONE_PROVIDER": "your-value",
"BETTERCALLCLAUDE_PHONE_NUMBER": "your-value",
"BETTERCALLCLAUDE_PHONE_ACCOUNT_SID": "your-value",
"BETTERCALLCLAUDE_PHONE_AUTH_TOKEN": "your-value",
"BETTERCALLCLAUDE_USER_PHONE_NUMBER": "your-value",
"BETTERCALLCLAUDE_OPENAI_API_KEY": "your-value",
"BETTERCALLCLAUDE_WHATSAPP_NUMBER": "your-value",
"BETTERCALLCLAUDE_PORT": "your-value",
"TAILSCALE_HOSTNAME": "your-value",
"BETTERCALLCLAUDE_WHATSAPP_PROVIDER": "your-value",
"BETTERCALLCLAUDE_BAILEYS_AUTH_DIR": "your-value",
"BETTERCALLCLAUDE_WHATSAPP_CHAT_HISTORY_SIZE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"better-call-claude": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"better-call-claude"
],
"env": {
"BETTERCALLCLAUDE_PHONE_PROVIDER": "your-value",
"BETTERCALLCLAUDE_PHONE_NUMBER": "your-value",
"BETTERCALLCLAUDE_PHONE_ACCOUNT_SID": "your-value",
"BETTERCALLCLAUDE_PHONE_AUTH_TOKEN": "your-value",
"BETTERCALLCLAUDE_USER_PHONE_NUMBER": "your-value",
"BETTERCALLCLAUDE_OPENAI_API_KEY": "your-value",
"BETTERCALLCLAUDE_WHATSAPP_NUMBER": "your-value",
"BETTERCALLCLAUDE_PORT": "your-value",
"TAILSCALE_HOSTNAME": "your-value",
"BETTERCALLCLAUDE_WHATSAPP_PROVIDER": "your-value",
"BETTERCALLCLAUDE_BAILEYS_AUTH_DIR": "your-value",
"BETTERCALLCLAUDE_WHATSAPP_CHAT_HISTORY_SIZE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
BETTERCALLCLAUDE_WHATSAPP_NUMBER envBETTERCALLCLAUDE_PORT envTAILSCALE_HOSTNAME envBETTERCALLCLAUDE_WHATSAPP_PROVIDER envBETTERCALLCLAUDE_BAILEYS_AUTH_DIR envBETTERCALLCLAUDE_WHATSAPP_CHAT_HISTORY_SIZE envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account sns45, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: BETTERCALLCLAUDE_PHONE_PROVIDER, BETTERCALLCLAUDE_PHONE_NUMBER, BETTERCALLCLAUDE_PHONE_ACCOUNT_SID, BETTERCALLCLAUDE_PHONE_AUTH_TOKEN, BETTERCALLCLAUDE_USER_PHONE_NUMBER, BETTERCALLCLAUDE_OPENAI_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (3.1.3) reached the registry 4 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Vexa, emailmd, MCP WhatsApp Cloud
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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."
### ⚠️ Testing Status
| Channel | Provider | Status |
|---------|----------|--------|
| Voice | Twilio | ✅ Tested & Working |
| WhatsApp | Twilio Sandbox | ✅ Tested & Working |
| SMS | Twilio | ⏳ Pending A2P 10DLC verification |
| Voice | Telnyx | 🔬 Not yet tested |
| SMS | Telnyx | 🔬 Not yet tested |
| WhatsApp | Telnyx | 🔬 Not yet tested |
| WhatsApp | Baileys (free) | 🔬 New - testing welcome |
*Contributions welcome for testing other provider/channel combinations!*
| Setup | What You Get | Cost | Accounts Needed |
|---|---|---|---|
| Baileys only | WhatsApp messaging | Free | None |
| Twilio/Telnyx | Voice + SMS + WhatsApp | ~$1/mo + usage | Twilio/Telnyx + OpenAI |
| Hybrid | Voice + SMS (Twilio) + WhatsApp (Baileys) | ~$1/mo + voice usage | Twilio/Telnyx + OpenAI |
Just want WhatsApp? Skip to Option C: Baileys — no accounts, no API keys, completely free.
Option A: Telnyx (Recommended - 50% cheaper)
/webhook/telnyx/inbound/webhook/telnyx/sms/webhook/telnyx/whatsappOption B: Twilio
/webhook/twilio/inbound/webhook/twilio/sms/webhook/twilio/whatsappOption 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
git clone https://github.com/sns45/better-call-claude
cd better-call-claude bun install
Step 2: Pair your WhatsApp
bun run baileys:pair
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):
{
"mcpServers": { "better-call-claude": { "command": "bun", "args": ["run", "/path/to/better-call-claude/src/index.ts"], "env": { "BETTERCALLCLAUDE_WHATSAPP_PROVIDER": "baileys", "BETTERCALLCLAUDE_USER_PHONE_NUMBER": "+1234567890" } } } }
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.
bun run baileys:pair to pair your WhatsApp{
"env": { "BETTERCALLCLAUDE_PHONE_PROVIDER": "twilio", "BETTERCALLCLAUDE_WHATSAPP_PROVIDER": "baileys", "BETTERCALLCLAUDE_PHONE_ACCOUNT_SID": "your-account-sid", "BETTERCALLCLAUDE_PHONE_AUTH_TOKEN": "your-auth-token", "BETTERCALLCLAUDE_PHONE_NUMBER": "+15551234567", "BETTERCALLCLAUDE_USER_PHONE_NUMBER": "+15559876543", "BETTERCALLCLAUDE_OPENAI_API_KEY": "sk-..." } }
Voice calls and SMS go through Twilio. WhatsApp goes through Baileys (free).
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:
# macOS
brew install tailscale
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up and open your browserThat's it! The server handles the rest automatically.
# Quick start with bunx (recommended)
bunx better-call-claude
bun install -g better-call-claude better-call-claude
Add to ~/.claude/settings.json:
{
"mcpServers": { "better-call-claude": { "command": "bunx", "args": ["better-call-claude"], "env": { "BETTERCALLCLAUDE_PHONE_PROVIDER": "telnyx", "BETTERCALLCLAUDE_PHONE_ACCOUNT_SID": "your-connection-id", "BETTERCALLCLAUDE_PHONE_AUTH_TOKEN": "your-api-key", "BETTERCALLCLAUDE_PHONE_NUMBER": "+15551234567", "BETTERCALLCLAUDE_USER_PHONE_NUMBER": "+15559876543", "BETTERCALLCLAUDE_OPENAI_API_KEY": "sk-..." } } } }
Note: Tailscale setup is automatic on first run. The server will guide you through installation and authentication if needed.
Restart Claude Code. Done!
| Variable | Description |
|---|---|
BETTERCALLCLAUDE_PHONE_PROVIDER | telnyx or twilio |
BETTERCALLCLAUDE_PHONE_ACCOUNT_SID | Provider account/connection ID |
BETTERCALLCLAUDE_PHONE_AUTH_TOKEN | Provider API key/auth token |
BETTERCALLCLAUDE_PHONE_NUMBER | Your Telnyx/Twilio phone number (E.164) |
BETTERCALLCLAUDE_WHATSAPP_NUMBER | WhatsApp number if different (e.g., Twilio Sandbox) |
BETTERCALLCLAUDE_USER_PHONE_NUMBER | Your personal phone number |
BETTERCALLCLAUDE_OPENAI_API_KEY | OpenAI API key for TTS/STT |
| Variable | Default | Description |
|---|---|---|
BETTERCALLCLAUDE_WHATSAPP_PROVIDER | *(unset)* | Set to baileys to enable free WhatsApp |
BETTERCALLCLAUDE_BAILEYS_AUTH_DIR | data/baileys-auth | Session credential directory |
Baileys-only mode: When
WHATSAPP_PROVIDER=baileysand no Twilio/Telnyx credentials are set, onlyUSER_PHONE_NUMBERis required. No Tailscale, no OpenAI key needed.
| Variable | Default | Description |
|---|---|---|
TAILSCALE_HOSTNAME | auto-detected | Override Tailscale hostname |
| Variable | Default | Description |
|---|---|---|
BETTERCALLCLAUDE_TTS_VOICE | onyx | OpenAI voice (alloy, echo, fable, onyx, nova, shimmer) |
BETTERCALLCLAUDE_PORT | 3333 | Local HTTP server port |
BETTERCALLCLAUDE_TRANSCRIPT_TIMEOUT_MS | 180000 | Speech timeout (3 min) |
BETTERCALLCLAUDE_STT_SILENCE_DURATION_MS | 800 | End-of-speech detection |
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 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?"
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 can send you text updates:
🤖 "Build failed on line 42 of auth.ts. Reply with 'fix' to auto-fix or 'skip' to continue."
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. Co
Only the beginning is shown; read the rest in the repo