Skip to content

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/mcp
the first call
do {  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.

  1. 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
  2. 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 token
    • hostWhere your Kommo lives: your host
    account { op: "connections.requirements", service: "kommo" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates 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
  1. Incoming leads

    8

    3 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

  2. Notes

    8

    3 read · 5 write · 0 destructive

    Add notes · List notes by entity type · List notes of one entity · Get note by ID

  3. Templates

    8

    2 read · 4 write · 2 destructive

    Add templates · Get list of templates · Submit a WhatsApp template for moderation · Get template by ID

  4. Sources

    7

    2 read · 3 write · 2 destructive

    Add sources · Get sources · Get source by ID · Update source

  5. Custom fields

    6

    2 read · 3 write · 1 destructive

    Add custom fields · Custom fields list · Get entity field by ID · Update custom field

  6. Leads

    6

    2 read · 4 write · 0 destructive

    Get leads · Add leads · Get lead by ID · Update lead

  7. Salesbots

    6

    2 read · 3 write · 1 destructive

    Confirm Salesbot widget block execution · Salesbots list · Launch a Salesbot · Launch Salesbots (batch)

  8. Catalog custom fields

    5

    2 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.

ActionWhat it doesEffectSame name in
kommo.contacts.listContacts ListContacts List.readcrm.contact.list177 connectors
kommo.companies.listCompanies listCompanies list.readcrm.company.list162 connectors
kommo.users.listUsers listUsers list.readidentity.user.list474 connectors
kommo.leads.listGet leadsGet leads.readcrm.deal.list43 connectors
kommo.contacts.createAdding contactsAdding contacts.writecrm.contact.create161 connectors
kommo.companies.createAdd companiesAdd companies.writecrm.company.create142 connectors
kommo.tags.listList of entity tagsList of entity tags.readcrm.tag.list65 connectors
kommo.tasks.listTasks listTasks list.readwork.task.list122 connectors
kommo.leads.createAdd leadsAdd leads.writecrm.deal.create43 connectors
kommo.tasks.createAdd tasksAdd tasks.writework.task.create127 connectors
kommo.tags.createCreating tags for a particular entity typeCreating tags for a particular entity type.writecrm.tag.create49 connectors
kommo.roles.deleteDelete roleDelete role.destructiveidentity.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.

  1. Readread

    Which Kommo deals are due to close this month, and what are they worth in total?

    callskommo.leads.list

  2. Writewrite

    Adding contacts in Kommo. Show me exactly what you will send before you save it.

    callskommo.contacts.create

  3. Across systemsread

    Which Kommo companies have invoices in ConnectWise PSA, and how many each?

    callskommo.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, on crm.company · ConnectWise PSA

  • Which Kommo companies have invoices in NetSuite, and how many each?

    kommo.companies.list + netsuite.views.invoices, on crm.company · NetSuite

Also mapped by other connectorsidentity.user 517crm.company 227crm.contact 192work.task 105crm.tag 47crm.deal 43
ask
ask {  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"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for Kommo

Destructive actions wait for a yes.

16 Kommo actions are destructive. These are all of them:

  • Delete rolekommo.roles.delete
  • Delete pipelinekommo.pipelines.delete
  • Delete pipeline stagekommo.pipeline_stages.delete
  • Unlink entitieskommo.links.delete
  • Delete sourcekommo.sources.delete
  • Delete webhookkommo.webhooks.delete
  • Delete a templatekommo.templates.delete
  • Deactivate userskommo.users.deactivate
  • Uninstall a widgetkommo.widgets.uninstall
  • Detach files from an entitykommo.entity_files.detach
  • Deleting a custom fieldkommo.custom_fields.delete
  • Delete sources (batch)kommo.sources.delete_batch
  • Decline an incoming leadkommo.incoming_leads.decline
  • Delete templates (batch)kommo.templates.delete_batch
  • custom_field_groups.deletekommo.custom_field_groups.delete
  • Stop a Salesbotkommo.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.

dokommo.roles.deleteconfirm_policy: human

Delete role?

intent: the user asked me to delete role

run suspended · waiting for a named person · key kommo-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
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]" }  ]}
Illustrative. Scoped to Kommo only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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

See pricing

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 leadwrite
  • kommo.incoming_leads.create_callAdd incoming leads of type call (sip)write
  • kommo.incoming_leads.create_formAdd incoming leads of type formwrite
  • kommo.incoming_leads.declineDecline an incoming leaddestructive
  • kommo.incoming_leads.getGet incoming lead by UIDread
  • kommo.incoming_leads.linkLink an incoming lead to an existing leadwrite
  • kommo.incoming_leads.listIncoming leads listread
  • kommo.incoming_leads.summaryGet incoming leads summaryread
Notes8
  • kommo.notes.createAdd noteswrite
  • kommo.notes.getGet note by IDread
  • kommo.notes.listList notes by entity typeread
  • kommo.notes.list_for_entityList notes of one entityread
  • kommo.notes.pinPin a notewrite
  • kommo.notes.unpinUnpin a notewrite
  • kommo.notes.updateEdit notewrite
  • kommo.notes.update_batchEdit notes (batch)write
Templates8
  • kommo.templates.createAdd templateswrite
  • kommo.templates.deleteDelete a templatedestructive
  • kommo.templates.delete_batchDelete templates (batch)destructive
  • kommo.templates.getGet template by IDread
  • kommo.templates.listGet list of templatesread
  • kommo.templates.submit_reviewSubmit a WhatsApp template for moderationwrite
  • kommo.templates.update_batchEdit templates (batch)write
  • kommo.templates.update_reviewEdit a WhatsApp template review statuswrite
Sources7
  • kommo.sources.createAdd sourceswrite
  • kommo.sources.deleteDelete sourcedestructive
  • kommo.sources.delete_batchDelete sources (batch)destructive
  • kommo.sources.getGet source by IDread
  • kommo.sources.listGet sourcesread
  • kommo.sources.updateUpdate sourcewrite
  • kommo.sources.update_batchUpdate sources (batch)write
Custom fields6
  • kommo.custom_fields.createAdd custom fieldswrite
  • kommo.custom_fields.deleteDeleting a custom fielddestructive
  • kommo.custom_fields.getGet entity field by IDread
  • kommo.custom_fields.listCustom fields listread
  • kommo.custom_fields.updateUpdate custom fieldwrite
  • kommo.custom_fields.update_batchUpdate custom fields (batch)write
Leads6
  • kommo.leads.createAdd leadswrite
  • kommo.leads.create_complexAdd leads with contact and companywrite
  • kommo.leads.getGet lead by IDread
  • kommo.leads.listGet leadsread
  • kommo.leads.updateUpdate leadwrite
  • kommo.leads.update_batchUpdate leads (batch)write
Salesbots6
  • kommo.salesbots.continueConfirm Salesbot widget block executionwrite
  • kommo.salesbots.getGet a Salesbot by IDread
  • kommo.salesbots.listSalesbots listread
  • kommo.salesbots.runLaunch a Salesbotwrite
  • kommo.salesbots.run_batchLaunch Salesbots (batch)write
  • kommo.salesbots.stopStop a Salesbotdestructive
Catalog custom fields5
  • kommo.catalog_custom_fields.createAdd custom fields to a list (catalog)write
  • kommo.catalog_custom_fields.getGet a custom field of a list (catalog)read
  • kommo.catalog_custom_fields.listList custom fields of a list (catalog)read
  • kommo.catalog_custom_fields.updateUpdate a custom field of a list (catalog)write
  • kommo.catalog_custom_fields.update_batchUpdate custom fields of a list (catalog, batch)write
Catalog elements5
  • kommo.catalog_elements.createAdd list elementswrite
  • kommo.catalog_elements.getGet a list elementread
  • kommo.catalog_elements.listGet list elementsread
  • kommo.catalog_elements.updateEdit a list elementwrite
  • kommo.catalog_elements.update_batchEdit list elements (batch)write
Catalogs5
  • kommo.catalogs.createAdd lists (catalogs)write
  • kommo.catalogs.getGet a list (catalog)read
  • kommo.catalogs.listGet lists (catalogs)read
  • kommo.catalogs.updateEdit a list (catalog)write
  • kommo.catalogs.update_batchEdit lists (catalogs, batch)write
Companies5
  • kommo.companies.createAdd companieswrite
  • kommo.companies.getGet company by IDread
  • kommo.companies.listCompanies listread
  • kommo.companies.updateUpdate companywrite
  • kommo.companies.update_batchUpdate companies (batch)write
Contacts5
  • kommo.contacts.createAdding contactswrite
  • kommo.contacts.getGet contact by IDread
  • kommo.contacts.listContacts Listread
  • kommo.contacts.updateUpdate contactwrite
  • kommo.contacts.update_batchUpdate contacts (batch)write
Custom field groups5
  • kommo.custom_field_groups.createcustom_field_groups.createwrite
  • kommo.custom_field_groups.deletecustom_field_groups.deletedestructive
  • kommo.custom_field_groups.getcustom_field_groups.getread
  • kommo.custom_field_groups.listcustom_field_groups.listread
  • kommo.custom_field_groups.updatecustom_field_groups.updatewrite
Pipeline stages5
  • kommo.pipeline_stages.createAdd stages to pipelinewrite
  • kommo.pipeline_stages.deleteDelete pipeline stagedestructive
  • kommo.pipeline_stages.getGet pipeline stage by IDread
  • kommo.pipeline_stages.listPipeline stages listread
  • kommo.pipeline_stages.updatePipeline stage editwrite
Pipelines5
  • kommo.pipelines.createAdding pipelineswrite
  • kommo.pipelines.deleteDelete pipelinedestructive
  • kommo.pipelines.getGet pipeline by IDread
  • kommo.pipelines.listGet pipelinesread
  • kommo.pipelines.updateEdit pipelinewrite
Roles5
  • kommo.roles.createAdding roleswrite
  • kommo.roles.deleteDelete roledestructive
  • kommo.roles.getGet role by IDread
  • kommo.roles.listUser roles listread
  • kommo.roles.updateEditing roleswrite
Tasks5
  • kommo.tasks.createAdd taskswrite
  • kommo.tasks.getGet task by IDread
  • kommo.tasks.listTasks listread
  • kommo.tasks.updateEdit taskwrite
  • kommo.tasks.update_batchEdit tasks (batch)write
Users5
  • kommo.users.activateActivate userswrite
  • kommo.users.createAdd userswrite
  • kommo.users.deactivateDeactivate usersdestructive
  • kommo.users.getGet user by IDread
  • kommo.users.listUsers listread
Website buttons5
  • kommo.website_buttons.connect_online_chatConnect online chat to a website chat buttonwrite
  • kommo.website_buttons.createAdd a website chat buttonwrite
  • kommo.website_buttons.getGet a website chat buttonread
  • kommo.website_buttons.listList website chat buttonsread
  • kommo.website_buttons.updateUpdate a website chat buttonwrite
Widgets4
  • kommo.widgets.getGetting the widget info by its coderead
  • kommo.widgets.installInstall a widget into the accountwrite
  • kommo.widgets.listWidgets Listread
  • kommo.widgets.uninstallUninstall a widgetdestructive
AI sources3
  • kommo.ai_sources.create_fileAdd an AI source of type filewrite
  • kommo.ai_sources.create_textAdd an AI source of type textwrite
  • kommo.ai_sources.create_urlAdd an AI source of type URLwrite
Conversations3
  • kommo.conversations.closeClose a conversationwrite
  • kommo.conversations.getGet conversation by IDread
  • kommo.conversations.listGet conversationsread
Entity files3
  • kommo.entity_files.attachAttach files to an entitywrite
  • kommo.entity_files.detachDetach files from an entitydestructive
  • kommo.entity_files.listGet files attached to an entityread
Links3
  • kommo.links.createLink entitieswrite
  • kommo.links.deleteUnlink entitiesdestructive
  • kommo.links.listList linked entitiesread
Webhooks3
  • kommo.webhooks.createAdd webhookwrite
  • kommo.webhooks.deleteDelete webhookdestructive
  • kommo.webhooks.listList of webhooksread
Contact chats2
  • kommo.contact_chats.linkLink chats to contactswrite
  • kommo.contact_chats.listGet contact chatsread
Conversation messages2
  • kommo.conversation_messages.listGet conversation messagesread
  • kommo.conversation_messages.sendSend a message to a conversationwrite
Entity tags2
  • kommo.entity_tags.updateAdd tags to a single entitywrite
  • kommo.entity_tags.update_batchAdd tags to entities (batch)write
Events2
  • kommo.events.getGet event by IDread
  • kommo.events.listEvents listread
Loss reasons2
  • kommo.loss_reasons.getGet loss reason by IDread
  • kommo.loss_reasons.listGet loss reasonsread
Tags2
  • kommo.tags.createCreating tags for a particular entity typewrite
  • kommo.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.