Cómo Integrar Hermes Agent con tu CRM: Guía Práctica de las API MCP
· Hermes Agent Experts
La integración de Hermes Agent con tu CRM mediante Model Context Protocol (MCP) está transformando la forma en que empresas de Madrid, Barcelona y Valencia gestionan sus relaciones comerciales. Este artículo es una guía práctica y técnica para conectar tu CRM — ya sea Salesforce, HubSpot o cualquier plataforma con API abierta — con Hermes Agent, el agente de IA de código abierto más versátil del ecosistema.
¿Qué es MCP y por qué cambia las reglas del juego?
Model Context Protocol (MCP) es un estándar abierto que permite a los modelos de lenguaje (LLM) interactuar directamente con APIs y sistemas externos de forma estructurada. Piensa en MCP como el “USB-C de la IA”: un protocolo único que unifica la comunicación entre el agente y cualquier servicio, incluyendo tu CRM.
Para Hermes Agent, MCP no es un añadido opcional: es su mecanismo nativo de extensión. Cada “skill” que despliegas en Hermes Agent puede exponer herramientas MCP que el agente invoca cuando necesita leer, escribir o transformar datos de tu CRM.
Ventajas clave de MCP frente a integraciones tradicionales
| Aspecto | APIs tradicionales | MCP + Hermes Agent |
|---|---|---|
| Curva de aprendizaje | Alta: requires autenticación, SDK, endpoints | Baja: descripción declarativa de herramientas |
| Mantenimiento | Constante: cambios de API rompen integraciones | Mínimo: MCP abstrae la capa de transporte |
| Contexto | El desarrollador gestiona el estado manualmente | El agente mantiene el contexto conversacional |
| Escalabilidad | Vertical: más código, más endpoints | Horizontal: más skills, más herramientas MCP |
Escenario 1: Sincronización de leads con HubSpot
Uno de los casos de uso más demandados por equipos comerciales en España es la captura y sincronización automática de leads. Con Hermes Agent y MCP, puedes crear un skill que monitorice formularios web, redes sociales o campañas de email, y los volcae directamente en HubSpot.
Paso 1: Crear el skill MCP para HubSpot
hermes skill create hubspot-lead-sync
Esto genera la estructura base del skill. A continuación, edita el archivo SKILL.md para definir las herramientas MCP:
---
name: hubspot-lead-sync
description: Sincronización automatizada de leads con HubSpot vía MCP
tools:
- name: crear_contacto_hubspot
description: Crea un nuevo contacto en HubSpot
input_schema:
type: object
properties:
email:
type: string
description: Email del contacto
nombre:
type: string
description: Nombre completo
empresa:
type: string
description: Empresa del contacto
telefono:
type: string
description: Teléfono de contacto
origen:
type: string
description: Origen del lead (web, email, referral)
- name: buscar_contacto_hubspot
description: Busca un contacto existente en HubSpot por email
input_schema:
type: object
properties:
email:
type: string
description: Email a buscar
Paso 2: Implementar el handler en Python
El skill se apoya en un script Python que Hermes Agent ejecuta cuando invoca la herramienta MCP:
# scripts/hubspot_handler.py
import os
import requests
from typing import Dict, Any
HUBSPOT_API_KEY = os.getenv("HUBSPOT_API_KEY")
HUBSPOT_API_URL = "https://api.hubapi.com/crm/v3/objects/contacts"
def crear_contacto(params: Dict[str, Any]) -> Dict[str, Any]:
"""Crea un contacto en HubSpot desde una herramienta MCP."""
headers = {
"Authorization": f"Bearer {HUBSPOT_API_KEY}",
"Content-Type": "application/json"
}
payload = {
"properties": {
"email": params["email"],
"firstname": params.get("nombre", "").split()[0],
"lastname": " ".join(params.get("nombre", "").split()[1:]),
"company": params.get("empresa", ""),
"phone": params.get("telefono", ""),
"hs_lead_source": params.get("origen", "web")
}
}
response = requests.post(HUBSPOT_API_URL, json=payload, headers=headers)
response.raise_for_status()
return {"status": "ok", "contact_id": response.json()["id"]}
def buscar_contacto(params: Dict[str, Any]) -> Dict[str, Any]:
"""Busca un contacto en HubSpot por email."""
headers = {"Authorization": f"Bearer {HUBSPOT_API_KEY}"}
url = f"{HUBSPOT_API_URL}?email={params['email']}"
response = requests.get(url, headers=headers)
if response.status_code == 404:
return {"status": "not_found"}
response.raise_for_status()
return {"status": "found", "contact": response.json()}
Paso 3: Registrar el skill en Hermes Agent
hermes skill load hubspot-lead-sync
hermes skill enable hubspot-lead-sync
Una vez cargado, Hermes Agent detecta automáticamente las herramientas MCP disponibles. Cuando un lead entra por cualquier canal, el agente decide de forma autónoma si debe crear un nuevo contacto o actualizar uno existente.
Escenario 2: Automatización de tareas en Salesforce
Salesforce sigue siendo el CRM preferido de grandes cuentas y corporaciones en Madrid y Barcelona. Con Hermes Agent puedes automatizar tareas repetitivas que antes consumían horas del equipo comercial.
Ejemplo: Actualización masiva de oportunidades
Imagina que necesitas actualizar el estado de todas las oportunidades en fase “Negociación” que lleven más de 30 días sin actividad. Con una skill MCP personalizada:
# SKILL.md (fragmento)
tools:
- name: consultar_oportunidades_salesforce
description: Consulta oportunidades por estado y antigüedad
input_schema:
type: object
properties:
fase:
type: string
description: Fase de la oportunidad
dias_inactivo:
type: integer
description: Días mínimos sin actividad
- name: actualizar_oportunidad_salesforce
description: Actualiza el estado de una oportunidad
input_schema:
type: object
properties:
opportunity_id:
type: string
nuevo_estado:
type: string
motivo:
type: string
Hermes Agent ejecuta esta skill de forma programada mediante su sistema de cronjobs:
hermes cron create \
--name "salesforce-oportunidades-estancadas" \
--schedule "0 8 * * 1" \
--skill salesforce-cleanup \
--prompt "Revisa oportunidades en fase Negociación con más de 30 días sin actividad. Envía un aviso al responsable y si no hay respuesta en 7 días, mueve la oportunidad a 'Perdida' con motivo 'Sin actividad prolongada'."
Este cronjob se ejecuta cada lunes a las 8:00 AM, liberando a tu equipo de una tarea administrativa que nadie quiere hacer.
Escenario 3: Enriquecimiento automático de contactos
Una de las funcionalidades más potentes de Hermes Agent con MCP es la capacidad de enriquecer registros de tu CRM con datos de fuentes externas. Por ejemplo, cuando un nuevo contacto se añade a tu base de datos, el agente puede:
- Buscar información pública de la empresa (LinkedIn, web corporativa)
- Identificar el sector, tamaño y ubicación
- Clasificar el lead por score de prioridad
- Añadir notas contextuales al registro del CRM
Ejemplo de pipeline automático
# scripts/enrichment_pipeline.py
def enrichment_pipeline(contacto: dict) -> dict:
"""Pipeline completo de enriquecimiento para un contacto CRM."""
# Paso 1: Verificar si el contacto ya está enriquecido
estado = buscar_contacto_crm(contacto["email"])
if estado.get("enriquecido"):
return {"status": "already_enriched", "contact_id": estado["id"]}
# Paso 2: Obtener datos públicos de la empresa
datos_empresa = web_search(contacto.get("dominio", ""))
# Paso 3: Calcular score de lead
score = calcular_lead_score(contacto, datos_empresa)
# Paso 4: Actualizar CRM con datos enriquecidos
resultado = actualizar_contacto_crm(
contacto["email"],
enriched_data={
"sector": datos_empresa.get("sector"),
"tamaño_empresa": datos_empresa.get("tamaño"),
"lead_score": score,
"notas": f"Contacto enriquecido automáticamente por Hermes Agent. "
f"Sector detectado: {datos_empresa.get('sector')}. "
f"Ubicación: {datos_empresa.get('ubicacion', 'No disponible')}"
}
)
return {"status": "enriched", "contact_id": resultado["id"], "score": score}
Configuración del archivo MCP en Hermes Agent
Para que Hermes Agent reconozca tus herramientas MCP personalizadas, debes configurar el archivo mcp_servers.yaml en el directorio de configuración:
# ~/.hermes/config/mcp_servers.yaml
mcp_servers:
hubspot:
type: stdio
command: python
args:
- /home/hermes/skills/hubspot-lead-sync/scripts/hubspot_handler.py
env:
HUBSPOT_API_KEY: "${HUBSPOT_API_KEY}"
salesforce:
type: stdio
command: python
args:
- /home/hermes/skills/salesforce-cleanup/scripts/salesforce_handler.py
env:
SF_CLIENT_ID: "${SF_CLIENT_ID}"
SF_CLIENT_SECRET: "${SF_CLIENT_SECRET}"
SF_USERNAME: "${SF_USERNAME}"
SF_PASSWORD: "${SF_PASSWORD}"
Las variables de entorno se gestionan desde el archivo .env de Hermes Agent o directamente en la configuración del perfil activo:
hermes config set HUBSPOT_API_KEY "pat-eu1-xxxx-xxxx"
hermes config set SF_CLIENT_ID "3MVG9xxxxxxxxx"
Buenas prácticas para integraciones CRM-MCP
1. Diseña tools atómicas
Cada herramienta MCP debe hacer una sola cosa y hacerla bien. En lugar de una herramienta “sincronizar_todo”, crea varias: crear_contacto, actualizar_contacto, buscar_contacto, eliminar_contacto. Esto permite a Hermes Agent componer flujos complejos combinando tools simples.
2. Implementa validación de entrada
Siempre valida los parámetros que recibe cada herramienta MCP. Hermes Agent es fiable, pero los datos que llegan desde formularios web o APIs externas pueden contener sorpresas:
def validar_email(email: str) -> bool:
import re
patron = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
return re.match(patron, email) is not None
3. Gestiona la tasa de llamadas API
Los CRM suelen tener límites de tasa (rate limits). Implementa un mecanismo de backoff exponencial en tus handlers:
import time
import random
def llamada_con_reintento(func, params, max_intentos=3):
for intento in range(max_intentos):
try:
return func(params)
except requests.exceptions.HTTPError as e:
if e.response.status_code == 429: # Too Many Requests
espera = (2 ** intento) + random.random()
time.sleep(espera)
else:
raise
raise Exception("Máximo de reintentos alcanzado")
4. Logging y auditoría
Cada operación que Hermes Agent realice sobre tu CRM debe quedar registrada. Implementa un sistema de logging estructurado:
import logging
import json
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger("crm-mcp")
def log_operacion(accion: str, contacto: str, resultado: dict):
logger.info(json.dumps({
"accion": accion,
"contacto": contacto,
"resultado": resultado,
"timestamp": time.time()
}))
Seguridad en integraciones CRM-MCP
La seguridad es crítica cuando conectas un agente de IA a tu CRM. Sigue estas recomendaciones:
Autenticación segura
Nunca hardcodees credenciales. Usa el sistema de variables de entorno de Hermes Agent o un gestor de secretos como HashiCorp Vault:
hermes config set --secret HUBSPOT_API_KEY "pat-eu1-xxxx-xxxx"
Principio de mínimo privilegio
Crea tokens de API con los permisos mínimos necesarios. Para HubSpot, usa tokens de acceso privado restringidos solo a los objetos que necesitas (contacts, deals) con permisos de solo lectura cuando sea posible.
Validación de salida
Antes de escribir cualquier dato en tu CRM, Hermes Agent puede validar que el contenido sea apropiado y no contenga inyecciones:
def sanitizar_entrada(texto: str) -> str:
"""Elimina caracteres peligrosos antes de escribir en CRM."""
import html
return html.escape(texto.strip()[:500]) # Limitar longitud
Casos de uso avanzados
CRM predictivo con Hermes Agent
Combina MCP con capacidades de análisis para crear un CRM predictivo. Hermes Agent puede analizar patrones históricos de cierre y asignar probabilidades a oportunidades abiertas:
tools:
- name: predecir_cierre_oportunidad
description: Calcula la probabilidad de cierre de una oportunidad basada en datos históricos
input_schema:
type: object
properties:
opportunity_id:
type: string
incluir_recomendaciones:
type: boolean
Slack + CRM + Hermes Agent
Uno de los despliegues más populares entre equipos de Valencia y Barcelona es el asistente CRM dentro de Slack. El equipo escribe “Hermes, crea un contacto para Marta García de Acme Corp, email [email protected]” y Hermes Agent:
- Busca si el contacto ya existe en el CRM
- Si no existe, lo crea con los datos proporcionados
- Busca información adicional de la empresa
- Responde en Slack con un resumen de lo creado
Preguntas frecuentes (FAQ)
¿Qué CRMs son compatibles con Hermes Agent vía MCP?
Cualquier CRM que exponga una API REST puede integrarse con Hermes Agent mediante MCP. Los más comunes son Salesforce, HubSpot, Zoho CRM, Monday.com, Pipedrive y Dynamics 365. Si tu CRM tiene API, Hermes Agent puede conectarse.
¿Necesito conocimientos avanzados de programación?
No es necesario ser un desarrollador experto. Con conocimientos básicos de Python y seguir los ejemplos de esta guía, puedes tener tu primera integración funcionando en menos de una hora. Para casos complejos, nuestro equipo en Hermes Agent Experts ofrece soporte técnico personalizado.
¿Qué pasa si la API del CRM cambia?
MCP abstrae la capa de transporte, por lo que los cambios en la API del CRM solo requieren actualizar el handler específico, no toda la integración. Hermes Agent sigue funcionando con el resto de herramientas sin interrupción.
¿Cómo gestiono los rate limits del CRM?
Implementa el patrón de backoff exponencial que mostramos en la sección de buenas prácticas. Además, puedes configurar Hermes Agent para espaciar las llamadas usando el sistema de colas interno.
¿Es seguro dar acceso al CRM a un agente de IA?
Sí, siempre que sigas las prácticas de seguridad recomendadas: tokens de mínimo privilegio, variables de entorno secretas, logging de auditoría y validación de entrada/salida. Hermes Agent es software de código abierto, auditado por la comunidad.
¿Puedo integrar múltiples CRMs a la vez?
Sí. Hermes Agent puede cargar múltiples skills MCP simultáneamente. Puedes tener un skill para HubSpot, otro para Salesforce y otro para un CRM propio, todos activos al mismo tiempo. El agente decide qué herramienta usar según el contexto de la conversación.
¿Hermes Agent funciona con CRM on-premise?
Sí. MCP soporta conexiones tanto a APIs cloud como a endpoints on-premise, siempre que el CRM sea accesible desde la red donde se ejecuta Hermes Agent. Para entornos con restricciones de red, puedes usar el modo stdio para ejecutar el handler localmente.
Próximos pasos
La integración de Hermes Agent con tu CRM mediante MCP no es solo una mejora técnica: es un cambio de paradigma en cómo tu equipo interactúa con los datos comerciales. Desde oficinas en Madrid hasta startups tecnológicas en Barcelona y empresas consolidadas en Valencia, la automatización inteligente del CRM está impulsando equipos comerciales más eficientes y con mejores tasas de conversión.
Si quieres llevar tu integración al siguiente nivel, nuestro equipo de Hermes Agent Experts está disponible para ayudarte con:
- Consultoría personalizada: Análisis de tu stack tecnológico y diseño de la integración óptima
- Desarrollo de skills a medida: Creamos skills MCP específicos para tu CRM y tus flujos de trabajo
- Formación para equipos: Talleres prácticos para que tu equipo saque el máximo partido a Hermes Agent
- Soporte continuo: Mantenimiento y actualización de tus integraciones CRM-MCP
Contáctanos en [email protected] y descubre cómo Hermes Agent puede transformar tu CRM en un sistema inteligente y autónomo.