Kommo-MCP
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 13 GitHub stars
Code Basarisiz
- fs module — File system access in package.json
- network request — Outbound network request in package.json
- process.env — Environment variable access in src/http-streamable.ts
- exec() — Shell command execution in src/kommo-api.ts
- network request — Outbound network request in src/kommo-api.ts
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Servidor MCP open source para integrar Cursor, Claude e outros clientes ao Kommo CRM.
Kommo MCP Server
Servidor MCP (Model Context Protocol) para
integração com o Kommo CRM.
Expõe tools, resources e prompts para clientes MCP (Cursor, Claude
Desktop, etc.).
Sumário
- Funcionalidades
- Pré-requisitos
- Início rápido
- Configuração
- Execução
- Integração com clientes MCP
- Endpoints
- Ferramentas MCP
- Resources
- Prompts
- Estrutura do projeto
- Exemplos de uso
- Troubleshooting
- Documentação
- Compatibilidade e suporte
- Contribuindo
- Segurança
- Licença
Funcionalidades
- MCP moderno e compatível: revisão
2026-07-28pelo SDK oficial, com
compatibilidade stateless para clientes da família 2025 - Dois transportes oficiais: Streamable HTTP para serviços remotos e
stdiopara clientes locais - 23 tools: leads, contatos, empresas, tarefas, pipelines, notas,
relatórios, dashboard, Salesbot, motivos de perda - 5 resources: relatório de vendas, pipelines, motivos de perda,
dashboard, conta - 4 prompts: templates para análise de vendas, leads, pipelines e motivos
de perda ask_kommo: interface conversacional em linguagem natural- Arquitetura modular: código organizado em módulos (
kommo-api,mcp/,ask-kommo) - Segurança: validação de Origin, validação dos argumentos das tools e
autenticação obrigatória fora de localhost
Pré-requisitos
- Node.js 20+
- Docker (opcional)
- Token de acesso do Kommo (integração privada ou OAuth2) —
ver documentação do Kommo
Início rápido
git clone https://github.com/Miguelgbastos/Kommo-MCP.git
cd Kommo-MCP
npm install
cp env.example .env
# edite .env com KOMMO_BASE_URL e KOMMO_ACCESS_TOKEN
npm run build
npm start
O servidor sobe em http://127.0.0.1:3001/mcp.
Configuração
- Copie o arquivo de exemplo:
cp env.example .env - Configure no
.env:KOMMO_BASE_URL=https://seu-dominio.kommo.com KOMMO_ACCESS_TOKEN=seu-token-aqui
Variáveis de ambiente
| Variável | Descrição | Default |
|---|---|---|
KOMMO_BASE_URL |
URL da conta Kommo (https://<subdominio>.kommo.com) |
— |
KOMMO_ACCESS_TOKEN |
Token de acesso (integração privada ou OAuth2) | — |
KOMMO_TIMEOUT_MS |
Timeout de cada requisição ao Kommo | 15000 |
KOMMO_MAX_RETRIES |
Retentativas de leituras em 429/5xx |
3 |
KOMMO_REQUESTS_PER_SECOND |
Limite coordenado de chamadas por processo (máximo 6) | 6 |
KOMMO_TIMEZONE |
Fuso IANA dos relatórios; por padrão usa o fuso da conta | conta Kommo |
PORT |
Porta HTTP do servidor MCP | 3001 |
MCP_HOST |
Host de binding | 127.0.0.1 |
MCP_ALLOWED_ORIGINS |
Origens permitidas (separadas por vírgula) | — |
MCP_AUTH_TOKEN |
Protege /mcp; obrigatório quando MCP_HOST não é loopback |
— |
MCP_CONFIRM_WRITES |
Exige confirm=true nas tools que alteram dados |
false |
LOG_LEVEL |
Nível de log | info |
Execução
Desenvolvimento:
npm install
npm run dev # ts-node
# ou
npm run build && npm start
Cliente local via stdio:
npm run build
npm run start:stdio
Docker:
docker build -t kommo-mcp-server .
docker run -d -p 3001:3001 \
-e KOMMO_BASE_URL=https://seu-dominio.kommo.com \
-e KOMMO_ACCESS_TOKEN=seu-token \
-e MCP_HOST=0.0.0.0 \
-e MCP_AUTH_TOKEN=gere-um-segredo-longo \
--name kommo-mcp-server kommo-mcp-server
Em produção, coloque o servidor atrás de um reverse proxy com TLS e defina
MCP_AUTH_TOKEN+MCP_ALLOWED_ORIGINS. O servidor se recusa a iniciar em
um endereço não local semMCP_AUTH_TOKEN.
Ative
MCP_CONFIRM_WRITES=truequando o cliente permitir confirmação
explícita. As tools de escrita anunciamdestructiveHint; as consultas
anunciamreadOnlyHintpelo protocolo MCP.
Integração com clientes MCP
Cursor
Para execução local por stdio, adicione ao ~/.cursor/mcp.json:
{
"mcpServers": {
"kommo": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"KOMMO_BASE_URL": "https://seu-dominio.kommo.com",
"KOMMO_ACCESS_TOKEN": "seu-token-aqui"
}
}
}
}
Para o servidor HTTP:
Adicione ao arquivo ~/.cursor/mcp.json (ou nas configurações do projeto em.cursor/mcp.json):
{
"mcpServers": {
"kommo": {
"url": "http://127.0.0.1:3001/mcp"
}
}
}
Claude Desktop
Para uma implantação remota com HTTPS, abra Settings → Connectors → Add
connector e informe a URL pública do endpoint, por exemplohttps://mcp.seudominio.com/mcp.
Para execução local, use a mesma configuração command/args/env acima noclaude_desktop_config.json. Servidores HTTP remotos devem ser adicionados
pela tela de Connectors.
Endpoints
- MCP:
POST http://localhost:3001/mcp— negociação moderna viaserver/discover - Health:
GET http://localhost:3001/health - Readiness:
GET http://localhost:3001/ready— verifica se URL e token
obrigatórios foram configurados
Ferramentas MCP
Conta e dashboard
| Tool | Descrição |
|---|---|
get_account |
Informações da conta Kommo |
get_dashboard |
Dashboard calculado com endpoints públicos do Kommo |
Leads
| Tool | Descrição |
|---|---|
get_leads |
Listar leads (limit, page, query) |
get_lead |
Obter lead por ID |
create_lead |
Criar lead (name, price, status_id, pipeline_id) |
update_lead |
Atualizar lead existente |
move_lead |
Mover lead para outro status/pipeline |
Pipelines e relatórios
| Tool | Descrição |
|---|---|
get_pipelines |
Listar pipelines (com status opcional por pipeline_id) |
get_sales_report |
Relatório de vendas (dateFrom, dateTo) |
Contatos, empresas e tarefas
| Tool | Descrição |
|---|---|
get_contacts |
Listar contatos |
get_companies |
Listar empresas |
get_tasks |
Listar tarefas |
create_task |
Criar tarefa vinculada a entidade |
get_users |
Listar usuários da conta |
Notas
| Tool | Descrição |
|---|---|
get_notes |
Listar notas de lead/contato/empresa |
add_note |
Adicionar nota de texto |
pin_note |
Fixar nota |
unpin_note |
Desafixar nota |
Motivos de perda e Salesbot
| Tool | Descrição |
|---|---|
get_loss_reasons |
Listar motivos da perda de leads |
get_loss_reason |
Obter motivo de perda por ID |
run_salesbot |
Iniciar Salesbot (bot_id, entity_id, entity_type=leads) |
stop_salesbot |
Parar Salesbot (bot_id, entity_id, entity_type=leads) |
IA conversacional
| Tool | Descrição |
|---|---|
ask_kommo |
Perguntas em linguagem natural sobre o CRM |
Resources
| URI | Descrição |
|---|---|
kommo://reports/sales |
Relatório de vendas (último mês) |
kommo://pipelines |
Lista de pipelines |
kommo://loss_reasons |
Motivos da perda de leads |
kommo://dashboard |
Dados do dashboard |
kommo://account |
Informações da conta |
Prompts
| Nome | Descrição |
|---|---|
analisar_vendas_mes |
Analisar vendas do mês |
resumo_leads_status |
Resumo de leads por status |
analise_pipeline |
Analisar performance de pipeline |
motivos_perda |
Analisar motivos de perda |
Estrutura do projeto
src/
├── kommo-api.ts # Cliente da API Kommo
├── ask-kommo.ts # Lógica conversacional ask_kommo
├── http-streamable.ts # Servidor MCP HTTP
├── stdio.ts # Servidor MCP local por stdin/stdout
└── mcp/
├── server.ts # Definição oficial do servidor MCP
├── types.ts # Tipos MCP
├── tool-definitions.ts # Schemas das tools
├── tool-handlers.ts # Execução das tools
├── resources.ts # Resources MCP
└── prompts.ts # Prompts MCP
Exemplos de uso
Clientes compatíveis negociam a revisão automaticamente por server/discover.
Ao usar o cliente TypeScript oficial, fixe a revisão para evitar fallback
silencioso para servidores antigos:
import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/client';
const client = new Client(
{ name: 'minha-integracao', version: '1.0.0' },
{ versionNegotiation: { mode: { pin: '2026-07-28' } } },
);
const transport = new StreamableHTTPClientTransport(new URL('http://127.0.0.1:3001/mcp'));
await client.connect(transport);
const { tools } = await client.listTools();
Clientes da família 2025 são atendidos automaticamente pelo modo stateless.
Clientes modernos podem fixar 2026-07-28 conforme o exemplo acima.
Troubleshooting
401 Unauthorizedda API do Kommo — verifique seKOMMO_ACCESS_TOKEN
está válido e seKOMMO_BASE_URLaponta para o subdomínio correto da sua
conta.- Cliente MCP não conecta — confirme se
MCP_HOSTpermite conexões do
cliente (0.0.0.0para acesso remoto) e seMCP_ALLOWED_ORIGINSinclui a
origem do cliente, quando definido. 403no/mcp— seMCP_AUTH_TOKENestiver definido, é preciso
enviarAuthorization: Bearer <token>ouX-API-Key: <token>.503no/ready— configureKOMMO_BASE_URLcom HTTPS e definaKOMMO_ACCESS_TOKENantes de iniciar o serviço real.429do Kommo — todas as chamadas compartilham um limitador coordenado;
leituras usam backoff eRetry-After, enquanto escritas não são repetidas
automaticamente para evitar duplicidade.- Docker
HEALTHCHECKfalha — a imagem usanode --evalpara o
healthcheck, verifique se a porta interna corresponde aPORT. - Erros de build TypeScript — rode
npm run typecheckpara ver mensagens
detalhadas. Requer Node.js 20+.
Documentação
- docs/MCP_EVOLUCAO.md — plano de evolução e
conformidade MCP - docs/KOMMO_API_EVOLUCAO.md — evoluções da API
Kommo - Kommo para desenvolvedores
- Changelog Kommo
- CHANGELOG.md deste projeto
- ROADMAP.md — prioridades e oportunidades de contribuição
- MAINTAINERS.md — manutenção, revisão e releases
- docs/COMPATIBILITY.md — matriz automatizada e
checklist de validação manual em clientes MCP
Compatibilidade e suporte
| Componente | Suporte atual |
|---|---|
| Node.js | 20 e 22 |
| Protocolo MCP | 2026-07-28 e família 2025 stateless |
| Transporte | Streamable HTTP e stdio oficiais |
| Cursor | stdio local ou HTTP |
| Claude Desktop | stdio local ou conector remoto |
| Instalação | Git, Docker e pacote npm na release v3 |
Suporte comunitário ocorre por Issues e Discussions, sem garantia de tempo de
resposta. Veja as responsabilidades em MAINTAINERS.md.
Contribuindo
Contribuições são muito bem-vindas! Leia o
CONTRIBUTING.md para o fluxo completo e o
Código de Conduta para as regras da comunidade.
Sugestões rápidas:
- Abra uma issue usando
os templates. - Envie um PR pequeno e focado, com descrição do que muda e por quê.
- Rode
npm run typecheck,npm run lint,npm test,npm run format:checkenpm run audit:prodantes de enviar.
Segurança
Para reportar vulnerabilidades, veja SECURITY.md. Não
abra issues públicas para problemas de segurança.
Licença
Distribuído sob a licença MIT.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi