{"slug": "five-registries-one-prompt-polish-accounting-firm-s-aml-kyc-checks-krs-ceidg-and", "title": "Five registries, one prompt: Polish accounting firm's AML/KYC checks - KRS, CEIDG, CRBR, and sanctions screening - in one prompt.", "summary": "A developer has released AML Poland MCP, an open-source Model Context Protocol server that connects AI assistants like Claude directly to Polish registries for AML/KYC checks. The tool queries the KRS company register, VAT White List, CRBR beneficial-owners registry, and sanctions/PEP lists, generating a risk card document. It aims to reduce manual compliance checks from 60-90 minutes to a single prompt, addressing the burden on accounting firms as obligated institutions under Polish AML law.", "body_md": "*How an AI assistant can check a client against Poland's company register, VAT list, beneficial-owner registry, and sanctions lists - and hand you a ready-to-file compliance document before your coffee gets cold.*\n\n5 |\nregistries and lists to check by hand for every new client |\n~60–90 min |\nwhat a thorough manual check of one company usually takes |\n1 |\nprompt to an AI assistant to get a finished risk card |\n\nUnder Polish AML law, an accounting firm is an \"obligated institution\" - the same legal category as banks and notaries, just a lot smaller - regardless of whether it serves a one-person business or a company with foreign shareholders.\n\nIn practice that means mandatory customer due diligence before you can even start working with a client: identify the entity, establish its beneficial owner, screen it against sanctions and PEP lists, and produce a documented risk assessment.\n\nDone by hand, that looks like: one tab for the court register (KRS), a second for the VAT payer list, a third for the beneficial-owners registry - which happens to sit behind a CAPTCHA — a fourth for some sanctions list, and a fifth: a blank document where all of it has to be stitched into something coherent. At ten new clients a month, that's realistically a full day of work that is neither bookkeeping nor advisory — it's just copying data between\n\nsystems.\n\nAnd if the regulator's audit turns up a missing or incomplete file, the Act allows administrative fines of up to **EUR 1,000,000**. In practice, small firms typically see something closer to **PLN 15,000–25,000** (roughly EUR 3,500–6,000) - plus something that stings more than the fine itself: the firm's name published in the public register of violations.\n\n[AML Poland MCP](https://github.com/Ustingit/Ustin.Integrations.AML.Poland.Mcp) connects an AI assistant — Claude, for instance — directly to the registries you already have to use. Instead of clicking through pages, you just ask.\n\nUnder the hood, it's an implementation of **MCP (Model Context Protocol)**, the open standard that lets a language model reach for real data instead of guessing. This particular server gives an assistant four concrete tools:\n\n| Tool | What it does |\n|---|---|\n`verify_company_basic` |\nRegistry status (court register or sole-trader register), legal form, address, board members, VAT payer status, and reported bank accounts. |\n`fetch_crbr_beneficiaries` |\nBeneficial owners from Poland's Central Register of Beneficial Owners — name, citizenship, and the nature of their control. |\n`screen_sanctions_and_pep` |\nScreens a person against EU/UN/OFAC sanctions lists and the Polish national list, plus PEP (politically exposed person) status. |\n`generate_aml_risk_card` |\nTies all of the above together, computes the risk level and required procedure (standard or enhanced diligence), and generates the finished document — Markdown or PDF. |\n\nIn a conversation, it looks roughly like this:\n\n```\n> Check client NIP 7740001454 for AML and generate a risk card.\n\nChecking the court register, the VAT list, the beneficial-owners\nregistry, and sanctions lists. Here's the summary:\n\n  Name              ORLEN SPÓŁKA AKCYJNA\n  Registry status   Active\n  VAT status        Active payer\n  Beneficial owners manual check required (CAPTCHA)\n\n  Risk level        Medium\n  Procedure         Standard\n  Document          risk_card.pdf\n```\n\nThat's not a made-up example - it's the exact result the server returns for a real NIP, checked live against the public registries while this tool was being tested.\n\nNo database of its own, no middleman that could go stale. Every query goes straight to the official source.\n\n```\nAccounting firm\n      │\n      ▼\nAI assistant  (Claude + MCP)\n      │\n      ▼\nKRS / CEIDG · VAT White List · CRBR (UBO) · Sanctions & PEP\n      │\n      ▼\nRisk card  (PDF / Markdown)\n```\n\nFour tools reach into five official sources — the Ministry of Justice (the KRS company register), the Ministry of Finance (the VAT White List and the CRBR beneficial-owners registry), Poland's Ministry of Interior (its national sanctions list), and the [OpenSanctions](https://www.opensanctions.org/) aggregator (EU/UN/OFAC sanctions plus global PEP data) - and a risk engine combines the results into one assessment, following the Act's own thresholds: any sanctions or PEP hit automatically raises the risk to high and triggers enhanced due diligence.\n\nPublic registries have real limitations - and we'd rather the tool say so plainly than quietly skip a step.\n\n`J*****`\n\n). Full identification still has to rest on the representative's ID document anyway\n— the tool flags this itself instead of falsely reporting \"all clear.\"Every check ends in a **Client AML Risk Assessment Card** - the exact document a firm has to keep on file anyway, just already written.\n\nThe document defaults to Polish, since that's the language a Polish firm's records are kept in, but every tool takes a language parameter - switch it to English with a single word if a client or auditor needs that. The server itself stores nothing: no client database, no query history beyond your own environment. The five-year retention duty stays exactly where it should: with the firm.\n\nThe source is fully open on GitHub — browse it, run it locally, or self-host it so client data never leaves your own infrastructure except for calls to the official registries.\n\n[→ View the repository on GitHub](https://github.com/Ustingit/Ustin.Integrations.AML.Poland.Mcp)\n\nMIT License · Python + FastMCP · data from KRS, CEIDG, the Finance Ministry's White List, CRBR, OpenSanctions, and the MSWiA list.\n\n*AML Poland MCP is an open tool for accounting firms. It does not replace the judgment of a designated AML/compliance officer.*", "url": "https://wpnews.pro/news/five-registries-one-prompt-polish-accounting-firm-s-aml-kyc-checks-krs-ceidg-and", "canonical_source": "https://dev.to/y_ustsinovich/five-registries-one-prompt-polish-accounting-firms-amlkyc-checks-krs-ceidg-crbr-and-20kk", "published_at": "2026-08-27 20:00:00+00:00", "updated_at": "2026-08-27 20:19:12.600885+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "ai-agents"], "entities": ["AML Poland MCP", "Claude", "KRS", "CEIDG", "CRBR", "Ministry of Justice", "Ministry of Finance", "MCP"], "alternates": {"html": "https://wpnews.pro/news/five-registries-one-prompt-polish-accounting-firm-s-aml-kyc-checks-krs-ceidg-and", "markdown": "https://wpnews.pro/news/five-registries-one-prompt-polish-accounting-firm-s-aml-kyc-checks-krs-ceidg-and.md", "text": "https://wpnews.pro/news/five-registries-one-prompt-polish-accounting-firm-s-aml-kyc-checks-krs-ceidg-and.txt", "jsonld": "https://wpnews.pro/news/five-registries-one-prompt-polish-accounting-firm-s-aml-kyc-checks-krs-ceidg-and.jsonld"}}