Add it to Claude Code
claude mcp add -e "AMO_SUBDOMAIN=${AMO_SUBDOMAIN}" -e "AMO_ACCESS_TOKEN=${AMO_ACCESS_TOKEN}" amocrm -- python -m amocrm_mcpAMO_SUBDOMAINAMO_ACCESS_TOKEN+ 3 optionalMake your agent remember this setup
amocrm's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- 36 MCP tools covering leads, contacts, companies, tasks, and analytics
- OAuth 2.0 token refresh with disk persistence
- Automatic rate limiting with 429 backoff and jitter
- HAL+JSON normalization for cleaner data output
- Support for both stdio and SSE transports
Tools 5
leads_listList leads from the CRMcontacts_getRetrieve contact detailscompanies_createCreate a new company entrytasks_createCreate a new task in the CRManalytics_get_pipeline_analyticsRetrieve pipeline performance analyticsEnvironment Variables
AMO_SUBDOMAINrequiredYour amoCRM account subdomainAMO_ACCESS_TOKENrequiredOAuth access tokenAMO_CLIENT_IDOAuth client ID for automatic token refreshAMO_CLIENT_SECRETOAuth client secret for automatic token refreshAMO_REFRESH_TOKENOAuth refresh token for automatic token refreshTry it
Original README from cAIborg-ai/amocrm-mcp
amoCRM MCP Server
MCP server for amoCRM (Kommo) API v4. Exposes 36 tools for leads, contacts, companies, tasks, notes, pipelines, associations, analytics, and more.
Built with FastMCP. Works with Claude Desktop, Cursor, and any MCP-compatible client.
Features
- 36 MCP tools across 11 domains (leads, contacts, companies, tasks, notes, pipelines, associations, account, batch, unsorted, analytics)
- OAuth 2.0 token refresh with disk persistence
- Rate limiting — 7 req/s with automatic 429 backoff and jitter
- HAL+JSON normalization — strips
_links, flattens_embedded - Consistent response envelopes —
{data, pagination}or{error, status_code, detail} - stdio and SSE transports
Quick Start
1. Install
pip install -e .
2. Configure
Copy .env.example to .env and fill in your amoCRM credentials:
cp .env.example .env
You need at minimum:
AMO_SUBDOMAIN— your amoCRM account subdomainAMO_ACCESS_TOKEN— OAuth access token
For automatic token refresh, also set:
AMO_CLIENT_ID,AMO_CLIENT_SECRET,AMO_REFRESH_TOKEN
3. Run
# stdio (default — for Claude Desktop, Cursor, etc.)
python -m amocrm_mcp
# SSE transport
AMO_TRANSPORT=sse AMO_PORT=8000 python -m amocrm_mcp
Claude Desktop config
Add to claude_desktop_config.json:
{
"mcpServers": {
"amocrm": {
"command": "python",
"args": ["-m", "amocrm_mcp"],
"env": {
"AMO_SUBDOMAIN": "your-subdomain",
"AMO_ACCESS_TOKEN": "your-token"
}
}
}
}
Tools
| Domain | Tools | Description |
|---|---|---|
| Leads | leads_list, leads_get, leads_search, leads_create, leads_create_complex, leads_update |
Full lead lifecycle |
| Contacts | contacts_get, contacts_search, contacts_create, contacts_update |
Contact management |
| Companies | companies_get, companies_search, companies_create, companies_update |
Company management |
| Tasks | tasks_list, tasks_get, tasks_create, tasks_update |
CRM task operations |
| Notes | notes_list, notes_create |
Notes on entities |
| Pipelines | pipelines_list, pipelines_get, pipelines_list_statuses |
Pipeline & status info |
| Associations | associations_get_linked, associations_link_entities |
Entity relationships |
| Account | account_get, account_list_users, account_list_custom_fields |
Account metadata |
| Batch | batch_create_leads, batch_create_contacts, batch_update_leads |
Bulk operations |
| Analytics | analytics_get_events, analytics_get_pipeline_analytics, +1 |
CRM analytics |
| Unsorted | unsorted_list, unsorted_accept, unsorted_reject |
Unsorted inbox |
Getting amoCRM Credentials
- Go to your amoCRM account → Settings → Integrations
- Create a new integration (or use an existing one)
- Copy the access token, client ID, and client secret
- Your subdomain is the part before
.amocrm.ruin your account URL
License
MIT