Skip to content

Velora LATAM Tools

by crossi-dev · remote · no sign-in to list tools · v1.0.0 · published by GitHub user crossi-dev

Argentina CUIT/CUIL validation and AFIP fiscal QR generation. Pure, no-auth MCP tools.

Changes · 12

22 tools: 12 change things and 10 only read.

Scanned Oct 21, 2026

10 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http latam-tools https://tools.somosvelora.com/api/mcp/public

Findings

Matches of fixed checks, with the text they matched.

10 warn
  • The server marks "open_catalog_selector" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_catalog_selector" says "open": a word for a change.

    What this check looks for
  • The server marks "open_payment_link_wizard" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_payment_link_wizard" says "open": a word for a change.

    What this check looks for
  • The server marks "open_pending_orders" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_pending_orders" says "open": a word for a change.

    What this check looks for
  • The server marks "open_cobro_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_cobro_status" says "open": a word for a change.

    What this check looks for
  • The server marks "open_delivery_receipt" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_delivery_receipt" says "open": a word for a change.

    What this check looks for
  • The server marks "open_sale_confirm" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_sale_confirm" says "open": a word for a change.

    What this check looks for
Show 4 more findings
  • The server marks "open_caja_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_caja_status" says "open": a word for a change.

    What this check looks for
  • The server marks "open_onboarding" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_onboarding" says "open": a word for a change.

    What this check looks for
  • The server marks "open_business_overview" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_business_overview" says "open": a word for a change.

    What this check looks for
  • The server marks "open_shipment_prep" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "open_shipment_prep" says "open": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

22 tools

Changes things 12Claude Code: ask
  • open_business_overviewONE 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.1 finding

    Why it is in this group

    • The name "open_business_overview" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_business_overview" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_business_overview" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • open_caja_statusOpens a visual widget showing the current shift state and action buttons.1 finding

    Why it is in this group

    • The name "open_caja_status" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_caja_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_caja_status" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Opens a visual widget showing the current shift state and action buttons. Read-only here.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • open_catalog_selectorOpens the catalog selector — a graphical product picker (MCP Apps widget) that shows active products with prices (ARS) and stock.1 finding

    Why it is in this group

    • The name "open_catalog_selector" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_catalog_selector" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_catalog_selector" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • open_cobro_statusOpens the cobro status widget — a read-only view of ONE PaymentIntent's payment state.1 finding

    Why it is in this group

    • The name "open_cobro_status" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_cobro_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_cobro_status" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Opens the cobro status widget — a read-only view of ONE PaymentIntent's payment state. Accepts paymentIntentId OR customerName.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • open_delivery_receiptOpens the comprobante + envío widget — a read-only view of the delivery receipt for a completed cobro.1 finding

    Why it is in this group

    • The name "open_delivery_receipt" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_delivery_receipt" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_delivery_receipt" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Opens the comprobante + envío widget — a read-only view of the delivery receipt for a completed cobro. Accepts paymentIntentId, saleId, OR customerName.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • open_onboardingOpens a graphical onboarding hub showing integration status and connect links.1 finding

    Why it is in this group

    • The name "open_onboarding" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_onboarding" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_onboarding" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Opens a graphical onboarding hub showing integration status and connect links. Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • open_pending_ordersOpens the pending cobros dashboard — a read-only widget listing PaymentIntents awaiting payment.1 finding

    Why it is in this group

    • The name "open_pending_orders" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_pending_orders" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_pending_orders" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Opens the pending cobros dashboard — a read-only widget listing PaymentIntents awaiting payment. Side-effect-free.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • open_sale_confirmOpens a VISUAL preview of a cash sale — resolved product names, unit prices, quantities, and total — with a confirm button that fires register_sale.1 finding

    Why it is in this group

    • The name "open_sale_confirm" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_sale_confirm" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_sale_confirm" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • open_shipment_prepCombines catalog stock/weight data and a live shipping quote into one widget — resolves items, computes total weight, and quotes couriers.1 finding

    Why it is in this group

    • The name "open_shipment_prep" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_shipment_prep" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "open_shipment_prep" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • quote_shippingQuotes shipment rates from every active courier configured for the authenticated business and returns options sorted by price ascending.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Quotes shipment rates from every active courier configured for the authenticated business and returns options sorted by price ascending.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • track_shipmentTracks the current status and event history of a shipment by tracking number.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Tracks the current status and event history of a shipment by tracking number.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
