Herramientas
Las 37 herramientas del servidor, una por una, y qué permiso exige cada cosa.
Hay una herramienta por cada operación de la API, con el mismo nombre en snake_case y
exactamente el mismo permiso. No hay herramientas «de alto nivel» que junten varias consultas:
si existiera un resumen_del_mes con su propia forma de sumar, tarde o temprano el asistente
diría 4,2 millones y el panel diría 4,1, y nadie sabría cuál tiene razón.
Lo que tu llave no puede hacer, no aparece
El catálogo se arma con los permisos de tu llave. Con una de solo lectura, el asistente ni
siquiera sabe que create_expense existe: no es que se le niegue al intentarlo, es que no
está en la lista. Un modelo que ve una herramienta asume que puede usarla, y media
conversación se va en intentarlo, fallar y explicar un permiso que nunca tuvo.
Identidad
| Herramienta | Permiso | Qué hace |
|---|---|---|
whoami | — | Alias de la llave, permisos, negocios a los que entra y plan. La primera que conviene llamar. |
get_plan | plan.read | Plan, funciones incluidas, límites y cuánto cupo de verificaciones queda este mes. |
Verificación
| Herramienta | Permiso | Qué hace |
|---|---|---|
verify_receipt | verifications.write | Registra un comprobante y devuelve el veredicto: REGISTERED, ALREADY_VERIFIED o DUPLICATE. Consume cupo. |
Ingresos
| Herramienta | Permiso | Qué hace |
|---|---|---|
list_incomes | incomes.read | Pagos por fecha, estado, origen, sucursal, monto, cuenta o texto libre. Responde «¿cuánto entró ayer?». |
get_income | incomes.read | El detalle de un pago, con sus comprobantes y por qué canal lo respaldó el banco. |
get_income_receipt | incomes.read | Muestra el comprobante como imagen, dentro del propio chat. Si el pago tiene varios, enumera el resto. |
declare_income | incomes.write | Anota un pago en el libro. Nace DECLARED y no consume cupo. |
update_income | incomes.write | Corrige un pago declarado a mano. Los demás son inmutables. |
delete_income | incomes.delete | Borra un pago declarado a mano. |
El comprobante viaja como imagen, no como enlace
get_income_receipt devuelve la foto ya reducida y el asistente la pinta en la conversación.
No se firma ninguna URL de descarga: una dirección así serviría a cualquiera que la tuviera,
desde cualquier máquina, hasta que venciera. Aquí el permiso se comprueba en cada llamada y,
si quitas la conexión desde el panel, deja de funcionar en la siguiente.
Dos consecuencias prácticas: un comprobante en PDF no se puede pintar (te responde con los datos del archivo y dónde abrirlo), y la imagen queda dentro de la conversación — trátala como lo que es, el comprobante en el chat.
Egresos
| Herramienta | Permiso | Qué hace |
|---|---|---|
list_expenses | expenses.read | Gastos por fecha, categoría, sucursal, monto, forma de pago o beneficiario. |
get_expense | expenses.read | El detalle de un gasto. |
create_expense | expenses.write | Registra un gasto. Pide categoryId, así que suele ir después de list_expense_categories. |
update_expense | expenses.write | Corrige un gasto. |
delete_expense | expenses.delete | Borra un gasto. |
list_expense_categories | categories.read | Las categorías del negocio, con su emoji y si están activas. |
create_expense_category | categories.write | Crea una categoría propia. Nombre y emoji obligatorios; descripción opcional. |
update_expense_category | categories.write | Renombra, cambia el emoji o desactiva una categoría. |
delete_expense_category | categories.write | Borra una categoría. Falla si ya tiene gastos: en ese caso se desactiva. |
Negocio
| Herramienta | Permiso | Qué hace |
|---|---|---|
get_company | companies.read | Nombre, categoría (con etiqueta legible), ciudad y cuántas sucursales tiene. |
list_branches | branches.read | Las sucursales, con cuál es la principal. |
list_business_categories | companies.read | El catálogo de «a qué se dedica un negocio». |
list_payment_accounts | payment_accounts.read | Cuentas de recaudo, por alias y últimos cuatro. Nunca el número completo. |
Equipo
| Herramienta | Permiso | Qué hace |
|---|---|---|
list_team_members | team.read | Quién trabaja aquí, con qué rol y en qué sucursal, más el cupo de usuarios del plan. Sin correos. |
list_roles | team.read | Los roles que se pueden asignar. |
Pagos sospechosos
| Herramienta | Permiso | Qué hace |
|---|---|---|
list_suspicious_attempts | suspicious.read | Comprobantes repetidos (DUPLICATE) y comprobantes que el banco nunca respaldó (NOT_FOUND). |
get_suspicious_attempt | suspicious.read | El detalle de un intento. |
Bancos y reportes
| Herramienta | Permiso | Qué hace |
|---|---|---|
get_connections | connections.read | Si los avisos del banco siguen entrando. Responde «¿se cayó algo?». |
get_metrics | metrics.read | Totales del periodo y del anterior, serie por día, perfil por hora y ranking por persona y por cuenta. Acepta turnos. |
Webhooks
| Herramienta | Permiso | Qué hace |
|---|---|---|
list_webhook_event_types | webhooks.read | Los eventos a los que se puede suscribir, y cuáles permite el plan. |
list_webhook_endpoints | webhooks.read | Los webhooks configurados y su salud reciente. |
list_webhook_deliveries | webhooks.read | El historial: qué se mandó y qué respondió tu servidor. Depurar sin abrir logs. |
create_webhook_endpoint | webhooks.write | Da de alta una URL y devuelve el secreto de firma. |
update_webhook_endpoint | webhooks.write | Cambia URL, eventos o descripción; lo apaga y lo enciende. |
delete_webhook_endpoint | webhooks.write | Lo borra, con todo su historial. |
rotate_webhook_secret | webhooks.write | Secreto nuevo, con ventana de gracia en la que firmamos con los dos. |
test_webhook_endpoint | webhooks.write | Dispara un webhook.test para comprobar que responde. |
retry_webhook_delivery | webhooks.write | Reencola una entrega fallida sin esperar al reintento automático. |
Guiones listos
Además de las herramientas, el servidor trae prompts: tareas de varios pasos ya escritas.
En Claude Desktop salen como comandos con /; en otros clientes, en un menú aparte.
| Guion | Qué hace |
|---|---|
cierre-de-caja | Totales del día, pagos que quedaron pendientes, gastos y sospechosos. Acepta una fecha. |
revisar-sospechosos | Separa los repetidos de los que el banco nunca respaldó — y comprueba antes que el canal del banco no se hubiera caído, porque si se cayó, esos «falsos» pueden ser pagos buenos. |
diagnosticar-webhook | Por qué no llegan los eventos, y de qué lado está el problema. |
Cosas que ninguna herramienta puede hacer
No es que estén restringidas: no existen, por las mismas razones que en la API.
- Marcar un pago como verificado. Solo el cruce con el aviso real del banco cambia ese estado. Si un asistente pudiera decir «esto está verificado», el dato dejaría de significar algo — y ese dato es el producto.
- Editar un pago que nació de un comprobante o de un aviso del banco. Su fuente de verdad está fuera del libro.
- Crear, rotar o revocar API keys. Eso exige una sesión de una persona en el panel: una llave que puede emitir llaves convierte cualquier fuga en una fuga total.
- Borrar una categoría con gastos. Se desactiva; el histórico se conserva.
- Invitar gente al equipo o cambiarle el rol a nadie. Se lee el equipo, no se administra.