Skip to main content
Glama
AMR-DEV-PS

nipregon-mcp

by AMR-DEV-PS

NIPRegon MCP Server

NIPRegon MCP Server

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 Polish businesses.

Backed by NIPRegon.pl: data sourced exclusively from official public registers (KRS, REGON, CEIDG, the Ministry of Finance VAT white list and financial statements filed with the National Court Register).

License: MIT Website MCP Registry

Install MCP Server Install in VS Code

One endpoint, zero install:

https://api.nipregon.pl/mcp

Generic config that works in most MCP clients:

{
  "mcpServers": {
    "nipregon": {
      "type": "http",
      "url": "https://api.nipregon.pl/mcp"
    }
  }
}
claude mcp add --transport http nipregon https://api.nipregon.pl/mcp

Use the install button above, or add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "nipregon": { "url": "https://api.nipregon.pl/mcp" }
  }
}

Use the install button above, or add to mcp.json:

{
  "servers": {
    "nipregon": { "type": "http", "url": "https://api.nipregon.pl/mcp" }
  }
}

Settings → Connectors → Add custom connector → paste https://api.nipregon.pl/mcp.

Or, for any client without native streamable HTTP support:

{
  "mcpServers": {
    "nipregon": {
      "command": "npx",
      "args": ["mcp-remote", "https://api.nipregon.pl/mcp"]
    }
  }
}

Transport: streamable HTTP (JSON-RPC 2.0). Free tier: 100 tool calls/day/IP.

Related MCP server: Rejestr.io MCP Server

Try asking your assistant

  • "Check the company with NIP 7791906082 before I sign this contract."

  • "Find the company Eurocash and show its revenue for the last 5 years."

  • "Is the bank account on this invoice really on the VAT white list of the supplier?"

Tools

  • search_company — fuzzy search of Polish companies by name. Returns NIP, KRS, city, status and a profile URL. Inputs: query (string, min 3 chars), limit (1-10, default 5). Read-only.

  • get_company — full registry data of a Polish company by NIP: address, legal form, status, KRS, REGON, PKD activity codes, board members, VAT status. Inputs: nip (string, 10 digits). Read-only.

  • get_financials — yearly financial statements filed with the National Court Register: revenue, net profit, total assets, equity, liabilities. Inputs: nip. Read-only.

  • check_vat_whitelist — the company's VAT status in the Ministry of Finance taxpayer register (white list) and, optionally, whether a bank account number is on the company's white list. In Poland, paying more than PLN 15k to an account outside the white list has tax consequences. Inputs: nip, optional account (26 digits). Read-only.

Example response (shortened):

{
  "nip": "7822463563",
  "statements": [
    { "year": 2024, "revenue": 24436276969.00, "net_profit": 184561157.00 },
    { "year": 2023, "revenue": 21382959713.00, "net_profit": 176885896.00 }
  ],
  "source": "Sprawozdania finansowe KRS (RDF)"
}

Local stdio bridge (single file, zero dependencies)

For clients that only support stdio. Requires Node 18+. Download nipregon-mcp.mjs:

{
  "mcpServers": {
    "nipregon": {
      "command": "node",
      "args": ["/path/to/nipregon-mcp.mjs"],
      "env": { "NIPREGON_API_KEY": "(optional, for higher limits)" }
    }
  }
}

REST API

The same data over plain REST — see the API docs (Polish). Self-service API keys with Free/Start/Pro/Scale plans, an interactive playground and Stripe billing.

Troubleshooting

  • Client doesn't support remote MCP servers — use the mcp-remote bridge (see Claude Desktop above) or the local stdio file.

  • HTTP 429 / limit message — the free daily limit (100 tool calls/IP) was reached; try tomorrow or get an API key at nipregon.pl/api.

  • Company not found — get_company and get_financials cover companies registered in the National Court Register (KRS); financial data covers companies that filed statements electronically.

Data and privacy

The server is read-only and returns only data from official public registers. Sole-trader (JDG) records constitute personal data under GDPR: it is prohibited to use this server for creditworthiness scoring, automated assessment of natural persons or direct marketing towards sole traders. Queries are not logged beyond anonymous daily rate-limit counters. Details: terms of service (Polish).


NIPRegon MCP Server

🇵🇱 NIPRegon MCP Server (dokumentacja po polsku)

Sprawdzaj polskie firmy z poziomu dowolnego asystenta AI: dane rejestrowe (KRS, REGON, CEIDG), biała lista VAT przed przelewem i sprawozdania finansowe 4,4 mln polskich podmiotów.

