Skip to main content
Glama

mcp-polska 🇵🇱

Polskie rejestry publiczne w Claude. Darmowy serwer MCP, dzięki któremu Claude (Desktop, Code, Cursor i inne klienty MCP) sam sprawdzi firmę po NIP, konto na Białej liście, odpis z KRS i kurs NBP do faktury.

Bez kluczy API, bez rejestracji — korzysta wyłącznie z otwartych API Ministerstwa Finansów, Ministerstwa Sprawiedliwości i NBP.

Co potrafi

Narzędzie

Co robi

Źródło

nip_waliduj

Sprawdza sumę kontrolną NIP (wyłapuje literówki)

offline

biala_lista_nip

Status VAT, nazwa, adres, REGON, KRS i rachunki firmy

wl-api.mf.gov.pl

biala_lista_konto

Czy konto z faktury należy do tego NIP (TAK/NIE + requestId jako dowód)

wl-api.mf.gov.pl

krs_odpis

Forma prawna, adres, kapitał, zarząd, reprezentacja, upadłość/likwidacja

api-krs.ms.gov.pl

nbp_kurs

Kurs średni NBP; z dla_faktury: true — z dnia roboczego przed datą (zasada dla VAT)

api.nbp.pl

Related MCP server: Polish Business Intelligence MCP

Przykładowe polecenia

Sprawdź firmę z NIP 5260250274 i czy konto 60 1010 1010 0038 2522 3000 0000 jest na białej liście.

Kto jest w zarządzie spółki z KRS 0000019193?

Faktura w EUR z datą sprzedaży 12.10.2026 — jaki kurs NBP przyjąć do VAT?

Instalacja

Wymaga Node.js 18 lub nowszego.

Claude Desktop

Otwórz Ustawienia → Developer → Edit Config i dodaj do claude_desktop_config.json:

{
  "mcpServers": {
    "polska": {
      "command": "npx",
      "args": ["-y", "github:auto-mate-pl/mcp-polska"]
    }
  }
}

Zrestartuj Claude Desktop. W oknie rozmowy pojawią się narzędzia „polska”.

Claude Code

claude mcp add polska -- npx -y github:auto-mate-pl/mcp-polska

Lokalnie (z klonu repozytorium)

git clone https://github.com/auto-mate-pl/mcp-polska.git
cd mcp-polska && npm install
# w konfiguracji klienta: "command": "node", "args": ["/ścieżka/do/mcp-polska/index.js"]

Ograniczenia

  • API Białej listy ma dzienne limity zapytań (najostrzejsze dla wyszukiwania) — do masowej weryfikacji tysięcy kontrahentów używaj pliku płaskiego MF.

  • CEIDG i GUS/REGON wymagają kluczy API, dlatego nie są (jeszcze) w tym serwerze.

  • To narzędzie do sprawdzania danych w rejestrach, nie porada prawna ani podatkowa.

Chcesz więcej?

Ten serwer to darmowa część Biblioteki Auto-mate — 44 skille do Claude po polsku, m.in. Weryfikacja kontrahenta, Faktura pod KSeF i Oferty na Allegro, 21 promptów i kurs „Claude w marketingu”.

👉 auto-mate.space/skille

Licencja

MIT © Auto-mate. Zgłoszenia i pomysły: zakładka Issues.

Available Tools

5 tools
biala_lista_kontoBiała lista VAT — czy konto należy do NIPA

Sprawdza, czy rachunek bankowy jest przypisany do danego NIP na Białej liście (ważne przy płatnościach powyżej 15 000 zł). Zwraca TAK/NIE i requestId jako dowód sprawdzenia.

