velora
Hosted Argentine commerce MCP: real AFIP invoicing, MercadoPago, logistics, catalog & WhatsApp.
使うべきか
品質と安全性
検出事項(5)
- LOWquery_sales 内
- LOWconnect_mercadopago 内
- LOWconnect_pedidosya 内
- LOWconnect_whatsapp 内
- LOWconnect_tiendanube 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"velora": {
"url": "https://tools.somosvelora.com/api/mcp"
}
}
}リモートエンドポイント
https://tools.somosvelora.com/api/mcpstreamable-httpできること
ツール一覧
ツール(50)
🟢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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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').
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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'.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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"
}コミュニティ
エビデンス