Czech Company Registry (ARES) Tools
Server Details
Czech ARES company registry: VAT, insolvency, RÚIAN addresses, IČO/DIČ checks. All free, no auth.
- Status
- Healthy
- Uptime
- 100.0% over 26 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool targets a clearly distinct workflow: address normalization, VAT status, basic entity lookup, KYC status, name search, and identifier validation. Even though company_lookup and entity_status both use IČO, their purposes are separated by basic registry data versus register presence/status.
All names use snake_case, but the word order is inconsistent: some are verb-first (check_vat, search_company, validate_cz) while others are noun-first (address_check, company_lookup, entity_status). The names are readable and specific, but the pattern is not predictable across the set.
Six tools is a well-scoped size for a Czech company registry server. Each tool covers a distinct and necessary capability without redundancy or bloat.
The tool set covers the full practical lifecycle: discovery by name, lookup by identifier, VAT verification, status/registers check, address standardization, and local validation of Czech identifiers. No obvious dead ends or core missing operations for the stated domain.
Available Tools
6 toolsaddress_checkStandardize Czech address (RÚIAN)AInspect
Free-text Czech address -> RÚIAN-standardized (full KOD ADM, codes for obec/část/ulice, correct PSC).
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | e.g. "Václavské náměstí 1, Praha" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It explains the transformation and output fields, but does not mention error behavior, handling of ambiguous addresses, rate limits, or any side effects. The description is too brief to give the agent confidence about what happens on failure or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the transformation and lists the key output elements. There is zero waste and it is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description gives some output details (KOD ADM, codes, PSC) but omits the overall return structure, error handling, and potential multiple matches. It is adequate but not exhaustive, especially given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, including an example. The description adds no additional parameter semantics beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific purpose: converting free-text Czech addresses into RÚIAN-standardized form with specific codes and PSC. This clearly distinguishes it from sibling tools like check_vat or company_lookup, which target entirely different domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is clear, but there is no explicit guidance on when to use this tool versus alternatives or when not to use it. The sibling tools are obviously different (VAT, company), so usage context is implied, but not stated. No mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_vatCzech VAT (DPH) status checkAInspect
Authoritative plátce-DPH status from RZP register: payer yes/no, effective from, tax office, trade licences. Use before issuing/czech invoicing. Batch up to 20 IČOs.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | IČOs or DIČs (CZ+10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden. It usefully notes the source is authoritative, enumerates the returned fields, and mentions batch capacity. However, it does not disclose potential failure modes, error behavior, or any limitations regarding invalid IČOs/DIČs, so the disclosure is only moderately complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences each add value: the data source/output, the use case, and the batch limit. The wording 'issuing/czech invoicing' is slightly awkward, but the description remains tight and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with no output schema, the description covers the essential context: source, output fields, intended use, and batch size. It lacks notes on error handling or authorization, but nothing critical is missing for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, which already explains 'IČOs or DIČs (CZ+10)'. The description repeats the batch limit already present as maxItems in the schema, adding no new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (RZP register), a concrete output set (payer yes/no, effective from, tax office, trade licences), and clearly differentiates from the sibling tools by focusing specifically on Czech VAT payer status rather than general entity lookup. Even the title adds a clarifying subclass ('Czech VAT (DPH) status check').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit context for use: 'Use before issuing/czech invoicing.' This tells the agent when this lookup is relevant. It does not name alternative tools or state when not to use it, so it stops short of a 5, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_lookupLookup Czech company by IČO or DIČAInspect
Basic register (ARES) lookup: name, legal form, registered address, NACE, data-box, VAT DIČ. Input: IČO (8 digits) or DIČ (CZ+10).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | IČO (e.g. 27082440) or DIČ (e.g. CZ27082440) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that this is a basic ARES register lookup and enumerates the returned fields, giving a clear sense of scope. It does not mention behavior for invalid IDs, missing records, or whether the VAT DIČ is verified, which are useful but secondary details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The purpose and input format are front-loaded, and every phrase adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup, the description covers what the tool does, what it returns, and how to format the input. It does not explain not-found behavior, but that is minor given the tool's simplicity and lack of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single parameter with examples, and the description adds useful format constraints (8 digits for IČO, CZ+10 for DIČ). This goes beyond the schema's basic description and helps agents construct valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool does a lookup of Czech companies by IČO or DIČ, and it lists the specific data returned. The exact-ID framing distinguishes it from broader search tools, though it does not explicitly name sibling tools for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The input requirement 'IČO (8 digits) or DIČ (CZ+10)' strongly implies this tool is for exact identifier lookup. However, it does not explicitly say when to prefer search_company, check_vat, or entity_status, leaving some ambiguity about alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_statusEntity risk snapshot (registers + insolvency)AInspect
KYC-style snapshot: active/cancelled, which registers the entity appears in (VR, RZP, NRPZS, RS insolvency, RCNS, SZR...), plus insolvency-register record if present.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | IČO or DIČ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose that the output is conditional ('insolvency-register record if present') and lists the registers consulted, which adds some transparency. However, it does not mention read-only nature, error behavior for missing entities, or any performance characteristics. It provides a moderate level of behavior but not comprehensive coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the core purpose ('KYC-style snapshot') and then lists specifics. It is efficient with no filler. However, it relies on unexpanded abbreviations (VR, RZP, etc.) that may be opaque to agents lacking domain knowledge, which slightly reduces clarity but not conciseness itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description does a reasonable job of outlining the expected return content (status, register memberships, insolvency record). It does not detail the exact structure or error cases, but for a single-parameter tool with a snapshot purpose, it covers the key components an agent would need to understand the result. It is not exhaustive but is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single parameter (id) with a clear description ('IČO or DIČ'). The tool description adds no additional meaning or format guidance beyond the schema. Per the rubric, baseline 3 is appropriate when schema coverage is high and description contributes nothing extra.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool produces a 'KYC-style snapshot' and enumerates specific content: active/cancelled status, which registers the entity appears in (VR, RZP, NRPZS, RS insolvency, RCNS, SZR), and an insolvency-register record if present. This goes beyond a vague 'entity status' and gives a concrete picture of what the tool returns, distinguishing it from sibling lookup/validation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the 'KYC-style snapshot' phrasing, suggesting it is for risk/background checks, but there is no explicit guidance on when to choose this over siblings like company_lookup or validate_cz. No alternatives are named, and no exclusions are stated, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companySearch Czech companies by nameAInspect
Company-name search in ARES (prefix match, case-insensitive; no wildcards). Returns IČOs + names + addresses for further lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Company name or name prefix (e.g. "Alza") | |
| limit | No | Max results (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behavioral traits: prefix matching, case-insensitivity, no wildcards, and the exact return fields (IČOs, names, addresses). This goes well beyond a generic 'search' and gives an agent clear expectations, though it omits rate limits or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One information-dense sentence with no filler. The key action and source are front-loaded, and every clause contributes to either behavior or output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema, the description is remarkably complete: it explains matching semantics, the exact return fields, and the intended follow-up use. An agent can safely invoke it without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning to the 'name' parameter by specifying prefix match, case-insensitivity, and no wildcards—details not in the schema. It does not elaborate on 'limit', but that parameter is already well-described in the schema with min/max/default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('search'), a specific resource (ARES company database), and the core behavior (prefix match, case-insensitive). It distinguishes itself from siblings like company_lookup by focusing on name-based search rather than exact identifiers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating results are 'for further lookups', hinting that this tool is a precursor to other tools. However, it never explicitly contrasts with alternatives like company_lookup or validate_cz, nor states when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_czValidate Czech identifiers (offline)BInspect
Checksum/format validation: IČO (mod-11), DIČ (CZ+IČO or birth number), IBAN (mod-97, CZ-specific), variable symbol. Pure local, no network.
| Name | Required | Description | Default |
|---|---|---|---|
| dic | No | ||
| ico | No | ||
| iban | No | ||
| variableSymbol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It usefully adds that the operation is purely local and network-free and exposes the checksum algorithms (mod-11, mod-97). However, it does not describe the output shape, whether any input is required, or how failures are represented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences: the first names the operation and enumerates the covered formats with parenthetical algorithms; the second adds the key offline constraint. There is no filler, and the essential information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations and no output schema, so the description alone must explain what callers get back. It covers inputs and offline behavior, but omits return value semantics, whether at least one parameter is required, and how invalid input is reported. These are important gaps for a validation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only semantic source for params. It meaningfully maps each schema field to a concrete identifier type and validation rule: dic as DIČ, ico as IČO mod-11, iban as IBAN mod-97, variableSymbol as variable symbol. It does not detail variable symbol criteria, but the description adds substantial meaning beyond the raw string properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb scope: 'Checksum/format validation' of specific Czech identifiers (IČO, DIČ, IBAN, variable symbol). It is focused on a recognizable resource, though it does not explicitly differentiate itself from check_vat or company_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no context for when to choose this tool over siblings like check_vat, which likely covers similar VAT-related identifier checks. The only usage hint is 'Pure local, no network,' which implies offline suitability but does not state exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- Changed
address_check2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
check_vat2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
company_lookup2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
entity_status2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
search_company2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
validate_cz2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
6 tool updates
- Changed
address_check1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
check_vat1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
company_lookup1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
entity_status1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
search_company1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
validate_cz1 field changed- added
Input schema / additionalPropertiesAdded value: +false
6 tool updates
- First observed
address_check - First observed
check_vat - First observed
company_lookup - First observed
entity_status - First observed
search_company - First observed
validate_cz
Related MCP Connectors
Czech business register (ARES) — look up any Czech company or sole trader by IČO or by name, from…
Czech & Slovak business registry — company lookup by IČO, name, legal form, VAT. Official ARES.
Czech VAT-payer reliability (ADIS / nespolehlivý plátce DPH) + registered bank accounts by DIČ.
Slovak and Czech company registers: lookup, VAT payers, e-invoicing readiness, company history.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides access to the Czech ARES business registry API, enabling search and retrieval of official information about Czech companies, validation of IČO numbers, and filtering by various criteria like legal form, industry codes, and location.22 PyPI2MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to look up Czech companies and sole traders by IČO or by name, retrieving official registration data such as legal form, seat address, VAT number, and activity codes from the Ministry of Finance's ARES register.22 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to look up Czech companies, VAT status, entity KYC snapshots, address standardization, and Czech identifier validation via official ARES data.-
- AlicenseAqualityBmaintenanceEnables LLM agents to access the Czech public business register (ARES) for company lookups by IČO, name searches, VAT registration checks, and offline IČO validation.4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.