Skip to main content
Glama
sam-wilkie

Kommo Kiro MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KOMMO_CLIENT_IDNoOAuth client ID (only for the OAuth flow)
KOMMO_SUBDOMAINNoKommo account subdomain (the part before .kommo.com)
KOMMO_ACCESS_TOKENNoLong-lived access token from a Kommo private integration
KOMMO_REDIRECT_URINoOAuth redirect URI (only for the OAuth flow)
KOMMO_CLIENT_SECRETNoOAuth client secret (only for the OAuth flow)
KOMMO_REFRESH_TOKENNoOAuth refresh token (only for the OAuth flow)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_leadsA

List leads, optionally filtered by pipeline and stage. Read-only. Returns an array of lead objects with embedded contacts and tags, up to limit items (follows Kommo pagination when limit exceeds 50). To fetch custom fields for one lead, use get_lead.

get_leadA

Fetch one lead by ID. Read-only. Returns the full lead object including embedded contacts, tags, and custom_fields_values. Use list_leads instead to browse or find lead IDs.

create_leadA

Create one lead in Kommo. Not idempotent: each call creates a new lead. Tag names that do not exist yet are created automatically. Returns the created lead object. To create the contact and company in the same call, use create_lead_complex.

update_leadA

Update fields on an existing lead by sending fields as the body of a Kommo API v4 PATCH /leads/{id}. Returns the updated lead. Overwrites the given values; omitted fields are untouched. For a stage change prefer move_lead_stage; for several leads use bulk_update_leads.

delete_leadA

Delete a lead. Sends PATCH /leads/{id} with is_deleted=true, so the lead is soft-deleted rather than removed through a hard-delete call. Destructive: the lead disappears from normal lists. Confirm the lead_id with get_lead first.

move_lead_stageA

Move a lead to another stage by setting its status_id (and optionally pipeline_id). Returns the updated lead. Use this instead of update_lead for pipeline moves. Pass pipeline_id when moving to a stage in a different pipeline.

bulk_update_leadsA

Update many leads in a single PATCH /leads request. Each item merges its fields with the lead id and uses the same field keys as update_lead. Returns the Kommo response for the batch. Use update_lead for a single lead.

create_lead_complexA

Create a lead together with a new contact and/or company in one request (POST /leads/complex). Not idempotent; Kommo may merge a duplicate (merged=true). Returns {id, contact_id, company_id, merged}. Contact phone and email are sent as Kommo's built-in PHONE and EMAIL fields. Use create_lead if no contact or company is needed.

add_tagA

Attach a tag to a lead by name. Creates the tag if it does not exist. Reads the lead's current tags and writes back the full list plus the new one, so existing tags are kept. Safe to repeat. Returns the updated lead. See list_tags for existing tag names.

remove_tagA

Detach a tag from a lead by name. Reads the lead's tags and writes back the list without that tag; other tags are kept. The tag itself is not deleted from the account. If no tag with that name exists, nothing changes and the lead is returned as is. Safe to repeat. Returns the updated lead.

list_tagsA

List tags defined in the account for one entity type (up to 250). Read-only. Returns tag objects with id and name. Use it to check exact tag names before add_tag or remove_tag.

create_taskA

Create a follow-up task (type 1) attached to a lead. Not idempotent: each call creates a new task. Returns the created task. Use list_tasks to review existing tasks and add_note for non-actionable remarks.

list_tasksA

List tasks, optionally for one lead or only overdue ones. Read-only. Returns an array (Kommo default page size unless limit is set, max 250); pass page for paginated output with a has_next flag. Overdue means deadline at or before now and not completed.

add_noteA

Add a plain text (common) note to a lead's timeline. Not idempotent: repeated calls add duplicate notes. Notes are internal and are not sent to the customer; use send_chat_message for that. Returns the created note.

send_chat_messageA

Send an outgoing chat message to the customer in a lead's conversation. Finds a conversation (talk) whose entity is this lead and posts to it; fails with an error if the lead has none. The message is delivered externally and cannot be recalled by this server, and repeated calls send duplicates. Use add_note for internal notes.

list_chat_templatesA

List the account's chat message templates. Read-only. Returns template objects as provided by Kommo. This server cannot send a template; it only lists them (send_chat_message sends plain text).

