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 核验银行账户是否归属活跃纳税人,返回接口的 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 次核验),用尽后可能被封锁至午夜。沙箱数据为合成数据;接口失败会抛出错误,不能视为无匹配。

安装

在 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 分