@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 a disclaimer field saying so.

Data sources

Traps

  • SOAP 1.2 over MTOM, not REST. Two calls per query: Zaloguj exchanges the user key for a session id, then the search carries it.
  • The session id goes in an HTTP sid header, 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 are ErrorCode 4 and ErrorMessageEn “No data found for the specified search criteria”. Parsed naively that is one result with every field null — a textbook silent zero. This pack detects ErrorCode and reports found: false with 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.

Regenerated from source · build September 18, 2026