Polish Open Data (unofficial)
NUGET · POLISHOPENDATA.MCP
Polish registers: KRS, VAT, bank checks, parcels, geocoding, property prices (RCN), optional REGON.
Available components
Last scanned (4 hours ago)
Scores higher than 73% of NuGet servers
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Build provenance not yet verified. View diagnostics → Unverified
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 1 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2429 tokens (~303/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Oct 26 0
- Stability: 0.97 → pass security
- 24 Oct 26 +16
- Malware scan: unverified → pass ▲ security
- 23 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- Schema quality: 256 → 303 ▼ functional
- Package version: 1.5.0 → 1.6.0 functional
- 22 Oct 26 +1
- Security disclosure: unverified → pass ▲ functional
- 21 Oct 26 0
- Security disclosure: pass → unverified ▼ functional
- 19 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Oct 26 +39
- Malware scan: pass → unverified ▼ security
- Injection markers: unverified → pass ▲ security
- Schema quality: 197 → 256 ▼ functional
- Schema quality: 197 → 219 ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Stability: unverified → 0.67 ▲ functional
- Package version: 1.1.0 → 1.5.0 functional
- Package version: 1.3.0 → 1.5.0 functional
- Package version: 1.1.0 → 1.4.1 functional
- Package version: 1.3.0 → 1.4.1 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Oct 2026 · Analysed nuget/PolishOpenData.Mcp@1.6.0
Provenance Inconclusive
We could not complete the check, so nothing is claimed either way. This is a gap on our side, not a finding about the package.
| Result | Inconclusive |
|---|---|
| Ecosystem | nuget |
| Reason | Signature present, unverified |
Signer
| Signed as | Repository signature, names nuget.org |
|---|---|
| Subject | CN=NuGet.org Repository by Microsoft,O=NuGet.org Repository by Microsoft,L=Redmond,ST=Washington,C=US |
| Issuer | CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,O=DigiCert\, Inc.,C=US |
| Valid from | 23 Feb 2024 |
| Valid until | 18 May 2027 |
| Service index | https://api.nuget.org/v3/index.json |
| Owners | JacekSmi |
Background: How many MCP packages publish verified provenance →
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
Registry declarations For information only
What the registry and the package's own manifest say about this version. The publisher or the registry writes these, nothing here is verified, and none of it affects the score.
| Repository | https://github.com/JacekSmi/PolishOpenData |
|---|---|
| Repository type | git |
| Commit | 59a94d2546f435f90343eec7e54281c6d95cd8be |
| Project URL | https://github.com/JacekSmi/PolishOpenData |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_vat_bank_account Check a bank account on the VAT whitelist ~152
Checks whether a bank account is on the Polish VAT whitelist (Biała Lista) for a taxpayer identified by NIP or REGON. Use before paying an invoice over 15,000 PLN; keep the returned request ID and time to document when the whitelist was checked and what it answered.
| Name | Type | Req | Description |
|---|---|---|---|
| bankAccount | string | yes | Bank account number: 26-digit NRB or PL IBAN; spaces allowed. |
| date | string|null | – | Date to check in YYYY-MM-DD (default today in Poland). |
| nip | string|null | – | NIP of the taxpayer (give nip or regon). |
| regon | string|null | – | REGON of the taxpayer (give nip or regon). |
| Name | Type | Req | Description |
|---|---|---|---|
| assignedToActiveVatPayer | boolean | – | – |
| bankAccount | string | yes | – |
| meaning | string | yes | – |
| nip | string|null | – | – |
| regon | string|null | – | – |
| requestDateTime | string | – | – |
| requestId | string | yes | – |
| source | object | yes | – |
No examples provided.
check_vat_bank_account_offline Check bank accounts against the VAT whitelist flat file ~220
Checks pairs of NIP and bank account against the Ministry of Finance daily flat file of the VAT whitelist (plik płaski): offline, no request limit, many pairs at once (up to 50), and nothing about the pairs leaves this machine. Answers active, exempt or not_found; not_found means not found in the file, not proof that the account is absent from the whitelist. The first call for a date downloads about 250 MB and takes several minutes, much longer when the Ministry's server is slow. It does not return a request ID; for a check with a request ID use check_vat_bank_account.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string|null | – | Date to check in YYYY-MM-DD (default today in Poland). Only the last 30 days and tomorrow are available. |
| pairs | array | yes | 1 to 50 pairs, each { "nip": NIP of the taxpayer (dashes and a PL prefix allowed), "bankAccount": 26-digit NRB or PL IBAN, spaces allowed }. |
| Name | Type | Req | Description |
|---|---|---|---|
| fileDate | string | – | – |
| generatedOn | string | – | – |
| results | array | yes | – |
| source | object | yes | – |
No examples provided.
find_parcel Find a cadastral parcel ~456
Finds Polish cadastral parcels (działki ewidencyjne) with GUGiK's ULDK service, by exactly one of: a parcel ID (TERYT format, e.g. 146510_8.0507.41/1), WGS-84 coordinates (latitude + longitude; latitude comes first), an address, or a region name with a parcel number (e.g. "Krzewina 134", which can match several parcels). Returns the parcel ID, number, region, commune, county, voivodeship and the center of its bounding box in WGS-84; includeGeometry adds the full boundary as WKT in EPSG:4326 (longitude latitude order, as WKT writes it; can be long for a large parcel; not available for regionAndNumber searches). An address must resolve to a single address point to pick a parcel, otherwise the geocoder's candidates are returned. Data comes from EGiB via GUGiK. Never returns or accepts land-registry (KW) numbers or owner data.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string|null | – | Address with a house number, e.g. "Warszawa, Krucza 50". It is geocoded first, so a street or town alone gives candidates, not a parcel. |
| includeGeometry | boolean | – | Also return the parcel boundary as WKT in EPSG:4326 (longitude latitude order, as WKT writes it; not for regionAndNumber). |
| latitude | number|null | – | WGS-84 latitude in degrees north, 48.9 to 55.0 (give together with longitude). |
| longitude | number|null | – | WGS-84 longitude in degrees east, 14.0 to 24.2 (give together with latitude). |
| parcelId | string|null | – | Parcel ID in TERYT format: commune code, region, optional sheet and number, e.g. 146510_8.0507.41/1. |
| regionAndNumber | string|null | – | Region name and parcel number, e.g. "Krzewina 134"; can match several parcels. No geometry is returned for this search. |
| Name | Type | Req | Description |
|---|---|---|---|
| candidates | array|null | – | – |
| matchedAddress | object|null | – | – |
| note | string|null | – | – |
| parcels | array | yes | – |
| sources | array | yes | – |
No examples provided.
geocode_address Find coordinates of a Polish address ~163
Finds the coordinates of a Polish address (for example "Warszawa, Krucza 50") with GUGiK's address geocoder (UUG). Each match says whether it is an address, a street or a city: a partial address gives a street or city match whose point is only a representative point. Coordinates are WGS-84 (latitude, longitude). Public data from the national address register via GUGiK, based on EGiB and the address registers. Never returns or accepts land-registry (KW) numbers or owner data.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Free-text address with the town and, for an exact point, the street and house number, e.g. "Warszawa, Krucza 50". |
| Name | Type | Req | Description |
|---|---|---|---|
| matches | array | yes | – |
| note | string|null | – | – |
| source | object | yes | – |
No examples provided.
get_krs_extract Get a KRS company summary ~107
Returns a summary of the current National Court Register (KRS) extract: name, legal form, NIP/REGON, address, share capital, management and supervisory boards (names masked by the ministry), proxies, shareholders (companies and natural persons with masked names), and PKD activities. Reports removed entities with their removal date.
| Name | Type | Req | Description |
|---|---|---|---|
| krs | string | yes | KRS number (up to 10 digits), e.g. 28860 or 0000028860. |
| Name | Type | Req | Description |
|---|---|---|---|
| note | string|null | – | – |
| removedOn | string|null | – | – |
| sources | array | – | – |
| status | string | yes | – |
| summary | object|null | – | – |
No examples provided.
lookup_company Look up a Polish company ~185
Looks up a Polish company or organisation by exactly one of NIP, REGON or KRS number. Combines the VAT whitelist (Biała Lista: VAT status, seat address, bank accounts) with the National Court Register (KRS: legal form, share capital, registration, removal). If the lookup is by NIP or REGON and KRS fails, the whitelist part is still returned, with the KRS error in warnings. Public registry data.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string|null | – | Date to check in YYYY-MM-DD (Biała Lista only; default today in Poland). |
| krs | string|null | – | KRS number (up to 10 digits). |
| nip | string|null | – | NIP tax number (10 digits; dashes and a PL prefix are allowed). |
| regon | string|null | – | REGON (9 or 14 digits). |
| Name | Type | Req | Description |
|---|---|---|---|
| found | boolean | – | – |
| krs | string|null | – | – |
| krsRegistry | object|null | – | – |
| name | string|null | – | – |
| nip | string|null | – | – |
| query | string | yes | – |
| regon | string|null | – | – |
| sources | array | – | – |
| vat | object|null | – | – |
| warnings | array | – | – |
No examples provided.
property_prices Property transaction prices ~548
Answers what real estate sold for in a Polish area: the median and quartile price per square metre of flats (premises) and the single transactions, newest first, for premises, parcels or buildings. Data come from the RCN register (Rejestr Cen Nieruchomości) via GUGiK and are published with a delay of several months; the result says how old the newest transaction is. Single transactions are public register entries (address, price, deed number); buyers and sellers are shown only by kind. Informational, not a valuation. Search by exactly one of: an address (geocoded first; it must resolve to a single address point, otherwise the geocoder's candidates are returned), WGS-84 coordinates (latitude + longitude; latitude comes first) with a radius, or a powiat code. Never returns or accepts land-registry (KW) numbers or owner data.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string|null | – | Address with a house number, e.g. "Warszawa, Krucza 50"; searches within radiusMeters of it. A street or town alone gives candidates, not prices. |
| dateFrom | string|null | – | First day of the period, YYYY-MM-DD. Default: 24 months before dateTo. |
| dateTo | string|null | – | Last day of the period, YYYY-MM-DD. Default: today (Warsaw time). |
| kind | string|null | – | premises (flats, garages, shops: default), parcels or buildings. Statistics are given for premises only. |
| latitude | number|null | – | WGS-84 latitude in degrees north, 48.9 to 55.0 (give together with longitude). |
| longitude | number|null | – | WGS-84 longitude in degrees east, 14.0 to 24.2 (give together with latitude). |
| market | string|null | – | any (default), primary (from a developer) or secondary (resale). |
| maxTransactions | integer | – | How many single transactions to list, 0 to 50 (default 20); the statistics always cover all found. |
| powiat | string|null | – | Four-digit TERYT powiat code, e.g. 1465 for Warsaw; searches the whole powiat (it may match too many transactions: narrow the period). |
| premisesFunction | string|null | – | For kind premises: residential, garage, commercial, other or any. Default: residential. Not valid for parcels or buildings. |
| radiusMeters | integer|null | – | Search radius in metres around the address or coordinates, 50 to 2500 (default 500). Not for a powiat search. |
| Name | Type | Req | Description |
|---|---|---|---|
| area | object | yes | – |
| candidates | array|null | – | – |
| kind | string | yes | – |
| market | string | yes | – |
| matchedAddress | object|null | – | – |
| newestTransaction | string|null | – | – |
| notes | array | yes | – |
| period | object | yes | – |
| premisesFunction | string|null | – | – |
| sources | array | yes | – |
| statistics | object|null | – | – |
| transactionCount | integer | yes | – |
| transactions | array | yes | – |
| transactionsOmitted | integer | yes | – |
No examples provided.
validate_identifier Validate a Polish identifier ~171
Validates Polish identifiers offline (no network): NIP tax number, REGON, KRS number, NRB bank account, or land-registry (księga wieczysta, KW) number such as WA1M/00012345/1. Explains checksum failures and suggests likely typo fixes for KW numbers.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string|null | – | Optional kind: nip, regon, krs, nrb or kw. Leave empty to detect it from the format. |
| value | string | yes | The identifier to check, e.g. 774-000-14-54, 610188201, 0000028860, PL06 1600 1127 1843 9838 2000 0034 or WL1A/00272852/9. |
| Name | Type | Req | Description |
|---|---|---|---|
| input | string | yes | – |
| results | array | yes | – |
No examples provided.
How do I install the Polish Open Data (unofficial) MCP server?
Polish Open Data (unofficial) runs locally as a NuGet package, launched with dnx PolishOpenData.Mcp@1.6.0 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
nuget · PolishOpenData.Mcp
claude mcp add jaceksmi-polishopendata -- dnx PolishOpenData.Mcp@1.6.0 --yes
What is the Polish Open Data (unofficial) MCP server?
Polish Open Data (unofficial) is an MCP server listed in the public MCP registry as io.github.JacekSmi/PolishOpenData. Polish registers: KRS, VAT, bank checks, parcels, geocoding, property prices (RCN), optional REGON. This page covers its NuGet package (PolishOpenData.Mcp).
Is the Polish Open Data (unofficial) MCP server safe to use?
Polish Open Data (unofficial) scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 25 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Polish Open Data (unofficial) MCP server expose?
Polish Open Data (unofficial) exposes 8 tools: geocode_address, get_krs_extract, validate_identifier, find_parcel, lookup_company, and 3 more. Their descriptions and schemas cost roughly 2,002 tokens of context every time the server is loaded.
Is the Polish Open Data (unofficial) MCP server still maintained?
Polish Open Data (unofficial) is still listed as active in the MCP registry. We last reached this channel on 25 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Polish Open Data (unofficial) MCP server under?
Polish Open Data (unofficial) declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.