@pipeworx/regon-pl
Connect: https://gateway.pipeworx.io/regon-pl/mcp · Install: one-click buttons
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
Polish business register (REGON / BIR1.1) — resolve any Polish company by NIP, REGON or KRS number to its registered name, legal address and entity type, from Statistics Poland’s official register.
Tools
regon_search_nip({ nip, environment, _apiKey })— by tax identification number.regon_search_regon({ regon, environment, _apiKey })— by 9- or 14-digit REGON statistical number.regon_search_krs({ krs, environment, _apiKey })— by National Court Register number.
All three return the registered name, the other two identifiers, entity type (legal person / sole trader / local unit), voivodeship, county, municipality, locality, postcode and registered address.
Auth
Platform key (PLATFORM_REGON_KEY) with BYO override via ?_apiKey=, plus a
credential-free test path.
environment: "production"(default) — the live register. Requires an API key. Register free at https://api.stat.gov.pl/Home/RegonApi; GUS issues a 20-character user key.environment: "test"— GUS’s own public test service with the test key GUS publishes in its documentation. Needs no credential and genuinely answers, but from a small fixed fixture database (addresses read “ul. Test-Wilcza”). Use it to check the response shape, never for a fact about a real company. Every response from it carries adisclaimerfield saying so.
Data sources
- https://wyszukiwarkaregon.stat.gov.pl/wsBIR/UslugaBIRzewnPubl.svc — production BIR1.1.
- https://wyszukiwarkaregontest.stat.gov.pl/wsBIR/UslugaBIRzewnPubl.svc — test BIR1.1.
Traps
- SOAP 1.2 over MTOM, not REST. Two calls per query:
Zalogujexchanges the user key for a session id, then the search carries it. - The session id goes in an HTTP
sidheader, not in the SOAP envelope. Put it in the envelope and the service authenticates you as nobody and returns an empty result with no error. - A no-match is not an empty document. It is a populated
<dane>record whose only fields areErrorCode4 andErrorMessageEn“No data found for the specified search criteria”. Parsed naively that is one result with every field null — a textbook silent zero. This pack detectsErrorCodeand reportsfound: falsewith the upstream message. - An unrecognised user key is reported as an empty
ZalogujResult, not as an HTTP error. The pack raises on it explicitly. - Responses are MIME-multipart with the payload as an XML-escaped string inside the SOAP result element — it needs unwrapping twice.
- Sessions are cached in worker memory for 30 minutes (upstream allows ~60).
Tools
- regon_search_nip — A Polish company looked up by NIP in the official REGON register.
- regon_search_regon — A Polish company looked up by REGON number in the official REGON register.
- regon_search_krs — A Polish company looked up by KRS court-register number in the official REGON register.
Tools
regon_search_krs— A Polish company looked up by KRS court-register number in the official REGON register.regon_search_nip— A Polish company looked up by NIP in the official REGON register.regon_search_regon— A Polish company looked up by REGON number in the official REGON register.