list_contactsA

Search or list contacts. Read-only. Returns an array of up to limit contacts (max 250); pass page for paginated output with a has_next flag. Pass query to match by name, phone, or email; omit it to list recent contacts. Use get_contact for one contact's full details.

get_contactA

Fetch one contact by ID. Read-only. Returns the contact with embedded tags and custom_fields_values (phone, email, and others). Use list_contacts to find the ID.

create_contactA

Create one contact. Not idempotent: it does not check for duplicates, so search with list_contacts first. Phone and email are sent as Kommo's built-in PHONE and EMAIL fields (WORK values). Returns the created contact. To create a lead and contact together, use create_lead_complex.

update_contactA

Update fields on an existing contact by sending fields as the body of a Kommo API v4 PATCH /contacts/{id}. Returns the updated contact. Provided values overwrite existing ones; omitted fields are untouched.

list_pipelinesA

List all sales pipelines in the account. Read-only. Returns pipeline objects (id, name, sort, embedded stages as provided by Kommo). Results are cached for 10 minutes, so very recent changes may not show. Start here to obtain the pipeline_id and stage IDs used by most lead tools.

create_pipelineA

Create a new sales pipeline with the given name (sort order 99). Not idempotent: each call creates another pipeline. Returns the created pipeline. Add stages afterwards with create_stage. Clears the pipelines cache.

update_pipelineA

Rename an existing pipeline. Only the name can be changed with this tool. Returns the updated pipeline. Safe to repeat. Clears the pipelines cache. To change a stage use update_stage.

list_stagesA

List the stages (statuses) of one pipeline. Read-only. Returns stage objects with id, name, sort, color, and is_editable. Results are cached for 10 minutes. Use the stage IDs with list_leads, create_lead, and move_lead_stage.

create_stageA

Add a stage to a pipeline. It is placed after the pipeline's existing editable stages (sort is computed automatically). Not idempotent: each call creates another stage. Returns the created stage. Clears the stage and pipeline caches.

update_stageA

Change a stage's name, sort order, or color. Only the provided fields are sent; supply at least one of name, sort, or color. Returns the updated stage. Safe to repeat. Clears the stage and pipeline caches. Get IDs from list_stages.

list_custom_fieldsA

List custom field definitions for leads, contacts, or companies. Read-only. Returns field objects with id, name, code, type, and enum options. Cached for 1 hour. Use the field IDs in custom_fields_values when calling update_lead or update_contact.

create_custom_fieldA

Create a custom field on leads, contacts, or companies. Not idempotent: each call creates another field, so check list_custom_fields first. Returns the created field. Clears the custom-field cache for that entity. Provide enum_values for select-type fields.

create_companyA

Create a company record with a name only. Not idempotent: duplicates are not checked, so look with list_companies first. Returns the created company. To create a company alongside a new lead, use create_lead_complex.

list_companiesA

List companies. Read-only. Returns an array of up to limit companies (max 250); pass page for paginated output with a has_next flag. No name search.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 30 tools

Disambiguation5/5

Every tool targets a distinct entity+action, and the descriptions proactively resolve the few natural overlaps (update_lead vs move_lead_stage vs bulk_update_leads, create_lead vs create_lead_complex, add_note vs send_chat_message). Cross-references like 'use X instead of Y' make selection unambiguous. No two tools appear to do the same thing.

Naming Consistency5/5

Consistent verb_noun snake_case throughout (create_lead, update_lead, delete_lead, list_leads, create_stage, update_pipeline, add_tag, remove_tag, send_chat_message). Pluralization is applied sensibly for list operations. No mixed conventions or vague verbs.

Tool Count4/5

30 tools is on the heavy side, but the domain genuinely spans leads, contacts, companies, pipelines, stages, tasks, tags, notes, chat, and custom fields, so most tools earn their place. It is comprehensive rather than padded, though a few operations could be consolidated.

Completeness3/5

Leads have full lifecycle coverage (create/get/list/update/delete/move/bulk), but other entities are partial: contacts lack delete, companies have only create/list (no get/update/delete), tasks lack get/update/delete, and pipelines/stages/custom fields lack delete/update in places. These gaps will force workarounds for maintenance workflows.

Maintenance

ActivityMaintained
ResponsivenessResponsive