NameRequiredDescriptionDefault
nipYesNIP kontrahenta
dataNoData stanu RRRR-MM-DD (domyślnie dziś)
kontoYesNumer rachunku (26 cyfr, może mieć PL i spacje)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden; it does disclose the return values (TAK/NIE and requestId as proof) and the legal/payment context. It omits other relevant behavior such as read-only nature, error handling, and whether the result depends on the optional date.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences front-load the core check and then add the legally relevant threshold and return values. There is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple lookup with no output schema and no annotations, the description supplies the purpose, payment context, and return shape. It is nearly complete, though it could mention edge cases such as invalid NIPs, accounts not found, and the role of the date parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains nip, konto, and the optional data parameter. The description does not add parameter-level meaning beyond implicitly referencing the NIP and bank account.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Sprawdza') and resource ('rachunek bankowy ... przypisany do danego NIP') and states the White List scope. It effectively distinguishes this account-to-NIP check from the sibling biala_lista_nip, which is about the NIP itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage context: verifying an account for payments above 15,000 PLN. However, it does not explicitly say when not to use it or name biala_lista_nip as the alternative for NIP-only checks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

biala_lista_nipBiała lista VAT — wyszukaj po NIPB

Zwraca dane podatnika z wykazu podatników VAT Ministerstwa Finansów (Biała lista): nazwa, status VAT, REGON, KRS, adres, rachunki bankowe, daty rejestracji i wykreślenia.

NameRequiredDescriptionDefault
nipYesNIP kontrahenta
dataNoData stanu RRRR-MM-DD (domyślnie dziś)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does well on output content by enumerating the fields returned (name, VAT status, REGON, KRS, address, bank accounts, registration/deregistration dates), which is exactly what substitutes for the missing output schema. However, it says nothing about failure behavior when a NIP is not in the register, whether the optional snapshot date changes the result shape, or any auth/rate-limit constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the source of the data and then lists the payload. Nothing is wasted, though the field enumeration could be trimmed or moved to an output schema if one existed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Two parameters, full schema coverage, and no output schema – the description compensates by enumerating the return fields. The only material gap for an agent deciding how to call it is the not-found / error behaviour, which is minor for a read-only register lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% – both 'nip' (NIP kontrahenta) and 'data' (Data stanu RRRR-MM-DD, domyślnie dziś) are documented in the schema, so the baseline applies. The description adds no format details (e.g. NIP with or without dashes) beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (returns taxpayer data) and a specific resource (Ministry of Finance VAT register / Biała lista), then enumerates the returned fields. An agent can distinguish it from a generic lookup, though it never names which sibling it is not (e.g. nip_waliduj for checksum validation or biala_lista_konto for account checks).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use statement, no prerequisites, and no routing to alternatives, even though the sibling set contains two closely related white-list tools. The agent must infer the use case from the title alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

krs_odpisKRS — odpis aktualnyA

Pobiera aktualny odpis z Krajowego Rejestru Sądowego: forma prawna, adres, kapitał, zarząd, sposób reprezentacji, upadłość/likwidacja.

NameRequiredDescriptionDefault
krsYesNumer KRS (do 10 cyfr)
pelnyNotrue = cały odpis JSON zamiast skrótu
rejestrNoP — przedsiębiorcy (domyślnie), S — stowarzyszenia i fundacje

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. "Pobiera" implies a read-only lookup and the field list usefully describes the response content, but it does not disclose error behavior for invalid/not-found KRS numbers, rate limits, caching, or any auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence states the action and resource immediately, then lists the returned fields. Every element earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter read tool with no output schema, the description enumerates the key returned fields and the schema fully documents inputs. It is nearly complete, though it could still mention error handling or response format more explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (krs, pelny, rejestr) are already documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb ("Pobiera") plus the exact resource ("aktualny odpis z Krajowego Rejestru Sądowego") and enumerates the returned content. The sibling tools cover unrelated domains (NIP validation, white list, NBP rates), so there is no realistic ambiguity about what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case—retrieving a current KRS extract—but gives no explicit when-to-use conditions, exclusions, or alternative routing. Sibling tools are in different domains, so ambiguity is low, but usage guidance remains only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nbp_kursKurs średni NBPA

Kurs średni waluty z tabeli A NBP. Z parametrem 'dla_faktury' zwraca kurs z ostatniego dnia roboczego PRZED podaną datą (zasada dla VAT i kosztów).

