Self-hosted AI assistant that places real phone calls for you: bookings, reservations, errands.
Connect Runs on your machine
claude mcp add banjo -e DATABASE_URL=<DATABASE_URL> -e MCP_API_KEY=<MCP_API_KEY> -e ASSISTANT_PRINCIPAL_NAME=<ASSISTANT_PRINCIPAL_NAME> -e PUBLIC_HOSTNAME=<PUBLIC_HOSTNAME> -e VOICE_AI_PROVIDER=<VOICE_AI_PROVIDER> -e OPENAI_API_KEY=<OPENAI_API_KEY> -e TWILIO_ACCOUNT_SID=<TWILIO_ACCOUNT_SID> -e TWILIO_AUTH_TOKEN=<TWILIO_AUTH_TOKEN> -e TWILIO_PHONE_NUMBER=<TWILIO_PHONE_NUMBER> -e NOTIFICATION_CHANNEL=<NOTIFICATION_CHANNEL> -- docker run -i --rm ghcr.io/shatch/banjo:0.1.23
{
"mcpServers": {
"banjo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/shatch/banjo:0.1.23"
],
"env": {
"DATABASE_URL": "<DATABASE_URL>",
"MCP_API_KEY": "<MCP_API_KEY>",
"ASSISTANT_PRINCIPAL_NAME": "<ASSISTANT_PRINCIPAL_NAME>",
"PUBLIC_HOSTNAME": "<PUBLIC_HOSTNAME>",
"VOICE_AI_PROVIDER": "<VOICE_AI_PROVIDER>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"TWILIO_ACCOUNT_SID": "<TWILIO_ACCOUNT_SID>",
"TWILIO_AUTH_TOKEN": "<TWILIO_AUTH_TOKEN>",
"TWILIO_PHONE_NUMBER": "<TWILIO_PHONE_NUMBER>",
"NOTIFICATION_CHANNEL": "<NOTIFICATION_CHANNEL>"
}
}
}
}
{
"mcpServers": {
"banjo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/shatch/banjo:0.1.23"
],
"env": {
"DATABASE_URL": "<DATABASE_URL>",
"MCP_API_KEY": "<MCP_API_KEY>",
"ASSISTANT_PRINCIPAL_NAME": "<ASSISTANT_PRINCIPAL_NAME>",
"PUBLIC_HOSTNAME": "<PUBLIC_HOSTNAME>",
"VOICE_AI_PROVIDER": "<VOICE_AI_PROVIDER>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"TWILIO_ACCOUNT_SID": "<TWILIO_ACCOUNT_SID>",
"TWILIO_AUTH_TOKEN": "<TWILIO_AUTH_TOKEN>",
"TWILIO_PHONE_NUMBER": "<TWILIO_PHONE_NUMBER>",
"NOTIFICATION_CHANNEL": "<NOTIFICATION_CHANNEL>"
}
}
}
}
{
"servers": {
"banjo": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/shatch/banjo:0.1.23"
],
"env": {
"DATABASE_URL": "<DATABASE_URL>",
"MCP_API_KEY": "<MCP_API_KEY>",
"ASSISTANT_PRINCIPAL_NAME": "<ASSISTANT_PRINCIPAL_NAME>",
"PUBLIC_HOSTNAME": "<PUBLIC_HOSTNAME>",
"VOICE_AI_PROVIDER": "<VOICE_AI_PROVIDER>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"TWILIO_ACCOUNT_SID": "<TWILIO_ACCOUNT_SID>",
"TWILIO_AUTH_TOKEN": "<TWILIO_AUTH_TOKEN>",
"TWILIO_PHONE_NUMBER": "<TWILIO_PHONE_NUMBER>",
"NOTIFICATION_CHANNEL": "<NOTIFICATION_CHANNEL>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
DATABASE_URLRequired, secret | Postgres connection URL. Migrations run on boot. |
MCP_API_KEYRequired, secret | Bearer token MCP clients must send (at least 32 characters, e.g. openssl rand -hex 32). |
ASSISTANT_PRINCIPAL_NAMERequired | The name of the person Banjo calls on behalf of. |
PUBLIC_HOSTNAMERequired | Public hostname Twilio reaches this server on (no scheme), e.g. a tunnel or reverse proxy. |
VOICE_AI_PROVIDERRequired | Voice AI vendor. openai is the one carrying live traffic. |
OPENAI_API_KEYOptional, secret | OpenAI API key, for VOICE_AI_PROVIDER=openai or openai-live. |
TWILIO_ACCOUNT_SIDRequired | Twilio account SID. |
TWILIO_AUTH_TOKENRequired, secret | Twilio auth token. |
TWILIO_PHONE_NUMBERRequired | The Twilio number Banjo calls from, in E.164 (+15551234567). |
NOTIFICATION_CHANNELOptional | How Banjo tells you a call's outcome. twilio_sms also needs NOTIFY_TO_PHONE_NUMBER and NOTIFY_FROM_PHONE_NUMBER; pushover needs PUSHOVER_APP_TOKEN and PUSHOVER_USER_KEY. |
Details
| Package | ghcr.io/shatch/banjo:0.1.23 (OCI, streamable-http) |
| First published | 12 Nov 2026 |
| Last updated | 12 Nov 2026 |
| Registry name | io.github.shatch/banjo |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
