loomen_execute_action
La única herramienta que expone el servidor MCP. Tres parámetros obligatorios, tres opcionales. Nada de lo que se pasa acá nombra un canal ni un destinatario concreto: eso lo resuelve la vinculación.
Parámetros
Qué clase de cosa está pasando. Uno de los ocho valores de abajo, y el esquema de la herramienta los lleva, así que tu agente no tiene que buscarlos.
A qué clase de destinatario apunta. Uno de cuatro. No es decoración: dos vinculaciones de la misma acción pueden significar cosas opuestas —avisarle a operaciones, avisarle al cliente—, así que el par decide, no la acción sola.
Una línea diciendo qué está pasando. Es lo que va a leer la persona del otro lado.
Los datos que respaldan esa línea. Viajan tal cual, quedan en el registro, y son sobre lo que evalúan las políticas: una condición que nombra un dato que el agente no reportó pide firma en vez de saltearse.
A quién le llega esta entrega, cuando es alguien que la configuración no podía saber de antemano: el cliente que acaba de comprar. La conexión decide si se acepta — «Fijo» rechaza cualquier otro destinatario, «Por dominio» acepta los de su lista y «Abierto» acepta el que venga. Dejalo afuera para lo que siempre va al mismo lugar: la conexión ya sabe.
Achica la llamada a una vinculación concreta en vez de salir por todas las que autorizan el par. Si además nombrás acción y destino, tienen que coincidir con esa vinculación.
Repetir la llamada con la misma clave no vuelve a ejecutar: devuelve el estado de la invocación original, incluso si esa quedó esperando una firma.
Valores de action
Ocho, cerrados. Elegí por lo que está pasando, no por el canal que imaginás.
| valor | cuándo |
|---|---|
| notificar | Avisás algo que ya pasó. No esperás respuesta. |
| consulta_humano | Le preguntás algo a una persona y esperás lo que conteste. |
| autorizacion_humana | Pedís una firma antes de seguir. La ejecución queda detenida. |
| solicitar_datos | Pedís datos que no tenés, a una persona o a un sistema. |
| consultar_informacion | Leés información de un destino, sin modificarla. |
| registrar_informacion | Dejás un registro en un destino. |
| ejecutar_operacion | Hacés que un sistema haga algo. |
| escalar | Llevás el asunto a un nivel superior de responsabilidad. |
Valores de destination
| valor | cuándo |
|---|---|
| humano | Una persona, por el canal que diga la vinculación. |
| app | Un sistema de software. |
| otra_ia | Otro agente. |
| base_datos | Un almacén de datos. |
Respuesta
Siempre tres cosas: el id de la invocación, un estado y la lista de entregas. Una invocación puede salir por varios canales a la vez, así que el estado es el resumen de las entregas, no el de una.
Todas las entregas salieron.
Nada. El id queda en el registro.
Al menos una entrega salió y al menos una falló.
Leé deliveries. No reintentes la invocación entera.
Una política frenó la ejecución y espera una firma humana.
No reintentes. Consultá con el mismo idempotency_key.
No salió ninguna entrega. Cada una dice por qué.
Casi siempre: falta la vinculación, o el canal está mal configurado.
Cada entrega
- channel
- el transporte por el que salió · email, chat, webhook, sms, data
- binding_id
- la vinculación que autorizó esta entrega
- action_id
- la fila de esta entrega, que es lo que muestra el registro
- status
- delivered · failed
- provider_reference
- lo que devolvió el proveedor: el id del mensaje, el código http
- failure_reason
- solo si falló: lo que dijo el proveedor, textual
Una llamada que quedó esperando una firma no trae entregas todavía: la acción se crea cuando alguien firma, y hasta entonces lo que hay es la solicitud que nombra approval_id.
El recurso loomen://scope
El esquema de la herramienta lleva las ocho acciones y los cuatro destinos, que son lo que la plataforma TIENE. Lo que tu organización CONFIGURÓ es otra cosa, y cambia cuando alguien crea o revoca una vinculación: por eso se lee como recurso, con la misma credencial, en vez de escribirse en un prompt que envejece.
No trae ids de vinculación ni direcciones. Un id que el agente puede leer es un id que termina pegado en un prompt, y a dónde llega la acción no es asunto del agente.
1{2"entries": [3{ "action": "notificar", "destination": "humano", "channel": "email", "environment": "production" },4{ "action": "notificar", "destination": "humano", "channel": "webhook", "environment": "production" }5],6"note": "Cada entrada es un par action+destination que podés nombrar en loomen_execute_action. La plataforma resuelve por qué canales sale."7}
Autenticación
Una clave de agente en la cabecera Authorization: Bearer. Nace al registrar el agente y se muestra una sola vez. Cubre todas las vinculaciones de ese agente.
Se resuelve contra la plataforma en cada llamada, así que una clave emitida hace un minuto sirve enseguida y una revocada deja de servir enseguida. Rotarla deja la anterior viva 24 horas; revocarla la corta en el acto.