NameRequiredDescriptionDefault
dataNoRRRR-MM-DD; domyślnie najnowszy kurs
walutaYesKod waluty, np. EUR, USD, GBP
dla_fakturyNotrue = kurs z dnia roboczego poprzedzającego datę

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It helpfully discloses the non-obvious rule that 'dla_faktury' returns the rate from the last business day before the given date, but it does not mention read-only behavior, error cases, or what happens for invalid dates/currencies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both load-bearing: the first states the core lookup, the second explains the key parameter behavior. It is front-loaded and contains no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple lookup with 100% schema coverage and no output schema, the description covers the essential purpose and the key 'dla_faktury' behavior. Minor omissions around error handling and explicit return semantics are acceptable given the schema richness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters. The description adds some meaning for 'dla_faktury' by citing the VAT and cost rationale, but it does not add further semantics for 'data' or 'waluta' beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource as the average NBP exchange rate from table A, including a special date-handling rule. It is specific enough to distinguish the tool from unrelated NIP/KRS siblings, though it uses a noun phrase rather than an explicit action verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when the 'dla_faktury' parameter applies, citing the VAT and cost rule, which is useful usage context. However, it does not explicitly state when to use this tool versus alternatives, though the sibling tools are unrelated domains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nip_walidujWalidacja NIPA

Sprawdza sumę kontrolną polskiego numeru NIP (offline, bez zapytania do rejestru).

NameRequiredDescriptionDefault
nipYesNIP, może zawierać PL, spacje i myślniki

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose one meaningful trait — no network call and no registry query — which tells the agent the result is purely a format/checksum verdict and not proof the NIP exists. It does not say what happens on invalid input, whether the response is a boolean or a detailed result, or that the number's assignment to a company is not verified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the core action and ending with the most decision-relevant qualifier. Nothing is wasted and nothing important is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a trivial single-input validator the description is nearly sufficient, but with no output schema and no annotations it leaves the return value undefined — an agent cannot tell whether a failed check yields false, an error, or a structured reason. One clause about the result shape would close the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter has 100% schema description coverage ('NIP, może zawierać PL, spacje i myślniki'), so the schema already handles normalization syntax. The description adds nothing about the parameter, which is the expected baseline when schema coverage is this high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Sprawdza sumę kontrolną polskiego numeru NIP') and adds the scope qualifier 'offline, bez zapytania do rejestru', which implicitly separates it from the registry-backed sibling biala_lista_nip. It stops short of naming the sibling directly, so an agent must infer the routing, but the purpose itself is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'offline, bez zapytania do rejestru' parenthetical hints at when this tool is appropriate versus a registry lookup, but there is no explicit statement like 'use biala_lista_nip if you need to confirm the number is assigned to an active taxpayer'. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.1
    • First observedbiala_lista_konto
    • First observedbiala_lista_nip
    • First observedkrs_odpis
    • First observednbp_kurs
    • First observednip_waliduj

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a clearly distinct artifact or check: offline NIP checksum, VAT white-list taxpayer data, bank-account-to-NIP binding, KRS extract, and NBP exchange rate. The two biała_lista tools are cleanly separated by query object (NIP vs. bank account) and purpose. There is no meaningful overlap that would cause misselection.

Naming Consistency4/5

All names use lowercase snake_case and are domain-prefixed, which makes the set predictable and readable. The only minor deviation is that nip_waliduj uses a noun_verb order while the others are noun_noun phrases, so the pattern is not perfectly uniform.

Tool Count5/5

Five tools is well-scoped for a focused Polish business-verification utility. Each tool covers a distinct workflow and none feels redundant or arbitrarily added.

Completeness4/5

The surface covers core checks: NIP validation, VAT white-list lookup, bank-account verification, KRS extract, and NBP rates. Minor gaps remain, such as direct REGON validation or CEIDG lookup for sole proprietors, but common company-verification workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Look up Polish companies from any AI assistant: registry data (KRS, REGON, CEIDG), VAT white list checks before payments, and financial statements of 4.4M businesses. Read-only tools backed by official public registers.
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server that provides AI agents with Polish business data tools: identifier validation (NIP, PESEL, REGON, KRS, IBAN), VAT whitelist checks, EU VIES lookups, and NBP exchange rates.
    5
    7 npm
    MIT