agent-crm
Enables AI agents to manage CRM data including companies, contacts, prospects, pipelines, forecasts, and tasks via typed MCP tools, with local SQLite storage and a JSON CLI.
README
Agent CRM
An open-source CRM built for agents, not dashboards.
Agent CRM keeps track of companies, contacts, prospects, opportunities, research, follow-ups, forecasts, and sales-pipeline state. It also points out unsupported forecasts and work that is falling through the cracks. The difference is intentional: there is no graphical interface. Agents work with it directly through a JSON CLI or typed MCP tools.
Data stays local in SQLite, and both interfaces use the same application service.
Learn more at crmemento.com.
Why agent-first?
Most CRMs are designed around humans clicking through screens. Agent CRM is designed around agents reading structured context, taking explicit actions, and leaving an auditable trail.
- No interface: Use the CLI or MCP tools.
- Local by default: SQLite is the source of truth.
- Pipeline-aware: Track prospects from identification through won, lost, or do-not-contact.
- Revenue-aware: Forecast weighted, best-case, commit, and closed-won revenue.
- Constructively skeptical: A critical CRO review challenges weak assumptions with record-level evidence.
- Built for coordination: Project isolation, immutable activity history, and optimistic version checks help multiple agents work safely.
- System of record only: It logs outreach, but never sends messages or contacts anyone.
Quick start
Agent CRM requires Python 3.11 or later.
git clone https://github.com/clayton/agent-crm.git
cd agent-crm
export CRM_ACTOR=codex
./bin/crm init
./bin/crm project create "My Pipeline" --slug pipeline
./bin/crm project list
All CLI output is JSON. Writes require an actor through --actor or CRM_ACTOR.
By default, data is stored at ~/.codex/memories/agent-crm/crm.sqlite3. Set CRM_DB=/path/to/crm.sqlite3 or use the global --db option to choose another location.
What it tracks
- Projects that isolate separate pipelines
- Companies and contacts
- Prospects and pipeline stages
- Forecastable opportunities, amounts, close dates, probabilities, and next steps
- Sourced research notes
- Follow-up tasks and due dates
- Email, call, message, and meeting logs
- Immutable activity history
- Revenue targets and re-runnable project readiness checks
The default pipeline is:
identified → researching → qualified → ready_to_contact
→ contacted → replied → meeting_booked → won
Every non-terminal stage can also exit to lost, not_a_fit, or do_not_contact.
MCP server
Install the optional official MCP Python SDK:
uv sync --extra mcp
uv run crm-mcp
Example MCP client configuration:
{
"mcpServers": {
"agent-crm": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/agent-crm", "run", "crm-mcp"]
}
}
}
The server exposes typed tools for projects, companies, contacts, prospects, pipeline transitions, notes, tasks, inbox queries, search, and timelines.
Two agent-oriented read commands make common reviews direct:
# A ranked queue of 3-5 tasks and follow-ups
./bin/crm next-actions pipeline
# Prospects grouped in configured sales-stage order
./bin/crm pipeline pipeline
./bin/crm pipeline pipeline --include-terminal
The equivalent MCP tools are crm_next_actions and crm_pipeline. They return structured data so the calling agent can format it naturally for the conversation.
Bootstrap and onboarding
Bootstrap configures forecast defaults and returns a readiness checklist. It is deliberately safe to re-run: unchanged settings are not rewritten and no records are duplicated.
./bin/crm bootstrap pipeline \
--target-amount 100000 \
--target-period 2026-Q3 \
--currency USD \
--default-owner codex \
--actor codex
The result identifies missing configuration, unowned prospects, incomplete opportunities, and the next setup steps. The MCP equivalent is crm_bootstrap.
Forecasting and honest revenue reviews
A prospect becomes forecastable only when explicitly qualified with an amount, expected close date, and concrete next step:
./bin/crm opportunity qualify pro_ID \
--amount 25000 \
--expected-close-at 2026-09-15T00:00:00Z \
--next-step "Schedule the decision call" \
--forecast-category commit \
--probability 80 \
--actor codex
./bin/crm forecast pipeline --period 2026-Q3
./bin/crm conversions pipeline
./bin/crm review pipeline --period 2026-Q3
forecast returns open pipeline, weighted forecast, best case, commit, closed-won revenue, target attainment, coverage, and missing forecast data. conversions derives directional stage conversion rates from the immutable activity history.
review is the critical CRO adversary. It flags unsupported commit claims, weak coverage, overdue or expired next steps, incomplete forecast evidence, and other assumptions that deserve scrutiny. Findings include severity, underlying records, and a recommended corrective action.
The MCP equivalents are crm_qualify_opportunity, crm_forecast, crm_conversions, and crm_cro_review.
Staying ahead of dropped work
The v0.3 action engine ranks work across tasks and pipeline risks. Every recommendation carries a score, plain-language reasons, a suggested action, and an effort estimate.
./bin/crm next-actions pipeline
./bin/crm next-actions pipeline --mode close --time-budget 45
./bin/crm next-actions pipeline --mode pipeline_build
./bin/crm risks pipeline
risks finds unowned, unscheduled, stale, overdue, uncontactable, expired, and forecast-incomplete records. It is read-only by default. To explicitly create idempotent repair tasks:
./bin/crm risks pipeline --create-tasks --actor codex
The MCP equivalent is crm_pipeline_risks.
SDR workbench
Agent CRM prepares top-of-funnel work without sending messages:
./bin/crm sdr-queue pipeline
./bin/crm research-brief pro_ID
./bin/crm outreach-brief pro_ID
The SDR queue prioritizes enrichment and outreach preparation using fit, contactability, and research completeness. Research briefs separate sourced facts from unsourced context and missing information. Outreach briefs combine verified context, prior interactions, prerequisites, and a suggested angle while preserving the system-of-record-only boundary.
The MCP equivalents are crm_sdr_queue, crm_research_brief, and crm_outreach_brief.
Agent skill
The reusable agent skill lives in skill/agent-crm. Symlink or copy that directory into your agent’s skills directory, then configure the skill to point to your checkout.
Development
The core test suite has no third-party dependencies:
PYTHONPATH=src python3 -m unittest discover -s tests -v
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。