# Saldeo MCP by usefulapi (remote · saldeo.usefulapi.io)

Read SaldeoSMART companies, contractors, documents, invoices, bank statements and employees.

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

## Components

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

## Channel facts

- Endpoint: `https://saldeo.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.10.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 Saldeo MCP by usefulapi server?

Saldeo MCP by usefulapi is a hosted endpoint at https://saldeo.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-saldeo 'https://saldeo.usefulapi.io/mcp'
```

### Cursor

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

### VS Code

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

### Codex

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

### opencode

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

### OpenClaw

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

### Hermes

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

### Netclaw

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

### Vellum

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

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-saldeo": {
      "type": "http",
      "url": "https://saldeo.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-02 (score 18, −48)

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

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

- [security improvement] Authorization: partial → pass
- [functional improvement] MCP protocol: fail → pass
- [functional] New prompt “find_a_company_and_its_contractors”
- [functional] New prompt “find_a_document_by_number_or_vat_number”
- [functional] New prompt “inspect_bank_statement_entries”
- [functional] New prompt “review_documents_from_a_monthly_folder”
- [functional] New prompt “review_sales_invoices_marked_for_export”
- [functional] MCP protocol version: 2025-06-18 → 2025-11-25
- [functional] Server version: 1.6.0 → 1.8.0
- [functional] Server version: 1.5.0 → 1.6.0
- [functional] Server version: 1.4.2 → 1.5.0

### 2026-10-30 (score 63, +1)

- [functional] Server version: 1.4.1 → 1.4.2
- [functional] Server version: 1.4.0 → 1.4.1

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

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.3.0 → 1.4.0
- [functional] Server version: 1.2.0 → 1.3.0

### 2026-10-28 (score 62)

First indexed and scored.

## MCP tools (10)

### `saldeo_list_companies` (~129 tokens)

List the companies (clients) the Saldeo user can see: COMPANY_PROGRAM_ID (needed by every other tool), COMPANY_ID, names, VAT number, address, bank accounts. Start here. Saldeo: GET /api/xml/3.0/company/list.

Input parameters:

- `limit` (integer): Entries per list in the reply, 1-1000 (default 100). The reply's "paging" says how many exist and the next offset.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.

### `saldeo_list_contractors` (~147 tokens)

List the contractors (suppliers and customers) of one company: names, VAT number (NIP), address, bank accounts, e-mails, payment days. Saldeo: GET /api/xml/3.0/contractor/list.

Input parameters:

- `company_program_id` (string, required): The company's COMPANY_PROGRAM_ID, as returned by saldeo_list_companies.
- `limit` (integer): Entries per list in the reply, 1-1000 (default 50). The reply's "paging" says how many exist and the next offset.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.

### `saldeo_search_documents` (~206 tokens)

Find documents of one company by field (at least one of document_id, number, nip, guid; several are combined with AND). Returns the matching documents. Saldeo: POST /api/xml/3.1/document/search (policy BY_FIELDS).

Input parameters:

- `company_program_id` (string, required): The company's COMPANY_PROGRAM_ID, as returned by saldeo_list_companies.
- `document_id` (integer): The Saldeo DOCUMENT_ID.
- `guid` (string): The document GUID.
- `limit` (integer): Entries per list in the reply, 1-1000 (default 50). The reply's "paging" says how many exist and the next offset.
- `nip` (string): The contractor's VAT number (NIP).
- `number` (string): The document number, e.g. FV/101/2016.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.

### `saldeo_list_document_ids` (~205 tokens)

List the ids of all documents of one company in one month folder, grouped by type (contracts, cost/sale/internal/material invoices, orders, writings, other). Feed the ids to saldeo_get_documents_by_ids. Saldeo: POST /api/xml/3.0/document/getidlist.

Input parameters:

- `company_program_id` (string, required): The company's COMPANY_PROGRAM_ID, as returned by saldeo_list_companies.
- `limit` (integer): Entries per list in the reply, 1-1000 (default 500). The reply's "paging" says how many exist and the next offset.
- `month` (integer, required): Month of the Saldeo folder, 1-12.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.
- `year` (integer, required): Year of the Saldeo folder (the month the document is booked in), e.g. 2026.

### `saldeo_get_documents_by_ids` (~241 tokens)

Get full documents of one company by id, per type (use the groups from saldeo_list_document_ids; at most 200 ids per call). Saldeo: POST /api/xml/3.1/document/listbyid.

Input parameters:

