{"ok":true,"tools":[{"resource":"movimientos","method":"GET","api_key_allowed":true,"oauth_scopes_required":["itsave.lectura"],"name":"consultar_movimientos","title":"Consultar movimientos","description":"Lista los movimientos bancarios CLASIFICADOS de la empresa (ingresos y egresos con su categoría) en un rango de fechas. Úsala para revisar gastos, ventas, proveedores o buscar un pago específico.","inputSchema":{"type":"object","properties":{"desde":{"type":"string","format":"date","description":"Fecha inicial AAAA-MM-DD. Por defecto, 30 días antes de 'hasta'."},"hasta":{"type":"string","format":"date","description":"Fecha final AAAA-MM-DD (inclusive). Por defecto, hoy."},"tipo":{"type":"string","enum":["ingreso","egreso"],"description":"Filtra por tipo."},"categoria":{"type":"string","description":"Filtra por nombre exacto de categoría."},"texto":{"type":"string","description":"Busca texto en la descripción del movimiento."},"limite":{"type":"integer","minimum":1,"maximum":100,"default":100,"description":"Máximo de movimientos a devolver."}},"additionalProperties":false},"annotations":{"title":"Consultar movimientos","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"movimientos/sin-clasificar","method":"GET","api_key_allowed":true,"oauth_scopes_required":["itsave.lectura"],"name":"consultar_movimientos_sin_clasificar","title":"Movimientos sin clasificar","description":"Lista los movimientos que todavía no tienen categoría asignada en ItSave. Úsala para saber qué falta clasificar o para sugerir categorías.","inputSchema":{"type":"object","properties":{"desde":{"type":"string","format":"date","description":"Fecha inicial AAAA-MM-DD. Por defecto, 30 días antes de 'hasta'."},"hasta":{"type":"string","format":"date","description":"Fecha final AAAA-MM-DD (inclusive). Por defecto, hoy."},"limite":{"type":"integer","minimum":1,"maximum":100,"default":100,"description":"Máximo de movimientos a devolver."}},"additionalProperties":false},"annotations":{"title":"Movimientos sin clasificar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"facturas/venta","method":"GET","api_key_allowed":true,"oauth_scopes_required":["itsave.lectura"],"name":"list_facturas_venta","title":"Listar facturas de venta","description":"Lista las facturas emitidas por la empresa con cliente, RUT, folio, emisión, vencimiento, neto, IVA, total, monto conciliado, saldo y estado de pago.","inputSchema":{"type":"object","properties":{"desde":{"type":"string","format":"date","description":"Fecha inicial AAAA-MM-DD. Por defecto, 30 días antes de 'hasta'."},"hasta":{"type":"string","format":"date","description":"Fecha final AAAA-MM-DD (inclusive). Por defecto, hoy."},"al":{"type":"string","format":"date","description":"Fecha de referencia AAAA-MM-DD para calcular vencimientos y días de atraso. Por defecto, hoy."},"estado":{"type":"string","enum":["pagada","pendiente","vencida","parcialmente_pagada"],"description":"Estado de pago calculado con las conciliaciones y la fecha de vencimiento."},"texto":{"type":"string","description":"Busca por contraparte, RUT, folio o ID externo."},"limite":{"type":"integer","minimum":1,"maximum":100,"default":100,"description":"Máximo de movimientos a devolver."}},"additionalProperties":false},"annotations":{"title":"Listar facturas de venta","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"facturas/compra","method":"GET","api_key_allowed":true,"oauth_scopes_required":["itsave.lectura"],"name":"list_facturas_compra","title":"Listar facturas de compra","description":"Lista las facturas recibidas por la empresa con proveedor, RUT, folio, emisión, vencimiento, neto, IVA, total, monto conciliado, saldo y estado de pago.","inputSchema":{"type":"object","properties":{"desde":{"type":"string","format":"date","description":"Fecha inicial AAAA-MM-DD. Por defecto, 30 días antes de 'hasta'."},"hasta":{"type":"string","format":"date","description":"Fecha final AAAA-MM-DD (inclusive). Por defecto, hoy."},"al":{"type":"string","format":"date","description":"Fecha de referencia AAAA-MM-DD para calcular vencimientos y días de atraso. Por defecto, hoy."},"estado":{"type":"string","enum":["pagada","pendiente","vencida","parcialmente_pagada"],"description":"Estado de pago calculado con las conciliaciones y la fecha de vencimiento."},"texto":{"type":"string","description":"Busca por contraparte, RUT, folio o ID externo."},"limite":{"type":"integer","minimum":1,"maximum":100,"default":100,"description":"Máximo de movimientos a devolver."}},"additionalProperties":false},"annotations":{"title":"Listar facturas de compra","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"facturas/detalle","method":"GET","api_key_allowed":true,"oauth_scopes_required":["itsave.lectura"],"name":"get_factura","title":"Obtener detalle de factura","description":"Devuelve el detalle completo de una factura y los movimientos bancarios o notas de crédito usados para conciliarla. Usa el ID entregado por las herramientas list_facturas.","inputSchema":{"type":"object","properties":{"factura_id":{"type":"integer","description":"ID interno de la factura en ItSave."},"tipo":{"type":"string","enum":["venta","compra"],"description":"Tipo esperado, para validar la búsqueda."},"al":{"type":"string","format":"date","description":"Fecha de referencia AAAA-MM-DD para calcular vencimientos y días de atraso. Por defecto, hoy."}},"required":["factura_id"],"additionalProperties":false},"annotations":{"title":"Obtener detalle de factura","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"cuentas-por-cobrar","method":"GET","api_key_allowed":true,"oauth_scopes_required":["itsave.lectura"],"name":"get_cuentas_por_cobrar","title":"Cuentas por cobrar","description":"Devuelve facturas de venta con saldo pendiente, vencimientos, días de atraso, totales vencidos y deuda agrupada por cliente.","inputSchema":{"type":"object","properties":{"al":{"type":"string","format":"date","description":"Fecha de referencia AAAA-MM-DD para calcular vencimientos y días de atraso. Por defecto, hoy."},"texto":{"type":"string","description":"Filtra por nombre o RUT del cliente."},"limite":{"type":"integer","minimum":1,"maximum":100,"default":100,"description":"Máximo de movimientos a devolver."}},"additionalProperties":false},"annotations":{"title":"Cuentas por cobrar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"cuentas-por-pagar","method":"GET","api_key_allowed":true,"oauth_scopes_required":["itsave.lectura"],"name":"get_cuentas_por_pagar","title":"Cuentas por pagar","description":"Devuelve facturas de compra con saldo pendiente, vencimientos, días de atraso, totales vencidos y deuda agrupada por proveedor.","inputSchema":{"type":"object","properties":{"al":{"type":"string","format":"date","description":"Fecha de referencia AAAA-MM-DD para calcular vencimientos y días de atraso. Por defecto, hoy."},"texto":{"type":"string","description":"Filtra por nombre o RUT del proveedor."},"limite":{"type":"integer","minimum":1,"maximum":100,"default":100,"description":"Máximo de movimientos a devolver."}},"additionalProperties":false},"annotations":{"title":"Cuentas por pagar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"cotizaciones/clientes","method":"GET","api_key_allowed":true,"oauth_scopes_required":["itsave.lectura"],"name":"buscar_clientes_cotizacion","title":"Buscar clientes para cotizar","description":"Busca clientes activos de la empresa por razón social, alias, RUT o correo. Úsala antes de preparar una cotización para resolver el cliente correcto.","inputSchema":{"type":"object","properties":{"texto":{"type":"string","description":"Nombre, RUT, alias o correo a buscar."},"limite":{"type":"integer","minimum":1,"maximum":50,"default":20}},"additionalProperties":false},"annotations":{"title":"Buscar clientes para cotizar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"cotizaciones/productos","method":"GET","api_key_allowed":true,"oauth_scopes_required":["itsave.lectura"],"name":"buscar_productos_cotizacion","title":"Buscar productos para cotizar","description":"Busca productos y servicios activos del catálogo de la empresa. Devuelve precios netos y brutos para preparar correctamente las líneas de una cotización.","inputSchema":{"type":"object","properties":{"texto":{"type":"string","description":"Nombre, descripción, código o categoría a buscar."},"limite":{"type":"integer","minimum":1,"maximum":50,"default":20}},"additionalProperties":false},"annotations":{"title":"Buscar productos para cotizar","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"cotizaciones/preparar","method":"POST","api_key_allowed":false,"oauth_scopes_required":["itsave.lectura"],"name":"preparar_cotizacion","title":"Preparar cotización","description":"Valida cliente, líneas, IVA, vigencia y totales sin crear nada. Devuelve un resumen y un token temporal. Muestra mensaje_confirmacion al usuario y espera una confirmación explícita antes de llamar crear_cotizacion. Nunca interpretes la solicitud inicial como confirmación.","inputSchema":{"type":"object","properties":{"cliente_id":{"type":"integer","description":"ID devuelto por buscar_clientes_cotizacion."},"lineas":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","properties":{"producto_id":{"type":"integer","description":"ID de un producto de ItSave. Si se usa, nombre, descripción y precio pueden omitirse."},"nombre":{"type":"string","description":"Nombre del producto o servicio."},"descripcion":{"type":"string","description":"Detalle opcional de la línea."},"cantidad":{"type":"number","exclusiveMinimum":0,"default":1},"precio_neto":{"type":"number","minimum":0,"description":"Precio unitario neto en CLP, antes de IVA y descuento."},"descuento":{"type":"number","minimum":0,"maximum":100,"default":0}},"additionalProperties":false}},"valida_hasta":{"type":"string","format":"date","description":"Vigencia AAAA-MM-DD. Opcional."},"forma_pago":{"type":"string","description":"Condición de pago, por ejemplo Contado o 30 días."},"notas":{"type":"string","description":"Notas que aparecerán en la cotización."},"tipo_documento":{"type":"string","enum":["33","34"],"description":"33 para cotización afecta a IVA; 34 para cotización exenta."}},"required":["cliente_id","lineas"],"additionalProperties":false},"annotations":{"title":"Preparar cotización","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"cotizaciones/crear","method":"POST","api_key_allowed":false,"oauth_scopes_required":["itsave.cotizaciones.crear"],"name":"crear_cotizacion","title":"Crear cotización en borrador","description":"Crea el borrador preparado, pero no lo envía. Llámala únicamente después de que el usuario haya confirmado explícitamente el resumen devuelto por preparar_cotizacion.","inputSchema":{"type":"object","properties":{"confirmacion_token":{"type":"string","description":"Token temporal devuelto por preparar_cotizacion tras la confirmación del usuario."}},"required":["confirmacion_token"],"additionalProperties":false},"annotations":{"title":"Crear cotización en borrador","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"cotizaciones/preparar-envio","method":"POST","api_key_allowed":false,"oauth_scopes_required":["itsave.lectura"],"name":"preparar_envio_cotizacion","title":"Preparar envío de cotización","description":"Valida la cotización y el correo sin enviar nada. Devuelve el destinatario exacto, una advertencia si difiere del correo del cliente y un token temporal. Muestra mensaje_confirmacion y espera una confirmación explícita antes de llamar enviar_cotizacion.","inputSchema":{"type":"object","properties":{"cotizacion_id":{"type":"integer","description":"ID interno de la cotización."},"para":{"type":"string","format":"email","description":"Destinatario exacto."},"mensaje":{"type":"string","description":"Mensaje opcional incluido en el correo."}},"required":["cotizacion_id","para"],"additionalProperties":false},"annotations":{"title":"Preparar envío de cotización","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"resource":"cotizaciones/enviar","method":"POST","api_key_allowed":false,"oauth_scopes_required":["itsave.cotizaciones.enviar"],"name":"enviar_cotizacion","title":"Enviar cotización por correo","description":"Envía el PDF al destinatario confirmado y registra el envío. Llámala únicamente después de una confirmación explícita del usuario para esa cotización y ese correo exactos.","inputSchema":{"type":"object","properties":{"confirmacion_token":{"type":"string","description":"Token temporal devuelto por preparar_envio_cotizacion tras la confirmación."}},"required":["confirmacion_token"],"additionalProperties":false},"annotations":{"title":"Enviar cotización por correo","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}}]}