nipregon-mcp

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).
Remote server (recommended)
One endpoint, zero install:
https://api.nipregon.pl/mcpGeneric 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/mcpUse 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, optionalaccount(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-remotebridge (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_companyandget_financialscover 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 (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/mcpUniwersalna 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/mcpClaude 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 toolscheck_vat_whitelistCheck company on the VAT white listARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nip | Yes | Polish tax ID (NIP), 10 digits | |
| account | No | Polish bank account number (26 digits), optional |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint, and openWorldHint. The description adds that it is a 'live query to the official KAS register' and describes the return values (VAT status and account-match result), providing context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no redundancy. Front-loaded with purpose, followed by usage guidance, then return info and nature. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description covers purpose, usage context, return values, and live query nature. Annotations handle safety profile. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds functional meaning: it explains that the NIP is a Polish tax ID, that the account number is optional and for checking registration, and implies the optionality of the account parameter. This goes beyond the schema's basic type and pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: checking a Polish company's VAT status in the official white list register and optionally verifying a bank account. It distinguishes from siblings by focusing on VAT compliance, which is not covered by get_company, get_financials, or search_company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'USE THIS before paying an invoice' and explains the tax consequence of paying over PLN 15,000 to an account not on the white list. This provides strong use-case guidance, though it does not explicitly mention when not to use it relative to siblings.
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 NIPARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nip | Yes | Polish tax ID (NIP), 10 digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, destructiveHint false. Description adds that data comes from public registers and is read-only, reinforcing safety. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and usage, second lists return data and sources. No fluff, well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given single parameter, no output schema, and strong annotations, description fully covers what the tool does, what it returns, and data sources. Complete for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with regex and description. Description repeats '10-digit tax ID' but adds no new meaning beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Title 'Get full company profile by NIP' and description clearly state verb (get) and resource (company profile) with identifier (NIP). Lists specific data returned, distinguishing it from siblings like search_company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'USE THIS when the user gives a NIP and wants company details...' and lists what it returns, implicitly excluding financial queries (get_financials) or search (search_company).
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 statementsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nip | Yes | Polish tax ID (NIP), 10 digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. Description adds 'Read-only' confirming safety. Also specifies data source (RDF/KRS) and yearly frequency, which are behavioral traits beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence defines action and data source; second provides usage guidance and return value summary. Clearly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lists the specific financial metrics returned (revenue, net profit, total assets, equity, liabilities) per year. Covers purpose, usage, and output adequately for a simple tool with one parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%—the single parameter 'nip' is fully described with pattern and meaning. The description does not add extra parameter semantics beyond what the schema provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool gets yearly financial statements of a Polish company by NIP, from KRS. Lists specific data types returned (revenue, profit, assets). Unambiguous and distinguishes from siblings which handle different company data (vat, general info, search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'USE THIS when the user asks about revenue, profit, assets or financial results.' Provides clear context for when to use, though does not explicitly state when not to use or suggest alternatives. Given sibling tools, the purpose is well-differentiated.
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 nameARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-10, default 5) | |
| query | Yes | Company name or part of it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by stating 'Read-only' and specifying data sources (Polish court and statistical registers), which clarifies behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: three sentences with no fluff. The purpose is front-loaded, and every sentence adds essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema), the description adequately covers return fields and data sources. It is complete for its complexity, though an output schema could enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds only the 'fuzzy match' nuance for the query parameter, which is a small improvement over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Polish companies by name with fuzzy match, and lists the returned data (NIP, KRS, city, status, profile URL). It distinguishes from siblings like 'get_company' which is likely for specific company lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 asks to find a Polish company, look up a firm by name, or get its NIP/KRS/REGON.' It provides clear context, but does not mention when not to use or alternatives.
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. Dates show when Glama detected each change.
4 tool updates
v1.0.1- First observed
check_vat_whitelist - First observed
get_company - First observed
get_financials - First observed
search_company
TDQS
Each tool has a clearly distinct purpose: checking VAT whitelist, getting company profile, retrieving financial statements, and searching by name. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern (check_vat_whitelist, get_company, get_financials, search_company) with underscores and clear verbs.
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.
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
European business verification for AI agents: registry, VAT, sanctions, IBAN. Pay-per-call x402.
Verified Polish open data for AI agents: debt, budget, 460 MPs, votings, judiciary search, RAG.
French & European company registry for AI agents: KYB, sanctions, annual accounts. x402, no API key.
German Handelsregister + Austrian Firmenbuch for AI agents: master data, financials & ratios.
Related MCP Servers
- AlicenseAqualityCmaintenanceStructured business intelligence for AI agents. 5.5M verified entities across 34 countries, 40.3M BORME mercantile acts, EU VAT validation, GLEIF, healthcare registries. 20 tools.61MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to Poland's largest business registry database, enabling company search, beneficiary checks, and financial document retrieval via natural language.1-
- AlicenseCqualityDmaintenanceEnables querying the Polish National Court Register (KRS) to retrieve current and historical entity data.23214MIT
- AlicenseAqualityBmaintenanceProvides 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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/AMR-DEV-PS/nipregon-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server