-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Matt Dula edited this page Apr 18, 2026
·
3 revisions
A headless, agent-native CRM. Claude, ChatGPT, Cursor, Perplexity, and any other MCP-capable agent can operate it directly — no human UI in the loop.
- Quickstart — get a local stack up in five minutes
- Architecture — visual tour of how the pieces fit
- Deployment — Railway, Docker Compose, Fly.io, bare VPS
- Authentication — API keys vs. user JWTs
- Troubleshooting — what to do when something's off
-
MCP-Tools — every tool on
/mcpwith a worked example - REST-API — the full HTTP surface
- Webhooks — subscribing, HMAC verification, retries
- Agent-Patterns — see AgentLab for battle-tested recipes
- Memory-Connectors — DocDeploy, Supermemory, GBrain bridge
- Ingest — CSV, JSON, vCard, text → CRM rows
- Export-Import — portable JSON round-trip
- Custom-Fields — workspace-scoped field registry
- Rate-Limiting — per-API-key throttling
- Dashboard — optional local audit UI
- FAQ
- Repository — source + issues
- ROADMAP.md — what's shipped, what's next
- AgentLab.md — agent deployment recipes
- ETHOS.md — the principles behind every decision
%%{init: {"look": "handDrawn", "theme": "dark"}}%%
flowchart LR
Agents[Claude / ChatGPT<br/>Cursor / Perplexity] --> Nakatomi
CLI[curl / scripts] --> Nakatomi
subgraph Nakatomi[Nakatomi]
direction TB
REST[REST API]
MCP[MCP server]
Worker[Webhook worker]
end
Nakatomi --> PG[(Postgres)]
Nakatomi --> Storage[(Files)]
Nakatomi -.->|optional| Memory[Memory connectors<br/>DocDeploy / Supermemory / GBrain]
Single Postgres is the source of truth. The MCP server and REST API run in the same FastAPI process and share a pool. The webhook worker is a background thread; memory connectors are pluggable adapters that mirror CRM mutations outbound and answer recall queries inbound.
Repository · Issues · MIT licensed · maintained by Matt Dula