Laburen/kommo-mcp-server
If you are the rightful owner of kommo-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This document provides a comprehensive overview of setting up a remote Model Context Protocol (MCP) server on Cloudflare without authentication.
kommo-mcp-server
Servidor MCP (Model Context Protocol) diseñado para funcionar con el ecosistema de Laburen.com, incluyendo su integración nativa con Kommo CRM. Este servidor expone herramientas que permiten a los agentes de IA de Laburen gestionar leads, moverlos entre pipelines, pausar agentes y agregar notas contextuales directamente en Kommo.
🎯 Descripción General
Este servidor MCP forma parte del ecosistema de Laburen.com y actúa como un puente entre los agentes de IA de Laburen y la API de Kommo CRM, aprovechando la integración nativa entre ambas plataformas. Proporciona herramientas especializadas para la gestión automatizada de leads, permitiendo que los agentes de Laburen interactúen directamente con Kommo para mover leads, pausar agentes y agregar notas contextuales. El servidor se ejecuta en Cloudflare Workers y utiliza Durable Objects para mantener el estado de las conexiones MCP.
✨ Características Principales
1. Servidor MCP Completo
- Implementación del protocolo MCP (Model Context Protocol)
- Soporte para Server-Sent Events (SSE) para comunicación en tiempo real
- Integración con el SDK oficial de MCP
2. Herramientas de Gestión de Leads
- Mover leads entre pipelines y estados
- Pausar agentes asignados a leads específicos
- Agregar notas contextuales al historial de leads
3. Configuración Flexible
- Configuración mediante variables de entorno
- Sobrescritura por headers HTTP en cada request
- Control granular de herramientas habilitadas
4. Multi-cuenta
- Soporte para múltiples cuentas de Kommo mediante configuración dinámica
- Autenticación independiente por cuenta
🏗️ Arquitectura
Componentes Principales
- Entry Point (
src/index.ts): Maneja las peticiones HTTP y enruta a los endpoints MCP - MCP Server (
src/mcp.ts): Define el servidor MCP y registra las herramientas disponibles - Tools (
src/tools/leads.ts): Implementa las funciones para interactuar con la API de Kommo - Utils (
src/utils/): Utilidades para validación y parsing de configuración
Tecnologías
- Cloudflare Workers: Plataforma de ejecución serverless
- Durable Objects: Para mantener estado de conexiones MCP
- Model Context Protocol SDK: SDK oficial para servidores MCP
- Kommo API v4: Integración nativa con el CRM de Kommo
- Laburen.com: Ecosistema de agentes de IA integrado
- TypeScript: Lenguaje de programación
- Zod: Validación de esquemas
📋 Requisitos
Variables de Entorno
El servidor puede recibir configuración de dos formas (los headers tienen prioridad sobre las variables de entorno):
1. Variables de Entorno (en wrangler.jsonc o Cloudflare Dashboard)
{
"KOMMO_LONG_DURATION_TOKEN": "tu_token_de_kommo",
"KOMMO_ACCOUNT_SUBDOMAIN": "tu_subdominio",
"TOOLS_TO_USE": ["move_lead", "pause_agent", "add_note"]
}
2. Headers HTTP (prioridad sobre env)
Cada request puede incluir headers para sobrescribir la configuración:
KOMMO_LONG_DURATION_TOKEN: Token de autenticación de KommoKOMMO_ACCOUNT_SUBDOMAIN: Subdominio de la cuenta de KommoTOOLS_TO_USE: Lista de herramientas habilitadas (formato JSON array o CSV)
Formato de TOOLS_TO_USE:
- JSON:
["move_lead", "pause_agent", "add_note"] - CSV:
move_lead,pause_agent,add_note
🚀 Instalación y Despliegue
Desarrollo Local
# Instalar dependencias
npm install
# Ejecutar en modo desarrollo
npm run dev
# O usando wrangler directamente
wrangler dev
Despliegue a Producción
# Desplegar a Cloudflare Workers
npm run deploy
# O usando wrangler directamente
wrangler deploy
Scripts Disponibles
npm run dev: Inicia el servidor en modo desarrollonpm run deploy: Despliega a Cloudflare Workersnpm run format: Formatea el código con Biomenpm run lint:fix: Corrige problemas de lintingnpm run type-check: Verifica tipos de TypeScriptnpm run cf-typegen: Genera tipos de Cloudflare Workers
📡 Endpoints
MCP Server (HTTP)
GET /mcp
Endpoint principal del servidor MCP para comunicación HTTP.
Server-Sent Events (SSE)
GET /sse
GET /sse/message
Endpoints para comunicación mediante Server-Sent Events, permitiendo comunicación en tiempo real con clientes MCP.
🛠️ Herramientas Disponibles
El servidor expone las siguientes herramientas MCP para interactuar con Kommo:
move_lead
Mueve un lead a un pipeline y estado diferente en Kommo.
Parámetros:
lead_id(number): ID único del lead en Kommopipeline_id(number): ID del pipeline destinostatus_id(number): ID del estado dentro del pipeline
Ejemplo de uso:
{
"lead_id": 12345,
"pipeline_id": 1,
"status_id": 2
}
Respuestas:
- ✅ Éxito: "Lead successfully moved to the specified pipeline and status."
- ❌ Lead no existe: "Failed to move lead: the specified lead does not exist in Kommo."
- ❌ Error de API: "Failed to move lead: Kommo did not accept the update request."
pause_agent
Pausa el agente asignado a un lead específico actualizando un campo personalizado en Kommo.
Parámetros:
lead_id(number): ID único del lead en Kommo
Ejemplo de uso:
{
"lead_id": 12345
}
Respuestas:
- ✅ Éxito: "Agent successfully paused for the specified lead."
- ❌ Lead no existe: "Failed to pause agent: the specified lead does not exist in Kommo."
add_note
Añade una nota contextual al historial de un lead en Kommo.
Parámetros:
lead_id(number): ID único del lead en Kommonote(string): Nota a agregar al historial del lead
Ejemplo de uso:
{
"lead_id": 12345,
"note": "Cliente interesado en producto premium. Seguimiento programado para mañana."
}
Respuestas:
- ✅ Éxito: "Note added succesfully."
- ❌ Error: "Error adding the note."
🔧 Configuración de Herramientas
Las herramientas se pueden habilitar o deshabilitar mediante la variable TOOLS_TO_USE. Solo las herramientas listadas estarán disponibles en el servidor MCP.
Ejemplo - Solo habilitar move_lead y add_note:
{
"TOOLS_TO_USE": ["move_lead", "add_note"]
}
Ejemplo - Deshabilitar todas las herramientas:
{
"TOOLS_TO_USE": []
}
🔗 Integración con Laburen.com
Este servidor MCP está diseñado específicamente para funcionar dentro del ecosistema de Laburen.com. Los agentes de IA de Laburen pueden utilizar este servidor MCP para interactuar con Kommo CRM mediante la integración nativa entre ambas plataformas.
Flujo de Integración
- Los agentes de Laburen se conectan al servidor MCP
- El servidor MCP expone herramientas especializadas para Kommo
- Los agentes utilizan estas herramientas para gestionar leads en Kommo
- Las acciones se ejecutan directamente en la cuenta de Kommo configurada
🔐 Autenticación con Kommo
El servidor utiliza tokens de larga duración de Kommo para autenticarse. Para obtener un token:
- Accede a la configuración de tu cuenta de Kommo
- Ve a Integraciones → API
- Genera un token de larga duración
- Configúralo en las variables de entorno o headers
Nota: El token debe tener los siguientes scopes:
crm: Acceso al CRMfiles: Acceso a archivos (si es necesario)notifications: Notificaciones (si es necesario)
📊 Estructura del Proyecto
kommo-mcp-server/
├── src/
│ ├── index.ts # Punto de entrada del worker
│ ├── mcp.ts # Servidor MCP y definición de herramientas
│ ├── types.ts # Tipos TypeScript
│ ├── tools/
│ │ └── leads.ts # Funciones para interactuar con API de Kommo
│ └── utils/
│ ├── canUseTools.ts # Validación de herramientas habilitadas
│ └── parseTools.ts # Parsing de configuración de herramientas
├── wrangler.jsonc # Configuración de Cloudflare Workers
├── tsconfig.json # Configuración de TypeScript
├── biome.json # Configuración de Biome (linter/formatter)
└── package.json # Dependencias del proyecto
🔍 Monitoreo y Observabilidad
El servidor tiene observabilidad habilitada en Cloudflare Workers:
- Logs: Registro de ejecución y errores
- Métricas: Rendimiento y uso de recursos
- Trazabilidad: Seguimiento de requests y herramientas utilizadas
Los logs incluyen:
- Errores de herramientas con prefijo
💥 - Errores de API con prefijo
❌ - Información de depuración
🧪 Desarrollo
Validación de Tipos
npm run type-check
Formateo de Código
npm run format
Linting
npm run lint:fix
📝 Notas Técnicas
- El servidor utiliza Durable Objects para mantener el estado de las conexiones MCP
- Las herramientas se validan dinámicamente antes de ser expuestas
- Todas las herramientas validan la existencia del lead antes de ejecutar la acción
- Los errores se manejan de forma consistente y retornan mensajes descriptivos
🤝 Contribución
Este es un proyecto privado. Para cambios o mejoras, contacta al equipo de desarrollo.
📄 Licencia
Privado - Todos los derechos reservados.