crixin
The MCP toolkit for AI agents. Two MCPs in one npm package, sharing one local SQLite, installing into the same MCP-aware hosts you already use.
- Voice MCP — give your AI a phone line. Real outbound calls + SMS + transcription through your own Twilio.
- Coder MCP — give your AI a memory. Reads back every Claude Code, Codex CLI, and Cursor session you've ever had.


Local-first. Bring your own Twilio. Bring your own LLM. No SaaS in the middle.
Install
npm i -g crixin
crixin install
Escape hatches if you want one half only:
crixin voice install
crixin coder install
For Voice MCP, set Twilio creds in the env your AI host launches from:
export TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export TWILIO_AUTH_TOKEN=your_auth_token
export TWILIO_PHONE_NUMBER=+15555550100
export DEEPGRAM_API_KEY=...
Verify before you dial:
crixin voice doctor
For Coder MCP, ingest your AI coding history:
crixin coder ingest
What each MCP exposes
Voice MCP — crixin-voice
make_call | Outbound voice call. to + prompt (assistant speaks it; recipient response recorded), or raw TwiML. |
get_call | Status / duration / price / timestamps for one Call SID. |
list_calls | Recent calls — filter by to / from / status / start_time_after. |
list_recordings | Recordings + auth-protected media URLs for a Call SID. |
transcribe_call | Run a recording through Deepgram. 30+ languages including Arabic. |
send_sms | SMS / MMS through Twilio. Messaging Service support. |
Coder MCP — crixin-coder
search_sessions | Full-text search across every ingested Claude Code / Codex / Cursor session. |
list_recent_sessions | Newest sessions first, with project + token counts. |
get_session | Pull a full session transcript by ID. |
stats | Aggregate counts across the local SQLite store. |
Everyday commands
crixin voice doctor
crixin voice call <to> [prompt]
crixin voice sms <to> <body>
crixin voice ingest
crixin voice wrapped --year 2026
crixin voice archetype
crixin voice mcp
crixin coder ingest
crixin coder search <query>
crixin coder dashboard
crixin coder wrapped --year 2026
crixin coder archetype
crixin coder mcp
Per-host install (manual)
claude mcp add crixin-voice -- npx -y crixin voice mcp
claude mcp add crixin-coder -- npx -y crixin coder mcp
{
"mcpServers": {
"crixin-voice": { "command": "npx", "args": ["-y","crixin","voice","mcp"] },
"crixin-coder": { "command": "npx", "args": ["-y","crixin","coder","mcp"] }
}
}
[mcp_servers.crixin-voice]
command = "npx"
args = ["-y","crixin","voice","mcp"]
[mcp_servers.crixin-coder]
command = "npx"
args = ["-y","crixin","coder","mcp"]
Or just run crixin install and let it wire everything for you.
Wrapped (the year-end receipt)
Both halves emit a self-contained HTML report.
crixin voice wrapped
crixin coder wrapped
Hour-of-day heatmaps, monthly bars, archetype reveal (Patient Listener / Hard Closer / Ducker / Cowboy / Architect / …), top destinations or top projects, top languages or top models. PII-stripped. Shareable as a screenshot. No upload.
Stack
- STT: Deepgram Nova-2 (optional —
DEEPGRAM_API_KEY).
- TTS: Twilio Polly + Google neural voices via TwiML
<Say>. (Polly.Joanna-Neural for en-US, Polly.Hala-Neural for ar-EG, Polly.Lucia-Neural for es-ES, etc.)
- LLM: none in the open-source call path — your AI host decides what to say. Pro tier can plug in hosted Wrapped + memory sync.
- Storage: local SQLite at
~/.crixin/crixin.db. Tables: voice_calls, voice_recordings, sessions, messages.
Pricing
| Open Source | Free forever | Both MCPs, all tools, all Wrapped, all archetypes. MIT-licensed. Bring your own Twilio. |
| Pro | $5/mo | Hosted Wrapped (shareable URL), cross-machine memory sync, premium archetypes. 3-day free trial. |
See full pricing.
Privacy posture
- Zero servers between you and Twilio. Calls hit
api.twilio.com directly with your auth header.
- Coder MCP reads JSONLs your AI host already wrote to your disk. Nothing leaves your machine.
- Transcripts and call recordings stay in your Twilio account and your local SQLite.
- No telemetry. No upload. No analytics pixels.
Geo-gate (Voice MCP)
Outbound calls to strict-consent jurisdictions (US, Canada, UK, IE, FR, ES, IT, NL, AU, NZ) require an explicit --consented flag or consented: true in the MCP tool args. Permissive jurisdictions (Egypt, UAE, KSA, Jordan, Kuwait, Qatar, Bahrain, Oman, Lebanon, Nigeria, ZA) dial without the flag. Germany is blocked outright. Override with CRIXIN_VOICE_ALLOWED_CC.
Docs
Install · Voice MCP · Coder MCP · Wrapped · Archetype · Pricing · FAQ
License
MIT. Built by @Mrdopplereffekt.