# Laudus MCP by usefulapi (remote · laudus.usefulapi.io)

Read Laudus ERP customers, sales, purchases, stock and accounting reports; create customers.

- Trust score: 18/100 (low)
- Change this week: −44
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `laudus.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-laudus/laudus.md), [page](https://verifymcp.io/servers/io-usefulapi-laudus/laudus)

## Channel facts

- Endpoint: `https://laudus.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.11.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Laudus MCP by usefulapi server?

Laudus MCP by usefulapi is a hosted endpoint at https://laudus.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

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

### Cursor

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

### VS Code

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

### Codex

```toml
[mcp_servers.io-usefulapi-laudus]
url = "https://laudus.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-laudus": {
      "type": "remote",
      "url": "https://laudus.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-laudus --url 'https://laudus.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-laudus:
    url: "https://laudus.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-laudus": {
      "Transport": "http",
      "Url": "https://laudus.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-laudus -t streamable-http -u 'https://laudus.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-laudus": {
      "type": "http",
      "url": "https://laudus.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-01 (score 18, −48)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.17 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-10-31 (score 66, +4)

- [security improvement] Authorization: partial → pass
- [functional improvement] MCP protocol: fail → pass
- [functional] New prompt “add_a_new_customer”
- [functional] New prompt “break_down_sales_by_salesperson_or_product”
- [functional] New prompt “check_stock_and_stock_movements”
- [functional] New prompt “read_financial_statements_and_the_ledger”
- [functional] New prompt “review_undelivered_sales_orders”
- [functional] New prompt “review_unpaid_invoices_and_credit_limits”
- [functional] MCP protocol version: 2025-06-18 → 2025-11-25
- [functional] Server version: 1.7.0 → 1.9.0
- [functional] Server version: 1.6.0 → 1.7.0
- [functional] Server version: 1.5.2 → 1.6.0

### 2026-10-30 (score 62, 0)

- [functional] Server version: 1.5.1 → 1.5.2
- [functional] Server version: 1.5.0 → 1.5.1

### 2026-10-29 (score 62, 0)

- [functional] Server version: 1.4.0 → 1.5.0
- [functional] Server version: 1.3.0 → 1.4.0

### 2026-10-28 (score 62, +1)

- [functional] Server version: 1.1.0 → 1.3.0

### 2026-10-27 (score 61, 0)

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.0.0 → 1.1.0

### 2026-10-26 (score 61)

First indexed and scored.

## MCP tools (38)

### `laudus_list_customers` (~197 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_sales_invoices` (~218 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_sales_orders` (~192 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_sales_quotes` (~188 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_sales_receipts` (~186 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_products` (~193 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_product_categories` (~175 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_warehouses` (~179 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_salesmen` (~176 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_suppliers` (~188 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_purchase_invoices` (~193 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_purchase_orders` (~192 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_accounts` (~180 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_journal_entries` (~198 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_list_cost_centers` (~184 tokens)

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.

Input parameters:

- `fields` (array): Fields to return (default: all). Nested names work, e.g. customer.name, items.quantity.
- `filter` (array): Conditions, all of which must hold (AND).
- `limit` (integer): Rows to return, 1-200 (default 25).
- `offset` (integer): Rows to skip (default 0). For the next page pass offset + limit.
- `order_by` (array): Sort order.

### `laudus_get_customer` (~48 tokens)

Get a customer

Get a customer (addresses, contact data, credit limit, category, salesman, price list) by id. GET /sales/customers/{id}.

Input parameters:

- `customer_id` (integer, required)

### `laudus_get_sales_invoice` (~40 tokens)

Get a sales invoice

Get a sales invoice with its lines, taxes and totals by id. GET /sales/invoices/{id}.

Input parameters:

- `sales_invoice_id` (required)

### `laudus_get_sales_order` (~37 tokens)

Get a sales order

Get a sales order with its lines by id. GET /sales/orders/{id}.

Input parameters:

- `sales_order_id` (integer, required)

### `laudus_get_sales_quote` (~38 tokens)

Get a sales quote

Get a sales quote with its lines by id. GET /sales/quotes/{id}.

Input parameters:

- `sales_quote_id` (integer, required)

### `laudus_get_product` (~42 tokens)

Get a product

Get a product (SKU, description, category, units, prices) by id. GET /production/products/{id}.

Input parameters:

- `product_id` (integer, required)

### `laudus_get_supplier` (~34 tokens)

Get a supplier

Get a supplier by id. GET /purchases/suppliers/{id}.

Input parameters:

- `supplier_id` (integer, required)

### `laudus_get_purchase_invoice` (~39 tokens)

Get a purchase invoice

Get a purchase invoice with its lines by id. GET /purchases/invoices/{id}.

Input parameters:

- `purchase_invoice_id` (integer, required)

### `laudus_get_purchase_order` (~38 tokens)

Get a purchase order

Get a purchase order with its lines by id. GET /purchases/orders/{id}.

Input parameters:

- `purchase_order_id` (integer, required)

### `laudus_get_journal_entry` (~47 tokens)

Get a journal entry

Get an accounting journal entry (comprobante) with its lines by id. GET /accounting/journal/entries/{id}.

Input parameters:

- `journal_entry_id` (integer, required)

### `laudus_customer_pending_invoices` (~70 tokens)

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.

Input parameters:

- `customer_id` (integer): Customer id; omit for every customer.

### `laudus_customer_credit_limit` (~42 tokens)

Customer credit limit

A customer's credit limit and how much of it is used. GET /sales/customers/{id}/creditLimit.

Input parameters:

- `customer_id` (integer, required)

### `laudus_list_customer_contacts` (~36 tokens)

List customer contacts

The contact people of a customer. GET /sales/customers/{id}/contacts.

Input parameters:

- `customer_id` (integer, required)

### `laudus_sales_invoice_receipts` (~44 tokens)

Sales invoice receipts

The customer payments (cobros) applied to one sales invoice. GET /sales/invoices/{id}/receipts.

Input parameters:

- `sales_invoice_id` (required)

### `laudus_pending_sales_orders` (~77 tokens)

Pending sales orders

The ids of sales orders not yet delivered, optionally for one customer or a due-date range. GET /sales/orders/pending.

Input parameters:

- `customer_id` (integer)
- `due_date_from` (string): Due date from (yyyy-mm-dd).
- `due_date_to` (string): Due date to (yyyy-mm-dd).

### `laudus_sales_report` (~126 tokens)

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}.

Input parameters:

- `branch_id` (integer)
- `customer_id` (integer)
- `date_from` (string)
- `date_to` (string)
- `group_by` (string, required): How to group the totals.
- `product_id` (integer)
- `salesman_id` (integer)

### `laudus_get_product_stock` (~127 tokens)

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.

Input parameters:

- `by_warehouse` (boolean): Break the stock down per warehouse.
- `date_to` (string): Stock as of this date (default today).
- `lot` (string): Only this lot (ignored with by_warehouse).
- `product_id` (integer, required)
- `warehouse_id` (string): Only this warehouse (ignored with by_warehouse).

### `laudus_list_stock` (~79 tokens)

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.

Input parameters:

- `date_to` (string): Stock as of this date (default today).
- `product_category_id` (string)
- `warehouse_id` (string)

### `laudus_product_kardex` (~68 tokens)

Product kardex

The stock movements (kardex) of one product, optionally to a date and for one warehouse. GET /production/products/{id}/kardex.

Input parameters:

- `date_to` (string)
- `product_id` (integer, required)
- `warehouse_id` (string)

### `laudus_balance_sheet` (~143 tokens)

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.

Input parameters:

- `book_id` (string): Accounting book id (default: the main book).
- `cost_center_id` (string)
- `date_to` (string): As of this date (default today).
- `layout` (string): Default standard.
- `show_accounts_with_zero_balance` (boolean)
- `show_levels` (string): Account levels to show, as in Laudus (for example 1,2,3).
- `show_only_accounts_with_activity` (boolean)

### `laudus_profit_and_loss` (~125 tokens)

Profit and loss

The profit and loss statement (estado de resultados) for a date range. GET /accounting/profitAndLoss.

Input parameters:

- `book_id` (string): Accounting book id (default: the main book).
- `cost_center_id` (string)
- `date_from` (string)
- `date_to` (string)
- `show_accounts_with_zero_balance` (boolean)
- `show_levels` (string): Account levels to show, as in Laudus (for example 1,2,3).
- `show_only_accounts_with_activity` (boolean)

### `laudus_general_ledger` (~137 tokens)

General ledger

The general ledger (libro mayor) movements of an account or a range of account numbers, for a date range. GET /accounting/ledger.

Input parameters:

- `account_number_from` (string, required): First account number (or the only one).
- `account_number_to` (string): Last account number of a range.
- `book_id` (string)
- `cost_center_id` (string)
- `date_from` (string)
- `date_to` (string)
- `limit` (integer): Rows to return (default 100, at most 1000).
- `offset` (integer): Rows to skip.

### `laudus_purchase_ledger` (~49 tokens)

Purchase ledger

The purchases ledger (libro de compras) for a year and month. GET /purchases/invoices/ledger.

Input parameters:

- `month` (integer)
- `year` (integer)

### `laudus_create_customer` (~199 tokens)

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.

Input parameters:

- `activity_name` (string): Business activity (giro).
- `address` (string)
- `city` (string)
- `county` (string): Comuna.
- `dte_email` (string): Email for electronic tax documents.
- `email` (string)
- `legal_name` (string): Legal name / razon social (max 80).
- `name` (string, required): Trade name (max 50 characters).
- `notes` (string)
- `phone` (string)
- `vat_id` (string): Customer RUT, e.g. 76123456-7.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-laudus/laudus#diagnostics

## Score history

- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 18
- 2026-10-31: 66
- 2026-10-30: 62
- 2026-10-29: 62
- 2026-10-28: 62
- 2026-10-27: 61
- 2026-10-26: 61

## Common questions

### What is the Laudus MCP by usefulapi server?

Laudus MCP by usefulapi is listed in the public MCP registry as io.usefulapi/laudus. Read Laudus ERP customers, sales, purchases, stock and accounting reports; create customers. This page covers its hosted endpoint (https://laudus.usefulapi.io/mcp).

### Is the Laudus MCP by usefulapi server safe to use?

Laudus MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Laudus MCP by usefulapi server expose?

Laudus MCP by usefulapi exposes 38 tools: laudus_list_customers, laudus_list_sales_invoices, laudus_list_sales_orders, laudus_list_sales_quotes, laudus_list_sales_receipts, and 33 more. Their descriptions and schemas cost roughly 4,524 tokens of context every time the server is loaded.

### Does the Laudus MCP by usefulapi server require authentication?

Its publisher declares no required credentials for Laudus MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Laudus MCP by usefulapi server still maintained?

Laudus MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the Laudus MCP by usefulapi server?

VerifyMCP ran 4 checks on Laudus MCP by usefulapi, covering TLS certificate, HSTS header, DNSSEC and Transport. 7 items could not be completed, a gap on our side rather than a finding about Laudus MCP by usefulapi: Authorization, HTTPS, Schema quality, Stability and 3 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://laudus.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/laudus/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-laudus/laudus.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-laudus/laudus/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/io-usefulapi-laudus/laudus.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-laudus/laudus
