ByDomuDevelopers

Agentes no n8n e no LangChain

Dê a um agente as ferramentas do ByDomu por MCP, ou a API como ferramenta própria.

Guian8n · LangChain · LangGraphChave secreta
Antes de começar. Um agente que roda sem uma pessoa olhando precisa de uma chave secreta somente leitura própria, com as permissões certas, guardada nas credenciais do n8n ou em uma variável de ambiente.

Um agente no n8n

Conecte ao nó AI Agent, como ferramenta, um MCP Client Tool com a URL do servidor e autenticação Bearer. Use uma versão do n8n que ofereça o transporte HTTP Streamable: o servidor não fala SSE (GET responde 405), então o modo SSE não 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_appointments

Para passos fixos (sem o modelo decidir), o nó HTTP Request contra a API REST com X-API-Key é mais simples e previsível.

LangChain e LangGraph

Com os adaptadores MCP do LangChain, as nove ferramentas chegam como ferramentas normais do agente (create_agent roda sobre o LangGraph). O LangChain está levando esses adaptadores para langchain.mcp; a configuração do servidor (URL e cabeçalho) é a mesma.

# 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 ou API?

  • MCP: o modelo escolhe entre nove ferramentas de leitura pensadas para conversa (resultados curtos e paginados). É o caminho mais rápido para um assistente.
  • API REST: todo o resto, inclusive escritas com a permissão aprovada. Envolva cada endpoint como ferramenta própria, envie Idempotency-Key e peça confirmação humana antes de escrever.

Prompts prontos para agentes de código

O que pode fazer, como revogar e boas práticas

O servidor é somente leitura: a IA pode consultar, mas não cria, muda nem apaga nada, e nunca envia mensagens aos seus clientes. Ela só vê o que estas permissões permitem, com o limite de uma chave secreta (60 requisições por minuto).

PodePermissão
Buscar e ver imóveis publicadosportal:read
Buscar e ver contatoscontacts:read
Agenda e compromissosappointments:read
Ler as mensagens de um contatoconversations:read
Funis e negóciosdeals:read
Tarefas pendentestasks:read

Com uma chave, a IA vê o que essa chave permitir. Para cortar o acesso, pause ou apague a chave em Configurações › API Keys; a próxima chamada responde 401.

  • Uma chave por integração, só com as permissões de leitura que usa. Deixe conversations:read de fora se não precisa das mensagens.
  • A chave vai em uma variável de ambiente ou no cofre de segredos do cliente, nunca colada num chat, num arquivo do repositório nem numa URL.
  • O que o ByDomu devolve inclui texto escrito pelos seus clientes: trate como dados, não como instruções. Não encadeie este conector com ferramentas que enviam e-mails ou mensagens sem aprovação de uma pessoa.
  • Revise de vez em quando os Apps conectados e remova o que não se usa mais.