Skip to main content
Glama
depper-IA

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: always creates new records, never links existing ones. Returns the created lead. Phone and email are stored only if the account has contact fields named or coded PHONE and EMAIL. 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, but a tag name that does not exist yet is created as a side effect. Safe to repeat. Returns the updated lead.

list_tagsA

List tags defined in the account (first 100). 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 one page of Kommo's default size (no pagination or limit parameter). 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 the first conversation (talk) linked to the 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 one page of contact objects, at most limit (capped at 100), with no further pagination. 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 stored (as WORK values) only if the account has contact fields named or coded PHONE and EMAIL; otherwise they are silently skipped. 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 one page of company objects, at most limit (capped at 100), with no name search and no further pagination.

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

Disambiguation4/5

Each tool targets a distinct resource+action, and the descriptions explicitly steer callers between the overlapping pairs (update_lead vs move_lead_stage vs bulk_update_leads, create_lead vs create_lead_complex, add_note vs send_chat_message). A few tools legitimately overlap (bulk vs single update, complex vs simple create) but the descriptions disambiguate them well.

Naming Consistency5/5

Nearly all names follow a clean snake_case verb_noun pattern (list_leads, get_contact, create_pipeline, update_stage, delete_lead). Minor variants like move_lead_stage, create_lead_complex, and bulk_update_leads still fit the verb+noun shape and stay readable.

Tool Count4/5

30 tools is on the heavy side, but the surface spans many distinct entities (leads, contacts, companies, pipelines, stages, custom fields, tags, tasks, notes, chat), so the count is justified. Each tool earns its place rather than being redundant, though it sits just above the comfortable band.

Completeness3/5

Leads have full CRUD plus stage/tag/notes, but several entities are partial: no delete_contact, no delete_company/get_company/update_company, no update/delete for custom fields, and tasks can be created and listed but not updated or completed. These gaps will force workarounds for common lifecycle operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues