Skip to main content
Com app() você agrupa múltiplas operações relacionadas em um único deploy. Seus agentes de IA descobrem cada ferramenta individualmente via MCP, e cada uma tem sua própria rota HTTP. Padrão: app() + múltiplos define() + .describe() em cada campo + config compartilhada + ctx.env.get() para secrets.
index.ts

Testes locais

Inicie o servidor com jelou functions dev e teste cada ferramenta:
Se você enviar uma entrada inválida, recebe um 400 com os detalhes do erro:

Por que funciona dessa forma

  • Rotas automáticas — as chaves createContact, searchContacts, deleteContact geram /create-contact, /search-contacts, /delete-contact.
  • GET vs POSTsearchContacts usa config: { methods: ["GET"] } para receber parâmetros como query strings. As demais usam POST por padrão.
  • description importa — cada ferramenta tem uma descrição específica que informa ao agente de IA exatamente o que ela faz e o que retorna. “Searches contacts by name or email” é muito melhor do que “Searches contacts”.
  • Config compartilhadacors e timeout são definidos uma vez no app() e se aplicam a todas as ferramentas. Cada ferramenta pode sobrescrevê-los se necessário.
  • Secrets centralizados — as 3 ferramentas usam ctx.env.get("CRM_API_KEY"). Você configura o secret uma vez com jelou secrets set.
  • MCP unificadocurl http://localhost:3000/mcp retorna as 3 ferramentas como ferramentas independentes que o agente pode invocar.