@m8t-jacob/mcp-polish-biz
Click on "Install 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-bizValidate 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: mcp-polish-data
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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/M8T-Jacob/mcp-polish-biz'
If you have feedback or need assistance with the MCP directory API, please join our Discord server