Zasilane przez NIPRegon.pl: dane wyłącznie z oficjalnych rejestrów publicznych (KRS, REGON, CEIDG, wykaz podatników VAT Ministerstwa Finansów oraz sprawozdania finansowe złożone do KRS).

Serwer zdalny (zalecany)

Jeden endpoint, zero instalacji:

https://api.nipregon.pl/mcp

Uniwersalna konfiguracja dla większości klientów MCP:

{
  "mcpServers": {
    "nipregon": {
      "type": "http",
      "url": "https://api.nipregon.pl/mcp"
    }
  }
}

Claude Code:

claude mcp add --transport http nipregon https://api.nipregon.pl/mcp

Claude Desktop / claude.ai: Ustawienia → Konektory → Dodaj własny konektor → wklej https://api.nipregon.pl/mcp.

Transport: streamable HTTP (JSON-RPC 2.0). Darmowy limit: 100 wywołań narzędzi dziennie na adres IP. Wyższe limity: nipregon.pl/api.

Zapytaj swojego asystenta

  • „Sprawdź firmę o NIP 7791906082, zanim podpiszę umowę."

  • „Znajdź spółkę Eurocash i pokaż jej przychody z ostatnich 5 lat."

  • „Czy rachunek z tej faktury jest na białej liście dostawcy?"

Narzędzia

  • search_company — wyszukiwanie spółek po nazwie (fuzzy). Zwraca NIP, KRS, miasto, status i link do profilu.

  • get_company — pełne dane rejestrowe spółki po NIP: adres, forma prawna, status, KRS, REGON, kody PKD, zarząd, status VAT.

  • get_financials — roczne sprawozdania finansowe z KRS: przychody, zysk netto, aktywa, kapitał własny, zobowiązania.

  • check_vat_whitelist — status VAT w wykazie podatników (biała lista KAS) i opcjonalnie weryfikacja, czy numer rachunku figuruje na białej liście podmiotu (istotne przed przelewem powyżej 15 tys. zł).

Dane i prywatność

Serwer jest tylko do odczytu i zwraca wyłącznie dane z oficjalnych rejestrów publicznych. Dane JDG stanowią dane osobowe (RODO): zakaz wykorzystania do scoringu kredytowego, automatycznej oceny osób fizycznych i marketingu bezpośredniego wobec JDG. Zapytania nie są logowane poza anonimowymi licznikami limitów dziennych. Szczegóły: regulamin.

License

MIT (this client and manifest). The NIPRegon.pl service itself is a separate, proprietary product of WEBY SOLUTION SP. Z O.O.

Available Tools

4 tools
check_vat_whitelistCheck company on the VAT white listA
Read-onlyIdempotent
Inspect

Check a Polish company's VAT status in the Ministry of Finance taxpayer register (the 'white list', biała lista KAS) and, optionally, whether a given bank account number is registered to that company. USE THIS before paying an invoice: in Poland, paying over PLN 15,000 to an account outside the white list has tax consequences. Returns VAT status and account-match result. Live query to the official KAS register. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
nipYesPolish tax ID (NIP), 10 digits
accountNoPolish bank account number (26 digits), optional

TDQS

A4.4/5.0
Behavior4/5

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

Annotations (readOnlyHint, idempotentHint, destructiveHint) are consistent with description declaring 'Read-only' and 'Live query to the official KAS register'. Adds context beyond annotations about the live nature and official source.

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?

Description is concise with no redundant information. Front-loads the main action, then provides usage guidance and return summary. Every sentence adds value.

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 two-parameter tool with no output schema, description mentions it returns 'VAT status and account-match result', which is sufficient. Covers purpose, usage, and behavior. Slightly vague on exact return format but adequate.

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

Parameters4/5

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

Schema covers both parameters with descriptions (NIP and account). Description adds that account is optional and clarifies its purpose: checking if a given account number is registered to the company. This adds value beyond the schema.

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 clearly states it checks a Polish company's VAT status and optionally bank account registration, specifying the official register (Ministry of Finance white list). It distinguishes from sibling tools like check_risk_flags or get_company by focusing on VAT whitelist verification.

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?

Explicitly advises using this tool before paying an invoice, explaining the tax consequences of paying over PLN 15,000 to an unregistered account. Does not explicitly exclude other scenarios, but provides clear context.

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

get_companyGet full company profile by NIPA
Read-onlyIdempotent
Inspect

Get the full registry profile of a Polish company by its NIP (10-digit tax ID). USE THIS when the user gives a NIP and wants company details, address, board members, or registry status. Returns address, legal form, status, KRS, REGON, PKD activity codes, board members (names from the public KRS register) and VAT status. Data from KRS, REGON and CEIDG public registers. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
nipYesPolish tax ID (NIP), 10 digits

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds that it is 'Read-only' and specifies data sources (KRS, REGON, CEIDG public registers), which provides useful behavioral context beyond annotations. No contradiction.

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?

