cz-agents-mcp
Czech company due-diligence / KYC-AML server: it pulls company facts, sanctions, insolvency and ownership data for a Czech IČO (plus EU parent lookups) and returns risk scores and red flags.
get_dd_report({ico, depth})— full DD report: company facts (name, address, legal form, VAT status, bank accounts), statutory body with per-member sanctions check, plus a 0–100 risk score and all triggered red flags (basic= ARES + sanctions;fulladds ISIR insolvency + virtual-address probe).get_risk_score({ico})— fast numeric 0–100 score, risk level and top red flags for a quick screen.get_statutory_chain({ico, max_depth})— surname-based walk through statutory bodies of related companies for shell-company unwinding (heuristic, not a true UBO source; noisy for common surnames).detect_nominee_director({ico})— "white horse" nominee-director detection via 3 surface indicators (age outlier, multi-board membership, recent appointment), riskScore 0–100.detect_phoenix({ico})— phoenix-company pattern detection via 3 indicators (prior insolvent director surname match, founding <12 months from insolvency, NACE sector), riskScore 0–100.get_risk_timeline({ico})— chronological lifecycle timeline (formation, appointments, insolvency, sanctions matches, VAT reliability flips) as scored events.detect_address_crowding({ico})— shell-firm "address hotel" detection by counting companies at the same registered address (threshold-banded risk).get_eu_dd_report({identifier, country?})— EU DD report by LEI code or company name: GLEIF entity data + EU/OFAC sanctions screening (SMEs without LEI may not be found).get_eu_parent({ico})— ARES → GLEIF matching to find a Czech company's EU/international parent, with HIGH/MEDIUM/LOW confidence.Note: all tools are read-only; nominee/phoenix/timeline/address-crowding/EU tools require the paid Compliance tier or higher, and richer versions live in the hosted
@czagents/ddplus.
Generates European payment QR codes compliant with SEPA (EPC/GiroCode) standards, enabling AI agents to create SEPA-compatible QR codes for payments.
cz-agents-mcp
Model Context Protocol servers for Czech & EU due diligence and KYC/AML — company facts, insolvency (ISIR), EU + OFAC sanctions screening, VAT-payer reliability, phoenix & nominee-director detection, quantified risk score and statutory-chain (UBO) ownership analysis. Built on native access to ARES (company registry), ČNB (FX rates), ADIS (VAT-payer status) and 16 EU business registries (GB, SK, PL, NL, IT, AT, ES, BE, LT, DE, FR, NO, DK, FI, EE, SE).
Want a hosted, production-ready version? cz-agents.dev — managed API with a 14-day free trial (no credit card). Adds higher quotas, nominee detection, risk timeline, address crowding, watchlist monitoring, and a web compliance dashboard. Your self-hosted config keeps working after upgrade — same endpoints, same token format.
No-code web app
Don't want to wire an MCP client? The same data is available as a web application:
Business partner due diligence (prověření obchodního partnera)
Case study: company due diligence with an AI agent — 20 minutes → 30 seconds
Landing page: cz-agents.dev · Listed in: official MCP Registry under DNS-verified namespace dev.cz-agents/*
Available servers
Package | Source | Status |
ARES — Czech Business Register | ✅ live | |
ČNB — daily FX rates | ✅ live | |
EU + OFAC sanctions screening (KYC/AML) | ✅ live | |
ISIR — Czech insolvency register | ✅ live | |
ADIS — unreliable VAT payer (nespolehlivý plátce DPH) + transparent accounts | ✅ live | |
Due-diligence aggregator (ARES + sanctions + ISIR + ADIS + statutory chain) | ✅ live | |
Czech distress real estate intelligence (ISIR sales + portál dražeb) | ✅ live (v0.1) | |
EU business registries — 16 countries (GB, SK, PL, NL, IT, AT, ES, BE, LT, DE, FR, NO, DK, FI, EE, SE) via Companies House / ORSR / KRS / SIRENE / BRREG / CVR / PRH / RIK / Bolagsverket / Registrų centras JAR / VIES / GLEIF; LT provides name, code, registration date and legal-status label without address or officer enrichment | ✅ live | |
Payment QR codes (SPAYD / EPC-GiroCode) — bonus utility | ✅ live |
Premium tier — closed source
Server | What it adds | Where |
| 8-indicator nominee director detection (cross-DB), phoenix recidiva, enriched risk timeline with AI narrative, recursive linked-entities risk analysis (depth 1-3), shell-firm address crowding with provider detection, daily watchlist monitoring with email digest | Hosted-only at |
Related MCP server: eu-company-mcp-server
Quick start
Claude Desktop / Cursor (stdio)
{
"mcpServers": {
"ares": { "command": "npx", "args": ["-y", "@czagents/ares"] },
"cnb": { "command": "npx", "args": ["-y", "@czagents/cnb"] },
"sanctions": { "command": "npx", "args": ["-y", "@czagents/sanctions"], "env": { "SANCTIONS_DB": "/path/to/sanctions.db" } },
"isir": { "command": "npx", "args": ["-y", "@czagents/isir"], "env": { "ISIR_SOAP_ENABLED": "1" } },
"adis": { "command": "npx", "args": ["-y", "@czagents/adis"], "env": { "ADIS_SOAP_ENABLED": "1" } },
"dd": { "command": "npx", "args": ["-y", "@czagents/dd"], "env": { "SANCTIONS_DB": "/path/to/sanctions.db", "ADIS_SOAP_ENABLED": "1" } },
"eu-registry": { "command": "npx", "args": ["-y", "@czagents/eu-registry"] },
"payqr": { "command": "npx", "args": ["-y", "@czagents/payqr"] },
"realestate": { "command": "npx", "args": ["-y", "@czagents/realestate"] }
}
}Remote / Streamable HTTP
{
"mcpServers": {
"ares": { "url": "https://ares.cz-agents.dev/mcp" },
"cnb": { "url": "https://cnb.cz-agents.dev/mcp" },
"sanctions": { "url": "https://sanctions.cz-agents.dev/mcp" },
"isir": { "url": "https://isir.cz-agents.dev/mcp" },
"adis": { "url": "https://adis.cz-agents.dev/mcp" },
"dd": { "url": "https://dd.cz-agents.dev/mcp" },
"eu-registry": { "url": "https://eu-registry.cz-agents.dev/mcp" },
"payqr": { "url": "https://payqr.cz-agents.dev/mcp" },
"realestate": { "url": "https://realestate.cz-agents.dev/mcp" }
}
}Tools
@czagents/ares (10 tools)
lookup_by_ico({ ico })— full company recordsearch_companies({ query, city, street, psc, nace, pocet })— combined searchsearch_by_address({ street, city, psc })— all companies at an addresssearch_by_nace({ nace, city })— by CZ-NACE activity codeget_statutaries({ ico })— current statutory body (for due diligence)validate_dic({ dic })— DIČ format + MOD11 checksumcheck_vat_payer({ ico })— VAT registration + transparent accountsget_bank_accounts({ ico })— DPH-published accountsget_history({ ico })— previous names, address changeswatch_entity({ ico })— start free monitoring onboarding for one company
@czagents/cnb (3 tools)
get_rates({ date? })— full daily FX sheetconvert({ amount, from, to, date? })— CZK-crossed conversionget_rate({ code, date? })— single currency rate
@czagents/sanctions (6 tools)
search_person({ name, dob?, nationality?, threshold? })— fuzzy KYC screen against EU + OFACsearch_entity({ name, country?, threshold? })— entity / company screencheck_ico({ ico, name? })— direct lookup of a Czech IČO on sanctions listsget_listing({ id })— full record by${source}:${id}list_recent_updates({ since, source? })— daily monitoring (added/removed/modified)rescreen_portfolio({ subjects[], since, source? })(paid; available when x402 is enabled) — re-screen your own subject list against sanctions-list changes
@czagents/isir (3 tools)
check_ico_insolvency({ ico })— direct lookup of a Czech IČO in the insolvency registersearch_person_insolvency({ ico?, rc?, dob?, firstname?, surname? })— find a person by IČO, birth number, or name + DOBpoll_isir_events({ since })— append-only event feed for daily monitoring
@czagents/adis (3 tools)
check_dph_payer({ ico OR dic })— full reliability check via ADIS V2: status (ANO/NE/NENALEZEN), subject type, name, address, transparent bank accounts (§ 96a ZDPH), unreliable-since datecheck_bulk_dph_payer({ icos[] OR dics[] })— batch up to 100 subjects (lighter response, status + accounts only)list_unreliable_payers()— full list of currently unreliable payers (50–100 MB, intended for daily mirroring)
@czagents/dd (12 tools)
person_companies({ name, birth_year? })— Czech VR companies connected to a person (free, anonymous)get_owners({ ico })— direct + upstream Czech VR ownership tree (free, anonymous)get_dd_report({ ico, depth })— unified ARES + sanctions + ISIR report with risk scorewatch_entity({ ico })— start free monitoring onboarding for one companyget_risk_score({ ico })— fast 0–100 score + top red flagsget_statutory_chain({ ico, max_depth })— surname-based statutory-body walk for shell-company unwindingdetect_nominee_director({ ico })— 3-indicator "white horse" director detection (Compliance tier+)detect_phoenix({ ico })— phoenix-company pattern detection (Compliance tier+)get_risk_timeline({ ico })— chronological company lifecycle/risk timeline (Compliance tier+)detect_address_crowding({ ico })— shell-firm "address hotel" detection (Compliance tier+)get_eu_dd_report({ lei OR name, country? })— EU DD report: GLEIF entity data + EU/OFAC sanctions check (Compliance tier+)get_eu_parent({ ico })— find EU/international parent via ARES → GLEIF LEI matching (Compliance tier+)
@czagents/eu-registry (3 tools)
search_company({ name, country?, limit? })— search non-Czech registries by company name across 16 countriesget_company({ id, country })— company record by national ID (CRN / IČO / KRS / SIREN / LEI / VAT / …)lookup_company_by_vat({ vat })— free VIES VAT validity + name/address lookup
@czagents/payqr (6 tools)
qr_payment({ iban, bic?, amount?, ... })— payment QR (auto SPAYD for CZ/SK, EPC/GiroCode for other SEPA)qr_text({ text })— plain-text QRqr_wifi({ ssid, password?, security? })— Wi-Fi network QRqr_vcard({ name, phone?, email?, ... })— vCard 3.0 contact QRqr_read({ image_data })— decode + classify a QR code from a base64 imageqr_payment_batch({ payments[] })(paid; available when x402 is configured) — payment QRs for a whole invoice run in one call
@czagents/realestate (1 tool, free tier only)
get_district_aggregate({ okres, window_days? })— anonymised district-level distress real-estate stats (ISIR insolvencies + portál dražeb/CEVD forced sales); counts under 5 are banded to protect individual identification
What this is good for
A toolkit for compliance, KYC/AML, accounting and cross-border checks over Czech & EU registries:
VAT & invoicing — verify VAT-payer status (ADIS) and convert at official ČNB FX rates before booking.
Counterparty screening — ARES identity, EU + OFAC sanctions, ISIR insolvency.
Due diligence (flagship) — the
@czagents/ddaggregator combines the above into a risk score, statutory-chain / UBO walk, and EU-parent lookup.Cross-border — company lookups across 16 EU registries (
@czagents/eu-registry).
Use a single-source server when you need just one dataset; use the due-diligence aggregator for combined, scored output.
Example prompts the aggregator handles well:
KYC pre-invoice — "Before we send a 350 000 Kč invoice to IČO 11122234, flag any insolvency, sanctions, unreliable-VAT-payer status, or nominee-director red flags."
Vendor onboarding — "Run KYC on this prospective supplier and tell me if anything looks off. Use the full statutory chain."
M&A pre-due-diligence — "Generate a DD report on the acquisition target and walk the statutory body two levels deep — flag any insolvent firms in the network."
Agent Skill
skills/cz-company-due-diligence is an
Agent Skill that teaches Claude Code, Cursor, Copilot and other
agents when and how to use these servers for Czech/EU company due diligence
(KYC/AML, supplier and counterparty checks): which tool to call first, how to keep calls
low on the free tier, how to handle tier_required and limits, how to tell a sanctions
name match from a confirmed hit, and how to write a sourced, time-stamped report.
It works fully on the free tier.
Install from Agensi.
Install (Claude Code):
# 1. connect the free hosted servers
for s in dd ares isir sanctions adis eu-registry; do
claude mcp add --transport http --scope user "$s" "https://$s.cz-agents.dev/mcp"
done
# 2. install the skill
git clone https://github.com/martinhavel/cz-agents-mcp.git
cp -r cz-agents-mcp/skills/cz-company-due-diligence ~/.claude/skills/
# 3. check: invoke /cz-company-due-diligence in Claude Code, then ask "Prověř firmu s IČO 45274649"Other clients, local stdio setup and known npx caveats:
references/install.md.
Test prompts and results: evals/prompts.md.
Score & validation
A/A/A on Glama (quality / security / license), claimed and maintained.
Listed in the official MCP registry
under DNS-verified namespace dev.cz-agents/*.
Further reading
Building MCP servers for a country that isn't in the dataset — design rationale, gotchas (MOD11, ARES Swagger bugs), and how this pattern adapts MCP to non-English locales.
License
MIT © Martin Havel — see LICENSE
Available Tools
9 toolsdetect_address_crowdingARead-onlyInspect
Detects "shell-firm hotel" patterns — counts how many companies share the same registered address. Threshold-based risk: 1-9 normal (multi-tenant office), 10-49 mild (legitimate coworking), 50-199 medium (virtual office provider), 200+ high (shell-firm hotel). Compliance tier or higher.
Inputs: ico (required).
detect_nominee_directorARead-onlyInspect
Detect "white horse" / nominee director patterns — 3 surface indicators (age outlier, multi-board membership, recent appointment) computable from ARES data alone. Returns indicator breakdown with riskScore 0-100. Pro Compliance tier or higher. For 8-indicator deep analysis including ISIR cross-reference, sanctions, address crowding and phoenix pattern, see detect_nominee_director_rich in @czagents/ddplus.
Inputs: ico (required).
detect_phoenixARead-onlyInspect
Detect phoenix company pattern — 3 surface indicators (surname match with prior insolvent director, founding proximity < 12 months to insolvency, NACE sector presence) computable from ARES + ISIR data alone. Returns PhoenixReport with riskScore 0-100. Pro Compliance tier or higher. For 4 additional deep indicators (founder identity, asset transfer, multi-cycle, address continuity) see detect_phoenix_rich in @czagents/ddplus.
Inputs: ico (required).
get_dd_reportARead-onlyInspect
Generate a complete due-diligence report for a Czech IČO. Returns company facts (name, address, legal form, VAT status, bank accounts), statutory body with per-member sanctions check, and a transparent risk score with all triggered red flags.
Inputs: ico (required), depth.
get_eu_dd_reportARead-onlyInspect
EU Due-Diligence report for an international company. Input: 20-char LEI code, or company name + optional country. Returns GLEIF entity data (status, address, registration number) plus sanctions screening against EU/OFAC lists. Coverage notes per country included. Note: GLEIF covers mid/large firms with LEI — SMEs may not be found. Pro Compliance tier or higher.
Inputs: identifier (required), country.
get_eu_parentARead-onlyInspect
Find the EU/international parent company for a Czech IČO. Looks up the company name in ARES, then searches GLEIF (Global LEI Foundation) for a matching LEI-registered entity. Returns LEI, name, country, and confidence level (HIGH/MEDIUM/LOW). Note: GLEIF covers mid/large international firms; SMEs without an LEI will not be found. Pro Compliance tier or higher.
Inputs: ico (required).
get_risk_scoreARead-onlyInspect
Lightweight version of get_dd_report — returns just the numeric score (0-100), risk level, and top triggered red flags. Faster when you only need a yes/no/maybe screen.
Inputs: ico (required).
get_risk_timelineARead-onlyInspect
Build a chronologically sorted lifecycle timeline for a Czech company — basic events include company formation, statutory appointments, active insolvency, sanctions matches, VAT reliability flips. Returns events[] with riskScore 0-100. Pro Compliance tier or higher. For enriched timeline with ISIR lifecycle, address history, cross-entity events, and AI narrative summary, see get_risk_timeline_rich in @czagents/ddplus.
Inputs: ico (required).
get_statutory_chainARead-onlyInspect
Surname-based heuristic walk through statutory bodies of related Czech companies. Best for shell-company unwinding in small s.r.o. with RARE surnames. NOT a true UBO source — for actual beneficial ownership use the ESM (evidence skutečných majitelů, separate registry, future @czagents/esm). For boards of large public companies with common Czech surnames (Novák, Zima, Kolář…) results are noisy by design; the tool auto-skips persons whose surname matches >50 companies with a SURNAME_TOO_COMMON note.
Inputs: ico (required), max_depth.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool targets a distinct niche: full report, light score, statutory chain, nominee detection, phoenix detection, timeline, address crowding, EU report, and EU parent lookup. Even the overlapping get_dd_report and get_risk_score are clearly delineated as a comprehensive vs. lightweight version, preventing confusion.
All tool names follow a consistent verb_noun pattern in snake_case: get_dd_report, get_risk_score, get_statutory_chain, detect_nominee_director, detect_phoenix, get_risk_timeline, detect_address_crowding, get_eu_dd_report, get_eu_parent. Verbs are get/detect, nouns are descriptive, and no mixed conventions appear.
Nine tools form a well-scoped set for the domain of Czech due-diligence and risk analysis. Each tool addresses a distinct analytical need without redundancy, and the count is neither sparse nor overwhelming for an MCP server.
The tool surface covers the full due-diligence lifecycle: comprehensive report, quick risk screening, statutory chain analysis, nominee and phoenix pattern detection, timeline, address crowding, EU cross-border checks, and parent lookup. No critical gap is apparent for the stated purpose of Czech company risk assessment.
Maintenance
Related MCP Connectors
Czech ARES company registry: VAT, insolvency, RÚIAN addresses, IČO/DIČ checks. All free, no auth.
AI VAT Number Validation: hosted MCP server for EU VAT number checks via VIES.
MCP server for ABRA Flexi — accounting, contacts, stock and draft-checked invoice creation.
Czech business register (ARES) — look up any Czech company or sole trader by IČO or by name, and…
Related MCP Servers
- 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
- AlicenseAqualityDmaintenanceMCP server for EU company and business data. 9 tools: company search (GLEIF, 2M+ entities), LEI lookup, corporate structures (parent/subsidiaries), trade register search, EU VAT validation (VIES), GDP, unemployment, inflation, and business demography (Eurostat). All APIs free, no keys required.96MIT
- AlicenseAqualityDmaintenanceMCP server providing AI assistants access to Polish public registries (KRS, CEIDG) and statistical data (GUS BDL) for querying companies, sole proprietorships, and regional statistics.7MIT
- AlicenseAqualityDmaintenanceMCP server that provides AI agents with Polish business data tools: identifier validation (NIP, PESEL, REGON, KRS, IBAN), VAT whitelist checks, EU VIES lookups, and NBP exchange rates.57 npmMIT