{"name":"com.somosvelora/velora","slug":"somosvelora-velora","title":null,"description":"Hosted Argentine commerce MCP: real AFIP invoicing, MercadoPago, logistics, catalog & WhatsApp.","url":"https://mcp.market/server/somosvelora-velora","rating":null,"grade":"B","score":73,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":18,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-08-07T12:53:46.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T13:25:41.994Z","last_ok_at":"2026-11-04T13:25:41.994Z","latency_ms":308},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/crossi-dev/velora-mcp","website":"https://somosvelora.com","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://tools.somosvelora.com/api/mcp"}],"packages":[],"tools":[{"name":"adjust_stock","description":"[demo: deshabilitada] Sets the absolute stock quantity for a product (inventory sync, no audit trail).","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"bulk_price_update","description":"[demo: deshabilitada] Mass price change for all products or a specified subset in this business.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"caja_ciclo_caja","description":"[demo: deshabilitada] Opens or closes a cash register shift for the authenticated business.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"caja_consultar_saldo","description":"Queries the current cash register balance for the authenticated business — the open session data or the last closed session. Read-only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"caja_registrar_movimiento","description":"[demo: deshabilitada] Records a cash movement tied to the OPEN caja shift: income, expense, withdrawal, tax, or payroll.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"connect_mercadopago","description":"[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.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"connect_pedidosya","description":"[demo: deshabilitada] Connects PedidosYa for this business using the BYOA secure-form model. Primary: returns a secure link. Fallback: accepts an API token directly.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"apiToken":{"description":"Optional PedidosYa API token.","type":"string","minLength":1}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"connect_tiendanube","description":"[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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"connect_whatsapp","description":"[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.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"connection_status","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"create_product","description":"[demo: deshabilitada] Creates a new product in the business catalog. Requires name and price.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"create_purchase_request","description":"[demo: deshabilitada] Creates a procurement order (purchase request) to a supplier.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"create_shipment","description":"[demo: deshabilitada] Creates a physical shipment via the chosen courier and returns a tracking number and label URL.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"create_supplier","description":"[demo: deshabilitada] Creates a supplier for this business.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"create_tracked_payment_link","description":"[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.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"delete_customer","description":"[demo: deshabilitada] Deletes a customer from this business (blocked when the customer has sales or invoices).","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"delete_product","description":"[demo: deshabilitada] Deletes (or soft-archives, when it has sale records) a product from the catalog.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"delete_supplier","description":"[demo: deshabilitada] Deletes a supplier from this business (with full audit trail).","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"edit_product","description":"[demo: deshabilitada] Updates a single product's fields (name, price, costPrice, or stockQuantity).","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"edit_supplier","description":"[demo: deshabilitada] Updates an existing supplier's fields.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"emit_invoice","description":"[demo: deshabilitada] Emits an ARCA (formerly AFIP)-compliant electronic invoice (factura electrónica) for the authenticated business and returns the CAE authorization code.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"emit_nota","description":"[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.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"find_customer","description":"Searches customers in the business by name and/or phone. Returns up to 20 matching customers sorted by name.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"get_fiscal_readiness","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_package_profile","description":"Computes the shipment weight and item breakdown for a package. Accepts a saleId, a list of productIds, or an explicit weightGramsOverride.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"get_payment_intent_status","description":"Checks the current status of a Velora PaymentIntent. Accepts a paymentIntentId OR a customer name.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"list_suppliers","description":"Returns all suppliers for this business (up to 50, sorted by name).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"search":{"description":"Optional name substring to filter suppliers.","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"open_business_overview","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"open_caja_status","description":"Opens a visual widget showing the current shift state and action buttons. Read-only here.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"open_catalog_selector","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"search":{"description":"Optional name filter (case-insensitive substring match).","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"open_cobro_status","description":"Opens the cobro status widget — a read-only view of ONE PaymentIntent's payment state. Accepts paymentIntentId OR customerName.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"open_delivery_receipt","description":"Opens the comprobante + envío widget — a read-only view of the delivery receipt for a completed cobro. Accepts paymentIntentId, saleId, OR customerName.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"open_onboarding","description":"Opens a graphical onboarding hub showing integration status and connect links. Read-only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"open_payment_link_wizard","description":"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).","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"open_pending_orders","description":"Opens the pending cobros dashboard — a read-only widget listing PaymentIntents awaiting payment. Side-effect-free.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"open_sale_confirm","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"open_shipment_prep","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"query_catalog","description":"Lists active products in the business catalog. Returns products sorted by name, each with id, name, price (ARS), costPrice, sku, stock quantity, and weightGrams.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"search":{"description":"Optional name filter (case-insensitive substring match).","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"query_sales","description":"Queries sales metrics from the database: 'ventas_periodo', 'margen', 'ranking_productos', 'por_empleado', or 'historial_cliente'.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"quote_shipping","description":"Quotes shipment rates from every active courier configured for the authenticated business and returns options sorted by price ascending.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"register_movement","description":"[demo: deshabilitada] Records a cash-register movement for the authenticated business ('purchase', 'income', 'salary', 'tax', 'adjustment').","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"register_sale","description":"[demo: deshabilitada] Records a sale for the authenticated business. Creates a full Sale with SaleItems, decrements inventory, creates a CashMovement and Invoice.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"return_sale","description":"[demo: deshabilitada] Reverses the N most-recent sales within a time window. Restores inventory, removes CashMovement, SaleItem, Invoice, and Sale records. Destructive and irreversible.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"send_whatsapp_template","description":"[demo: deshabilitada] Sends a pre-approved Meta WhatsApp template message. Window-independent — can be sent proactively, outside the 24-hour session window.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"send_whatsapp_text","description":"[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).","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"stock_load","description":"[demo: deshabilitada] Records inbound stock for a product — restock or initial stock, with an audit trail.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"track_shipment","description":"Tracks the current status and event history of a shipment by tracking number.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"upload_catalog","description":"[demo: deshabilitada] Bulk-creates products in the business catalog from a structured list (up to 50 items).","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"upsert_customer","description":"[demo: deshabilitada] Creates a new customer or updates an existing one for the authenticated business.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"validate_cuit","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"}}],"scan":{"score":73,"grade":"B","scanned_at":"2026-09-27T05:27:58.545Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T05:27:58.502Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 651ms"]},"poisoning":{"score":15,"max":15,"notes":["50 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 12 write-action tools with no auth"]},"maintenance":{"score":12,"max":15,"notes":["last push 51 days ago"]},"identity":{"score":5,"max":10,"notes":["namespace and repository owner differ","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://tools.somosvelora.com/api/mcp","reachable":true,"authRequired":false,"latencyMs":651,"serverInfo":{"name":"velora-mcp-demo","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"crossi-dev","repo":"velora-mcp","archived":false,"pushedAt":"2026-08-07T12:53:46Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/265534264?v=4","ownerCreatedAt":"2026-03-04T12:55:24Z","license":"MIT"},"icon":{"url":"https://somosvelora.com/icon-512.png","source":"site","width":512,"height":512},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-07T12:53:46.000Z","score":18}}}},"grade_history":[],"reviews":[]}