_ registry / mcp streamable-http · checked 45m ago

lightspeed-r-series-mcp

https://lightspeed-r-series.usefulapi.io

Registry code: 9ac221eae3f98d32

api record

Read Lightspeed R-Series items, stock, sales, customers and POs; create customers and set stock.

from a public catalogue that lists it, not from the operator

endpoint
https://lightspeed-r-series.usefulapi.io/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is lightspeed-r-series-mcp live?
Yes — it answered the hub's last check (checked 45m ago). It answered 100% of checks over the last 30 days.
Is lightspeed-r-series-mcp free to use?
No — it asks for a key or a login before it will serve.
What tools does lightspeed-r-series-mcp have?
17 tools: get_account, list_categories, list_customers, list_shops, list_items, get_item, list_inventory, list_sales, ….
Is lightspeed-r-series-mcp safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
503ms

last good check

priced tools
0

of 17 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 17 tools
17 auth-required 17 of 17 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_account auth-required 45m ago

    The connected Lightspeed Retail (R-Series) account: id, name, status, employee count/limit, default and purchasing currencies. Good first call. GET /Account/{accountID}.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {}
    }
    arguments 5 lines
  • list_categories auth-required 45m ago

    Item categories (hierarchical): categoryID, name, fullPathName, parentID, nodeDepth. GET /Account/{accountID}/Category.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "description": "Name contains this text."
        },
        "sort": {
          "enum": [
            "categoryID",
            "-categoryID",
            "timeStamp",
            "-timeStamp",
            "leftNode",
            "-leftNode",
            "rightNode",
            "-rightNode"
          ],
          "type": "string",
          "description": "Sort field; prefix \"-\" for descending. Allowed: categoryID, timeStamp, leftNode, rightNode."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Records per page (1-100, default 100)."
        },
        "next_url": {
          "type": "string",
          "maxLength": 4000,
          "description": "To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set."
        },
        "parent_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only direct children of this categoryID (0 = top level)."
        }
      }
    }
    arguments 41 lines
  • list_customers auth-required 45m ago

    Search customers by name, company or email: customerID, firstName, lastName, company, customerTypeID, createTime. Email search loads the Contact relation (emails, phones, addresses). Paginate with next_url. GET /Account/{accountID}/Customer.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "sort": {
          "enum": [
            "customerID",
            "-customerID",
            "timeStamp",
            "-timeStamp",
            "firstName",
            "-firstName",
            "lastName",
            "-lastName"
          ],
          "type": "string",
          "description": "Sort field; prefix \"-\" for descending. Allowed: customerID, timeStamp, firstName, lastName."
        },
        "email": {
          "type": "string",
          "maxLength": 254,
          "description": "Email contains this text (searches Contact.email)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Records per page (1-100, default 100)."
        },
        "company": {
          "type": "string",
          "maxLength": 200,
          "description": "Company contains this text."
        },
        "archived": {
          "enum": [
            "false",
            "true",
            "only"
          ],
          "type": "string",
          "description": "false (default) = active records only, true = active and archived, only = archived only."
        },
        "next_url": {
          "type": "string",
          "maxLength": 4000,
          "description": "To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set."
        },
        "last_name": {
          "type": "string",
          "maxLength": 100,
          "description": "Last name contains this text."
        },
        "first_name": {
          "type": "string",
          "maxLength": 100,
          "description": "First name contains this text."
        },
        "include_contact": {
          "type": "boolean",
          "description": "Include the Contact relation (emails, phones, addresses)."
        }
      }
    }
    arguments 64 lines
  • list_shops auth-required never probed

    List the account's shops (store locations): shopID, name, time zone, archived flag. Use shopID to filter sales, inventory and purchase orders. GET /Account/{accountID}/Shop.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "sort": {
          "enum": [
            "shopID",
            "-shopID"
          ],
          "type": "string",
          "description": "Sort field; prefix \"-\" for descending. Allowed: shopID."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Records per page (1-100, default 100)."
        },
        "next_url": {
          "type": "string",
          "maxLength": 4000,
          "description": "To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set."
        },
        "include_contact": {
          "type": "boolean",
          "description": "Also load each shop's Contact (address, phone)."
        }
      }
    }
    arguments 29 lines
  • list_items auth-required never probed

    Search the product catalog. Each item has itemID, description, SKUs (systemSku, customSku, upc, ean, manufacturerSku), defaultCost, categoryID and its Prices (price levels). Set include_stock to add per-shop quantities (ItemShops; shopID 0 = all shops). Paginate with next_url. GET /Account/{accountID}/Item.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "ean": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Exact EAN."
        },
        "upc": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Exact UPC."
        },
        "sort": {
          "enum": [
            "itemID",
            "-itemID",
            "timeStamp",
            "-timeStamp",
            "description",
            "-description"
          ],
          "type": "string",
          "description": "Sort field; prefix \"-\" for descending. Allowed: itemID, timeStamp, description."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Records per page (1-100, default 100)."
        },
        "min_qoh": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "description": "Only items with at least one shop record whose quantity on hand is >= this (loads ItemShops)."
        },
        "archived": {
          "enum": [
            "false",
            "true",
            "only"
          ],
          "type": "string",
          "description": "false (default) = active records only, true = active and archived, only = archived only."
        },
        "next_url": {
          "type": "string",
          "maxLength": 4000,
          "description": "To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set."
        },
        "item_code": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Exact match on itemID, UPC or EAN."
        },
        "vendor_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only items whose default vendor is this vendorID."
        },
        "custom_sku": {
          "type": "string",
          "maxLength": 100,
          "description": "Exact custom SKU."
        },
        "system_sku": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Exact Lightspeed system SKU (the barcode on labels)."
        },
        "category_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only items in this category (categoryID)."
        },
        "description": {
          "type": "string",
          "maxLength": 200,
          "description": "Description contains this text (like search)."
        },
        "include_stock": {
          "type": "boolean",
          "description": "Include per-shop stock (ItemShops relation)."
        },
        "modified_since": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "Only items modified at or after this time (item timeStamp, UTC unless an offset is given)."
        },
        "include_category": {
          "type": "boolean",
          "description": "Include the Category record."
        },
        "manufacturer_sku": {
          "type": "string",
          "maxLength": 100,
          "description": "Exact manufacturer SKU."
        }
      }
    }
    arguments 102 lines
  • get_item auth-required never probed

    One item by itemID with its prices, per-shop stock (ItemShops), category and other related records. GET /Account/{accountID}/Item/{itemID}.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "item_id"
      ],
      "properties": {
        "item_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "The itemID (from list_items)."
        },
        "relations": {
          "type": "array",
          "items": {
            "enum": [
              "Category",
              "TaxClass",
              "ItemAttributes",
              "ItemAttributes.ItemAttributeSet",
              "Manufacturer",
              "Note",
              "Images",
              "ItemShops",
              "ItemVendorNums",
              "ItemComponents",
              "ItemECommerce",
              "TagRelations",
              "TagRelations.Tag",
              "CustomFieldValues",
              "CustomFieldValues.value",
              "ItemPrices"
            ],
            "type": "string"
          },
          "maxItems": 16,
          "description": "Related records to include (each adds a little to the request's rate-limit cost). Default: ItemShops, Category, Manufacturer, ItemVendorNums, Note. Allowed: Category, TaxClass, ItemAttributes, ItemAttributes.ItemAttributeSet, Manufacturer, Note, Images, ItemShops, ItemVendorNums, ItemComponents, ItemECommerce, TagRelations, TagRelations.Tag, CustomFieldValues, CustomFieldValues.value, ItemPrices."
        }
      }
    }
    arguments 40 lines
  • list_inventory auth-required never probed

    Stock levels per item per shop (ItemShop records): qoh (quantity on hand), sellable, backorder, reorderPoint, reorderLevel, costs and values. shopID 0 is the all-shops summary. Paginate with next_url. GET /Account/{accountID}/ItemShop.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "sort": {
          "enum": [
            "itemShopID",
            "-itemShopID",
            "timeStamp",
            "-timeStamp"
          ],
          "type": "string",
          "description": "Sort field; prefix \"-\" for descending. Allowed: itemShopID, timeStamp."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Records per page (1-100, default 100)."
        },
        "item_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only this item (itemID)."
        },
        "max_qoh": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "description": "Quantity on hand <= this (e.g. 0 for out of stock)."
        },
        "min_qoh": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "description": "Quantity on hand >= this."
        },
        "shop_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only this shop (shopID; 0 = the all-shops summary records)."
        },
        "next_url": {
          "type": "string",
          "maxLength": 4000,
          "description": "To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set."
        },
        "modified_since": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "Only records changed at or after this time (timeStamp)."
        }
      }
    }
    arguments 54 lines
  • list_sales auth-required never probed

    Sales history: saleID, completed/voided flags, completeTime, totals (calcSubtotal, calcTax1/2, total, balance), customerID, employeeID, shopID, registerID. Filter by a date range on completeTime (default) or timeStamp, shop, customer, employee. Set include_lines for SaleLines (items sold). Paginate with next_url. GET /Account/{accountID}/Sale.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "to": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "End (inclusive), same format."
        },
        "from": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "Start (inclusive), e.g. 2026-10-01 or 2026-10-01T00:00:00-04:00. Times are UTC unless an offset is given."
        },
        "sort": {
          "enum": [
            "saleID",
            "-saleID",
            "timeStamp",
            "-timeStamp",
            "completeTime",
            "-completeTime",
            "updatetime",
            "-updatetime"
          ],
          "type": "string",
          "description": "Sort field; prefix \"-\" for descending. Allowed: saleID, timeStamp, completeTime, updatetime."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Records per page (1-100, default 100)."
        },
        "voided": {
          "type": "boolean",
          "description": "true = voided only, false = exclude voided."
        },
        "shop_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only sales in this shop (shopID)."
        },
        "next_url": {
          "type": "string",
          "maxLength": 4000,
          "description": "To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set."
        },
        "completed": {
          "type": "boolean",
          "description": "true = completed sales only, false = open/unfinished only."
        },
        "date_field": {
          "enum": [
            "completeTime",
            "timeStamp",
            "createTime"
          ],
          "type": "string",
          "description": "Which date from/to apply to (default completeTime)."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only sales for this customer (customerID)."
        },
        "employee_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only sales processed by this employee (employeeID)."
        },
        "include_lines": {
          "type": "boolean",
          "description": "Include the SaleLines relation (line items)."
        },
        "include_payments": {
          "type": "boolean",
          "description": "Include the SalePayments relation."
        }
      }
    }
    arguments 81 lines
  • get_sale auth-required never probed

    One sale by saleID with its line items (SaleLines with Item), payments (SalePayments with PaymentType) and customer. GET /Account/{accountID}/Sale/{saleID}.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "sale_id"
      ],
      "properties": {
        "sale_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "The saleID (from list_sales)."
        },
        "relations": {
          "type": "array",
          "items": {
            "enum": [
              "SaleLines",
              "SaleLines.Discount",
              "SaleLines.TaxClass",
              "SaleLines.Note",
              "SaleLines.Item",
              "SaleLines.InventorySales",
              "SaleNotes",
              "SalePayments",
              "SalePayments.PaymentType",
              "SalePayments.CCCharge",
              "SalePayments.SaleAccounts",
              "SalePayments.Signatures",
              "ShipTo",
              "ShipTo.Contact",
              "Customer",
              "Customer.Contact",
              "Discount",
              "TaxCategory",
              "TaxCategory.TaxCategoryClasses",
              "Quote"
            ],
            "type": "string"
          },
          "maxItems": 20,
          "description": "Related records to include (each adds a little to the request's rate-limit cost). Default: SaleLines, SaleLines.Item, SalePayments, SalePayments.PaymentType, Customer. Allowed: SaleLines, SaleLines.Discount, SaleLines.TaxClass, SaleLines.Note, SaleLines.Item, SaleLines.InventorySales, SaleNotes, SalePayments, SalePayments.PaymentType, SalePayments.CCCharge, SalePayments.SaleAccounts, SalePayments.Signatures, ShipTo, ShipTo.Contact, Customer, Customer.Contact, Discount, TaxCategory, TaxCategory.TaxCategoryClasses, Quote."
        }
      }
    }
    arguments 44 lines
  • get_customer auth-required never probed

    One customer by customerID with Contact (emails, phones, addresses), customer type and notes. GET /Account/{accountID}/Customer/{customerID}.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "customer_id"
      ],
      "properties": {
        "relations": {
          "type": "array",
          "items": {
            "enum": [
              "Contact",
              "CustomerType",
              "Discount",
              "Note",
              "TaxCategory",
              "CreditAccount",
              "Tags",
              "CustomFieldValues",
              "CustomFieldValues.value"
            ],
            "type": "string"
          },
          "maxItems": 9,
          "description": "Related records to include (each adds a little to the request's rate-limit cost). Default: Contact, CustomerType, Note. Allowed: Contact, CustomerType, Discount, Note, TaxCategory, CreditAccount, Tags, CustomFieldValues, CustomFieldValues.value."
        },
        "customer_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "The customerID (from list_customers)."
        }
      }
    }
    arguments 33 lines
  • list_vendors auth-required never probed

    Suppliers: vendorID, name, accountNumber, archived. GET /Account/{accountID}/Vendor.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "description": "Name contains this text."
        },
        "sort": {
          "enum": [
            "vendorID",
            "-vendorID",
            "timeStamp",
            "-timeStamp",
            "name",
            "-name"
          ],
          "type": "string",
          "description": "Sort field; prefix \"-\" for descending. Allowed: vendorID, timeStamp, name."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Records per page (1-100, default 100)."
        },
        "archived": {
          "enum": [
            "false",
            "true",
            "only"
          ],
          "type": "string",
          "description": "false (default) = active records only, true = active and archived, only = archived only."
        },
        "next_url": {
          "type": "string",
          "maxLength": 4000,
          "description": "To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set."
        },
        "include_contact": {
          "type": "boolean",
          "description": "Include the Contact relation."
        }
      }
    }
    arguments 47 lines
  • list_purchase_orders auth-required never probed

    Purchase orders to vendors: orderID, vendorID, shopID, orderedDate, arrivalDate, receivedDate, complete, totalQuantity, shipCost. GET /Account/{accountID}/Order.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "sort": {
          "enum": [
            "orderID",
            "-orderID",
            "timeStamp",
            "-timeStamp"
          ],
          "type": "string",
          "description": "Sort field; prefix \"-\" for descending. Allowed: orderID, timeStamp."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Records per page (1-100, default 100)."
        },
        "shop_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only orders for this shop (shopID)."
        },
        "archived": {
          "enum": [
            "false",
            "true",
            "only"
          ],
          "type": "string",
          "description": "false (default) = active records only, true = active and archived, only = archived only."
        },
        "complete": {
          "type": "boolean",
          "description": "true = completed orders only, false = open orders only."
        },
        "next_url": {
          "type": "string",
          "maxLength": 4000,
          "description": "To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set."
        },
        "vendor_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Only orders to this vendor (vendorID)."
        },
        "include_lines": {
          "type": "boolean",
          "description": "Include the OrderLines relation."
        }
      }
    }
    arguments 54 lines
  • get_purchase_order auth-required never probed

    One purchase order by orderID with its lines (OrderLines: itemID, quantity, numReceived, price), vendor and shop. GET /Account/{accountID}/Order/{orderID}.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "order_id"
      ],
      "properties": {
        "order_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "The orderID (from list_purchase_orders)."
        },
        "relations": {
          "type": "array",
          "items": {
            "enum": [
              "OrderLines",
              "Note",
              "Vendor",
              "Shop",
              "CustomFieldValues",
              "CustomFieldValues.value"
            ],
            "type": "string"
          },
          "maxItems": 6,
          "description": "Related records to include (each adds a little to the request's rate-limit cost). Default: OrderLines, Vendor, Shop, Note. Allowed: OrderLines, Note, Vendor, Shop, CustomFieldValues, CustomFieldValues.value."
        }
      }
    }
    arguments 30 lines
  • list_employees auth-required never probed

    Employees: employeeID, firstName, lastName, lockOut, archived, employeeRoleID, limitToShopID. Use employeeID to filter sales. GET /Account/{accountID}/Employee.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "sort": {
          "enum": [
            "employeeID",
            "-employeeID",
            "timeStamp",
            "-timeStamp"
          ],
          "type": "string",
          "description": "Sort field; prefix \"-\" for descending. Allowed: employeeID, timeStamp."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Records per page (1-100, default 100)."
        },
        "archived": {
          "enum": [
            "false",
            "true",
            "only"
          ],
          "type": "string",
          "description": "false (default) = active records only, true = active and archived, only = archived only."
        },
        "next_url": {
          "type": "string",
          "maxLength": 4000,
          "description": "To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set."
        },
        "include_contact": {
          "type": "boolean",
          "description": "Include the Contact relation."
        }
      }
    }
    arguments 40 lines
  • create_customer auth-required never probed

    Create a new customer, optionally with a primary email and one phone number (stored in the customer's Contact). Give at least a first name, last name or company. Returns the new customer with its customerID. POST /Account/{accountID}/Customer.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "email": {
          "type": "string",
          "format": "email",
          "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
          "maxLength": 254,
          "description": "Primary email address."
        },
        "phone": {
          "type": "string",
          "maxLength": 50,
          "description": "Phone number."
        },
        "title": {
          "type": "string",
          "maxLength": 100,
          "description": "Job title."
        },
        "company": {
          "type": "string",
          "maxLength": 200,
          "description": "Company name."
        },
        "last_name": {
          "type": "string",
          "maxLength": 100,
          "description": "Last name."
        },
        "first_name": {
          "type": "string",
          "maxLength": 100,
          "description": "First name."
        },
        "phone_type": {
          "enum": [
            "Home",
            "Work",
            "Mobile",
            "Pager",
            "Fax"
          ],
          "type": "string",
          "description": "Phone type (default Mobile)."
        },
        "customer_type_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "customerTypeID to assign."
        }
      }
    }
    arguments 54 lines
  • update_item auth-required never probed

    Change fields of an existing item: description, default cost, SKUs, category. Only the fields you pass are changed. Prices and stock are not changed here (use update_stock for quantities). PUT /Account/{accountID}/Item/{itemID}.json.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "item_id"
      ],
      "properties": {
        "ean": {
          "type": "string",
          "pattern": "^\\d{11,14}$",
          "description": "New EAN (11-14 digits)."
        },
        "upc": {
          "type": "string",
          "pattern": "^\\d{11,14}$",
          "description": "New UPC (11-14 digits)."
        },
        "item_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "The itemID to update."
        },
        "custom_sku": {
          "type": "string",
          "maxLength": 100,
          "description": "New custom SKU."
        },
        "category_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "New categoryID (0 = no category)."
        },
        "description": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "New description (shown on receipts and labels)."
        },
        "default_cost": {
          "type": "number",
          "minimum": 0,
          "description": "New default (reorder) cost."
        },
        "manufacturer_sku": {
          "type": "string",
          "maxLength": 100,
          "description": "New manufacturer SKU."
        }
      }
    }
    arguments 50 lines
  • update_stock auth-required never probed

    CHANGES STOCK COUNTS: sets (does not add to) the quantity on hand of one item in one shop to `qoh`, by updating the item's ItemShop record. Use for correcting a few items; for many items use an inventory count in Lightspeed. Identify the shop by shop_id, or by item_shop_id from get_item's ItemShops. Not for shopID 0 (the all-shops summary). PUT /Account/{accountID}/Item/{itemID}.json with ItemShops.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "item_id",
        "qoh"
      ],
      "properties": {
        "qoh": {
          "type": "integer",
          "maximum": 10000000,
          "minimum": 0,
          "description": "The new quantity on hand."
        },
        "item_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "The itemID."
        },
        "shop_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "The shopID whose stock to set (from list_shops)."
        },
        "item_shop_id": {
          "type": "string",
          "pattern": "^\\d+$",
          "description": "Or the itemShopID of that item/shop record (from get_item ItemShops)."
        }
      }
    }
    arguments 31 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 9ac221eae3f98d32.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/9ac221eae3f98d32/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/9ac221eae3f98d32/badge.svg)](https://brick.blue/agent/9ac221eae3f98d32?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on usefulapi.io 5 entries

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.