The description is four sentences with front-loaded purpose, concise usage guidance, return details, and data source info. Every sentence adds value with no wasted words.

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 tool with one parameter and no output schema, the description lists key return fields (address, legal form, status, KRS, REGON, PKD, board members, VAT status). Annotations cover safety and idempotence. The description is complete enough for an AI agent to understand what the tool does and what data it returns.

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% with a clear description and pattern for the single parameter 'nip'. The description adds that it is a '10-digit tax ID', but the schema already specifies 'Polish tax ID (NIP), 10 digits' and a pattern. Thus, the description adds minimal new meaning beyond the schema.

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 clearly states it gets the full registry profile of a Polish company by NIP. It lists specific return fields (address, legal form, status, KRS, REGON, PKD, board members, VAT status) and distinguishes it from sibling tools like search_company that likely search by name.

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?

The description explicitly says 'USE THIS when the user gives a NIP and wants company details...', providing a clear when-to-use directive. It doesn't explicitly state when not to use but implies it's not for other queries like checking risk flags or VAT whitelist, which are separate sibling tools.

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

get_financialsGet company financial statementsA
Read-onlyIdempotent
Inspect

Get yearly financial statements of a Polish company by NIP, as filed with the National Court Register (KRS). USE THIS when the user asks about a company's revenue, profit, assets or financial results. Returns per-year revenue, net profit, total assets, equity and liabilities. Data from financial statements (RDF/KRS). Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
nipYesPolish tax ID (NIP), 10 digits

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds that the data is from financial statements (RDF/KRS) and specifies the returned fields (revenue, net profit, etc.), providing value beyond annotations.

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?

The description is two sentences with no wasted words. It front-loads the core purpose and then provides usage guidance and return summary.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, clear usage, and return fields described), the description is complete. No output schema exists but the description lists the returned fields.

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 describes the nip parameter fully. The description only mentions 'by NIP' without adding format or syntax details, so a baseline score of 3 is 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?

The description explicitly states it gets yearly financial statements of a Polish company by NIP from the KRS. It uses specific verbs and resources, and distinguishes from sibling tools by focusing on financial data.

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?

The description provides clear guidance on when to use this tool: 'USE THIS when the user asks about a company's revenue, profit, assets or financial results.' It does not explicitly list exclusions or alternatives, but the context is sufficient.

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

search_companySearch Polish companies by nameA
Read-onlyIdempotent
Inspect

Search Polish companies by name (fuzzy match). USE THIS when the user asks to find a Polish company, look up a firm by name, or get its NIP/KRS/REGON. Returns NIP, KRS, city, status and a profile URL. Data from the Polish court (KRS) and statistical (REGON) registers. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1-10, default 5)
queryYesCompany name or part of it

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already flag readOnlyHint, openWorldHint, idempotentHint as true. The description adds valuable behavioral context: 'fuzzy match', returned fields, and data sources. No contradiction with annotations.

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?

Four sentences, front-loaded with action and usage. Every sentence adds value—none is wasted. Efficient and clear.

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

Completeness5/5

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

Given rich annotations and complete schema, the description covers what the tool does, when to use, returned fields, data sources, and safety. No output schema needed because return fields are listed.

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% with clear descriptions for both 'query' and 'limit'. The description adds return field context but does not enhance parameter semantics further. Baseline 3 is 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?

The description clearly identifies the verb 'search', the resource 'Polish companies', and specifies 'fuzzy match'. It explicitly states when to use this tool versus siblings like 'get_company' by listing use cases.

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

Usage Guidelines5/5

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

The phrase 'USE THIS when the user asks to find a Polish company, look up a firm by name, or get its NIP/KRS/REGON' provides explicit usage guidance. While it does not list when not to use, the positive scenarios effectively distinguish from sibling tools.

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. 4 tool updatesv1.0.1
    • First observedcheck_vat_whitelist
    • First observedget_company
    • First observedget_financials
    • First observedsearch_company

TDQS

A4.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: checking VAT whitelist, getting company profile, retrieving financial statements, and searching by name. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (check_vat_whitelist, get_company, get_financials, search_company) with underscores and clear verbs.

Tool Count5/5

Four tools are perfectly scoped for a domain of Polish company data retrieval. Each tool serves a specific function without being too few or too many.

Completeness5/5

The set covers the main use cases: finding a company, getting its details, financials, and VAT compliance. No obvious gaps for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers