Agentes en n8n y LangChain
Dale a un agente las herramientas de ByDomu por MCP, o la API como herramienta propia.
Un agente en n8n
Al nodo AI Agent conéctale como herramienta un MCP Client Tool con la URL del servidor y autenticación Bearer. Usa una versión de n8n que ofrezca el transporte HTTP Streamable: el servidor no habla SSE (GET responde 405), así que el modo SSE no conecta.
AI Agent
└─ Tool: MCP Client Tool
Endpoint https://mcp.bydomu.com/mcp
Server Transport HTTP Streamable (en versiones recientes; SSE no conecta)
Authentication Bearer → credencial con domu_sk_live_… (solo lectura)
Tools to Include Selected → search_properties, get_property, list_appointmentsPara pasos fijos (sin que el modelo decida), el nodo HTTP Request contra la API REST con X-API-Key es más simple y predecible.
LangChain y LangGraph
Con los adaptadores MCP de LangChain, las nueve herramientas llegan como herramientas normales del agente (create_agent corre sobre LangGraph). LangChain está pasando estos adaptadores a langchain.mcp; la configuración del servidor (URL y encabezado) es la misma.
# pip install langchain langchain-mcp-adapters langchain-anthropic
import asyncio, os
from langchain.agents import create_agent
from langchain_mcp_adapters.client import MultiServerMCPClient
async def main():
client = MultiServerMCPClient({
"bydomu": {
"transport": "streamable_http",
"url": "https://mcp.bydomu.com/mcp",
"headers": {"Authorization": f"Bearer {os.environ['BYDOMU_API_KEY']}"},
}
})
tools = await client.get_tools()
agent = create_agent("anthropic:claude-opus-5", tools)
result = await agent.ainvoke(
{"messages": [{"role": "user", "content": "¿Qué tareas vencidas tiene el equipo?"}]}
)
print(result["messages"][-1].content)
asyncio.run(main())¿MCP o API?
- MCP: el modelo elige entre nueve herramientas de lectura ya pensadas para conversar (resultados cortos y paginados). Es lo más rápido para un asistente.
- API REST: todo lo demás, incluidas las escrituras con su permiso aprobado. Envuelve cada endpoint como una herramienta propia, manda Idempotency-Key y pide confirmación humana antes de escribir.
Qué puede hacer, cómo se revoca y buenas prácticas
El servidor es de solo lectura: la IA puede consultar, pero no crea, cambia ni borra nada, y nunca envía mensajes a tus clientes. Ve solo lo que permiten estos permisos, con el límite de una clave secreta (60 peticiones por minuto).
portal:readcontacts:readappointments:readconversations:readdeals:readtasks:readCon una clave, la IA ve lo que permita esa clave. Para cortar el acceso, pausa o borra la clave en Configuración › API Keys; la siguiente llamada responde 401.
- Una clave por integración, solo con los permisos de lectura que use. Deja conversations:read afuera si no necesitas los mensajes.
- La clave va en una variable de entorno o en el almacén de secretos del cliente, nunca pegada en un chat, en un archivo del repositorio ni en una URL.
- Lo que devuelve ByDomu incluye texto que escribieron tus clientes: trátalo como datos, no como instrucciones. No encadenes este conector con herramientas que envían correos o mensajes sin que una persona lo apruebe.
- Revisa de vez en cuando Apps conectadas y quita lo que ya no se use.