REGON (Polish business register)

io.github.SmartMobileHousePublished by GitHub account SmartMobileHousev0.2.3Updated Nov 7, 2026

Look up Polish businesses in the GUS REGON register (BIR1) by NIP, REGON, or KRS.

The publisher's own server: Register.gy

Overview

AI-generated overview

Looks up Polish businesses in the GUS REGON register by NIP, REGON or KRS and returns structured registry data to an assistant.

What you can do
  • Look up a single Polish entity by NIP, REGON or KRS and get name, REGON, address and entity type
  • Look up up to 20 entities of one identifier type in one bulk call, with unmatched ids reported
  • Fetch a detailed REGON report for one entity by REGON
  • List valid report types with guidance on which one fits the entity type
  • Every response carries a source block naming the register, environment and retrieval timestamp
When to use it
Useful when an assistant needs to verify or enrich Polish company data — checking a contractor's NIP, resolving a KRS number, or pulling official registry details for due diligence and invoicing workflows.
Requirements
Runs locally over stdio as a Python package, typically launched with uvx. Works with no setup against the anonymized GUS test database using a public test key. Live data needs a free GUS BIR USER_KEY set in REGON_API_KEY and REGON_ENV set to prod; REGON_TIMEOUT optionally sets the HTTP timeout. Network access to the GUS endpoint is required.
Before you install
The test environment returns little or no real entity data, so meaningful results require a production USER_KEY. The key is passed as the REGON_API_KEY environment variable and should be kept out of shared configs. Queries go to the GUS register service, and GUS terms of use and rate limits apply. Data belongs to GUS and should be cited with the retrieval date.

Installation

In SourceWeft

  1. Open REGON (Polish business register) in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

regon-mcp

A Model Context Protocol server that gives AI assistants clean, typed access to the Polish REGON business register (GUS BIR1). Look up any Polish company by NIP, REGON, or KRS and get back structured data — name, address, legal form, activity codes — without touching the underlying SOAP API.

The official GUS BIR1 API is a WCF SOAP service with WS-Addressing, MTOM multipart responses, an HTTP-header session token, and XML-nested-inside-XML result payloads. regon-mcp hides all of that behind a handful of simple tools.

Built and maintained by Smart Mobile House — secure AI implementation for enterprise.

Background and design notes: the regon-mcp write-up.

Tools

ToolDescription
search_by_nip(nip)Look up an entity by 10-digit NIP (tax id).
search_by_regon(regon)Look up an entity by 9- or 14-digit REGON.
search_by_krs(krs)Look up an entity by 10-digit KRS (court register).
search_bulk(identifiers, id_type)Look up up to 20 entities of one type at once.
get_full_report(regon, report_type)Fetch a detailed report for one entity.
list_report_types()List valid report names, with guidance on which to use.

Every response includes a source block that names the register (REGON / GUS), the environment, and a UTC retrieved_at timestamp — so downstream use can cite the data correctly, as GUS requires.

Quick start

No install needed — run it straight from the repo with uv:

bash
uvx --from git+https://github.com/SmartMobileHouse/regon-mcp regon-mcp

By default it uses the public test key against the anonymized GUS test database, so it runs with zero setup. For live data, request a free USER_KEY from [email protected] and set the environment variables below.

Use it in Claude Desktop / Claude Code

Add to your MCP config (e.g. claude_desktop_config.json or a project .mcp.json):

json
{  "mcpServers": {    "regon": {      "command": "uvx",      "args": ["--from", "git+https://github.com/SmartMobileHouse/regon-mcp", "regon-mcp"],      "env": {        "REGON_API_KEY": "your-user-key",        "REGON_ENV": "prod"      }    }  }}

During development, point it at a local checkout instead:

json
{  "mcpServers": {    "regon": {      "command": "uvx",      "args": ["--from", "/absolute/path/to/regon-mcp", "regon-mcp"],      "env": { "REGON_API_KEY": "abcde12345abcde12345" }    }  }}

Configuration

VariableDefaultDescription
REGON_API_KEYpublic test keyYour GUS BIR USER_KEY.
REGON_ENVtesttest (anonymized data) or prod (live data).
REGON_TIMEOUT30HTTP timeout in seconds.

Use REGON_ENV=prod only with a real USER_KEY; the test key works only against the test environment.

Development

bash
git clone https://github.com/SmartMobileHouse/regon-mcpcd regon-mcpuv sync                 # create the venv and install depsuv run pytest           # offline tests: validation, parsing, mocked client,                        # and an in-memory MCP tool-discovery smoke test.                        # (network tests are deselected by default)uv run regon-mcp        # run the server over stdio
# Live tests against the GUS endpoint (deselected unless opted in):REGON_RUN_NETWORK=1 uv run pytest -m network            # session lifecycle (test env)REGON_PROD_KEY=<your-key> uv run pytest -m network      # positive-control on live data

The client is a small hand-rolled SOAP layer over httpx (see src/regon_mcp/client.py) — no heavyweight SOAP stack, no runtime WSDL fetch.

Notes & limitations

  • The GUS test database is anonymized and returns little or no entity data. Meaningful results require a production USER_KEY with REGON_ENV=prod.
  • Respect the GUS terms of use and rate limits. This project is an independent open-source client and is not affiliated with or endorsed by GUS.
  • Data belongs to GUS. When you present it, cite REGON / GUS with the retrieval date (surfaced in every response's source block).

License

MIT © Smart Mobile House

Source: README.md at commit c9ed771

Tools

6

search_by_nip

Look up a Polish business entity by NIP (10-digit tax id). Returns basic registry data (name, REGON, address, entity type). Use the returned REGON with get_full_report() for the detailed record.

Parametersniprequired

search_by_regon

Look up a Polish business entity by REGON (9- or 14-digit statistical id).

Parametersregonrequired

search_by_krs

Look up a Polish business entity by KRS (10-digit court-register number).

Parameterskrsrequired

search_bulk

Look up up to 20 entities of the same identifier type in one call. id_type must be one of: "nip", "krs", "regon9", "regon14". The response adds `requested` (normalized inputs) and `unmatched` (requested ids with no returned row) so partial results are explicit. For KRS the service does not echo the KRS in search rows, so `unmatched` is null there.

Parametersid_typerequiredidentifiersrequired

get_full_report

Fetch a detailed REGON report for one entity by REGON. Choose report_type from list_report_types(), based on the entity's `type` and `silo_id` returned by a search.

Parametersregonrequiredreport_typerequired

list_report_types

List valid report_type values for get_full_report(), with guidance. These are the BIR1.1 report names. Picking the right report: - type "P" (legal person) -> BIR11OsPrawna - type "F" (natural person) -> by silo_id: 1 -> BIR11OsFizycznaDzialalnoscCeidg 2 -> BIR11OsFizycznaDzialalnoscRolnicza 3 -> BIR11OsFizycznaDzialalnoscPozostala 4 -> BIR11OsFizycznaDzialalnoscSkreslonaDo20141108 - local units (LP / LF) -> BIR11JednLokalnaOsPrawnej / ...OsFizycznej

Takes no parameters.

Version history

2
  1. v0.2.3LatestNov 4, 2026
  2. v0.2.2Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Register integrations