VAT White List (Poland)

io.github.SmartMobileHouse由 GitHub 帳號 SmartMobileHouse 發布v0.1.1更新於 Nov 7, 2026

Look up Polish VAT taxpayers by NIP, REGON or bank account and verify account associations.

已驗證STDIO僅桌面金融商業與電商

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理依 NIP、REGON 或銀行帳戶查詢波蘭 VAT 白名單納稅人,並核驗帳戶歸屬。

可以做什麼
  • 依 NIP 或 9 碼、14 碼 REGON 查詢指定日期的納稅人資料
  • 依波蘭銀行帳戶(NRB 或 PL IBAN)找出關聯納稅人
  • 一次批次查詢 1–30 個同類型識別碼,回傳逐筆結果與未符合項目
  • 依 NIP 或 REGON 核驗銀行帳戶是否歸屬有效納稅人,回傳 API 的 TAK/NIE 結果
  • 在本機驗證 NIP、REGON 與帳戶檢查碼,並回傳登記冊、環境與取得時間等中繼資料
適用情境
適合助理需要核實波蘭商業交易對象的情況,例如付款前確認承包商的 VAT 狀態或銀行帳戶是否屬於有效納稅人。適用於合規、開立發票與客戶審核等需要帶日期、來源為官方登記冊的查核。
執行需求
以 PyPI 套件形式透過 uvx 在本機以 stdio 執行,需要 Python 3.10 以上版本。不需帳號或 API 金鑰。可將 VAT_ENV 設為 test(預設沙箱)或 prod 以取得實際資料,並可選擇設定 VAT_TIMEOUT(秒)。需要能連線至財政部 API 的網路。
安裝前請注意
設定 VAT_ENV=prod 時會向官方登記冊查詢實際納稅人資料,查詢會把你的 IP 與識別碼傳送給該第三方。配額依 IP 計算(每日 100 次查詢、5,000 次核驗),用盡後可能被封鎖至午夜。沙箱資料為合成資料;API 失敗會拋出錯誤,不能視為查無符合。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 VAT White List (Poland),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

vat-whitelist-mcp

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.

Tools

ToolDescription
search_by_nip(nip, date)Look up a taxpayer by 10-digit NIP (tax id).
search_by_regon(regon, date)Look up a taxpayer by 9- or 14-digit REGON.
search_by_bank_account(bank_account, date)Find taxpayers associated with an account.
search_bulk(identifiers, id_type, date)Look up 1–30 identifiers of one type in a single API request.
check_bank_account(identifier, id_type, bank_account, date)Check an account's association with an active taxpayer by NIP or REGON.

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.

Quick start

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

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

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.

Use it in Claude Desktop / Claude Code

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

json
{  "mcpServers": {    "vat-whitelist": {      "command": "uvx",      "args": ["--from", "git+https://github.com/SmartMobileHouse/vat-whitelist-mcp", "vat-whitelist-mcp"],      "env": {        "VAT_ENV": "prod"      }    }  }}

During development, point it at a local checkout instead:

json
{  "mcpServers": {    "vat-whitelist": {      "command": "uvx",      "args": ["--from", "/absolute/path/to/vat-whitelist-mcp", "vat-whitelist-mcp"],      "env": { "VAT_ENV": "test" }    }  }}

Configuration

VariableDefaultDescription
VAT_ENVtesttest for the sandbox or prod for live data.
VAT_TIMEOUT30Positive finite HTTP timeout in seconds.

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.

Development

bash
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

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.

Releases

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:

FieldValue
PyPI project namevat-whitelist-mcp
GitHub ownerSmartMobileHouse
Repositoryvat-whitelist-mcp
Workflow filenamepublish.yml
Environmentpypi

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.

Notes & limitations

  • Sandbox data is synthetic. Use VAT_ENV=prod for live taxpayer information.
  • Dates must be no later than today in Poland and fall within the current year or the five preceding calendar years, no earlier than 1 September 2019. The API may impose additional historical-data restrictions.
  • The published limits are 100 search requests per day, up to 30 identifiers per request, and 5,000 check verifications per day. Quotas apply to the requesting IP; exhausting a quota can block access until midnight. See the official API documentation for current terms and limits.
  • WL2 status queries and flat-file verification are outside this tool set.
  • This project is independent and is not affiliated with or endorsed by the Ministry of Finance or the National Revenue Administration.

License

MIT © Smart Mobile House

來源:README.md,提交 5d4d5b9

工具

5

search_by_nip

Look up taxpayer details by NIP on an explicit YYYY-MM-DD date.

輸入參數nip必填date必填

search_by_regon

Look up taxpayer details by 9- or 14-digit REGON on YYYY-MM-DD.

輸入參數date必填regon必填

search_by_bank_account

Find taxpayers for a Polish bank account on YYYY-MM-DD; accepts NRB or PL IBAN.

輸入參數date必填bank_account必填

search_bulk

Look 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.

輸入參數date必填id_type必填identifiers必填

check_bank_account

Check 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.

輸入參數date必填id_type必填identifier必填bank_account必填

版本歷史

2
  1. v0.1.1最新Nov 4, 2026
  2. v0.1.0Oct 29, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分