kommo-mcp
The kommo-mcp server is a self-hosted MCP server that connects AI assistants (Claude, Cursor, etc.) directly to the Kommo CRM API v4, enabling real-time CRM management through natural language. It provides 41 tools, 4 prompts, and 8 resources.
Read & Search
Retrieve account info, pipelines/stages, users, custom fields, loss reasons, and task types
Search leads, contacts, and companies by text, pipeline, stage, responsible user, date, etc.
Get full lead details including linked contacts and recent notes
List tasks, webhooks, tags, and catalog elements with filters
Audit & Events
Query the event feed to audit who changed what and when (with translated stage/responsible names)
Filter by
created_by=0to identify bot/automation actions
Lead Management
Create and update leads (stage, pipeline, price, responsible user, tags, custom fields)
Bulk update multiple leads at once; change responsible user across many leads in one operation
Tasks & Notes
Create tasks with deadlines and assignees, mark tasks as completed
Add text notes or call logs (inbound/outbound) to leads, contacts, or companies
Contacts & Companies
Create and update contacts (phone/email auto-mapped) and companies
Link entities together (contact↔lead, company↔contact, catalog element↔lead, etc.)
Pipeline & Field Configuration
Create and update pipeline stages (name, order, color)
Create and update custom fields (text, numeric, select, multiselect, date, etc.)
Webhooks
Subscribe to and delete webhooks for Kommo events
Inbox & Chats
List unsorted leads (Inbox), accept/decline them; list and close conversations (talks)
Files & Catalogs
Upload files to the CRM drive and attach them to entities
Create and manage catalog elements
Automation
Trigger a Salesbot on a specific lead (sends real messages — confirmation recommended)
Generic API Access
Make any authenticated API v4 call via a passthrough tool (
kommo_request), restricted to*.kommo.comhosts for security
Prompts & Resources
Ready-made prompts for daily audit, current queue, stalled leads, and loss reports
Static resources for account info, pipelines, users, custom fields, loss reasons, and task types
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kommo-mcpcreate a new lead for John Doe"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kommo-mcp
Servidor MCP (Model Context Protocol) self-hosted para a Kommo CRM (antiga amoCRM, API v4).
Conecta o Claude — ou qualquer cliente MCP (Claude Code, Claude Desktop, Cursor, etc.) — direto na sua conta Kommo, usando um token de longa duração seu. Sem intermediários: as credenciais e os dados trafegam apenas entre a sua máquina/servidor e a API da Kommo.
Com ele, o assistente passa a agir no CRM em tempo real (criar/mover leads, escrever tarefas, trocar responsáveis, auditar o que os bots fizeram) em vez de depender só de dashboards e planilhas.
Sumário
Related MCP server: amoCRM MCP Server
Recursos
41 tools, 4 prompts e 8 resources MCP:
Categoria | Tools |
Leitura |
|
Auditoria |
|
Atendimento |
|
Leads |
|
Tarefas & notas |
|
Contatos & empresas |
|
Funis/etapas |
|
Webhooks |
|
Campos custom |
|
Catálogo & arquivos |
|
Automação |
|
Genérico |
|
Formato de resposta: listagens devolvem { items, page, has_more } com itens resumidos e legíveis
(funil/etapa/responsável por nome, telefone do contato principal, datas no fuso da conta); raw: true
devolve o payload cru da API. Todas as tools declaram MCP annotations (readOnlyHint/destructiveHint),
então clientes conseguem liberar leituras e travar escritas por protocolo.
Prompts (viram comandos no cliente MCP): auditoria-do-dia, fila-agora, leads-parados, relatorio-perdas.
Resources: kommo://account, kommo://pipelines, kommo://users, kommo://custom-fields/{leads,contacts,companies}, kommo://loss-reasons, kommo://task-types.
Pré-requisitos
Node.js ≥ 18 (usa
fetchnativo; sem dependências de runtime além do SDK do MCP).Uma conta Kommo com permissão de administrador (necessária para gerar o token).
Um cliente MCP — este README foca no Claude Code.
Instalação
git clone https://github.com/RonaldoESantosRevOps/kommo-mcp.git
cd kommo-mcp
npm install1. Gerar o token da Kommo
Use um token de longa duração (não expira por anos e não precisa de refresh):
Na Kommo, vá em Configurações → Integrações.
Clique para criar uma integração privada (não precisa preencher Redirect URL nem webhook).
Abra a aba Chaves e escopos.
Clique em Gerar token de longa duração, escolha a validade (até 5 anos) e copie o token.
O escopo
crmjá é suficiente para todas as tools.
Guarde o token com cuidado — ele dá acesso total ao seu CRM com os seus direitos de admin.
Documentação oficial: https://pt-developers.kommo.com/docs/token-de-longa-duração
2. Configurar o .env
Copie o exemplo e preencha:
cp .env.example .envKOMMO_SUBDOMAIN=seusubdominio # a parte antes de .kommo.com (ex.: "minhaempresa")
KOMMO_TOKEN=seu_token_de_longa_duracaoO .env já está no .gitignore — nunca o versione. O servidor lê esse arquivo
automaticamente (ele fica ao lado do index.mjs), então você não precisa exportar variáveis
de ambiente manualmente.
3. Testar a conexão
npm run smokeEsse smoke test sobe o servidor via protocolo MCP e chama tools de leitura contra a API real. Saída esperada (resumida):
✓ tools expostas: 41
✓ annotations ok (16 tools read-only)
✓ allowlist bloqueia host externo no passthrough
✓ kommo_account -> <Nome da sua conta> (id ..., BRL)
✓ kommo_pipelines -> N funis; principal: ...
✓ kommo_users -> N usuários (M inativos: ...)
✓ kommo_search_leads -> resumo ok; ...
✓ kommo_get_events -> 5 eventos traduzidos (autor, etapas por nome, ISO)
✓ kommo_talks / kommo_unsorted / kommo_tags / kommo_loss_reasons ...
✓ SMOKE OKO teste de escrita opcional (node smoke.mjs --write) faz um round-trip inofensivo de webhook
(assina, confere e remove), sem tocar em leads ou contatos.
Se aparecer HTTP 401 Invalid user name or password, veja Troubleshooting.
Usar no Claude Code
Registrar o servidor
claude mcp add kommo -s user -- node /caminho/absoluto/para/kommo-mcp/index.mjsUse o caminho absoluto até o
index.mjs(ex.:~/kommo-mcp/index.mjsresolvido para algo como/home/voce/kommo-mcp/index.mjs).O servidor lê o
.envdele mesmo, então não é preciso passar variáveis no comando.
Escopos (-s):
Escopo | Onde vale | Quando usar |
| Todos os seus projetos | Recomendado — você usa a mesma conta Kommo em qualquer lugar |
| Compartilhado no repositório ( | Se um time inteiro vai usar |
| Só você, só neste projeto | Testes pontuais |
Verificar
claude mcp get kommo # deve mostrar "Status: ✔ Connected"
claude mcp list # lista todos os servidores MCPReinicie o Claude Code depois de registrar: as tools de um servidor MCP só entram quando a sessão inicia.
Permissões: leitura sem prompt, escrita sempre confirmando
Por padrão o Claude Code pede confirmação a cada chamada de tool. Você pode liberar apenas as
tools de leitura (consultas) e manter as de escrita sempre pedindo OK. No seu
~/.claude/settings.json:
{
"permissions": {
"allow": [
"mcp__kommo__kommo_account",
"mcp__kommo__kommo_pipelines",
"mcp__kommo__kommo_users",
"mcp__kommo__kommo_custom_fields",
"mcp__kommo__kommo_search_leads",
"mcp__kommo__kommo_get_lead",
"mcp__kommo__kommo_list_tasks",
"mcp__kommo__kommo_search_contacts",
"mcp__kommo__kommo_search_companies",
"mcp__kommo__kommo_list_webhooks",
"mcp__kommo__kommo_get_events",
"mcp__kommo__kommo_tags",
"mcp__kommo__kommo_loss_reasons",
"mcp__kommo__kommo_talks",
"mcp__kommo__kommo_unsorted",
"mcp__kommo__kommo_catalog_elements"
]
}
}Todas as tools de escrita (criar/editar leads, contatos, empresas, tarefas, notas, etapas,
campos custom, vínculos, webhooks, lotes, Inbox accept/decline, Salesbot e upload) e o
passthrough kommo_request continuam pedindo confirmação — o comportamento seguro
recomendado. As 16 tools de leitura também declaram readOnlyHint: true via MCP annotations,
então clientes que respeitam annotations já as tratam como seguras.
Exemplos de uso (linguagem natural)
Depois de registrado, é só pedir ao Claude:
"Liste os leads parados na etapa 'Interesse em Agendar' do funil principal."
"O que os bots fizeram hoje? Puxe os eventos com
created_by=0das últimas 6 horas.""Crie um lead 'João da Silva', telefone +55 11 99999-9999, no funil de qualificação."
"Mova o lead #12345 para 'Pagamento' e troque o responsável para a Ana."
"Crie uma tarefa de follow-up amanhã às 10h no lead #12345 para o Carlos."
Usar em outros clientes MCP
O servidor fala MCP por stdio, então funciona em qualquer cliente compatível. Exemplo de configuração genérica (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"kommo": {
"command": "node",
"args": ["/caminho/absoluto/para/kommo-mcp/index.mjs"]
}
}
}Como o .env é lido a partir da pasta do servidor, não é necessário passar env no JSON
(mas você pode, se preferir injetar KOMMO_SUBDOMAIN/KOMMO_TOKEN por ali).
Referência das tools
Datas aceitam ISO (
2026-06-26T10:00) ou epoch. IDs de funil/etapa/usuário você descobre comkommo_pipelinesekommo_users. Listagens devolvem{ items, page, has_more }; onde houverraw,raw: truedevolve o payload cru da API.
Leitura
Tool | Parâmetros principais | O que faz |
| — | Dados da conta (confirma a conexão). |
| — | Lista funis e suas etapas ( |
| — | Lista usuários com |
|
| Lista campos personalizados e seus |
|
| Busca leads resumidos (funil/etapa/responsável por nome, telefone, tags, motivo de perda). |
|
| Detalhe cru de um lead (contatos, catálogo, motivo de perda); anexa notas se |
|
| Lista tarefas resumidas. |
|
| Busca contatos (telefone/email extraídos). |
|
| Busca empresas. |
| — | Lista os webhooks configurados (destino e eventos). |
|
| Lista tags (id, nome, cor). |
| — | Lista os motivos de perda configurados. |
|
| Lista elementos de um catálogo (produtos/serviços). |
Auditoria
Tool | Parâmetros principais | O que faz |
|
| Feed de eventos traduzido (etapas e autores por nome, datas no fuso da conta). |
Atendimento & Inbox
Tool | Parâmetros principais | O que faz |
|
| Fila de conversas (chats) em tempo real. |
|
| Fecha uma conversa. |
|
| Inbox de leads não distribuídos ( |
|
| Aceita um item do Inbox (vira lead ativo). |
|
| Rejeita um item do Inbox (difícil de desfazer). |
Escrita em leads
Tool | Parâmetros principais | O que faz |
|
| Cria lead; vincula contato se informado. |
|
| Atualiza lead; tags são mescladas preservando as existentes. |
|
| Troca o responsável em lote (fatiamento automático). |
|
| Atualização em massa com blocos de 200 e relatório de sucesso/falha. |
|
| Adiciona nota ou registro de ligação. |
|
| Cria tarefa (prazo padrão: +1 dia). |
|
| Conclui uma tarefa com resultado opcional. |
Contatos & empresas
Tool | Parâmetros principais | O que faz |
|
| Cria contato (telefone/email viram campos PHONE/EMAIL). |
|
| Atualiza um contato. |
|
| Cria empresa. |
|
| Atualiza uma empresa. |
|
| Vincula entidades, inclusive produto/procedimento a lead. |
Funis/etapas
Tool | Parâmetros principais | O que faz |
|
| Cria uma etapa num funil. |
|
| Renomeia/reordena/recolore uma etapa. |
Webhooks
Tool | Parâmetros principais | O que faz |
|
| Assina eventos da Kommo numa URL. |
|
| Cancela um webhook pela URL. |
Campos personalizados
Tool | Parâmetros principais | O que faz |
|
| Cria campo custom (use |
|
| Renomeia e/ou acrescenta opções a um select preservando as existentes. |
Catálogo, arquivos e automação
Tool | Parâmetros principais | O que faz |
|
| Cria um elemento (ex.: procedimento com preço). |
|
| Sobe arquivo ao drive e anexa à entidade, se informada. |
|
| Dispara um Salesbot num lead (envia mensagens reais). Confirme sempre. |
Genérico
Tool | Parâmetros principais | O que faz |
|
| Chamada autenticada a qualquer endpoint; restrita a hosts |
* = obrigatório.
Estrutura do projeto
kommo-mcp/
├── index.mjs # Servidor MCP: 41 tools, 4 prompts, 8 resources, transporte stdio
├── kommo.mjs # Cliente HTTP (allowlist de hosts, retry/backoff, timeout, cache) + .env
├── smoke.mjs # Teste end-to-end: sobe o server e valida contra a API real
├── package.json
├── .env.example # Modelo das variáveis (copie para .env)
├── .gitignore # Ignora .env e node_modules
├── LICENSE
└── README.mdSegurança
Allowlist de hosts: o cliente HTTP só envia o token para
{seu-subdomínio}.kommo.comedrive*.kommo.com. Mesmo que alguém induza o assistente a chamarkommo_requestcom uma URL externa (prompt injection via dados do CRM), o token não sai da infraestrutura da Kommo.Annotations MCP: leituras declaram
readOnlyHint, escritas declaramdestructiveHint, permitindo que o cliente aplique permissões distintas por protocolo.Nunca versione o
.env(já protegido pelo.gitignore). Para compartilhar configuração, use o.env.example.O token tem os direitos de admin de quem o gerou — trate como senha.
Se um token vazar, gere outro na Kommo: isso invalida o anterior imediatamente.
Prefira o escopo mínimo (
crm) ao criar a integração privada.Rode o servidor numa máquina/servidor sob seu controle.
Limitações conhecidas
Salesbot nativo da Kommo: o fluxo/cenário do bot é editável apenas pela interface da Kommo. Pela API dá para ler tudo o que o bot fez (via
kommo_get_events/ notas) e dispará-lo num lead (kommo_run_salesbot) — mas não redesenhar o fluxo.Mensagens de chat (amojo): ler/enviar o conteúdo das conversas exige registrar um canal próprio na Chats API (credencial separada); está fora do escopo deste servidor.
Módulo Customers: só funciona em contas com o módulo habilitado no plano (
customers_modediferente dedisabled); alcançável viakommo_requestse for o caso.v2.x muda o formato das listagens para
{ items, page, has_more }com itens resumidos (v1.x devolvia o array cru). Useraw: trueonde precisar do payload original.
Troubleshooting
HTTP 401 Invalid user name or password
O token foi rejeitado. Causas comuns:
O subdomínio (
KOMMO_SUBDOMAIN) e o token são de contas diferentes. Confirme o subdomínio na URL ao logar na Kommo (a parte antes de.kommo.com).A integração privada está desativada/em rascunho, ou você gerou um token novo depois (o que invalida o anterior). Gere um token novo e atualize o
.env.O usuário que criou a integração não é mais admin ou foi desativado.
As tools não aparecem no Claude Code
Reinicie o Claude Code após claude mcp add — servidores MCP só carregam no início da sessão.
Confira com claude mcp get kommo.
Faltam KOMMO_SUBDOMAIN e/ou KOMMO_TOKEN
O .env não foi encontrado ou está incompleto. Confirme que ele existe na raiz do projeto e
tem as duas variáveis.
Deploy em servidor (VPS)
Como o transporte é stdio, o servidor roda sob demanda quando o cliente MCP o invoca — não precisa ficar de pé como serviço de rede. Para usar numa VPS:
git clone https://github.com/RonaldoESantosRevOps/kommo-mcp.git
cd kommo-mcp && npm install
cp .env.example .env # preencha com seu subdomínio e tokenE aponte o cliente MCP para o caminho do index.mjs nesse servidor.
Licença
MIT © Ronaldo E. Santos
Available Tools
29 toolskommo_accountA
Dados da conta Kommo (id, nome, subdomínio, moeda, fuso). Use para confirmar conexão.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It lists returned fields but does not explicitly state that the operation is read-only or non-destructive. However, the context of confirming a connection implies safe behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that includes key data fields and use case. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description adequately informs the agent about what data is returned and the intended use. It is complete for a simple read-only account info tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%. No parameter description is needed, and the baseline score is 4 for such cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns Kommo account data (id, name, subdomain, currency, timezone) and its purpose is to confirm connection. It is distinct from sibling tools like kommo_get_lead or kommo_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'Use para confirmar conexão' (use to confirm connection), providing clear context for when to use the tool. It does not explicitly discuss when not to use or alternatives, but given sibling diversity, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_add_noteC
Adiciona uma nota de texto a um lead (ou contato/empresa).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| entity | No | leads | |
| entity_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should reveal behavioral traits like whether the note is appended or overwrites, or any side effects. It only states the action without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it lacks necessary detail for a tool with no annotations. It sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 3 parameters, no annotations, and no output schema, the description is incomplete. It does not indicate what the tool returns or any success/failure conditions, making it insufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but the description does not explain the parameters. It does not clarify that 'entity' can be leads/contacts/companies or that 'entity_id' is an integer ID. The description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Adiciona uma nota de texto' (adds a text note) and the target entities 'lead (ou contato/empresa)'. It distinguishes the tool from siblings which create entities or perform other actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not mention prerequisites (e.g., entity must exist) or exclude cases where a different tool (like create custom field) might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_change_responsibleB
Troca o responsável de um ou vários leads de uma vez (operação em lote).
| Name | Required | Description | Default |
|---|---|---|---|
| lead_ids | Yes | ||
| responsible_user_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only reveals that it is a batch operation. It does not disclose potential side effects, permissions required, atomicity, or error handling, which are critical for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the core function and batch capability without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having few parameters, the description omits important contextual details such as return values, error conditions, prerequisites, and whether the operation is additive or replaces the responsible user entirely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explicitly define the parameters beyond the tool name. While lead_ids and responsible_user_id are inferable, the description adds no additional semantic detail such as value constraints or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (change responsible), the resource (one or multiple leads), and the batch operation scope, distinguishing it from sibling tools like kommo_update_lead which is for single lead updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like kommo_update_lead, or conditions under which it should not be used. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_complete_taskC
Marca uma tarefa como concluída, opcionalmente com texto de resultado.
| Name | Required | Description | Default |
|---|---|---|---|
| result | No | ||
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavior. It only mentions optional result text but fails to describe side effects (e.g., whether the task is removed, if reversibility is possible, or any state changes beyond marking as completed).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core action and optionality. It is front-loaded and wastes no words, though it could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters and no output schema, the description is too minimal. It omits essential context like expected outcomes, error handling, or relationship to other task operations, making it incomplete for confident use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description adds minimal parameter clarification: it mentions result is optional but does not explain task_id's purpose or format beyond the schema. The meaning of both parameters is insufficiently elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('marks as completed') and the resource ('task'), and includes optionality for result text. It effectively distinguishes from sibling tools like kommo_create_task and kommo_list_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., task must exist) or contexts where this tool is appropriate or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_create_companyC
Cria uma empresa.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| responsible_user_id | No | ||
| custom_fields_values | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the action (creates) without mentioning authentication requirements, side effects, rate limits, or whether the operation is idempotent. Critical details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short sentence) but lacks substance. It is not verbose, but the brevity sacrifices utility. Adequate for a simple tool, but could add critical context without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal input schema descriptions, the description is incomplete. It does not describe return values, error scenarios, or any behavioral constraints important for a CRUD operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the three parameters (name, responsible_user_id, custom_fields_values). It does not explain their purpose, format, or constraints, leaving the agent with minimal guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Cria uma empresa.' (Portuguese for 'Creates a company.') clearly states the verb 'creates' and the resource 'company'. It implicitly distinguishes from siblings like update_company or search_companies, though it lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when to create a company vs. create a contact or search for an existing company). The description offers no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_create_contactC
Cria um contato. Telefone/email viram custom fields PHONE/EMAIL automaticamente.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Nome completo (ou use first_name/last_name) | |
| No | |||
| phone | No | ||
| last_name | No | ||
| first_name | No | ||
| responsible_user_id | No | ||
| custom_fields_values | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It reveals that phone/email become custom fields automatically, which is a useful trait. However, it does not disclose other behavioral aspects such as potential side effects, authentication needs, or handling of duplicates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence. It is front-loaded and to the point. However, it could include more details without becoming overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description is incomplete. It lacks explanations for most parameters, no example usage, and no context on prerequisites or integration with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (only name described), and the description adds no meaning for the other six parameters. The automatic custom field behavior is not parameter-specific. The 'custom_fields_values' structure and other fields remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a contact and notes automatic mapping of phone/email to custom fields. However, it does not explicitly differentiate from sibling tools like kommo_create_company or kommo_create_lead, though the name and action are distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, no prerequisites, and no mention of when not to use it. The description only states what it does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_create_custom_fieldB
Cria um campo personalizado numa entidade. type: text, numeric, select, multiselect, date, url, checkbox, textarea, etc. Para select/multiselect, passe enums.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | No | text | |
| enums | No | Opções (para select/multiselect) | |
| entity | No | leads |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It lists allowed types but omits destructive potential, permission requirements, or side effects. Basic creation description only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy, front-loaded with purpose. Every sentence is informative and necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 4 parameters, the description covers core creation but lacks details on uniqueness constraints, limits, or response. Sibling tools provide some context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 25% of schema parameters have descriptions. Description adds value for enums (explains when to use) and lists type options, but does not clarify name or entity beyond schema defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a custom field in an entity and lists supported types. It implies creation as opposed to update (sibling kommo_update_custom_field), but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on using enums for select/multiselect types, but offers no when-to-use vs alternatives, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_create_leadC
Cria um lead. Opcionalmente já vincula um contato (nome + telefone) e seta campos custom.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| price | No | ||
| status_id | No | ||
| pipeline_id | No | ||
| contact_name | No | ||
| contact_phone | No | ||
| responsible_user_id | No | ||
| custom_fields_values | No | Formato Kommo: [{field_id, values:[{value}]}] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions optional contact linking but does not disclose side effects (e.g., duplicate handling), required permissions, or response behavior. Inadequate for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence covering key functionality. Concise and front-loaded, but could be more informative about other parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no annotations, the description is too brief. It omits explanation of return values, behavior for missing optional fields, and interaction with other entities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 13% schema description coverage. The description explains that contact_name and contact_phone are for linking a contact and custom_fields_values for custom fields, but five parameters (price, status_id, pipeline_id, responsible_user_id) remain unexplained. Insufficient compensation for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool creates a lead, with optional contact linking and custom field setting. It distinguishes from siblings like kommo_create_contact (creates only contacts) and kommo_update_lead (updates existing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., kommo_create_contact for contacts only, or kommo_update_lead for modifying an existing lead). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_create_statusC
Cria uma nova ETAPA dentro de um funil (desenvolver etapas). Informe pipeline_id, name e opcionalmente sort/color.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| sort | No | Posição na ordem | |
| color | No | Hex da cor, ex.: #fffeb2 | |
| pipeline_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states it creates a stage. It does not disclose behavioral traits such as idempotency, side effects, or specific permissions required. The description adds no detail beyond what is implied by the verb 'cria'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no redundancy. It lacks formal structure (e.g., bullet points) but is not verbose, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without annotations or an output schema, the description is insufficient. It does not explain what the tool returns, error conditions, or how it integrates with other tools. For a creation tool, key context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions the key parameters (pipeline_id, name, optional sort/color) and their role, partially compensating for the schema's 50% description coverage. However, it does not explain the meaning of 'name' or 'pipeline_id' beyond their names, limiting added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new stage ('etapa') within a pipeline, using a specific verb and resource. However, it does not differentiate from other creation tools like kommo_create_lead or kommo_create_contact, though the name implies status creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., why not use update_status or pipelines). The parenthetical 'desenvolver etapas' implies usage for stage development, but no exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_create_taskB
Cria uma tarefa vinculada a um lead (ou outra entidade), com prazo e responsável.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| entity | No | leads | |
| entity_id | No | ||
| task_type_id | No | Tipo (1=contato, 2=reunião...). Opcional. | |
| complete_till | No | Prazo: ISO (2026-06-26T15:00) ou epoch. Default: +1 dia. | |
| responsible_user_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states basic creation behavior without disclosing traits like idempotency, error handling, or authentication needs. For a creation tool, more detail is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the key action. However, it lacks depth that could be added without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is incomplete. It does not explain return values, prerequisites, or how parameters interact. For a 6-parameter creation tool, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is only 33% (2 of 6 parameters have descriptions). The tool description adds no additional parameter meaning beyond the schema. It does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Cria' (creates), the resource 'tarefa' (task), and specifies it is linked to a lead or other entity with deadline and responsible person. This distinguishes it from siblings like kommo_list_tasks and kommo_complete_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating tasks but does not explicitly state when to use it vs alternatives like kommo_complete_task or kommo_list_tasks. No when-not-to-use guidance or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_custom_fieldsA
Lista campos personalizados de uma entidade (leads/contacts/companies). Use para achar field_id (ex.: campos 'N8N | ...' de tracking).
| Name | Required | Description | Default |
|---|---|---|---|
| entity | No | leads |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should cover behavioral traits. It states the tool lists custom fields, which implies a read-only operation, but does not explicitly confirm idempotency, rate limits, or authorization requirements. Some behavioral context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no unnecessary words. The first sentence states the function, the second gives a concrete use case. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and no output schema, the description covers the purpose and usage context adequately. It could optionally describe the return format, but it's not essential given the simplicity of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter 'entity' with enum values, but no descriptions. The description adds meaning by listing the options (leads/contacts/companies) and explains the parameter's role in specifying which entity's custom fields to list. This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists custom fields for leads, contacts, or companies, and the purpose of finding field_id. It distinguishes from sibling tools like kommo_create_custom_field and kommo_update_custom_field by indicating this is a retrieval operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance to use the tool to find field_id, which implies it should be used when you need to retrieve field identifiers. While it doesn't explicitly state when not to use it, the purpose is clear enough to differentiate from modification tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_delete_webhookB
Remove (cancela) um webhook pela URL de destino.
| Name | Required | Description | Default |
|---|---|---|---|
| destination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It states 'remove' (destructive), but does not specify if deletion is irreversible, if it requires certain permissions, or any side effects. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the action and resource, with no unnecessary words. It is concise and immediately informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no annotations or output schema, the description is just adequate. It identifies the parameter and purpose but lacks details on return values, error handling, or prerequisites, leaving the agent with some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly mentions 'by destination URL', which directly corresponds to the single parameter 'destination', adding meaning beyond the schema (which has 0% description coverage). However, it does not specify required format, validation rules, or example values, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'remove' (cancela) and the resource 'webhook', and specifies the deletion method 'by destination URL'. This distinguishes it from sibling tools like kommo_subscribe_webhook and kommo_list_webhooks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or prerequisites. The description only implies that the destination URL is needed, but does not explain context such as checking if the webhook exists or ensuring correct URL format.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_get_eventsA
Feed de eventos (auditoria). Essencial para ENTENDER BOTS: quem mudou o quê, quando. Filtre created_by=0 para ações de bot/automação nativa. Tipos comuns: lead_status_changed, entity_responsible_changed, lead_added, incoming_chat_message.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Data final (ISO ou epoch) | |
| from | No | Data inicial (ISO ou epoch) | |
| page | No | ||
| type | No | Tipos de evento (ex.: lead_status_changed) | |
| limit | No | ||
| entity | No | Tipo de entidade do evento | |
| entity_id | No | Restringe a uma entidade específica | |
| created_by | No | Filtra por autor. 0 = bot/sistema. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies read-only behavior ('feed', 'auditoria'), but does not explicitly state that the tool only reads data. No annotations exist to clarify. Could be more transparent about being a non-destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise (two sentences plus a list), front-loaded with key use case. Could benefit from slight structuring (e.g., bullet points for event types) but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description does not explain the format of returned events. For a list tool, this is a minor gap. However, given the complexity (8 params, no nested objects), the description covers enough for an agent to understand the tool's purpose and key filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 75% of parameters with descriptions. The description adds valuable context: using created_by=0 for bot actions and listing common event types like lead_status_changed. Some parameters like 'to' and 'from' are only described in schema; no extra value from description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes a specific resource (event feed/audit log) and verb (get). Clearly states it is essential for understanding bot actions, distinguishing it from other tools in the set that do not provide event retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: filter by created_by=0 for bot actions, lists common event types. However, does not mention when not to use this tool or alternative approaches, though no sibling event tool exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_get_leadB
Detalhe completo de um lead por id, com contatos. Use note_limit>0 para anexar as últimas notas.
| Name | Required | Description | Default |
|---|---|---|---|
| lead_id | Yes | ||
| note_limit | No | Quantas notas recentes anexar (0 = nenhuma) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only mentions retrieving lead details and attaching notes, but does not confirm read-only nature, auth requirements, or any side effects. The tool name implies read access, but transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences, no redundant information, and front-loads the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with no output schema, the description adequately states that it returns complete details with contacts and optional notes. However, it leaves ambiguity about the exact response structure and does not mention that contacts are included by default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (lead_id lacks description). The description adds no new semantics for lead_id and merely repeats the note_limit information already present in the schema. It does not compensate for the undocumented lead_id parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Detalhe completo de um lead por id, com contatos' which clearly indicates getting a lead by ID with contacts, distinguishing it from sibling tools like kommo_search_leads or kommo_update_lead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as kommo_search_leads or kommo_get_events. The description only states what the tool does without any when/when-not or comparison context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_linkC
Vincula uma entidade a outra (ex.: contato↔lead, empresa↔lead/contato).
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | ||
| entity_id | Yes | ||
| to_entity_id | Yes | ||
| to_entity_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full behavioral burden. It only states the linking action but does not disclose reversibility, idempotency, permission requirements, side effects, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short sentence). It front-loads the purpose but lacks structure. While brevity is good, it omits critical details that could be added without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters, no output schema, and no annotations, the description is insufficient. It does not mention return values, error conditions, or prerequisites (e.g., both entities must exist). A user would need to consult external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning parameter descriptions are absent. The description only provides a high-level example but does not explain the meaning of 'entity' vs 'to_entity_type', or the role of the IDs. The enums are self-explanatory, but the description adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool links one entity to another, with concrete examples (contact↔lead, company↔lead/contact). This distinguishes it from create/update tools, though it could explicitly differentiate from similar association tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like creating a new entity or updating existing ones. The description lacks context about prerequisites (e.g., entities must already exist) and when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_list_tasksB
Lista tarefas. Filtra por responsável, entidade e status (concluída ou não).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| entity_id | No | ||
| entity_type | No | ||
| is_completed | No | ||
| responsible_user_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only mentions filtering capabilities but does not disclose behavioral traits such as pagination, safety (read-only implied), auth needs, or rate limits. Schema has 0% coverage, so description should be more detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no superfluous words. It is front-loaded and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description covers only half the parameters. It lacks information on pagination, default sorting, or response format, leaving significant gaps for an effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds meaning for three parameters (responsible_user_id, entity_id/entity_type, is_completed) but ignores page and limit. It partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists tasks and mentions filtering capabilities (responsible, entity, status). It distinguishes from sibling tools like kommo_create_task and kommo_complete_task, but does not explicitly differentiate from other listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing tasks with filters but provides no explicit guidance on when to use this tool versus alternatives like kommo_search_leads. No 'when not to use' or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_list_webhooksA
Lista os webhooks configurados na conta (destino e eventos assinados).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not disclose behavioral traits such as being read-only or having no side effects. While listing is inherently non-destructive, it is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence) and front-loaded. However, it is very brief and could benefit from additional structure or detail, though not excessively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, straightforward list), the description is mostly complete. However, lack of output schema or return format description mildly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so baseline score is 4. The description adds no parameter information, which is acceptable as there are none to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists webhooks configured in the account, specifying the details (destination and subscribed events). It effectively distinguishes from sibling tools like subscribe/delete webhooks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description is minimal and does not provide context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_pipelinesA
Lista todos os funis e suas etapas (id, nome, ordem). Use para descobrir pipeline_id/status_id antes de criar ou mover leads.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states a read-only listing operation, implying no side effects. However, it doesn't disclose other behavioral aspects such as authentication requirements, rate limits, or response format. The description is adequate but could be more explicit about the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences. The first sentence defines the output, and the second provides usage context. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description provides essential information: what the tool returns (pipelines and stages with id, name, order) and when to use it. It could be slightly improved by noting that the output is a list or by providing an example, but it is largely complete for a simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is trivially 100%. The description does not need to add parameter semantics. Baseline for 0 parameters is 4, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all pipelines and stages with id, name, and order. The specific verb 'lista' (lists) and resource 'funis e suas etapas' are unambiguous. The purpose is further clarified by indicating it's used to discover pipeline_id/status_id, distinguishing it from siblings like kommo_create_lead or kommo_search_leads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool 'para descobrir pipeline_id/status_id antes de criar ou mover leads.' This provides clear context for when to invoke it. While it doesn't explicitly state when not to use it, the guidance is sufficient given the sibling tools that perform other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_requestA
Passthrough genérico autenticado da API v4 da Kommo, para qualquer coisa não coberta pelas tools acima. path relativo (ex.: '/companies'). Cuidado: PATCH/POST/DELETE alteram dados.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Corpo JSON para POST/PATCH | |
| path | Yes | Ex.: /leads/123 ou /companies?limit=10 | |
| query | No | Params de query (objeto; suporta arrays e filter aninhado) | |
| method | No | GET |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It warns that PATCH/POST/DELETE methods alter data, which is critical. However, it lacks details on authentication, rate limits, error handling, or the response format, leaving gaps for an agent to invoke correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise, consisting of two sentences that efficiently convey purpose, usage context, and a critical warning. It is front-loaded and every sentence serves a clear function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description does not mention what the tool returns (presumably raw API response). It also omits details about error handling or required authentication scopes. Given the generic nature of the tool, the completeness is adequate but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% (method parameter lacks description). The description adds minimal extra meaning beyond what's in the schema (e.g., re-emphasizing relative path). The schema itself already provides examples and types, so the description's contribution is limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a generic authenticated passthrough for Kommo API v4, intended for endpoints not covered by the other specific tools. It gives an example relative path and distinguishes itself from the many sibling tools that handle specific operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'for anything not covered by the above tools,' providing a clear context for when to use this tool as a fallback. It warns that PATCH/POST/DELETE alter data, but does not explicitly advise against using it when a specific tool exists, though that is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_search_companiesC
Busca empresas por texto (nome, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not disclose behavioral traits such as read-only nature, return format, pagination defaults, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks structure. It front-loads the purpose but omits important details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with 3 parameters and no output schema or annotations, the description is severely incomplete. It fails to specify return value structure or pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description only loosely references the query parameter with 'por texto' but does not explain the page and limit parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches companies by text (nome, etc.), which distinguishes it from sibling tools like kommo_search_contacts and kommo_search_leads. However, it lacks specificity about which fields are searched beyond 'nome'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_search_contactsB
Busca contatos por texto (nome, telefone, email).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It only states that the tool searches contacts by text, failing to disclose read-only nature, permissions, rate limits, or behavior when no results are found. This is insufficient for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous words. It efficiently communicates the core purpose without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low complexity, the description lacks essential context such as output format (list of contacts?), pagination behavior, and error handling. Without an output schema, agents are left to infer return structure, which hinders effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description partially clarifies the 'query' parameter (by naming search fields) but entirely omits 'page' and 'limit' parameters, which are common pagination controls but remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search contacts by text (name, phone, email)' using a specific verb and resource, and distinguishes from sibling tools like kommo_search_companies and kommo_search_leads which operate on different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to search contacts by text) but provides no explicit guidance on when not to use it or alternatives. Given sibling tools for creating/updating contacts, the usage context is inferred but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_search_leadsA
Busca leads. Filtra por texto (query), funil, etapa e responsável. Retorna leads com contatos embutidos.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| query | No | Texto livre (nome, telefone, etc.) | |
| status_id | No | ||
| pipeline_id | No | ||
| responsible_user_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only mentions return of leads with contacts, but lacks details on pagination (page/limit), search behavior (exact/partial match), or rate limits. More transparency needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action and filters. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing explanation of pagination behavior and how to handle results beyond 'retorna leads com contatos embutidos'. No output schema, so more detail on return structure would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning for 4 of 6 parameters: query (texto libre), pipeline_id (funil), status_id (etapa), responsible_user_id (responsável). Does not cover page and limit, but schema has defaults and max. With low schema coverage (17%), description compensates for most parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Busca leads' and lists filtering criteria (query, funnel, stage, responsible). It distinguishes from sibling tools like kommo_get_lead (single lead) and kommo_search_contacts (contacts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for searching leads with filters, but no explicit when-to-use or when-not-to-use guidance. Does not mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_subscribe_webhookB
Assina um webhook: envia eventos da Kommo para uma URL. settings = lista de eventos (ex.: add_lead, status_lead, update_lead, add_contact, add_task).
| Name | Required | Description | Default |
|---|---|---|---|
| settings | Yes | Eventos a assinar | |
| destination | Yes | URL HTTPS que receberá os eventos |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behaviors. It does not mention idempotency, validation, failure handling, or side effects. Only states the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loading the purpose. Efficient, though could be slightly more structured with bullet points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks mention of return value (e.g., webhook ID, confirmation). No cross-reference to kommo_get_events for available events. Adequate for a simple tool but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds valuable examples for settings (add_lead, etc.) and clarifies that settings is a list of events. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool subscribes a webhook to send Kommo events to a URL, with specific examples of events. It distinguishes from sibling tools like kommo_delete_webhook and kommo_list_webhooks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., list vs subscribe vs delete). No prerequisites or conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_update_companyC
Atualiza uma empresa existente.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| company_id | Yes | ||
| responsible_user_id | No | ||
| custom_fields_values | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only says 'updates an existing company'. It fails to disclose whether the update is partial, requires permissions, or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise but sacrifices necessary detail. It is one sentence with no structure, leading to under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal description, the tool is poorly specified. Agent lacks context about expected behavior, return values, and error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no parameter details. The agent gets no help understanding what 'name', 'company_id', 'responsible_user_id', or 'custom_fields_values' mean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Atualiza uma empresa existente' clearly states the verb (update) and resource (existing company), distinguishing it from creation tools like kommo_create_company. However, it could be more specific about what aspects are updatable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings such as kommo_create_company or kommo_update_contact. Missing context on prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_update_contactB
Atualiza um contato existente (nome, responsável, campos custom).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| last_name | No | ||
| contact_id | Yes | ||
| first_name | No | ||
| responsible_user_id | No | ||
| custom_fields_values | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It merely states 'updates' without clarifying whether the update is destructive, requires permissions, or how existing fields are merged. The description lacks essential behavioral context for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is efficient and to the point. However, it could be improved by adding more structure or bullet points for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description is too minimal. It does not cover return values, error handling, or the structure of custom_fields_values. The tool's complexity demands more context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description references three parameters (nome, responsável, campos custom) which correspond to name fields, responsible_user_id, and custom_fields_values. However, it does not explain the required contact_id parameter or the format of custom_fields_values. With 0% schema description coverage, the description adds some meaning but not enough to fully compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Atualiza' (Updates) and the resource 'contato existente' (existing contact), and lists specific fields that can be updated (nome, responsável, campos custom). This distinguishes it from sibling tools like create_contact or delete_contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as kommo_change_responsible or kommo_update_lead. There is no mention of prerequisites, scenarios, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_update_custom_fieldC
Atualiza um campo personalizado (renomear, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| entity | No | leads | |
| field_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only implies mutation ('atualiza') without detailing side effects, permissions, or reversibility. The example 'renomear' hints at a specific operation but is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one phrase), which is concise but at the cost of informativeness. It earns a baseline score due to brevity but lacks essential details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and zero parameter coverage, the description is severely incomplete. It does not explain return values, entity options, or required field_id, making it inadequate for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (name, entity, field_id). The phrase 'renomear, etc.' only weakly hints at the name parameter, leaving others undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Atualiza um campo personalizado (renomear, etc.)' clearly states the action (update) and resource (custom field), giving an example of renaming. It is not a tautology, but lacks distinction from sibling tools like kommo_create_custom_field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No conditions, prerequisites, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_update_leadC
Atualiza um lead: mover de etapa/funil (status_id/pipeline_id), preço, responsável, nome ou campos custom.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| price | No | ||
| lead_id | Yes | ||
| status_id | No | ||
| pipeline_id | No | ||
| responsible_user_id | No | ||
| custom_fields_values | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits. It implies mutation but doesn't specify side effects, required permissions, or response behavior. The list of updatable fields provides some context, but important details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It front-loads the main action and lists key aspects efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, the description is too brief. It omits details on how parameters interact, constraints, and expected responses, making it insufficient for complex use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (no parameter descriptions in schema). The description mentions parameter names (status_id, pipeline_id, price, etc.) but does not fully explain their semantics or constraints (e.g., required relationships). It adds some meaning but not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a lead and lists updatable fields (stage, pipeline, price, responsible, name, custom fields). It distinguishes from siblings like create_lead and get_lead, but could be more explicit about the primary action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like kommo_change_responsible or kommo_create_lead. There is no mention of prerequisites or conditions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_update_statusB
Renomeia/reordena/recolore uma etapa existente.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| sort | No | ||
| color | No | ||
| status_id | Yes | ||
| pipeline_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states the operation types (rename/reorder/recolor) but does not reveal side effects, required permissions, idempotency, or error behavior if the stage is missing. This leaves significant gaps for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is concise and front-loaded. It avoids unnecessary words, though the use of slashes might be slightly ambiguous. Overall, it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is insufficient. It only covers three parameter meanings and omits usage context, behavioral traits, and return behavior. The agent would have significant uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps three optional parameters (name, sort, color) to their respective actions, providing meaning beyond the raw schema. However, it does not explain the required parameters (pipeline_id, status_id) or any constraints. With 0% schema coverage, the description partially compensates but is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates an existing stage by renaming, reordering, or recoloring it. The verb 'renomeia/reordena/recolore' combined with 'etapa existente' specifies the action and resource, and distinguishes it from sibling 'kommo_create_status' which creates a new stage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like creating a new stage. There is no mention of prerequisites, such as the stage needing to exist, or when renaming vs reordering vs recoloring is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kommo_usersA
Lista usuários (id, nome, email). Use para mapear nome -> responsible_user_id ao trocar responsáveis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries full burden. It states the tool is a list operation with specific fields, implying read-only behavior. However, it does not disclose details like pagination, rate limits, or potential side effects, which are acceptable for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with purpose and usage. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description explicitly lists returned fields (id, nome, email). With zero parameters and a straightforward purpose, the description is fully sufficient for an agent to understand and use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100% (trivially). Baseline for 0 parameters is 4, and the description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it lists users with id, name, and email, and provides a specific mapping use case (name to responsible_user_id). This clearly differentiates it from sibling tools like kommo_account or kommo_search_contacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: 'Use para mapear nome -> responsible_user_id ao trocar responsáveis.' This tells when and why to use it, but does not mention when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
29 tool updates
v1.0.0- First observed
kommo_account - First observed
kommo_add_note - First observed
kommo_change_responsible - First observed
kommo_complete_task - First observed
kommo_create_company - First observed
kommo_create_contact - First observed
kommo_create_custom_field - First observed
kommo_create_lead - First observed
kommo_create_status - First observed
kommo_create_task - First observed
kommo_custom_fields - First observed
kommo_delete_webhook - First observed
kommo_get_events - First observed
kommo_get_lead - First observed
kommo_link - First observed
kommo_list_tasks - First observed
kommo_list_webhooks - First observed
kommo_pipelines - First observed
kommo_request - First observed
kommo_search_companies - First observed
kommo_search_contacts - First observed
kommo_search_leads - First observed
kommo_subscribe_webhook - First observed
kommo_update_company - First observed
kommo_update_contact - First observed
kommo_update_custom_field - First observed
kommo_update_lead - First observed
kommo_update_status - First observed
kommo_users
TDQS
Each tool has a clear and distinct purpose, targeting specific entities (leads, contacts, companies, tasks, webhooks, custom fields, pipelines, statuses, users, events) and actions (create, update, get, search, list, delete/subscribe). There is no ambiguity between tools; even similar verbs (e.g., create vs update) are well separated by entity.
The naming convention is predominantly 'kommo_verb_noun' in English (e.g., create_lead, search_companies, list_tasks). However, two tools break the pattern: 'kommo_link' (should be something like link_entity) and 'kommo_pipelines' (should be list_pipelines). These minor inconsistencies slightly reduce consistency.
29 tools is on the higher side but appropriate for a comprehensive CRM integration covering leads, contacts, companies, tasks, webhooks, custom fields, pipelines, statuses, users, and events. The count reflects necessary CRUD operations plus search and administrative tools. No obvious bloat.
The tool set covers most expected CRM operations: CRUD for leads, contacts, companies, custom fields, statuses; task management; webhook subscription; user listing; and event tracking. Notable gaps include missing delete operations for leads, contacts, companies, and tasks, but these can be addressed via the generic API passthrough ('kommo_request'). Overall, the surface is nearly complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
Related MCP Servers
- AlicenseBqualityDmaintenanceA comprehensive MCP server that connects AI assistants to GoHighLevel CRM, enabling management of contacts, conversations, calendars, pipelines, payments, and more through 60+ tools.6456MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for amoCRM integration, enabling AI assistants to manage leads, contacts, companies, tasks, and more via natural language.4MIT
- FlicenseNot gradedqualityDmaintenanceAI-powered CRM assistant for Kommo/amoCRM that provides natural language management via Telegram bot and MCP protocol, enabling analytics, entity operations, and CRM setup.7-
- AlicenseNot gradedqualityBmaintenanceMCP server that auto-discovers Kama CRM API endpoints from OpenAPI spec and exposes them as tools for AI agents to perform CRM operations via natural language.37MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RonaldoESantosRevOps/kommo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server