- `company_program_id` (string, required): The company's COMPANY_PROGRAM_ID, as returned by saldeo_list_companies.
- `contracts` (array): CONTRACT ids.
- `invoices_cost` (array): INVOICE_COST ids (cost invoices).
- `invoices_internal` (array): INVOICE_INTERNAL ids.
- `invoices_material` (array): INVOICE_MATERIAL ids.
- `invoices_sale` (array): INVOICE_SALE ids (sales invoices).
- `limit` (integer): Entries per list in the reply, 1-1000 (default 50). The reply's "paging" says how many exist and the next offset.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.
- `orders` (array): ORDER ids.
- `other_documents` (array): OTHER_DOCUMENT ids.
- `writings` (array): WRITING ids.

### `saldeo_list_invoices` (~146 tokens)

List the sales invoices of one company that were marked for export in Saldeo (policy SALDEO): number, dates, contractor, line items, amounts. Saldeo: GET /api/xml/3.0/invoice/list.

Input parameters:

- `company_program_id` (string, required): The company's COMPANY_PROGRAM_ID, as returned by saldeo_list_companies.
- `limit` (integer): Entries per list in the reply, 1-1000 (default 50). The reply's "paging" says how many exist and the next offset.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.

### `saldeo_list_invoice_ids` (~203 tokens)

List the ids of the invoices (invoices, corrective invoices, pre-invoices, corrective pre-invoices) of one company in one month folder. Feed them to saldeo_get_invoices_by_ids. Saldeo: POST /api/xml/3.0/invoice/getidlist.

Input parameters:

- `company_program_id` (string, required): The company's COMPANY_PROGRAM_ID, as returned by saldeo_list_companies.
- `limit` (integer): Entries per list in the reply, 1-1000 (default 500). The reply's "paging" says how many exist and the next offset.
- `month` (integer, required): Month of the Saldeo folder, 1-12.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.
- `year` (integer, required): Year of the Saldeo folder (the month the document is booked in), e.g. 2026.

### `saldeo_get_invoices_by_ids` (~201 tokens)

Get full invoices of one company by id (ids from saldeo_list_invoice_ids; at most 200 per call). Saldeo: POST /api/xml/3.0/invoice/listbyid.

Input parameters:

- `company_program_id` (string, required): The company's COMPANY_PROGRAM_ID, as returned by saldeo_list_companies.
- `corrective_invoices` (array): CORRECTIVE_INVOICE_ID values.
- `corrective_pre_invoices` (array): CORRECTIVE_PRE_INVOICE_ID values.
- `invoices` (array): INVOICE_ID values.
- `limit` (integer): Entries per list in the reply, 1-1000 (default 50). The reply's "paging" says how many exist and the next offset.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.
- `pre_invoices` (array): PRE_INVOICE_ID values.

### `saldeo_list_bank_statements` (~131 tokens)

List the bank statements of one company with their entries, contractors and links. Saldeo: GET /api/xml/3.0/bank_statement/list.

Input parameters:

- `company_program_id` (string, required): The company's COMPANY_PROGRAM_ID, as returned by saldeo_list_companies.
- `limit` (integer): Entries per list in the reply, 1-1000 (default 50). The reply's "paging" says how many exist and the next offset.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.

### `saldeo_list_employees` (~137 tokens)

List the employees of one company (personnel module): names, acronym and HR master data. Contains personal data. Saldeo: GET /api/xml/3.0/employee/list.

Input parameters:

- `company_program_id` (string, required): The company's COMPANY_PROGRAM_ID, as returned by saldeo_list_companies.
- `limit` (integer): Entries per list in the reply, 1-1000 (default 50). The reply's "paging" says how many exist and the next offset.
- `offset` (integer): Skip this many entries of each list (default 0); use paging.next_offset from the previous reply.

## Diagnostics

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

## Score history

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

## Common questions

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

Saldeo MCP by usefulapi is listed in the public MCP registry as io.usefulapi/saldeo. Read SaldeoSMART companies, contractors, documents, invoices, bank statements and employees. This page covers its hosted endpoint (https://saldeo.usefulapi.io/mcp).

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

Saldeo 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 Saldeo MCP by usefulapi server expose?

Saldeo MCP by usefulapi exposes 10 tools: saldeo_list_companies, saldeo_list_contractors, saldeo_search_documents, saldeo_list_document_ids, saldeo_get_documents_by_ids, and 5 more. Their descriptions and schemas cost roughly 1,746 tokens of context every time the server is loaded.

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

Its publisher declares no required credentials for Saldeo 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 Saldeo MCP by usefulapi server still maintained?

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

## Links

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