Only reads 10Claude Code: allow
  • caja_consultar_saldoQueries the current cash register balance for the authenticated business — the open session data or the last closed session.No findings

    Why it is in this group

    • The description's first verb is "query": a word for reading.
    Description, as the server wrote it
    Queries the current cash register balance for the authenticated business — the open session data or the last closed session. Read-only.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • connection_statusReturns the BYOA (Bring Your Own Account) integration readiness for the authenticated business — what is connected and how to connect what is missing.No findings

    Why it is in this group

    • The name "connection_status" says "status": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • find_customerSearches customers in the business by name and/or phone.No findings

    Why it is in this group

    • The name "find_customer" says "find": a word for reading.
    Description, as the server wrote it
    Searches customers in the business by name and/or phone. Returns up to 20 matching customers sorted by name.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_fiscal_readinessChecks whether the business is ready to emit real ARCA electronic invoices.No findings

    Why it is in this group

    • The name "get_fiscal_readiness" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_package_profileComputes the shipment weight and item breakdown for a package.No findings

    Why it is in this group

    • The name "get_package_profile" says "get": a word for reading.
    Description, as the server wrote it
    Computes the shipment weight and item breakdown for a package. Accepts a saleId, a list of productIds, or an explicit weightGramsOverride.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_payment_intent_statusChecks the current status of a Velora PaymentIntent.No findings

    Why it is in this group

    • The name "get_payment_intent_status" says "get": a word for reading.
    Description, as the server wrote it
    Checks the current status of a Velora PaymentIntent. Accepts a paymentIntentId OR a customer name.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • list_suppliersReturns all suppliers for this business (up to 50, sorted by name).No findings

    Why it is in this group

    • The name "list_suppliers" says "list": a word for reading.
    Description, as the server wrote it
    Returns all suppliers for this business (up to 50, sorted by name).

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • query_catalogLists active products in the business catalog.No findings

    Why it is in this group

    • The name "query_catalog" says "query": a word for reading.
    Description, as the server wrote it
    Lists active products in the business catalog. Returns products sorted by name, each with id, name, price (ARS), costPrice, sku, stock quantity, and weightGrams.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • query_salesQueries sales metrics from the database: 'ventas_periodo', 'margen', 'ranking_productos', 'por_empleado', or 'historial_cliente'.No findings

    Why it is in this group

    • The name "query_sales" says "query": a word for reading.
    Description, as the server wrote it
    Queries sales metrics from the database: 'ventas_periodo', 'margen', 'ranking_productos', 'por_empleado', or 'historial_cliente'.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • validate_cuitValidates an Argentine CUIT or CUIL number.No findings

    Why it is in this group

    • The name "validate_cuit" says "validate": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http latam-tools https://tools.somosvelora.com/api/mcp/public

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__latam-tools__validate_cuit",
      "mcp__latam-tools__get_fiscal_readiness",
      "mcp__latam-tools__query_catalog",
      "mcp__latam-tools__find_customer",
      "mcp__latam-tools__get_package_profile",
      "mcp__latam-tools__connection_status",
      "mcp__latam-tools__caja_consultar_saldo",
      "mcp__latam-tools__get_payment_intent_status",
      "mcp__latam-tools__list_suppliers",
      "mcp__latam-tools__query_sales"
    ],
    "ask": [
      "mcp__latam-tools__open_catalog_selector",
      "mcp__latam-tools__quote_shipping",
      "mcp__latam-tools__track_shipment",
      "mcp__latam-tools__open_payment_link_wizard",
      "mcp__latam-tools__open_pending_orders",
      "mcp__latam-tools__open_cobro_status",
      "mcp__latam-tools__open_delivery_receipt",
      "mcp__latam-tools__open_sale_confirm",
      "mcp__latam-tools__open_caja_status",
      "mcp__latam-tools__open_onboarding",
      "mcp__latam-tools__open_business_overview",
      "mcp__latam-tools__open_shipment_prep"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as latam-tools. Review it before you use it.