Laudus MCP server

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.

Claude claude.ai · Desktop

  1. Open Customize → Connectors, then click + Add → Add custom connector.
  2. Enter the name Laudus and this URL, then click Add:
    https://laudus.usefulapi.io/mcp
  3. Claude opens the login page: enter your Company RUT, Laudus user name and Laudus user password.
  4. In a chat, click + → Connectors and turn on Laudus.

Team and Enterprise: an Owner adds the connector for the organization first.

Claude Code

Run this command, then run /mcp in Claude Code to log in:

claude mcp add --transport http laudus https://laudus.usefulapi.io/mcp

Cursor

Add to Cursor or add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "laudus": {
      "url": "https://laudus.usefulapi.io/mcp"
    }
  }
}

VS Code

Add to VS Code or add this to .vscode/mcp.json:

{
  "servers": {
    "laudus": {
      "type": "http",
      "url": "https://laudus.usefulapi.io/mcp"
    }
  }
}

ChatGPT chatgpt.com

  1. Open Plugins, click +, then Add custom MCP server.
  2. Enter the name Laudus and this URL, choose OAuth as the authentication, confirm the warning and create it:
    https://laudus.usefulapi.io/mcp
  3. ChatGPT opens the login page: enter your Company RUT, Laudus user name and Laudus user password.
  4. In Plugins, install Laudus, then choose it in a chat.

No Add custom MCP server option? It depends on your account or workspace settings: see OpenAI's guide.

Codex

Run these commands. The second one opens the login page:

codex mcp add laudus --url https://laudus.usefulapi.io/mcp
codex mcp login laudus

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.

live42 toolsFree 50 tool calls / monthPro $9/mo · $90/yr

What you can do with Laudus in Claude and ChatGPT

Review unpaid invoices and credit limits

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

Break down sales by salesperson or product

The AI totals invoiced sales for a date range, grouped by salesperson, customer, product, category, month or branch.

laudus_sales_report

Check stock and stock movements

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

Read financial statements and the ledger

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

Review undelivered sales orders

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

Add a new customer

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

Before you connect

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.

Example prompts

Turn on the Laudus connector, then ask in plain words. The AI picks the tools.

Tools 42

ToolTypeWhat it does
laudus_list_customersread
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_invoicesread
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_ordersread
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_quotesread
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_receiptsread
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_productsread
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_categoriesread
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_warehousesread
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_salesmenread
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_suppliersread
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_invoicesread
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_ordersread
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_accountsread
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_entriesread
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_centersread
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_customerread
Get a customer
Get a customer (addresses, contact data, credit limit, category, salesman, price list) by id. GET /sales/customers/{id}.
laudus_get_sales_invoiceread
Get a sales invoice
Get a sales invoice with its lines, taxes and totals by id. GET /sales/invoices/{id}.
laudus_get_sales_orderread
Get a sales order
Get a sales order with its lines by id. GET /sales/orders/{id}.
laudus_get_sales_quoteread
Get a sales quote
Get a sales quote with its lines by id. GET /sales/quotes/{id}.
laudus_get_productread
Get a product
Get a product (SKU, description, category, units, prices) by id. GET /production/products/{id}.
laudus_get_supplierread
Get a supplier
Get a supplier by id. GET /purchases/suppliers/{id}.
laudus_get_purchase_invoiceread
Get a purchase invoice
Get a purchase invoice with its lines by id. GET /purchases/invoices/{id}.
laudus_get_purchase_orderread
Get a purchase order
Get a purchase order with its lines by id. GET /purchases/orders/{id}.
laudus_get_journal_entryread
Get a journal entry
Get an accounting journal entry (comprobante) with its lines by id. GET /accounting/journal/entries/{id}.
laudus_customer_pending_invoicesread
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_limitread
Customer credit limit
A customer's credit limit and how much of it is used. GET /sales/customers/{id}/creditLimit.
laudus_list_customer_contactsread
List customer contacts
The contact people of a customer. GET /sales/customers/{id}/contacts.
laudus_sales_invoice_receiptsread
Sales invoice receipts
The customer payments (cobros) applied to one sales invoice. GET /sales/invoices/{id}/receipts.
laudus_pending_sales_ordersread
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_reportread
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_stockread
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_stockread
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_kardexread
Product kardex
The stock movements (kardex) of one product, optionally to a date and for one warehouse. GET /production/products/{id}/kardex.
laudus_balance_sheetread
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_lossread
Profit and loss
The profit and loss statement (estado de resultados) for a date range. GET /accounting/profitAndLoss.
laudus_general_ledgerread
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_ledgerread
Purchase ledger
The purchases ledger (libro de compras) for a year and month. GET /purchases/invoices/ledger.
laudus_create_customerwrite
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_statusmeta
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_featuremeta
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_upgrademeta
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_subscriptionmeta
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.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Proper account$9/mo · $90/yrUnlimited*

*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].

FAQ

What can I do with Laudus in Claude or ChatGPT?

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.

Is this an official Laudus product?

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.

Can I connect Laudus to Claude or ChatGPT?

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.

What do I need to connect?

The login page asks for your Company RUT, Laudus user name and Laudus user password. See Before you connect for where to find them.

Do I put my Laudus key or an Authorization header in the client config?

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.

How do you keep my Laudus credentials?

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.

Can the AI change my Laudus data?

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.

What does it cost?

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.

How do I subscribe or cancel?

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.

What if a Laudus tool that I need is missing?

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.

Which AI clients can I use?

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.

More Payments & Billing MCP servers

AmberfloAutumnBasis TheorybexioBilfloBill4TimeBillomatBillyBind ERPBraintreeBukkuCashCtrlChargebeeChargeOverCheckout.come-BoekhoudenFastBillFreeAgentHiveageInstamojoinv.bgInvoice NinjaInvoicedKashFlowLagoLemon SqueezyLexware OfficeMercoaMerit AktivaMoonClerkOblioOrbPapierkramPaySpacePolarRecurlySeal SubscriptionssevdesksmallinvoiceSmartAccountsSmartBillSmartrrSuperFakturaSzámlázz.huVyfakturujYuki

All Payments & Billing servers →