Connectors · CRM & sales
Kommo MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Kommo and the rest of your systems. It gives your agent 147 Kommo actions (58 reads, 73 writes and 16 that wait for a confirmation) and holds the Kommo credential itself, so the agent never does. It paces Kommo's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "kommo.contacts.list", intent: "check which Kommo account is connected"}# Contacts List · read · 1 upstream call- 147actionsin one signed file
- 58readlook, never change
- 73writecreate and update
- 16wait for a yesdestructive, confirmed first
Set up
Connect Kommo in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Kommo.
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
access_tokenKommo access tokenhostWhere your Kommo lives: your host
account { op: "connections.requirements", service: "kommo" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "kommo.contacts.list" }# contacts list · read · 1 upstream callcheck { action: "kommo.contacts.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Kommo at a glance
- Sign-in
- Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
access_token- Setup fields
host- Limits we pace to
- 7 calls a second, per connection
- API covered
- Kommo API v4 (plus API v2 call notifications and the Kommo AI API v2), at your Kommo instance's API base URL, which you enter when connecting
- Built from
- Kommo's documentation, read 23 October 2026developers.kommo.comdevelopers.kommo.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 58 of 58 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 6, so ask can line Kommo up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Kommo.
147 actions in 38 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 58readlook, never change
- 73writecreate and update
- 16destructivewait for a confirmation
Incoming leads
83 read · 4 write · 1 destructive
Add incoming leads of type call (sip) · Add incoming leads of type form · Incoming leads list · Accept an incoming lead
Notes
83 read · 5 write · 0 destructive
Add notes · List notes by entity type · List notes of one entity · Get note by ID
Templates
82 read · 4 write · 2 destructive
Add templates · Get list of templates · Submit a WhatsApp template for moderation · Get template by ID
Sources
72 read · 3 write · 2 destructive
Add sources · Get sources · Get source by ID · Update source
Custom fields
62 read · 3 write · 1 destructive
Add custom fields · Custom fields list · Get entity field by ID · Update custom field
Leads
62 read · 4 write · 0 destructive
Get leads · Add leads · Get lead by ID · Update lead
Salesbots
62 read · 3 write · 1 destructive
Confirm Salesbot widget block execution · Salesbots list · Launch a Salesbot · Launch Salesbots (batch)
Catalog custom fields
52 read · 3 write · 0 destructive
Add custom fields to a list (catalog) · List custom fields of a list (catalog) · Get a custom field of a list (catalog) · Update a custom field of a list (catalog)
30 more areas · 93 actions
- Catalog elements 5
- Catalogs 5
- Companies 5
- Contacts 5
- Custom field groups 5
- Pipeline stages 5
- Pipelines 5
- Roles 5
- Tasks 5
- Users 5
- Website buttons 5
- Widgets 4
- AI sources 3
- Conversations 3
- Entity files 3
- Links 3
- Webhooks 3
- Contact chats 2
- Conversation messages 2
- Entity tags 2
- Events 2
- Loss reasons 2
- Tags 2
- Account 1
- AI products 1
- Call notifications 1
- Calls 1
- Event types 1
- File links 1
- Lead subscribers 1
Top actions
The Kommo API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 36 of Kommo's 36 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
kommo.contacts.listContacts List | Contacts List. | read | crm.contact.list177 connectors |
kommo.companies.listCompanies list | Companies list. | read | crm.company.list162 connectors |
kommo.users.listUsers list | Users list. | read | identity.user.list474 connectors |
kommo.leads.listGet leads | Get leads. | read | crm.deal.list43 connectors |
kommo.contacts.createAdding contacts | Adding contacts. | write | crm.contact.create161 connectors |
kommo.companies.createAdd companies | Add companies. | write | crm.company.create142 connectors |
kommo.tags.listList of entity tags | List of entity tags. | read | crm.tag.list65 connectors |
kommo.tasks.listTasks list | Tasks list. | read | work.task.list122 connectors |
kommo.leads.createAdd leads | Add leads. | write | crm.deal.create43 connectors |
kommo.tasks.createAdd tasks | Add tasks. | write | work.task.create127 connectors |
kommo.tags.createCreating tags for a particular entity type | Creating tags for a particular entity type. | write | crm.tag.create49 connectors |
kommo.roles.deleteDelete role | Delete role. | destructive | identity.role.delete106 connectors |
Try it
Prompts to paste into Claude.
Each one names the Kommo actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Kommo deals are due to close this month, and what are they worth in total?
calls
kommo.leads.list - Writewrite
Adding contacts in Kommo. Show me exactly what you will send before you save it.
calls
kommo.contacts.create - Across systemsread
Which Kommo companies have invoices in ConnectWise PSA, and how many each?
calls
kommo.companies.listconnectwise_manage.invoices.list
Across your systems
Kommo, joined to the rest of your business.
One ask fetches from Kommo and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which Kommo companies have invoices in ConnectWise PSA, and how many each?
kommo.companies.list+connectwise_manage.invoices.list, oncrm.company· ConnectWise PSAWhich Kommo companies have invoices in NetSuite, and how many each?
kommo.companies.list+netsuite.views.invoices, oncrm.company· NetSuite
identity.user 517crm.company 227crm.contact 192work.task 105crm.tag 47crm.deal 43ask { intent: "which Kommo companies have invoices in ConnectWise PSA, and how many each", steps: [ { action: "kommo.companies.list", as: "co", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { join: { left: "co", right: "inv", on: "crm.company", group_by: "co.name", select: ["co.name", "count(inv.id) as invoices"] } } ]}Governance for Kommo
Destructive actions wait for a yes.
16 Kommo actions are destructive. These are all of them:
- Delete role
kommo.roles.delete - Delete pipeline
kommo.pipelines.delete - Delete pipeline stage
kommo.pipeline_stages.delete - Unlink entities
kommo.links.delete - Delete source
kommo.sources.delete - Delete webhook
kommo.webhooks.delete - Delete a template
kommo.templates.delete - Deactivate users
kommo.users.deactivate - Uninstall a widget
kommo.widgets.uninstall - Detach files from an entity
kommo.entity_files.detach - Deleting a custom field
kommo.custom_fields.delete - Delete sources (batch)
kommo.sources.delete_batch - Decline an incoming lead
kommo.incoming_leads.decline - Delete templates (batch)
kommo.templates.delete_batch - custom_field_groups.delete
kommo.custom_field_groups.delete - Stop a Salesbot
kommo.salesbots.stop
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete role?
intent: the user asked me to delete role
account { op: "keys.create", name: "kommo-agent", allowed_actions: ["kommo.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "kommo.roles.delete", approver: "[email protected]" }, { match: "kommo.pipelines.delete", approver: "[email protected]" }, { match: "kommo.pipeline_stages.delete", approver: "[email protected]" } ]}Cost
What Kommo costs on actionlake.
Every Kommo action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Kommo refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 147 Kommo actions
- 147actions pageeach page of a long list is one call
- 58reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Kommo action.
147 actions by area: the id your agent calls, what it does, and its effect.
Incoming leads8
kommo.incoming_leads.acceptAccept an incoming leadwritekommo.incoming_leads.create_callAdd incoming leads of type call (sip)writekommo.incoming_leads.create_formAdd incoming leads of type formwritekommo.incoming_leads.declineDecline an incoming leaddestructivekommo.incoming_leads.getGet incoming lead by UIDreadkommo.incoming_leads.linkLink an incoming lead to an existing leadwritekommo.incoming_leads.listIncoming leads listreadkommo.incoming_leads.summaryGet incoming leads summaryread
Notes8
kommo.notes.createAdd noteswritekommo.notes.getGet note by IDreadkommo.notes.listList notes by entity typereadkommo.notes.list_for_entityList notes of one entityreadkommo.notes.pinPin a notewritekommo.notes.unpinUnpin a notewritekommo.notes.updateEdit notewritekommo.notes.update_batchEdit notes (batch)write
Templates8
kommo.templates.createAdd templateswritekommo.templates.deleteDelete a templatedestructivekommo.templates.delete_batchDelete templates (batch)destructivekommo.templates.getGet template by IDreadkommo.templates.listGet list of templatesreadkommo.templates.submit_reviewSubmit a WhatsApp template for moderationwritekommo.templates.update_batchEdit templates (batch)writekommo.templates.update_reviewEdit a WhatsApp template review statuswrite
Sources7
kommo.sources.createAdd sourceswritekommo.sources.deleteDelete sourcedestructivekommo.sources.delete_batchDelete sources (batch)destructivekommo.sources.getGet source by IDreadkommo.sources.listGet sourcesreadkommo.sources.updateUpdate sourcewritekommo.sources.update_batchUpdate sources (batch)write
Custom fields6
kommo.custom_fields.createAdd custom fieldswritekommo.custom_fields.deleteDeleting a custom fielddestructivekommo.custom_fields.getGet entity field by IDreadkommo.custom_fields.listCustom fields listreadkommo.custom_fields.updateUpdate custom fieldwritekommo.custom_fields.update_batchUpdate custom fields (batch)write
Leads6
kommo.leads.createAdd leadswritekommo.leads.create_complexAdd leads with contact and companywritekommo.leads.getGet lead by IDreadkommo.leads.listGet leadsreadkommo.leads.updateUpdate leadwritekommo.leads.update_batchUpdate leads (batch)write
Salesbots6
kommo.salesbots.continueConfirm Salesbot widget block executionwritekommo.salesbots.getGet a Salesbot by IDreadkommo.salesbots.listSalesbots listreadkommo.salesbots.runLaunch a Salesbotwritekommo.salesbots.run_batchLaunch Salesbots (batch)writekommo.salesbots.stopStop a Salesbotdestructive
Catalog custom fields5
kommo.catalog_custom_fields.createAdd custom fields to a list (catalog)writekommo.catalog_custom_fields.getGet a custom field of a list (catalog)readkommo.catalog_custom_fields.listList custom fields of a list (catalog)readkommo.catalog_custom_fields.updateUpdate a custom field of a list (catalog)writekommo.catalog_custom_fields.update_batchUpdate custom fields of a list (catalog, batch)write
Catalog elements5
kommo.catalog_elements.createAdd list elementswritekommo.catalog_elements.getGet a list elementreadkommo.catalog_elements.listGet list elementsreadkommo.catalog_elements.updateEdit a list elementwritekommo.catalog_elements.update_batchEdit list elements (batch)write
Catalogs5
kommo.catalogs.createAdd lists (catalogs)writekommo.catalogs.getGet a list (catalog)readkommo.catalogs.listGet lists (catalogs)readkommo.catalogs.updateEdit a list (catalog)writekommo.catalogs.update_batchEdit lists (catalogs, batch)write
Companies5
kommo.companies.createAdd companieswritekommo.companies.getGet company by IDreadkommo.companies.listCompanies listreadkommo.companies.updateUpdate companywritekommo.companies.update_batchUpdate companies (batch)write
Contacts5
kommo.contacts.createAdding contactswritekommo.contacts.getGet contact by IDreadkommo.contacts.listContacts Listreadkommo.contacts.updateUpdate contactwritekommo.contacts.update_batchUpdate contacts (batch)write
Custom field groups5
kommo.custom_field_groups.createcustom_field_groups.createwritekommo.custom_field_groups.deletecustom_field_groups.deletedestructivekommo.custom_field_groups.getcustom_field_groups.getreadkommo.custom_field_groups.listcustom_field_groups.listreadkommo.custom_field_groups.updatecustom_field_groups.updatewrite
Pipeline stages5
kommo.pipeline_stages.createAdd stages to pipelinewritekommo.pipeline_stages.deleteDelete pipeline stagedestructivekommo.pipeline_stages.getGet pipeline stage by IDreadkommo.pipeline_stages.listPipeline stages listreadkommo.pipeline_stages.updatePipeline stage editwrite
Pipelines5
kommo.pipelines.createAdding pipelineswritekommo.pipelines.deleteDelete pipelinedestructivekommo.pipelines.getGet pipeline by IDreadkommo.pipelines.listGet pipelinesreadkommo.pipelines.updateEdit pipelinewrite
Roles5
kommo.roles.createAdding roleswritekommo.roles.deleteDelete roledestructivekommo.roles.getGet role by IDreadkommo.roles.listUser roles listreadkommo.roles.updateEditing roleswrite
Tasks5
kommo.tasks.createAdd taskswritekommo.tasks.getGet task by IDreadkommo.tasks.listTasks listreadkommo.tasks.updateEdit taskwritekommo.tasks.update_batchEdit tasks (batch)write
Users5
kommo.users.activateActivate userswritekommo.users.createAdd userswritekommo.users.deactivateDeactivate usersdestructivekommo.users.getGet user by IDreadkommo.users.listUsers listread
Website buttons5
kommo.website_buttons.connect_online_chatConnect online chat to a website chat buttonwritekommo.website_buttons.createAdd a website chat buttonwritekommo.website_buttons.getGet a website chat buttonreadkommo.website_buttons.listList website chat buttonsreadkommo.website_buttons.updateUpdate a website chat buttonwrite
Widgets4
kommo.widgets.getGetting the widget info by its codereadkommo.widgets.installInstall a widget into the accountwritekommo.widgets.listWidgets Listreadkommo.widgets.uninstallUninstall a widgetdestructive
AI sources3
kommo.ai_sources.create_fileAdd an AI source of type filewritekommo.ai_sources.create_textAdd an AI source of type textwritekommo.ai_sources.create_urlAdd an AI source of type URLwrite
Conversations3
kommo.conversations.closeClose a conversationwritekommo.conversations.getGet conversation by IDreadkommo.conversations.listGet conversationsread
Entity files3
kommo.entity_files.attachAttach files to an entitywritekommo.entity_files.detachDetach files from an entitydestructivekommo.entity_files.listGet files attached to an entityread
Links3
kommo.links.createLink entitieswritekommo.links.deleteUnlink entitiesdestructivekommo.links.listList linked entitiesread
Webhooks3
kommo.webhooks.createAdd webhookwritekommo.webhooks.deleteDelete webhookdestructivekommo.webhooks.listList of webhooksread
Contact chats2
kommo.contact_chats.linkLink chats to contactswritekommo.contact_chats.listGet contact chatsread
Conversation messages2
kommo.conversation_messages.listGet conversation messagesreadkommo.conversation_messages.sendSend a message to a conversationwrite
Entity tags2
kommo.entity_tags.updateAdd tags to a single entitywritekommo.entity_tags.update_batchAdd tags to entities (batch)write
Events2
kommo.events.getGet event by IDreadkommo.events.listEvents listread
Loss reasons2
kommo.loss_reasons.getGet loss reason by IDreadkommo.loss_reasons.listGet loss reasonsread
Tags2
kommo.tags.createCreating tags for a particular entity typewritekommo.tags.listList of entity tagsread
Account1
kommo.account.getGet account parametersread
AI products1
kommo.ai_products.importLaunch import of products from CRM to AIwrite
Call notifications1
kommo.call_notifications.createAdd an incoming call notificationwrite
Calls1
kommo.calls.createAdd call noteswrite
Event types1
kommo.event_types.listGet event typesread
File links1
kommo.file_links.getGet entities associated with a fileread
Lead subscribers1
kommo.lead_subscribers.listGet lead subscribersread
Questions
The Kommo MCP server, answered.
Is there a Kommo MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 147 Kommo actions across incoming leads, notes, templates and sources, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Kommo.
What do I need to connect Kommo?
Kommo access token. Plus your host. The free call account { op: "connections.requirements", service: "kommo" } lists exactly what to paste.
Can an AI agent delete or change things in Kommo?
Only if its key allows it, and only with an explicit confirmation. 16 Kommo actions are destructive, including delete role, delete pipeline and delete pipeline stage. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Kommo API limit?
actionlake paces every call to the limits in the Kommo service file: 7 calls a second per connection. Repeated reads are answered from cache (58 Kommo actions can be), which never reaches Kommo.
What does a Kommo action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (147 Kommo actions page). Cache hits, searches, dry runs and calls Kommo refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Kommo API does it cover?
The Kommo API v4 (plus API v2 call notifications and the Kommo AI API v2) at your Kommo instance's API base URL, which you enter when connecting. It is built from Kommo's documentation as read on 23 October 2026. 147 actions in 38 areas, each one in the signed service file (version 1.0.0).
Can I combine Kommo with my other systems?
Yes. ask joins Kommo to ConnectWise PSA or NetSuite on the same customer and returns the answer rather than every row. Kommo maps crm.company, which 227 other connectors also map.
Does actionlake keep my Kommo data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Kommo credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Kommo today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.