@m8t-jacob/mcp-polish-biz
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@m8t-jacob/mcp-polish-biz Validate NIP 5260001246"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@m8t-jacob/mcp-polish-biz
An MCP (Model Context Protocol) server that gives AI agents — Claude Desktop, Claude Code, Cursor, or any other MCP client — direct access to Polish business data: identifier validation, the VAT whitelist, EU VIES lookups, and NBP exchange rates.
It's a thin wiring layer: every tool delegates to a small, independently
published, fully-tested package —
@m8t-jacob/validate,
@m8t-jacob/polish-registry,
and @m8t-jacob/pln-utils
— so this repo contains no domain logic of its own, just MCP tool
definitions, zod input schemas, and error mapping.
Built on the official
@modelcontextprotocol/sdkMcpServerAPIRuns over stdio — the transport used when an MCP client launches a server as a local subprocess (typically via
npx)Every tool validates its input with
zodand never throws: failures come back as a normal tool result withisError: true, so one bad call can't crash the serverStrict TypeScript, ships dual ESM + CJS builds with
.d.ts100% test coverage on tool handlers — dependencies are mocked, so the test suite makes zero real network calls
Install for Claude Desktop / Claude Code
Add this to your MCP client's configuration (for Claude Desktop,
claude_desktop_config.json; for Claude Code, .mcp.json or via
claude mcp add):
{
"mcpServers": {
"polish-biz": {
"command": "npx",
"args": ["-y", "@m8t-jacob/mcp-polish-biz"]
}
}
}No API key or configuration is required — every underlying API (the VAT whitelist, VIES, and NBP) is free and public.
You can also run it directly to smoke-test it:
npx -y @m8t-jacob/mcp-polish-bizIt will sit waiting for JSON-RPC requests on stdin — that's expected; it's meant to be driven by an MCP client, not used interactively.
Related MCP server: Polish Business Intelligence MCP
Tools
Tool | Description | Backed by |
| Validate a NIP, PESEL, REGON, KRS, or IBAN/NRB and return its normalized form. Offline, no network. |
|
| Look up a NIP on the Polish VAT whitelist ("Biała lista podatników VAT"): status, name, accounts. |
|
| Validate an EU VAT number via VIES, returning company name/address when available. |
|
| Get the official NBP mid exchange rate for a currency against PLN, for today or a given date. |
|
| Convert an amount between two currencies using NBP mid rates. |
|
validate_polish_id
{ "type": "nip", "value": "PL 526-000-12-46" }{ "valid": true, "type": "nip", "normalized": "5260001246" }type is one of nip, pesel, regon, krs, iban.
check_vat_whitelist
{ "nip": "5252445767", "date": "2026-07-13" }Returns the WhitelistResult shape from @m8t-jacob/polish-registry
(name, statusVat, regon, krs, accountNumbers, found, ...).
date is optional (YYYY-MM-DD, defaults to today).
check_vies
{ "countryCode": "PL", "vatNumber": "5252445767" }Returns the ViesResult shape (valid, name?, address?,
countryCode, vatNumber, requestDate).
get_exchange_rate
{ "code": "USD", "date": "2025-01-15" }Returns { code, rate, date, table }. date is optional.
convert_currency
{ "amount": 100, "from": "USD", "to": "EUR" }Returns { amount, from, to, result, date? }. date is optional and, when
given, is used for both legs of the conversion.
Programmatic use
The server can also be embedded directly, without going through stdio — useful for tests or for hosting it behind a different transport:
import { createServer, TOOLS } from '@m8t-jacob/mcp-polish-biz';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
const server = createServer();
await server.connect(new StdioServerTransport());TOOLS (also exported) is the array of { name, description, inputSchema, handler } this server registers — each handler can be called directly
in tests without any transport, see examples/basic.ts.
🇵🇱 Po polsku
@m8t-jacob/mcp-polish-biz to serwer MCP (Model Context Protocol)
dający agentom AI (Claude Desktop, Claude Code, Cursor) dostęp do polskich
danych biznesowych: walidacji NIP/PESEL/REGON/KRS/IBAN, Białej listy
podatników VAT, unijnego systemu VIES oraz kursów walut NBP. Cała logika
domenowa pochodzi z trzech niezależnie opublikowanych pakietów
(@m8t-jacob/validate, @m8t-jacob/polish-registry,
@m8t-jacob/pln-utils) — ten serwer jest wyłącznie cienką warstwą narzędzi
MCP nad nimi. Każde narzędzie waliduje dane wejściowe przez zod i nigdy
nie rzuca wyjątku — błąd wraca jako zwykły wynik z isError: true, więc
jedno nieudane wywołanie nie może zatrzymać całego serwera. Instalacja nie
wymaga żadnego klucza API — wszystkie API źródłowe (Biała lista, VIES, NBP)
są darmowe i publiczne.
Contributing
Contributions are welcome! See CONTRIBUTING.md for the
development workflow and GOOD_FIRST_ISSUES.md for
ideas if you're looking for a place to start. This project follows the
Contributor Covenant.
License
MIT © 2026 Jakub Jagiełło
Available Tools
5 toolscheck_vat_whitelistA
Look up a Polish contractor by NIP on the Ministry of Finance VAT whitelist ("Biała lista podatników VAT") to get their VAT registration status, legal name, REGON/KRS, and registered bank account numbers. Use this to verify a business partner before paying an invoice.
Inputs: nip (required), date.
check_viesA
Validate an EU VAT number via VIES (VAT Information Exchange System), the European Commission service that confirms whether a VAT number is currently registered, returning the company name/address when the member state provides them.
Inputs: vatNumber (required), countryCode (required).
convert_currencyA
Convert an amount between two currencies using official NBP mid exchange rates (via PLN as the intermediary), either for today or a specific date.
Inputs: to (required), from (required), amount (required), date.
get_exchange_rateA
Get the official NBP (Narodowy Bank Polski) mid exchange rate for a currency against PLN, either for today or a specific date.
Inputs: code (required), date.
validate_polish_idA
Validate a Polish identifier (NIP tax id, PESEL national id, REGON business registry id, KRS National Court Register number, or IBAN/NRB bank account) and return whether it is valid plus its normalized form. Purely local checksum validation — makes no network calls.
Inputs: type (required), value (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: local ID checksum validation, Polish VAT whitelist lookup, EU VIES validation, exchange rate retrieval, and currency conversion. The two exchange-related tools are distinct because one returns a rate and the other performs a conversion.
All five tools follow a consistent lowercase snake_case verb_noun pattern (validate_, check_, get_, convert_), making the naming predictable and easy to understand.
With 5 tools, the server is well-scoped for a niche Polish business utility. The count is neither thin nor excessive, and each tool serves a meaningful purpose.
The tool set covers core business needs: identifier validation, Polish and EU VAT verification, and currency exchange via official NBP rates. It provides complete workflows for vetting contractors and handling cross-currency transactions.
Maintenance
Related MCP Connectors
Verify Polish companies by NIP/KRS/REGON + EU VAT (VIES). 14 MCP tools (9 no-key).
AI VAT Number Validation: hosted MCP server for EU VAT number checks via VIES.
Polish company registry: 4.4M firms, KRS/REGON data, VAT white list checks, financial statements
Polish companies and people: KRS, CEIDG, financials, boards, VAT, sanctions. Free, no API key.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server providing AI assistants access to Polish public registries (KRS, CEIDG) and statistical data (GUS BDL) for querying companies, sole proprietorships, and regional statistics.7MIT
- AlicenseAqualityDmaintenanceProvides AI agents with real-time access to Polish official data: VAT whitelist for company verification and NBP exchange rates, enabling checks on VAT status, company details, and currency conversion without API keys.5MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for verifying Polish business entities from the National Court Register (KRS) and VAT White List. Allows querying by KRS, NIP, or REGON to retrieve official company data including name, address, board, and capital.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to verify Polish companies and EU VAT numbers against official government registries using 9 tools, with no API key and optional plain REST access.MIT