agentic · MCP-first

Your AI agent just
placed a call.

An MCP-first demo. Install the package. Ask Claude to call your nearest leads. Watch sub-agents fan out and dial in parallel — while you keep typing on the same line of code.

npm i -g crixin Install in 30 seconds
01
terminal · 30 seconds · once

Install the npm package.

A single global install. crixin voice install wires the MCP server into every AI host on your machine — Claude Code, Cursor, Codex CLI, Claude Desktop. No SaaS account. No webhooks. No API key swap.

~ — zsh
$ npm i -g crixin added 1 package in 4s $ crixin voice install claude code ~/.claude/settings.json cursor ~/.cursor/mcp.json codex cli ~/.codex/config.toml claude desktop ~/Library/Application Support/Claude/claude_desktop_config.json restart your AI host once. $
02
claude code · same window you ship from

Tell Claude what you want done.

No new tab. No new dashboard. Just the AI host you already have open. Crixin Voice's tools (make_call, send_sms, transcribe_call) are now first-class — the agent reasons about them like it would about read_file or bash.

you
use crixin-voice to call my 5 nearest pizza restaurants. ask each one if they'd be interested in a 15% commission deal on white-label POS integration. record outcomes.
claude
on it. fanning out 5 sub-agents — each makes one call, classifies the outcome, summarizes back. you can keep coding, i'll surface the results inline when they're done.
03
parallel · 5 sub-agents · ~45 seconds total

Sub-agents fan out. The dialer is just code.

Each sub-agent calls make_call(to, prompt) with its own lead and its own pitch — same MCP tool, separate calls. They run in parallel; they don't block each other. The dial, the speech, the recording, the Deepgram transcribe, the GPT-4o-mini outcome label — all happen inside the agent loop.

agent-1CA94e1…
→ Tony's Pizza · +1 (415) 555-0142
connected · 38s · transcript saved
interested · sent deck to mike@tonys.co
agent-2CA73af…
→ Mama Mia Slice · +1 (415) 555-0188
speaking · explaining commission tier
agent-3CA21bb…
→ Slice House · +1 (415) 555-0211
connected · listening
agent-4CA52cd…
→ Crust & Co · +1 (415) 555-0273
ringing · 2 of 4 rings
agent-5CA88f0…
→ Napoli Express · +1 (415) 555-0306
ringing · 1 of 4 rings
Meanwhile, you're on line 184 of routes/checkout.ts, rewriting the Stripe webhook. The dial is happening on the model's task tree — it doesn't pause your editor, it doesn't steal your terminal, it doesn't ask you a single question.
04
claude · ~52 seconds later

Results come back. Same chat. No context-switch.

The agent finishes the calls, writes a structured summary into the chat, and saves the full transcripts to disk. Every line is auditable: a Twilio call SID, a recording URL, a Deepgram transcript, a model-classified outcome. You can see exactly what your AI just did on your behalf.

claude
5 calls placed in 52 seconds. summary:
2interested
1callback
1declined
1voicemail

Tony's Pizza · interested · sent deck to mike@tonys.co

Mama Mia Slice · interested · wants a written quote by Friday

Slice House · callback · Friday 2pm PT, asked for Maria

Crust & Co · declined · already on Square

Napoli Express · voicemail · auto-DNC if they don't return

transcripts → /tmp/crixin-calls/2026-05-09-pizza-outreach/ · recordings live in your Twilio account

you
save Tony's and Mama Mia to my CRM as warm leads. ping me a slack DM when Maria calls back Friday.
tool
linear.create_contact · linear.create_contact · cron.schedule · done.