Skip to Content
Getting started

Getting started

Local development

npm install npm run db:setup npm run dev:app

db:setup starts PostgreSQL 17 through Docker Compose and applies migrations. The local connection is postgresql://aka_phone_ai:aka_phone_ai@127.0.0.1:5432/aka_phone_ai.

Run each surface in its own terminal:

npm run dev:app # operations app + API → http://localhost:3000 npm run dev:landing # marketing landing page → http://localhost:3001 npm run dev:server # realtime + MCP backend → ws/http on :8080 npm run dev:docs # this documentation site → http://localhost:3002

Configuration

Copy .env.example to .env.local. Required live-provider values are:

  • DATABASE_URL for PostgreSQL. Set POSTGRES_SSL=true when the hosted database requires TLS.
  • OPENROUTER_API_KEY for the LLM that voices calls and runs the make_call safety check. Override the model with OPENROUTER_MODEL.
  • ELEVENLABS_API_KEY (and optional ELEVENLABS_MODEL_ID) for call text-to-speech.
  • TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN (the Auth Token also verifies inbound webhooks).
  • Stripe secret, publishable, and webhook keys.
  • MCP_TOKEN_SECRET and optionally VOICE_BRIDGE_SECRET.

For the split deployment, point the landing site at the app with NEXT_PUBLIC_APP_URL, and point MCP clients at the backend with MCP_PUBLIC_URL.

Connect an MCP client

Mint an API key from the app’s integrations view, then register the endpoint:

claude mcp add --transport http aka-phone-ai https://your-host/mcp \ --header "Authorization: Bearer ak_mcp_…"
Last updated on