search_by_nip
Look up taxpayer details by NIP on an explicit YYYY-MM-DD date.
niprequireddaterequired
io.github.SmartMobileHousePublished by GitHub account SmartMobileHousev0.1.1Updated Nov 7, 2026
Look up Polish VAT taxpayers by NIP, REGON or bank account and verify account associations.
Local MCP server that lets an assistant look up Polish VAT White List taxpayers by NIP, REGON or bank account and verify account associations.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
A Model Context Protocol server that gives AI assistants clean, typed access to the Polish VAT White List (Wykaz podatników VAT). Look up taxpayers by NIP, REGON, or bank account and verify whether an account is associated with an active taxpayer on a specified date.
The official VAT White List API
returns taxpayer details, VAT status, bank accounts, and confirmation identifiers.
vat-whitelist-mcp exposes its REST search and check methods as five simple tools.
Built and maintained by Smart Mobile House — secure AI implementation for enterprise.
Background and design notes: the vat-whitelist-mcp write-up.
Every tool requires an explicit YYYY-MM-DD date. NIP, REGON, and Polish bank
account checksums are validated locally. Bank accounts accept a 26-digit NRB or
its PL IBAN form, with common grouping separators.
Search responses contain count, results, date, and a source block naming
the register, environment, and UTC retrieved_at time. The API's requestId and
requestDateTime are retained, along with the original taxpayer fields.
Bulk id_type is nip, regon, or bank_account; check id_type is nip or
regon. Bulk results contain one entry per identifier, with either subjects
or an upstream error; count counts entries. requested contains normalized
inputs, and unmatched lists successful entries with no subjects. Failed entries
are never treated as missing taxpayers. Checks preserve accountAssigned as
TAK or NIE; API failures raise errors rather than returning NIE.
No install needed — run it straight from the repo with uv:
By default it uses the sandbox, with no API key or account required. Set
VAT_ENV=prod for live data. For example, ask your assistant to look up a NIP
using today's explicit date.
It is also published on PyPI, so uvx vat-whitelist-mcp works too.
Add to your MCP config (e.g. claude_desktop_config.json or .mcp.json):
During development, point it at a local checkout instead:
Set these in the shell or MCP configuration. .env.example is a reference;
.env files are not loaded automatically.
The API base URLs are https://wykazpodatnikowvat-test.mf.gov.pl/api/ for the
sandbox and https://wykazpodatnikowvat.mf.gov.pl/api/ for production.
The client is a small REST layer over httpx (see
src/vat_whitelist_mcp/client.py), with no authentication session or automatic
retries. Python 3.10 or newer is required.
GitHub Actions runs the offline tests, validates versions, builds the wheel and
source distribution, and checks metadata on pull requests and pushes to main.
Pushing a version tag such as v0.1.0 publishes the tested artifacts to PyPI
using Trusted Publishing, then publishes the matching MCP Registry metadata.
The workflow can also be dispatched manually from main.
Before the first release, add a pending Trusted Publisher in the maintainer's PyPI account with these values:
The GitHub pypi environment must exist. No PyPI API token is needed. See
PyPI's setup guide.
Keep versions in pyproject.toml, src/vat_whitelist_mcp/__init__.py, and
server.json aligned before tagging. A failed MCP Registry job can be retried
independently after PyPI succeeds.
VAT_ENV=prod for live taxpayer information.MIT © Smart Mobile House
Source: README.md at commit 5d4d5b9
Look up taxpayer details by NIP on an explicit YYYY-MM-DD date.
niprequireddaterequiredLook up taxpayer details by 9- or 14-digit REGON on YYYY-MM-DD.
daterequiredregonrequiredFind taxpayers for a Polish bank account on YYYY-MM-DD; accepts NRB or PL IBAN.
daterequiredbank_accountrequiredLook up 1–30 identifiers in one request on YYYY-MM-DD. id_type: nip, regon, or bank_account. Results retain each identifier's subjects or API error. Only successful empty entries appear in unmatched. count is the number of returned entries, not the number of taxpayers.
daterequiredid_typerequiredidentifiersrequiredCheck account association with an active taxpayer on YYYY-MM-DD. id_type: nip or regon. accountAssigned is the API's TAK/NIE answer; API failures raise errors and must never be interpreted as a negative match.
daterequiredid_typerequiredidentifierrequiredbank_accountrequired90% 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.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
uvx --from git+https://github.com/SmartMobileHouse/vat-whitelist-mcp vat-whitelist-mcp{ "mcpServers": { "vat-whitelist": { "command": "uvx", "args": ["--from", "git+https://github.com/SmartMobileHouse/vat-whitelist-mcp", "vat-whitelist-mcp"], "env": { "VAT_ENV": "prod" } } }}{ "mcpServers": { "vat-whitelist": { "command": "uvx", "args": ["--from", "/absolute/path/to/vat-whitelist-mcp", "vat-whitelist-mcp"], "env": { "VAT_ENV": "test" } } }}git clone https://github.com/SmartMobileHouse/vat-whitelist-mcpcd vat-whitelist-mcpuv sync --locked # create the venv and install dependenciesuv run pytest # offline validation, mocked HTTP, MCP discovery and stdio tests # (network tests are skipped by default)uv run vat-whitelist-mcp # run the server over stdiouv build # build source and wheel distributionsuvx twine check dist/* # validate package metadata
# Live tests against the official sandbox (opt-in; no production requests):VAT_RUN_NETWORK=1 uv run pytest -m network