isir
Server Details
Czech insolvency register (ISIR) — active/historical insolvency & bankruptcy by IČO or person.
- Status
- Healthy
- Uptime
- 100.0% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- martinhavel/cz-agents-mcp
- GitHub Stars
- 6
- Server Listing
- cz-agents-mcp
TDQS
Scored across 3 tools
Each tool targets a distinctly different resource: company insolvency by IČO, person insolvency by name/DOB, and a feed of events. No overlapping purposes exist, so an agent can clearly select the right tool based on the query type.
All tool names follow a consistent verb_noun pattern in snake_case: check_ico_insolvency, poll_isir_events, search_person_insolvency. Even though verbs differ (check/poll/search), they are all action-first and the nouns are clear and complementary.
With only 3 tools, the server is tightly scoped to the ISIR insolvency domain. Each tool covers a core use case (company lookup, person screening, event monitoring) without redundancy or bloat, making the surface well-proportioned for its purpose.
The tools cover the primary access patterns for ISIR: checking a specific company, screening individuals, and polling the event feed. A minor gap is the lack of a direct lookup by spisová značka, but the event feed and existing tools cover most downstream needs for compliance and KYC workflows.
Available Tools
3 toolscheck_ico_insolvencyARead-onlyInspect
Check whether a Czech company (by IČO) has any active insolvency proceeding in ISIR. Returns spisová značka, start date, and current phase if found. Returns "no record" if not (which is also informative).
| Name | Required | Description | Default |
|---|---|---|---|
| ico | Yes | Czech IČO — 7 or 8 digits. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and openWorldHint. The description adds valuable behavioral details: it returns spisová značka, start date, and current phase if found, and explicitly states what happens when no record exists ('no record'). This goes beyond the annotations.
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 sentences, front-loaded with the action, and every sentence earns its place. No redundant or vague wording.
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 single-parameter tool with rich annotations and no output schema, the description is complete. It covers the purpose, the input, and the return behavior, giving the agent enough to invoke and interpret results correctly.
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 input schema fully documents the only parameter 'ico' with its format (7-8 digits), so schema coverage is 100%. The description does not add extra parameter details beyond what the schema already provides, meeting the baseline of 3.
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 checks for active insolvency proceedings for a Czech company by IČO, with specific verb ('check'), resource ('Czech company by IČO'), and system ('ISIR'). It also distinguishes from sibling tools by focusing on IČO (company) rather than persons.
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 provides clear context on when to use the tool: when you have a Czech IČO and need to know about active insolvency proceedings in ISIR. It does not explicitly mention alternatives or exclusions, but the scope is evident from the phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_isir_eventsARead-onlyInspect
Pull a batch of recent ISIR events (insolvency register publications) since the given event id. ISIR is an append-only feed — each call returns up to ~1000 events newer than since_id. Use last_id from response as next since_id. Useful for compliance monitoring or to back-fill an index.
| Name | Required | Description | Default |
|---|---|---|---|
| since_id | No | Last seen event id. Use 0 to start from the beginning of recorded ISIR history (~2008). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, openWorldHint), the description reveals key behaviors: ISIR is an append-only feed, each call returns at most ~1000 events, and the pagination contract via `since_id`/`last_id`. This significantly aids the agent in understanding expected results and proper invocation.
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 sentences, front-loaded with the primary action and immediately followed by essential operational details. Every sentence earns its place, with no fluff or repetition of schema/annotation info.
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 read-only tool with one parameter and no output schema, the description covers purpose, usage pattern, feed characteristics, and relevant use cases. It adequately compensates for missing response schema by explaining the `last_id` cursor, making the tool self-contained for an agent.
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 describes `since_id` with default and minimum, achieving 100% coverage. The description adds valuable context about how to use the parameter in a looping pagination pattern, which goes beyond the schema's basic field description.
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 begins with a specific verb ('Pull') and resource ('batch of recent ISIR events'), clearly stating what the tool does. It also distinguishes itself from siblings by focusing on the event feed polling pattern, unlike checking or searching specific records.
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 provides explicit usage guidance: 'Use `last_id` from response as next `since_id`' and mentions use cases (compliance monitoring, back-filling an index). However, it does not explicitly mention alternatives or when not to use this tool, so it falls short of full differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_person_insolvencyARead-onlyInspect
Search ISIR for an individual person (FO) by name and optional date of birth. Returns active insolvency proceedings (oddlužení / osobní bankrot). Used to screen statutory persons in KYC and DD workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| dob | No | Date of birth, YYYY-MM-DD. Optional but strongly recommended — common names produce many false positives without DOB. | |
| name | Yes | Full name in any case (Czech diacritics tolerated). E.g. "Pavel Novák" or "Jana Svobodová". | |
| only_active | No | When true (default), return only currently active proceedings. False also returns closed/dismissed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint and openWorldHint annotations already establish a safe read operation. The description adds that it returns 'active insolvency proceedings' and provides Czech terminology, but does not disclose that only_active=false can return closed/dismissed cases, nor any rate limits or response format.
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 concise sentences pack purpose, output, and use case without filler. Every sentence earns its place.
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 the rich schema and annotations, the description provides enough to select the tool. It lacks output structure details, but no output schema exists and the simple return type ('active insolvency proceedings') is sufficient for a search operation.
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% with thorough parameter descriptions (e.g., DOB's warning about false positives). The description merely restates 'by name and optional date of birth,' adding no new semantic detail 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?
The description clearly states the tool searches ISIR for an individual person by name and optional DOB, returning active insolvency proceedings. The phrase '(FO)' and 'individual person' distinguishes it from corporate lookup siblings like check_ico_insolvency.
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 notes it is 'Used to screen statutory persons in KYC and DD workflows,' providing clear use context. It does not explicitly name alternative tools, but the sibling names plus the person-specific framing imply when to use this versus the ICO-based check.
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.
8 tool updates
- Removed
check_ico - Added
check_ico_insolvency - Removed
get_listing - Removed
list_recent_updates - Added
poll_isir_events - Removed
search_entity - Removed
search_person - Added
search_person_insolvency
8 tool updates
- Added
check_ico - Removed
check_ico_insolvency - Added
get_listing - Added
list_recent_updates - Removed
poll_isir_events - Added
search_entity - Added
search_person - Removed
search_person_insolvency
10 tool updates
- Added
check_ico_insolvency - Removed
detect_address_crowding - Removed
detect_nominee_director - Removed
detect_phoenix - Removed
get_dd_report - Removed
get_risk_score - Removed
get_risk_timeline - Removed
get_statutory_chain - Added
poll_isir_events - Added
search_person_insolvency
16 tool updates
- Removed
check_vat_payer - Added
detect_address_crowding - Added
detect_nominee_director - Added
detect_phoenix - Removed
get_bank_accounts - Added
get_dd_report - Removed
get_history - Added
get_risk_score - Added
get_risk_timeline - Removed
get_statutaries - Added
get_statutory_chain - Removed
lookup_by_ico - Removed
search_by_address - Removed
search_by_nace - Removed
search_companies - Removed
validate_dic
12 tool updates
- Removed
check_ico_insolvency - Added
check_vat_payer - Added
get_bank_accounts - Added
get_history - Added
get_statutaries - Added
lookup_by_ico - Removed
poll_isir_events - Added
search_by_address - Added
search_by_nace - Added
search_companies - Removed
search_person_insolvency - Added
validate_dic
12 tool updates
- Added
check_ico_insolvency - Removed
check_vat_payer - Removed
get_bank_accounts - Removed
get_history - Removed
get_statutaries - Removed
lookup_by_ico - Added
poll_isir_events - Removed
search_by_address - Removed
search_by_nace - Removed
search_companies - Added
search_person_insolvency - Removed
validate_dic
12 tool updates
- Removed
check_ico_insolvency - Added
check_vat_payer - Added
get_bank_accounts - Added
get_history - Added
get_statutaries - Added
lookup_by_ico - Removed
poll_isir_events - Added
search_by_address - Added
search_by_nace - Added
search_companies - Removed
search_person_insolvency - Added
validate_dic
6 tool updates
- Removed
check_bulk_dph_payer - Removed
check_dph_payer - Added
check_ico_insolvency - Removed
list_unreliable_payers - Added
poll_isir_events - Added
search_person_insolvency
6 tool updates
- Added
check_bulk_dph_payer - Added
check_dph_payer - Removed
check_ico_insolvency - Added
list_unreliable_payers - Removed
poll_isir_events - Removed
search_person_insolvency
3 tool updates
- First observed
check_ico_insolvency - First observed
poll_isir_events - First observed
search_person_insolvency
Related MCP Connectors
Czech ARES company registry: VAT, insolvency, RÚIAN addresses, IČO/DIČ checks. All free, no auth.
Czech & Slovak business registry — company lookup by IČO, name, legal form, VAT. Official ARES.
Czech business register (ARES) — look up any Czech company or sole trader by IČO or by name, from…
Czech VAT-payer reliability (ADIS / nespolehlivý plátce DPH) + registered bank accounts by DIČ.
Related MCP Servers
- 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.MIT
- 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.2MIT
- AlicenseAqualityDmaintenanceMCP server for Slovak business registers (RPO) — AI agents can query 1.4M+ Slovak legal entities via Slovakia's official Statistical Office API. Search companies by name, IČO, or get full entity details including legal form, address, and statutory representatives.21MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to look up Czech companies, VAT status, entity KYC snapshots, address standardization, and Czech identifier validation via official ARES data.-
Glama MCP Gateway
Add one secure layer between your agents and this server.