# ARES (Czech business registry) (npm · @milos106/ares-mcp)

MCP for ARES, the Czech business registry: lookup, due diligence, insolvency, signed provenance

- Trust score: 69/100 (medium)
- Change this week: +24
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- npm · `@milos106/ares-mcp`: 69/100 (this document), [markdown](https://verifymcp.io/servers/milos106-ares-mcp/milos106-ares-mcp.md), [page](https://verifymcp.io/servers/milos106-ares-mcp/milos106-ares-mcp)

## Channel facts

- Registry: `npm`
- Package: `@milos106/ares-mcp`
- Version: `0.1.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-08-04.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 39 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 76/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1756 tokens (~125/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add milos106-ares-mcp -- npx -y @milos106/ares-mcp
```

### Codex

```bash
codex mcp add milos106-ares-mcp -- npx -y @milos106/ares-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "milos106-ares-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@milos106/ares-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add milos106-ares-mcp --command npx --arg -y --arg @milos106/ares-mcp
```

### Hermes

```yaml
mcp_servers:
  milos106-ares-mcp:
    command: "npx"
    args: ["-y", "@milos106/ares-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "milos106-ares-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@milos106/ares-mcp"
      ]
    }
  }
}
```

## 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-08-03 (score 69, +4)

- [functional improvement] Stability: unverified → 0.23

### 2026-08-02 (score 65, +45)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: unverified
- [functional] Licence: MIT

### 2026-07-31 (score 20, −7)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 27, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 45)

First indexed and scored.

## MCP tools (14)

### `ares_validate_ico` (~111 tokens)

Validate a Czech IČO via the ČSÚ Mod-11 checksum. Pure function — does not call ARES. Returns the normalized 8-digit IČO and whether the checksum is valid.

Input parameters:

- `ico` (string, required): Czech IČO (Identifikační číslo osoby). Accepts 1–8 digits, optional 'CZ' prefix, whitespace, dashes or dots. Examples: '27074358', 'CZ27074358', '270 743 58'.

### `ares_lookup_company` (~75 tokens)

Look up a Czech company by IČO. Returns aggregated data from ARES (basic identification, legal form, registered address, VAT status, CZ-NACE classification, registrations in VR/RES/RŽP).

Input parameters:

- `ico` (string, required): Czech IČO. Will be normalized and Mod-11 checked before lookup.

### `ares_search_companies` (~213 tokens)

Search Czech companies by structured filters (name, postal code, municipality, legal form, CZ-NACE). At least one filter is required to avoid full-registry scans. Returns paginated results with totals.

Input parameters:

- `czNace` (array): List of CZ-NACE classification codes (e.g. ['620'] for IT activities).
- `limit` (integer): Page size, max 100.
- `obchodniJmeno` (string): Full or partial company name (full-text search).
- `offset` (integer): Pagination offset.
- `pravniForma` (array): List of legal-form codes (e.g. ['112'] for s.r.o., ['121'] for a.s.).
- `sidloKodObce` (integer): Numeric municipality code (RÚIAN). Use ares_lookup_czNace or your own lookup if unknown.
- `sidloPsc` (string): Postal code of the registered seat, e.g. '11000' or '110 00'.

### `ares_search_by_address` (~156 tokens)

Find all Czech companies whose registered seat (sídlo) matches a given address. Useful for shell-company / virtual-office detection: an address with dozens or hundreds of entities at it is a strong signal. Returns IČOs, names, and the canonical address ARES holds for each.

Input parameters:

- `adresa` (string, required): Free-form Czech address text — e.g. 'Vratimovská 689/117, Ostrava' or 'Pyšelská 2327/2, Praha'. The tool forwards it to ARES as a sidlo.textovaAdresa filter.
- `limit` (integer): Max number of IČOs to return per page.
- `offset` (integer): Pagination offset.

### `ares_get_statutory_bodies` (~110 tokens)

List statutory bodies (jednatelé, představenstvo, dozorčí rada) of a Czech company from the Public Register (VR). By default returns currently-active members only. Useful for due diligence, KYC, and verifying who is authorised to sign contracts.

Input parameters:

- `ico` (string, required): Czech IČO of the company.
- `includeHistorical` (boolean): If true, include members already removed (datumVymazu set). Default: only currently active.

### `ares_get_trade_licenses` (~84 tokens)

List trade licenses (živnostenská oprávnění) of a Czech entity from the Trade Register (RŽP). Returns each license's subject, type (volná / vázaná / koncesovaná / řemeslná), validity period, and fields of activity.

Input parameters:

- `ico` (string, required): Czech IČO of the entity.

### `ares_check_vat_payer` (~128 tokens)

Check whether a Czech entity is registered as a VAT payer (plátce DPH) based on ARES. Returns the IČ DPH (= DIČ) if active. NOTE: ARES reflects VAT-payer status with up to 24h delay; the authoritative source is MFČR (adisspr.mfcr.cz).

Input parameters:

- `expectedDic` (string): Optional DIČ to cross-check against ARES (e.g. 'CZ27074358'). Tool will report a mismatch.
- `ico` (string, required): Czech IČO of the company.

### `ares_standardize_address` (~95 tokens)

Standardize a free-form Czech address against the RÚIAN register. Returns canonical address text, RÚIAN address-point code, and confidence score for up to N suggestions.

Input parameters:

- `adresa` (string, required): Free-form address text to standardize against RÚIAN (e.g. 'Za Prachárnou 4962/45, Jihlava').
- `limit` (integer): Max number of suggestions.

### `ares_lookup_cz_nace` (~90 tokens)

Look up CZ-NACE (Czech industry classification) entries by code or partial name. Useful when filtering ares_search_companies by industry.

Input parameters:

- `limit` (integer): Max number of results.
- `query` (string, required): CZ-NACE code (e.g. '620') or name fragment (e.g. 'informačn'). Used to look up classification entries.

### `ares_cross_company_persons` (~193 tokens)

Given a list of Czech IČOs, find natural persons (and legal entities) who hold active statutory roles in two or more of them. Returns a structured cross-reference plus an optional Mermaid graph for visualization. Useful for due diligence (holding-group mapping, undisclosed beneficial connections, nominee director detection on a small known set).

Input parameters:

- `emitMermaid` (boolean): If true, also include a Mermaid `graph LR` string that MCP clients (e.g. Claude) can render as a visual person→companies diagram.
- `icos` (array, required): List of 2–50 Czech IČOs to cross-reference. Each will be validated and looked up in the Public Register (VR).
- `includeHistorical` (boolean): If true, include former members (those with `datumVymazu` set). Useful for nominee director detection and tracking director musical chairs. Default false = active members only.

### `ares_check_insolvenci` (~102 tokens)

Fast red-flag check: is a Czech entity currently in insolvency proceedings or marked as bankrupt? Reads the ARES `seznamRegistraci` for the Insolvency Register (IR) and Central Bankruptcy Register (CEÚ). Returns a clear true/false on `isInsolvent` plus the underlying state codes. Useful as a pre-contract sanity check.

Input parameters:

- `ico` (string, required): Czech IČO of the entity to check.

### `ares_full_due_diligence` (~111 tokens)

One-shot due-diligence report for a Czech company. Fetches the aggregate ARES profile, Public Register record (statutory bodies), Trade Register (licenses), evaluates insolvency status (IR + CEÚ) and dissolution date, and returns a structured report with a green/yellow/red risk flag plus a Markdown summary suitable for chat display. Replaces 4–5 individual lookups with a single call.

Input parameters:

- `ico` (string, required): Czech IČO of the company.

### `ares_get_res_classification` (~90 tokens)

Get statistical classification of a Czech company from RES (Registr ekonomických subjektů): headcount bracket (decoded into SME / large), institutional sector (ESA 2010), primary CZ-NACE, financial office (FÚ), and NUTS region. Useful for B2B segmentation, reporting and policy-style analysis.

Input parameters:

- `ico` (string, required): Czech IČO of the company.

### `ares_export_for_invoicing` (~198 tokens)

Transform an ARES company profile into a payload ready for a Czech invoicing system: Fakturoid (JSON), iDoklad (JSON), or Pohoda (XML-hint JSON). Pure data transformation — no calls to the target system. The result is a paste-ready or post-ready object that fills the identification + address fields; the caller adds contact, bank and pricing.

Input parameters:

- `ico` (string, required): Czech IČO of the entity to export.
- `target` (string, required): Invoice-system target format. `fakturoid` returns a JSON shape ready to POST to https://app.fakturoid.cz/api/v3/{slug}/subjects.json. `idoklad` returns a JSON shape compatible with https://api.idokla…

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/milos106-ares-mcp/milos106-ares-mcp#diagnostics

## Score history

- 2026-08-04: 69
- 2026-08-03: 69
- 2026-08-02: 65
- 2026-08-01: 20
- 2026-07-31: 20
- 2026-07-30: 27
- 2026-07-28: 45
- 2026-07-27: 45

## Links

- npm package: https://www.npmjs.com/package/@milos106/ares-mcp
- Socket report: https://socket.dev/npm/package/@milos106/ares-mcp
- Repository: https://github.com/milos106/ares-mcp
- Website: https://icovazby.cz/?utm_source=ares-mcp
- Changelog RSS feed: https://verifymcp.io/servers/milos106-ares-mcp/milos106-ares-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/milos106-ares-mcp/milos106-ares-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/milos106-ares-mcp/milos106-ares-mcp
