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: PipeDrive 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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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