Read Laudus ERP customers, sales, purchases, stock and accounting reports; create customers. For companies in Chile that run their sales, inventory and accounting in Laudus ERP. Hosted by usefulapi — connect from Claude, ChatGPT, Cursor, or any MCP client.
Team and Enterprise: an Owner adds the connector for the organization first.
Run this command, then run /mcp in Claude Code to log in:
Add to Cursor or add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"laudus": {
"url": "https://laudus.usefulapi.io/mcp"
}
}
}Add to VS Code or add this to .vscode/mcp.json:
{
"servers": {
"laudus": {
"type": "http",
"url": "https://laudus.usefulapi.io/mcp"
}
}
}No Add custom MCP server option? It depends on your account or workspace settings: see OpenAI's guide.
Run these commands. The second one opens the login page:
Other MCP clients (Windsurf, Cline, Zed and more): add the URL as a remote MCP server (Streamable HTTP). The client then opens the login page in your browser. Do not add an Authorization header: see Before you connect.
The AI lists the unpaid sales invoices of one customer or all customers, and checks how much of a customer's credit limit is used.
laudus_customer_pending_invoices laudus_customer_credit_limit
The AI totals invoiced sales for a date range, grouped by salesperson, customer, product, category, month or branch.
laudus_sales_report
The AI lists the warehouses, shows the stock of a product in each one, optionally as of a date, and lists its stock movements (kardex).
laudus_list_warehouses laudus_get_product_stock laudus_product_kardex
The AI pulls the balance sheet as of a date, the profit and loss statement for a period, and the general ledger of an account.
laudus_balance_sheet laudus_profit_and_loss laudus_general_ledger
The AI finds the sales orders not yet delivered, for one customer or a due-date range, and opens each with its lines.
laudus_pending_sales_orders laudus_get_sales_order
The AI checks by RUT that the customer is not in Laudus yet, then creates the customer record. No invoice is issued.
Changes data · laudus_list_customers laudus_create_customer
The login page asks for your Company RUT, Laudus user name and Laudus user password.
Laudus has no API key: in Laudus enable API access under Herramientas > Opciones, then create a user for it under Herramientas > Seguridad > Usuarios (see laudus.cl/ayuda/api). A dedicated user lets you limit what this connection can see and do. The company must use Laudus in the cloud. Your login is used only to call the Laudus API on your behalf; it is never shown to anyone.
Add only the URL. Do not add an Authorization header or an API key to the client config. The server signs you in with OAuth: the login page asks for your Company RUT, Laudus user name and Laudus user password. If the config has such a header, remove it: some clients then send that header instead of the login token, and every call fails with 401.
Turn on the Laudus connector, then ask in plain words. The AI picks the tools.
| Tool | Type | What it does |
|---|---|---|
laudus_list_customers | read | List customers List customers with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example customerId, name, legalName, VATId, email, phone1, city, county, creditLimit, blocked, customerCategory.name, salesman.name. When a page is full, ask for the next one with offset = offset + limit. POST /sales/customers/list. |
laudus_list_sales_invoices | read | List sales invoices List sales invoices and electronic tax documents (facturas, notas de credito) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example salesInvoiceId, docType.name, docNumber, issuedDate, dueDate, customer.name, customer.VATId, totals.net, totals.total, items.product.sku, items.quantity. When a page is full, ask for the next one with offset = offset + limit. POST /sales/invoices/list. |
laudus_list_sales_orders | read | List sales orders List sales orders (pedidos de venta) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example salesOrderId, issuedDate, dueDate, customer.name, items.product.sku, items.quantity. When a page is full, ask for the next one with offset = offset + limit. POST /sales/orders/list. |
laudus_list_sales_quotes | read | List sales quotes List sales quotes (cotizaciones) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example salesQuoteId, issuedDate, customer.name, items.product.sku, items.quantity. When a page is full, ask for the next one with offset = offset + limit. POST /sales/quotes/list. |
laudus_list_sales_receipts | read | List sales receipts List customer payments received (cobros) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example receiptId, receiptType, issuedDate, dueDate. When a page is full, ask for the next one with offset = offset + limit. POST /sales/receipts/list. |
laudus_list_products | read | List products List products and services (the item master) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example productId, sku, description, productCategory.name, unitOfMeasure, unitPrice, stockable, discontinued. When a page is full, ask for the next one with offset = offset + limit. POST /production/products/list. |
laudus_list_product_categories | read | List product categories List product categories with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example productCategoryId, name, fullPath. When a page is full, ask for the next one with offset = offset + limit. POST /production/products/categories/list. |
laudus_list_warehouses | read | List warehouses List warehouses (bodegas) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example warehouseId, name, city. When a page is full, ask for the next one with offset = offset + limit. POST /production/warehouses/list. |
laudus_list_salesmen | read | List salespeople List salespeople (vendedores) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example salesmanId, name. When a page is full, ask for the next one with offset = offset + limit. POST /sales/salesmen/list. |
laudus_list_suppliers | read | List suppliers List suppliers (proveedores) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example supplierId, name, legalName, VATId, email, phone, city. When a page is full, ask for the next one with offset = offset + limit. POST /purchases/suppliers/list. |
laudus_list_purchase_invoices | read | List purchase invoices List purchase invoices (facturas de compra) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example purchaseInvoiceId, docNumber, issuedDate, dueDate, supplier.name, totals.total. When a page is full, ask for the next one with offset = offset + limit. POST /purchases/invoices/list. |
laudus_list_purchase_orders | read | List purchase orders List purchase orders (ordenes de compra) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example purchaseOrderId, issuedDate, supplier.name, status, items.product.sku, items.quantity. When a page is full, ask for the next one with offset = offset + limit. POST /purchases/orders/list. |
laudus_list_accounts | read | List accounting accounts List the chart of accounts (plan de cuentas) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example accountId, accountNumber, name. When a page is full, ask for the next one with offset = offset + limit. POST /accounting/accounts/list. |
laudus_list_journal_entries | read | List journal entries List accounting journal entries (comprobantes) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example journalEntryId, journalEntryNumber, date, lines.account.accountNumber, lines.debit, lines.credit. When a page is full, ask for the next one with offset = offset + limit. POST /accounting/journal/entries/list. |
laudus_list_cost_centers | read | List cost centers List cost centers (centros de costo) with filters, sorting, field selection and paging (rows 25 by default, at most 200). Field names follow the Laudus data model, for example costCenterId, name, code. When a page is full, ask for the next one with offset = offset + limit. POST /purchases/costcenters/list. |
laudus_get_customer | read | Get a customer Get a customer (addresses, contact data, credit limit, category, salesman, price list) by id. GET /sales/customers/{id}. |
laudus_get_sales_invoice | read | Get a sales invoice Get a sales invoice with its lines, taxes and totals by id. GET /sales/invoices/{id}. |
laudus_get_sales_order | read | Get a sales order Get a sales order with its lines by id. GET /sales/orders/{id}. |
laudus_get_sales_quote | read | Get a sales quote Get a sales quote with its lines by id. GET /sales/quotes/{id}. |
laudus_get_product | read | Get a product Get a product (SKU, description, category, units, prices) by id. GET /production/products/{id}. |
laudus_get_supplier | read | Get a supplier Get a supplier by id. GET /purchases/suppliers/{id}. |
laudus_get_purchase_invoice | read | Get a purchase invoice Get a purchase invoice with its lines by id. GET /purchases/invoices/{id}. |
laudus_get_purchase_order | read | Get a purchase order Get a purchase order with its lines by id. GET /purchases/orders/{id}. |
laudus_get_journal_entry | read | Get a journal entry Get an accounting journal entry (comprobante) with its lines by id. GET /accounting/journal/entries/{id}. |
laudus_customer_pending_invoices | read | Customer pending invoices Unpaid sales invoices (accounts receivable). Give customer_id for one customer, or leave it out for all customers. GET /sales/customers/{id}/pendingInvoices or /sales/customers/pendingInvoices. |
laudus_customer_credit_limit | read | Customer credit limit A customer's credit limit and how much of it is used. GET /sales/customers/{id}/creditLimit. |
laudus_list_customer_contacts | read | List customer contacts The contact people of a customer. GET /sales/customers/{id}/contacts. |
laudus_sales_invoice_receipts | read | Sales invoice receipts The customer payments (cobros) applied to one sales invoice. GET /sales/invoices/{id}/receipts. |
laudus_pending_sales_orders | read | Pending sales orders The ids of sales orders not yet delivered, optionally for one customer or a due-date range. GET /sales/orders/pending. |
laudus_sales_report | read | Sales report Invoiced sales totals grouped by day of week, day of month, month, year, salesman, customer, customer category, product, product category, county, state or branch, for a date range and optional filters. GET /reports/sales/invoices/{group}. |
laudus_get_product_stock | read | Get product stock Stock of one product, optionally as of a date, in one warehouse or lot; with by_warehouse true, the stock in each warehouse. GET /production/products/{id}/stock or /stockByWarehouses. |
laudus_list_stock | read | List stock of all products Stock of every product, optionally as of a date, for one warehouse or one product category. Can be large: filter by warehouse or category. GET /production/products/stock. |
laudus_product_kardex | read | Product kardex The stock movements (kardex) of one product, optionally to a date and for one warehouse. GET /production/products/{id}/kardex. |
laudus_balance_sheet | read | Balance sheet The balance sheet (balance general) as of a date, either the standard layout or the totals layout. GET /accounting/balanceSheet/standard or /totals. |
laudus_profit_and_loss | read | Profit and loss The profit and loss statement (estado de resultados) for a date range. GET /accounting/profitAndLoss. |
laudus_general_ledger | read | General ledger The general ledger (libro mayor) movements of an account or a range of account numbers, for a date range. GET /accounting/ledger. |
laudus_purchase_ledger | read | Purchase ledger The purchases ledger (libro de compras) for a year and month. GET /purchases/invoices/ledger. |
laudus_create_customer | write | Create a customer WRITE: creates a new customer in Laudus (the customer id is assigned by Laudus; the customer record is not an invoice and sends nothing). Check laudus_list_customers for the RUT first to avoid duplicates. Laudus may require more fields than given and answers with its validation message. POST /sales/customers. |
laudus_usage_status | Usage status (free-tier meter) Report the caller's current usage: the plan, calls used this month, the limit of the plan (the free monthly cap or the Pro fair use limit), remaining, and whether the limit is reached. Read-only; does not count against the meter. | |
laudus_request_feature | Request a missing feature Tell usefulapi that the user needs something the Laudus tools cannot do yet (a missing tool, field or filter). Call it only when the user asks for something none of the tools can do, and tell the user that you send the request. Do not call it for errors or for normal requests. Do not include personal data, credentials or customer records. Stored with the product name and the client type (for example Claude or Cursor), without the user's account. At most 5 requests per day. Does not count against the meter. | |
laudus_upgrade | Upgrade to Pro (unlimited*) Get Pro: unlimited tool calls (fair use limit: 10,000 a month) on Laudus (the free tier caps monthly usage). Plans: "monthly" — $9/month; "yearly" — $90/year (2 months free). Cancel any time: Pro then runs to the end of the paid period, so it also suits a one-time job. *A fair use limit applies. For heavy use (near Pro's limit): "plus" or "plus_yearly" — Pro+, $39/month or $390/year, unlimited tool calls (fair use limit: 100,000 a month); an existing Pro subscription changes to Pro+ in place (needs confirm: true; the price difference for the rest of the period is charged at once). Otherwise returns a short link to open in your browser (it opens Stripe Checkout); after payment the account upgrades automatically. Does not count against the meter. | |
laudus_cancel_subscription | Cancel the Pro subscription Cancel the caller's Laudus Pro subscription at the end of the paid period (no refund for the current period; Pro continues until then, then the free tier applies). Requires confirm: true. Run laudus_upgrade later to undo the cancel before the period ends. Does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 50 tool calls / month |
| Proper account | $9/mo · $90/yr | Unlimited* |
*Pro fair use limit: 10,000 tool calls a month on this server. For more, write to [email protected].
Pro covers this Laudus server only. Subscribe with laudus_upgrade (it returns a Stripe Checkout link). Cancel any time with laudus_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running laudus_upgrade before then undoes the cancel. Or write to [email protected].
Review unpaid invoices and credit limits. Break down sales by salesperson or product. Check stock and stock movements. Read financial statements and the ledger. Review undelivered sales orders. Add a new customer. See what you can do for the details.
No. usefulapi is an independent service. It is not affiliated with or endorsed by Laudus. The server calls the Laudus API with your own Laudus access, so it sees only the data that your account can see.
Yes. In Claude, add this server's URL as a custom connector. In ChatGPT, add it as a custom MCP server in Plugins. Then log in once. Cursor, VS Code, Claude Code and Codex work too. See the setup steps.
The login page asks for your Company RUT, Laudus user name and Laudus user password. See Before you connect for where to find them.
No. Add only the URL. Do not add an Authorization header or an API key to the client config. The server signs you in with OAuth: the login page asks for your Company RUT, Laudus user name and Laudus user password. If the config has such a header, remove it: some clients then send that header instead of the login token, and every call fails with 401.
The login stores them encrypted in the authorization grant of your connection. The server uses them to call the Laudus API for you and to derive a private account id for usage metering. usefulapi does not show them on any page or in any reply. To stop all access, remove the connector and change or delete these credentials in Laudus.
Yes, if you approve it. 1 of the 38 Laudus tools can create or change data. The other 37 are marked read-only. Most MCP clients ask you to approve a tool call before it runs.
The Free plan gives 50 tool calls / month. Pro costs $9/mo or $90/yr, with unlimited tool calls (fair use limit: 10,000 tool calls a month), for this Laudus server only. Cancel any time: Pro then runs to the end of the paid period. Run laudus_usage_status to see how many calls you used.
Ask the AI to run laudus_upgrade: it returns a Stripe Checkout link. To cancel, run laudus_cancel_subscription. Pro continues to the end of the paid period.
Tell the AI what you wanted to do. It can send the request with laudus_request_feature. We store the text with the server name, the type of AI client and the tool you tried, not with your account, and read every request when we plan new tools. You can send up to 5 requests per day.
Any client that supports remote MCP servers (Streamable HTTP) with OAuth login: Claude (web and desktop), Claude Code, ChatGPT, Codex, Cursor, VS Code, Windsurf and others.
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.