We Built an Open-Source CRM for AI Agents — Here’s Why
Traditional CRMs were designed for humans clicking buttons. With 6,400+ MCP servers and AI agents entering every enterprise workflow, it’s time for infrastructure that’s built for them.
If you’re building AI agents that interact with business data, you’ve probably hit the same wall we did.
Your agent can call APIs, generate text, and reason over documents — but where does it store what it knows? Where does it persist contacts, deals, interactions, and the evidence behind every claim? How does it handle conflicting information without silently overwriting the truth?
Most teams wire up a vector database and call it memory. That works for semantic search. It doesn’t work when you need to know the exact deal value, who the decision maker is, and which email confirmed it — with a full audit trail.
We needed something better. So we built it and open-sourced it.
Open Tooling CRM: The Technical Case
Open Tooling CRM is a headless, local-first CRM designed for AI agents as the primary users. No UI. No cloud dependencies. Just a SQLite-backed data layer with two clean interfaces:
REST API — 29 endpoints. Standard HTTP/JSON with consistent pagination, filtering, idempotency keys, and Zod validation.
MCP Server — 27 tools purpose-built for Claude Desktop, Claude Code, and any MCP-compatible client. Entities, relationships, artifacts, observations, briefs, conflicts, graph traversal, FTS, import/export.
The Evidence Chain
The core differentiator is the memory layer. Instead of flat fields that get overwritten, Open Tooling CRM implements a four-level evidence chain:
Artifacts (raw evidence: emails, transcripts, documents)
↓ extraction
Observations (typed claims with lifecycle: current → superseded / retracted)
↓ derivation
Briefs (summaries that cite observations — always regeneratable)
↓ detection
Conflicts (when observations disagree — never silently resolved)
Every observation links to its source artifact. Every brief cites its observations. Every conflict references the disagreeing claims. Progressive retrieval means agents start with the brief and drill down to raw evidence when needed.
This isn’t academic — it’s practical. When your agent says “budget is $250K,” you can trace that through the observation to the artifact (the email from the prospect’s CFO on March 3rd). When the budget changes, the old observation is superseded, not deleted. The audit trail is preserved.
Architecture
Agent Client → MCP Tools → OpenCRM Core → SQLite
Agent Client → REST API → OpenCRM Core → SQLite
Both interfaces share the same core. All writes produce immutable events in an append-only ledger. Data model: typed entities with JSON properties, directed relationships, field-level provenance, FTS index, and the full memory layer.
MCP Tools at a Glance
Entities: create_entity, update_entity, get_entity, search_entities, archive_entity
Relationships: link_entities, unlink_entities, list_relationships, traverse_graph
Memory: ingest_artifact, add_observation, list_observations, supersede_observation, retract_observation
Briefs: create_brief, get_brief, list_briefs
Conflicts: create_conflict, get_conflict, list_conflicts, resolve_conflict
Data: export_data, import_data
Why Headless?
No bundled UI is a deliberate architectural choice. CRMs that couple their data layer to a rigid frontend create lock-in by design. Open Tooling inverts this: the API is the product.
Three ways to use it:
Agent-only. Connect the MCP server to Claude Desktop. Your CRM interface is natural language.
Vibe-code a frontend. Tell Claude or Cursor: “Build me a React dashboard for my deals pipeline using the Open Tooling CRM API at localhost:8787.” The API is conventional enough that any code-gen tool can scaffold a working UI in minutes.
Integrate into your stack. It’s a REST API — connect it to anything.
Part of a Bigger Vision
Open Tooling CRM is the first module in Open Tooling — an open-source family of AI-native SaaS tools. The same architecture (headless, local-first, evidence-based, MCP-native) applies across verticals like HR, Finance, Project Management, Procurement, and beyond.
We also ship a Claude plugin marketplace (Attri-Inc/open-tooling-plugins). Install it and Claude gets the knowledge layer to use Open Tooling CRM optimally — the right ingestion patterns, the evidence chain, progressive retrieval, conflict resolution.
Quick Start
git clone https://github.com/Attri-Inc/open-tooling.git
cd open-tooling/crm
npm install && cp .env.example .env
npm run dev # REST API at localhost:8787
npm run seed # Sample data
npm run mcp # MCP server (stdio)
Use It with Claude (Zero Config)
MCP Server:
Add the MCP config to Claude Desktop or Claude Code. 27 tools, full evidence chain, natural language CRM.
Claude Cowork Plugin:
One-click install via our plugin marketplace. Gives Claude the knowledge layer for optimal usage — ingestion patterns, evidence chain workflow, progressive retrieval, conflict resolution.
Cowork setup: Customize → Add plugin → Add marketplace → Attri-Inc/open-tooling-plugins → Sync.
[GIF: Claude Cowork plugin install — showing the marketplace setup flow]
⭐ GITHUB: github.com/Attri-Inc/open-tooling
🧩 PLUGIN MARKETPLACE: github.com/Attri-Inc/open-tooling-plugins
Apache 2.0 licensed. Contributions welcome.
Originally published on Attri AI Substack [link].
Built by Attri AI. We build AI-native tools for enterprises.
Top comments (0)