velora

Hosted Argentine commerce MCP: real AFIP invoicing, MercadoPago, logistics, catalog & WhatsApp.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
94%
Integridad del esquema
87%
Calidad de los nombres
93%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (5)

  • LOWTool 'query_sales' description lacks action verben query_sales
  • LOWTool 'connect_mercadopago' description lacks action verben connect_mercadopago
  • LOWTool 'connect_pedidosya' description lacks action verben connect_pedidosya
  • LOWTool 'connect_whatsapp' description lacks action verben connect_whatsapp
  • LOWTool 'connect_tiendanube' description lacks action verben connect_tiendanube

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~9,249Tokens (definiciones de herramientas)
~1.4 KBTamaño de respuesta típico
Impacto significativo en la atención (7.23% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "velora": {
      "url": "https://tools.somosvelora.com/api/mcp"
    }
  }
}

Puntos de conexión remotos

https://tools.somosvelora.com/api/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (50)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢validate_cuit(cuit)

Validates an Argentine CUIT or CUIL number. Returns parsed components (prefix, body, check digit), person type, and whether the check digit is mathematically correct. Accepts any format: raw digits, hyphened (20-12345678-9), or spaced. This tool runs the REAL check-digit algorithm — not a demo fixture.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "cuit": {
      "type": "string",
      "description": "CUIT/CUIL in any format (digits, hyphens, or spaces)."
    }
  },
  "required": [
    "cuit"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_fiscal_readiness

Checks whether the business is ready to emit real ARCA electronic invoices. Returns { ready, missing, guidance } where ready=true means all fiscal fields and the ARCA certificate are configured.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴emit_invoice(customerCuit, amountARS, tipo, concept, requestId)

[demo: deshabilitada] Emits an ARCA (formerly AFIP)-compliant electronic invoice (factura electrónica) for the authenticated business and returns the CAE authorization code.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customerCuit": {
      "type": "string",
      "description": "Customer CUIT/CUIL (11 digits, any format)."
    },
    "amountARS": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Invoice total in Argentine pesos (ARS)."
    },
    "tipo": {
      "type": "string",
      "enum": [
        "A",
        "B",
        "C"
      ],
      "description": "A = IVA discriminado (B2B), B = consumidor final, C = monotributo."
    },
    "concept": {
      "description": "Items or concept description (optional).",
      "type": "string"
    },
    "requestId": {
      "description": "Optional idempotency nonce.",
      "type": "string"
    }
  },
  "required": [
    "customerCuit",
    "amountARS",
    "tipo"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴emit_nota(customerCuit, amountARS, tipo, kind, associatedInvoice, ...)

[demo: deshabilitada] Emits an ARCA-compliant Nota Crédito (NC) or Nota Débito (ND) against an original AFIP invoice and returns the CAE authorization code.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customerCuit": {
      "type": "string",
      "description": "Customer CUIT/CUIL (11 digits, any format)."
    },
    "amountARS": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Note total in Argentine pesos (ARS)."
    },
    "tipo": {
      "type": "string",
      "enum": [
        "A",
        "B",
        "C"
      ],
      "description": "Invoice type letter for this nota."
    },
    "kind": {
      "type": "string",
      "enum": [
        "credito",
        "debito"
      ],
      "description": "credito = Nota Crédito, debito = Nota Débito."
    },
    "associatedInvoice": {
      "type": "object",
      "properties": {
        "tipo": {
          "type": "string",
          "enum": [
            "1",
            "6",
            "11"
          ],
          "description": "WSFE tipoComprobante of the original factura: 1=A, 6=B, 11=C."
        },
        "ptoVta": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991,
          "description": "Punto de venta of the original invoice."
        },
        "nro": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991,
          "description": "Sequential number of the original invoice."
        }
      },
      "required": [
        "tipo",
        "ptoVta",
        "nro"
      ],
      "description": "Reference to the original invoice being credited or debited."
    },
    "concept": {
      "description": "Items or concept description (optional).",
      "type": "string"
    },
    "requestId": {
      "description": "Optional idempotency nonce.",
      "type": "string"
    }
  },
  "required": [
    "customerCuit",
    "amountARS",
    "tipo",
    "kind",
    "associatedInvoice"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_product(name, price, costPrice, weightGrams, initialStock)

[demo: deshabilitada] Creates a new product in the business catalog. Requires name and price.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Product name."
    },
    "price": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Selling price in ARS."
    },
    "costPrice": {
      "description": "Purchase cost price in ARS (optional).",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "weightGrams": {
      "description": "Weight in grams (optional).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "initialStock": {
      "default": 0,
      "description": "Initial stock quantity (default 0).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "name",
    "price"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴edit_product(productId, name, price, costPrice, stockQuantity)

[demo: deshabilitada] Updates a single product's fields (name, price, costPrice, or stockQuantity).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "minLength": 1,
      "description": "ID of the product to update."
    },
    "name": {
      "description": "New product name (optional).",
      "type": "string",
      "minLength": 1
    },
    "price": {
      "description": "New selling price in ARS (optional).",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "costPrice": {
      "description": "New cost price, or null to clear (optional).",
      "anyOf": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "stockQuantity": {
      "description": "Set stock to this value (optional).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "productId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴stock_load(productId, itemName, supplierId, supplierName, quantity, ...)

[demo: deshabilitada] Records inbound stock for a product — restock or initial stock, with an audit trail.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "productId": {
      "description": "Existing product ID (optional if itemName resolves it).",
      "type": "string"
    },
    "itemName": {
      "type": "string",
      "minLength": 1,
      "description": "Product name for resolution or auto-creation."
    },
    "supplierId": {
      "description": "Existing supplier ID (optional).",
      "type": "string"
    },
    "supplierName": {
      "description": "Supplier name (optional).",
      "type": "string"
    },
    "quantity": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Units received."
    },
    "unitPrice": {
      "description": "Cost per unit in ARS.",
      "type": "number",
      "minimum": 0
    },
    "autoCreateProduct": {
      "default": false,
      "description": "Auto-create product if not found.",
      "type": "boolean"
    },
    "createPurchaseRequest": {
      "default": false,
      "description": "Also create a purchase request for this stock load.",
      "type": "boolean"
    }
  },
  "required": [
    "itemName",
    "quantity"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴adjust_stock(productId, mode, quantity)

[demo: deshabilitada] Sets the absolute stock quantity for a product (inventory sync, no audit trail).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "minLength": 1,
      "description": "Product ID to update."
    },
    "mode": {
      "type": "string",
      "const": "set",
      "description": "Must be 'set'. Absolute-set is the only mode available via MCP."
    },
    "quantity": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "New absolute stock quantity."
    }
  },
  "required": [
    "productId",
    "mode",
    "quantity"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴delete_product(productId)

[demo: deshabilitada] Deletes (or soft-archives, when it has sale records) a product from the catalog.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "minLength": 1,
      "description": "ID of the product to delete."
    }
  },
  "required": [
    "productId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴bulk_price_update(amount, mode, direction, productIds)

[demo: deshabilitada] Mass price change for all products or a specified subset in this business.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Adjustment amount — percentage or fixed ARS value depending on mode."
    },
    "mode": {
      "type": "string",
      "enum": [
        "percent",
        "fixed"
      ],
      "description": "'percent' = percentage change; 'fixed' = absolute ARS change."
    },
    "direction": {
      "type": "string",
      "enum": [
        "up",
        "down",
        "set"
      ],
      "description": "'up' raises, 'down' lowers, 'set' assigns an exact price."
    },
    "productIds": {
      "description": "Specific product IDs to update. Omit to update ALL products.",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    }
  },
  "required": [
    "amount",
    "mode",
    "direction"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢query_catalog(search)

Lists active products in the business catalog. Returns products sorted by name, each with id, name, price (ARS), costPrice, sku, stock quantity, and weightGrams.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Optional name filter (case-insensitive substring match).",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_catalog_selector(search)

Opens the catalog selector — a graphical product picker (MCP Apps widget) that shows active products with prices (ARS) and stock. Side-effect-free (no sale, no charge).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Optional name filter (case-insensitive substring match).",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴register_sale(items, customerId, paymentMethod, requestId)

[demo: deshabilitada] Records a sale for the authenticated business. Creates a full Sale with SaleItems, decrements inventory, creates a CashMovement and Invoice.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "items": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "minLength": 1,
            "description": "Product ID."
          },
          "quantity": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Units sold (positive integer)."
          },
          "unitPrice": {
            "description": "Sale price per unit in ARS (optional; catalog price used when omitted).",
            "type": "number",
            "exclusiveMinimum": 0
          }
        },
        "required": [
          "productId",
          "quantity"
        ]
      },
      "description": "Line items for the sale."
    },
    "customerId": {
      "description": "Optional customer ID. Omit for anonymous sales.",
      "type": "string"
    },
    "paymentMethod": {
      "description": "Defaults to 'efectivo' when omitted.",
      "type": "string",
      "enum": [
        "efectivo",
        "transferencia",
        "mp",
        "qr",
        "modo"
      ]
    },
    "requestId": {
      "description": "Optional idempotency override.",
      "type": "string"
    }
  },
  "required": [
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴register_movement(type, description, amount, date)

[demo: deshabilitada] Records a cash-register movement for the authenticated business ('purchase', 'income', 'salary', 'tax', 'adjustment').

Esquema de entrada

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "purchase",
        "tax",
        "salary",
        "adjustment",
        "income",
        "sale"
      ],
      "description": "Movement type."
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "Description (e.g. 'Pago proveedor Distribuidora ABC')."
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Amount in ARS (always positive)."
    },
    "date": {
      "description": "ISO 8601 date/datetime. Defaults to now.",
      "type": "string"
    }
  },
  "required": [
    "type",
    "description",
    "amount"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴return_sale(confirm, count, cutoffHours)

[demo: deshabilitada] Reverses the N most-recent sales within a time window. Restores inventory, removes CashMovement, SaleItem, Invoice, and Sale records. Destructive and irreversible.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Must be explicitly true to confirm reversing sales."
    },
    "count": {
      "default": 1,
      "description": "Number of recent sales to reverse (max 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 10
    },
    "cutoffHours": {
      "default": 24,
      "description": "Only consider sales within the last N hours (max 48).",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 48
    }
  },
  "required": [
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢find_customer(name, phone)

Searches customers in the business by name and/or phone. Returns up to 20 matching customers sorted by name.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Customer name substring to search (case-insensitive).",
      "type": "string"
    },
    "phone": {
      "description": "Customer phone number or partial number to search.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴upsert_customer(customerId, name, phone, email, address, ...)

[demo: deshabilitada] Creates a new customer or updates an existing one for the authenticated business.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customerId": {
      "description": "When provided, updates the customer with this id.",
      "type": "string"
    },
    "name": {
      "description": "Customer display name.",
      "type": "string"
    },
    "phone": {
      "description": "Customer phone number.",
      "type": "string"
    },
    "email": {
      "description": "Customer email address (optional).",
      "type": "string"
    },
    "address": {
      "description": "Customer street address (optional).",
      "type": "string"
    },
    "postalCode": {
      "description": "Customer postal code (optional).",
      "type": "string"
    },
    "city": {
      "description": "Customer city or locality (optional).",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴delete_customer(customerId)

[demo: deshabilitada] Deletes a customer from this business (blocked when the customer has sales or invoices).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customerId": {
      "type": "string",
      "minLength": 1,
      "description": "ID of the customer to delete."
    }
  },
  "required": [
    "customerId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢quote_shipping(originPostalCode, destinationPostalCode, weightGrams, declaredValue)

Quotes shipment rates from every active courier configured for the authenticated business and returns options sorted by price ascending.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "originPostalCode": {
      "type": "string",
      "description": "Origin postal code (4 digits)."
    },
    "destinationPostalCode": {
      "type": "string",
      "description": "Destination postal code (4 digits)."
    },
    "weightGrams": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Total shipment weight in grams."
    },
    "declaredValue": {
      "description": "Declared value in ARS for insurance.",
      "type": "number",
      "minimum": 0
    }
  },
  "required": [
    "originPostalCode",
    "destinationPostalCode",
    "weightGrams"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴create_shipment(provider, saleId, customerName, customerLastName, customerAddress, ...)

[demo: deshabilitada] Creates a physical shipment via the chosen courier and returns a tracking number and label URL.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "description": "Courier slug from quote_shipping ('andreani', 'oca')."
    },
    "saleId": {
      "type": "string",
      "description": "Velora Sale ID."
    },
    "customerName": {
      "type": "string",
      "description": "Recipient first name."
    },
    "customerLastName": {
      "description": "Recipient last name (optional).",
      "type": "string"
    },
    "customerAddress": {
      "type": "string",
      "description": "Recipient street name."
    },
    "customerAddressNumber": {
      "description": "Recipient street number (required by OCA).",
      "type": "string"
    },
    "customerPostalCode": {
      "type": "string",
      "description": "Recipient postal code."
    },
    "customerCity": {
      "description": "Recipient city (optional).",
      "type": "string"
    },
    "customerProvince": {
      "description": "Recipient province (required by OCA).",
      "type": "string"
    },
    "customerPhone": {
      "description": "Recipient phone number (optional).",
      "type": "string"
    },
    "customerDni": {
      "description": "Recipient DNI (required by Andreani in production).",
      "type": "string"
    },
    "service": {
      "description": "Courier-specific service key (defaults to 'domicilio').",
      "type": "string"
    },
    "weightGrams": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Total shipment weight in grams."
    }
  },
  "required": [
    "provider",
    "saleId",
    "customerName",
    "customerAddress",
    "customerPostalCode",
    "weightGrams"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢track_shipment(trackingNumber, provider)

Tracks the current status and event history of a shipment by tracking number.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "trackingNumber": {
      "type": "string",
      "description": "Tracking number returned by the courier at shipment creation time."
    },
    "provider": {
      "type": "string",
      "description": "Courier that created the shipment ('andreani', 'oca')."
    }
  },
  "required": [
    "trackingNumber",
    "provider"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_package_profile(saleId, productIds, weightGramsOverride)

Computes the shipment weight and item breakdown for a package. Accepts a saleId, a list of productIds, or an explicit weightGramsOverride.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "saleId": {
      "description": "Velora Sale ID (takes priority over productIds).",
      "type": "string"
    },
    "productIds": {
      "description": "Array of Velora Product IDs (assumes qty=1 per id).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "weightGramsOverride": {
      "description": "Explicit weight override in grams.",
      "type": "number",
      "exclusiveMinimum": 0
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴send_whatsapp_text(to, text, mediaUrl)

[demo: deshabilitada] Sends a plain-text WhatsApp message to a customer phone number. Only valid inside the 24-hour customer-service window (Meta error 131026 outside).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "to": {
      "type": "string",
      "minLength": 1,
      "description": "Recipient phone number (local AR or E.164)."
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "description": "Message text body."
    },
    "mediaUrl": {
      "description": "Optional public URL of a media file to attach.",
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "to",
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴send_whatsapp_template(to, templateName, components, languageCode)

[demo: deshabilitada] Sends a pre-approved Meta WhatsApp template message. Window-independent — can be sent proactively, outside the 24-hour session window.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "to": {
      "type": "string",
      "minLength": 1,
      "description": "Recipient phone number (local AR or E.164)."
    },
    "templateName": {
      "type": "string",
      "description": "Exact template name as registered in Meta Business Manager."
    },
    "components": {
      "description": "Template variable substitutions (omit for templates with no placeholders).",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "body",
              "header",
              "button"
            ],
            "description": "Component section to populate."
          },
          "parameters": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "const": "text"
                },
                "text": {
                  "type": "string"
                }
              },
              "required": [
                "type",
                "text"
              ]
            },
            "description": "Ordered text substitutions."
          }
        },
        "required": [
          "type",
          "parameters"
        ]
      }
    },
    "languageCode": {
      "description": "BCP-47 language code (defaults to 'es_AR').",
      "type": "string"
    }
  },
  "required": [
    "to",
    "templateName"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢connection_status

Returns the BYOA (Bring Your Own Account) integration readiness for the authenticated business — what is connected and how to connect what is missing. Read-only.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢caja_consultar_saldo

Queries the current cash register balance for the authenticated business — the open session data or the last closed session. Read-only.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴caja_ciclo_caja(action, monto, nota)

[demo: deshabilitada] Opens or closes a cash register shift for the authenticated business.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "abrir",
        "cerrar"
      ],
      "description": "'abrir' to open a shift, 'cerrar' to close it."
    },
    "monto": {
      "type": "number",
      "minimum": 0,
      "description": "Opening float (abrir) or physically counted cash (cerrar) in ARS."
    },
    "nota": {
      "description": "Optional operator note.",
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "action",
    "monto"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴caja_registrar_movimiento(tipo, monto, descripcion)

[demo: deshabilitada] Records a cash movement tied to the OPEN caja shift: income, expense, withdrawal, tax, or payroll.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "tipo": {
      "type": "string",
      "enum": [
        "ingreso",
        "gasto",
        "retiro",
        "sangria",
        "sangría",
        "impuesto",
        "sueldo"
      ],
      "description": "Movement type."
    },
    "monto": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Positive amount in ARS."
    },
    "descripcion": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "Movement description."
    }
  },
  "required": [
    "tipo",
    "monto",
    "descripcion"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_payment_intent_status(paymentIntentId, customerName)

Checks the current status of a Velora PaymentIntent. Accepts a paymentIntentId OR a customer name.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "paymentIntentId": {
      "description": "Velora PaymentIntent id. Optional when customerName is provided.",
      "type": "string"
    },
    "customerName": {
      "description": "Customer name (fuzzy match).",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_payment_link_wizard(description, customerId, items)

Opens the payment-link wizard — a graphical form pre-filled with the cobro, for the owner to review and confirm before any money moves. Side-effect-free (no charge).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "Cobro description (e.g. '3 alfajores')."
    },
    "customerId": {
      "description": "Customer ID (optional).",
      "type": "string",
      "minLength": 1
    },
    "items": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "minLength": 1,
            "description": "Product ID."
          },
          "quantity": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Units."
          },
          "unitPriceOverride": {
            "description": "Optional negotiated unit price.",
            "type": "number",
            "exclusiveMinimum": 0
          }
        },
        "required": [
          "productId",
          "quantity"
        ]
      },
      "description": "Line items (productId + quantity)."
    }
  },
  "required": [
    "description",
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_pending_orders

Opens the pending cobros dashboard — a read-only widget listing PaymentIntents awaiting payment. Side-effect-free.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_cobro_status(paymentIntentId, customerName)

Opens the cobro status widget — a read-only view of ONE PaymentIntent's payment state. Accepts paymentIntentId OR customerName.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "paymentIntentId": {
      "description": "Velora PaymentIntent id (optional when customerName is provided).",
      "type": "string"
    },
    "customerName": {
      "description": "Customer name (optional when paymentIntentId is provided).",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_delivery_receipt(paymentIntentId, saleId, customerName)

Opens the comprobante + envío widget — a read-only view of the delivery receipt for a completed cobro. Accepts paymentIntentId, saleId, OR customerName.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "paymentIntentId": {
      "description": "Velora PaymentIntent id (optional).",
      "type": "string"
    },
    "saleId": {
      "description": "Velora Sale id (optional).",
      "type": "string"
    },
    "customerName": {
      "description": "Customer name (optional).",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴create_tracked_payment_link(customerId, items, description, expiresInDays, idempotencyKey)

[demo: deshabilitada] Creates a tracked MercadoPago payment link for a catalog-tied cobro: atomically records the Sale + Invoice + PaymentIntent, then generates a real Checkout Pro link. MONEY: real and irreversible.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customerId": {
      "type": "string",
      "minLength": 1,
      "description": "Customer ID."
    },
    "items": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "minLength": 1,
            "description": "Product ID."
          },
          "quantity": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Units."
          },
          "unitPriceOverride": {
            "description": "Optional negotiated unit price.",
            "type": "number",
            "exclusiveMinimum": 0
          }
        },
        "required": [
          "productId",
          "quantity"
        ]
      },
      "description": "Line items."
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "description": "Cobro description shown on the MP preference."
    },
    "expiresInDays": {
      "description": "Link lifetime in days (1–30, default 3).",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "idempotencyKey": {
      "type": "string",
      "minLength": 1,
      "description": "Stable UUID generated by the wizard."
    }
  },
  "required": [
    "customerId",
    "items",
    "description",
    "idempotencyKey"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_suppliers(search)

Returns all suppliers for this business (up to 50, sorted by name).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Optional name substring to filter suppliers.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_supplier(name, phone, email, contactName, leadTimeDays)

[demo: deshabilitada] Creates a supplier for this business.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Supplier name (must be unique within this business)."
    },
    "phone": {
      "description": "Supplier phone number (optional).",
      "type": "string"
    },
    "email": {
      "description": "Supplier email address (optional).",
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "contactName": {
      "description": "Contact person name (optional).",
      "type": "string"
    },
    "leadTimeDays": {
      "description": "Default lead time in days (optional).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴create_purchase_request(supplierId, supplierName, itemName, quantity, unitPrice)

[demo: deshabilitada] Creates a procurement order (purchase request) to a supplier.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "supplierId": {
      "description": "Existing supplier ID (optional if supplierName is provided).",
      "type": "string"
    },
    "supplierName": {
      "description": "Supplier name (optional if supplierId is provided).",
      "type": "string"
    },
    "itemName": {
      "type": "string",
      "minLength": 1,
      "description": "Name of the item being ordered."
    },
    "quantity": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Quantity to order."
    },
    "unitPrice": {
      "type": "number",
      "minimum": 0,
      "description": "Unit price per item in ARS."
    }
  },
  "required": [
    "itemName",
    "quantity",
    "unitPrice"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴edit_supplier(supplierId, name, phone, email, contactName, ...)

[demo: deshabilitada] Updates an existing supplier's fields.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "supplierId": {
      "type": "string",
      "minLength": 1,
      "description": "ID of the supplier to update."
    },
    "name": {
      "description": "New supplier name (optional).",
      "type": "string",
      "minLength": 1
    },
    "phone": {
      "description": "New phone number, or null to clear.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "email": {
      "description": "New email, or null to clear.",
      "anyOf": [
        {
          "type": "string",
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "contactName": {
      "description": "New contact person name, or null to clear.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "leadTimeDays": {
      "description": "New lead time in days, or null to clear.",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "supplierId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴delete_supplier(supplierId)

[demo: deshabilitada] Deletes a supplier from this business (with full audit trail).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "supplierId": {
      "type": "string",
      "minLength": 1,
      "description": "ID of the supplier to delete."
    }
  },
  "required": [
    "supplierId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢query_sales(metrica, preset, from, to, customer_name, ...)

Queries sales metrics from the database: 'ventas_periodo', 'margen', 'ranking_productos', 'por_empleado', or 'historial_cliente'.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "metrica": {
      "type": "string",
      "enum": [
        "ventas_periodo",
        "margen",
        "ranking_productos",
        "por_empleado",
        "historial_cliente"
      ],
      "description": "Metric to query."
    },
    "preset": {
      "description": "Preset date range. Mutually exclusive with from/to.",
      "type": "string",
      "enum": [
        "hoy",
        "semana",
        "mes"
      ]
    },
    "from": {
      "description": "Start date YYYY-MM-DD. Requires 'to'.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "to": {
      "description": "End date YYYY-MM-DD. Requires 'from'.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "customer_name": {
      "description": "Customer name or fragment. Only for historial_cliente.",
      "type": "string",
      "minLength": 1
    },
    "limit": {
      "default": 10,
      "description": "Max results (default 10, max 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "metrica"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴connect_mercadopago(accessToken)

[demo: deshabilitada] Connects MercadoPago for this business using the BYOA OAuth-redirect model. Primary: returns an authorization URL. Fallback: accepts a production access token directly.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "accessToken": {
      "description": "Optional MercadoPago production access token.",
      "type": "string",
      "minLength": 20,
      "pattern": "^APP_USR-.*"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴connect_pedidosya(apiToken)

[demo: deshabilitada] Connects PedidosYa for this business using the BYOA secure-form model. Primary: returns a secure link. Fallback: accepts an API token directly.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "apiToken": {
      "description": "Optional PedidosYa API token.",
      "type": "string",
      "minLength": 1
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴connect_whatsapp(phone)

[demo: deshabilitada] Connects WhatsApp Business using the BYOA Meta Embedded Signup model. Primary: returns a signup link. Optional: registers a phone number as a lightweight pre-step.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "phone": {
      "description": "Optional WhatsApp Business phone in E.164 format.",
      "type": "string",
      "minLength": 8
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴connect_tiendanube

[demo: deshabilitada] Connects Tienda Nube (Nuvemshop) using the BYOA OAuth-redirect model. Returns an authorization URL — no token ever passes through chat. Gated behind env config in production.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴upload_catalog(products)

[demo: deshabilitada] Bulk-creates products in the business catalog from a structured list (up to 50 items).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "products": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Product name."
          },
          "price": {
            "type": "number",
            "description": "Selling price in ARS."
          }
        },
        "required": [
          "name",
          "price"
        ]
      },
      "description": "List of products to create (1–50 items)."
    }
  },
  "required": [
    "products"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_sale_confirm(items, customerId)

Opens a VISUAL preview of a cash sale — resolved product names, unit prices, quantities, and total — with a confirm button that fires register_sale. Read-only preview itself.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "items": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "minLength": 1,
            "description": "Product ID."
          },
          "quantity": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Units to sell."
          }
        },
        "required": [
          "productId",
          "quantity"
        ]
      },
      "description": "Line items for the sale."
    },
    "customerId": {
      "description": "Optional customer ID (omit for anonymous sales).",
      "type": "string"
    }
  },
  "required": [
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_caja_status

Opens a visual widget showing the current shift state and action buttons. Read-only here.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_onboarding

Opens a graphical onboarding hub showing integration status and connect links. Read-only.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_business_overview(customerName, defaultTab)

ONE widget, two display modes: inline snapshot by default, fullscreen tabs (Cliente 360, Cerrar el día, Reposición de stock, Dashboard de ventas) on demand. Aggregates caja, payments, ventas, reportes, supplier, and customer reads.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customerName": {
      "description": "Optional customer name to pre-search on the Cliente 360 tab.",
      "type": "string"
    },
    "defaultTab": {
      "description": "Optional fullscreen tab to open into.",
      "type": "string",
      "enum": [
        "cliente_360",
        "cierre_dia",
        "reposicion_stock",
        "dashboard_ventas"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢open_shipment_prep(items, originPostalCode, destinationPostalCode, declaredValue)

Combines catalog stock/weight data and a live shipping quote into one widget — resolves items, computes total weight, and quotes couriers. Read-only, side-effect-free.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "items": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "minLength": 1,
            "description": "Product ID."
          },
          "quantity": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Units."
          }
        },
        "required": [
          "productId",
          "quantity"
        ]
      },
      "description": "Line items to prepare for shipment."
    },
    "originPostalCode": {
      "type": "string",
      "description": "Origin postal code (4 digits)."
    },
    "destinationPostalCode": {
      "type": "string",
      "description": "Destination postal code (4 digits)."
    },
    "declaredValue": {
      "description": "Declared value in ARS for insurance.",
      "type": "number",
      "minimum": 0
    }
  },
  "required": [
    "items",
    "originPostalCode",
    "destinationPostalCode"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada50 herramientas
verificadoversión no registrada50 herramientas
verificadoversión no registrada50 herramientas