crixin
v0.5.1
Published
The MCP toolkit for AI agents. Voice MCP gives your AI a phone line through your own Twilio. Coder MCP gives it a memory across every Claude Code, Codex CLI, and Cursor session. One npm package, two capability modules, local SQLite, no SaaS in the middle.
Maintainers
Readme
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 # writes BOTH MCPs (voice + coder) into Claude Desktop, Claude Code, Cursor, Codex CLIEscape hatches if you want one half only:
crixin voice install # only the phone half
crixin coder install # only the memory halfFor 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=... # optional — needed for Voice Wrapped + Caller ArchetypeVerify before you dial:
crixin voice doctor # one GET against Twilio. No charges, instant feedback on stale tokens.For Coder MCP, ingest your AI coding history:
crixin coder ingest # pulls Claude Code, Codex CLI, Cursor sessions → ~/.crixin/crixin.dbWhat each MCP exposes
Voice MCP — crixin-voice
| Tool | What it does |
|---|---|
| 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
| Tool | What it does |
|---|---|
| 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
# Voice MCP
crixin voice doctor # live-probe Twilio (no charges)
crixin voice call <to> [prompt] # one-off call from the CLI
crixin voice sms <to> <body> # one-off SMS
crixin voice ingest # pull recent Twilio calls + Deepgram transcripts → local SQLite
crixin voice wrapped --year 2026 # annual recap (HTML) — heatmaps, archetype, top destinations
crixin voice archetype # caller archetype reveal (Quick Pitcher / Patient Listener / …)
crixin voice mcp # run as a stdio MCP server (used by AI hosts via npx)
# Coder MCP
crixin coder ingest # ingest AI coding sessions → ~/.crixin/crixin.db
crixin coder search <query> # CLI search across sessions
crixin coder dashboard # local Hono dashboard on 127.0.0.1
crixin coder wrapped --year 2026 # annual recap (HTML) — top projects, monthly bars, archetype
crixin coder archetype # 11 archetypes — 5 for you, 6 for your AI
crixin coder mcp # run as a stdio MCP server (used by AI hosts via npx)Per-host install (manual)
# Claude Code
claude mcp add crixin-voice -- npx -y crixin voice mcp
claude mcp add crixin-coder -- npx -y crixin coder mcp
# Cursor — append to ~/.cursor/mcp.json
{
"mcpServers": {
"crixin-voice": { "command": "npx", "args": ["-y","crixin","voice","mcp"] },
"crixin-coder": { "command": "npx", "args": ["-y","crixin","coder","mcp"] }
}
}
# Codex CLI — append to ~/.codex/config.toml
[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-voice-wrapped-2026.html
crixin coder wrapped # → ./crixin-coder-wrapped-2026.htmlHour-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
| Tier | Price | What you get | |---|---|---| | 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. |
Privacy posture
- Zero servers between you and Twilio. Calls hit
api.twilio.comdirectly 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.
