polish-mcp-servers 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -7
- package/catalog/actors.json +100 -0
- package/catalog/tool-descriptions.json +3 -0
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -1,8 +1,42 @@
|
|
|
1
1
|
# Polish MCP servers
|
|
2
2
|
|
|
3
3
|
[](https://glama.ai/mcp/servers/kamilkaczmareksolutions/polish-mcp-servers)
|
|
4
|
+
[](https://www.npmjs.com/package/polish-mcp-servers)
|
|
5
|
+

|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
**Give Claude, Cursor or any MCP client one-command access to Polish public data: statutes, court judgments, KRS companies, company lookup by NIP/REGON, tenders, building permits, land parcels, EV chargers, electricity prices and more (14 tools).**
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
<sub>Staged demo with sample output; real runs need an Apify token. The tool list is real; the company in the result is fictional, laid out the way the server returns it (`{items, truncated}` with the KRS Actor's dataset fields).</sub>
|
|
12
|
+
|
|
13
|
+
## Why
|
|
14
|
+
|
|
15
|
+
Polish public data is spread over a dozen official APIs and portals (Sejm ELI, SAOS, KRS, CEPiK, GUNB, ULDK, PSE, dane.gov.pl ...), each with its own format, paging and quirks. LLM agents can't use them out of the box. This server wraps them as MCP tools with typed input schemas and read-only annotations, so an agent can search acts, read a judgment, or pull EV chargers, building permits or electricity prices without you writing glue code.
|
|
16
|
+
|
|
17
|
+
## Quick start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx -y polish-mcp-servers # all 14 tools
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Then add it to your client (Claude Desktop, Cursor, VS Code: see [Configure Claude Desktop and Cursor](#configure-claude-desktop-and-cursor)) with `APIFY_TOKEN` in `env`.
|
|
24
|
+
|
|
25
|
+
## How it works
|
|
26
|
+
|
|
27
|
+
- Stdio MCP server built on `@modelcontextprotocol/sdk`. Three profiles: `polish-mcp-servers` (all 14 tools), `polish-law-mcp` (law only), `polish-public-registers` (the other 13).
|
|
28
|
+
- The tool list, input schemas and descriptions come from a bundled catalog (`catalog/`), so `tools/list` needs no token and no network.
|
|
29
|
+
- `tools/call` runs the matching public Apify Actor with `run-sync-get-dataset-items` (pinned build, up to 300 s) on your Apify account and returns the dataset items as JSON.
|
|
30
|
+
|
|
31
|
+
## Limitations
|
|
32
|
+
|
|
33
|
+
- Every `tools/call` starts a paid Apify Actor run, billed pay-per-event to the account behind `APIFY_TOKEN` (prices below). Listing tools is free.
|
|
34
|
+
- Responses are capped at 100 items and 256 KiB of JSON per call.
|
|
35
|
+
- Data is only as fresh and complete as the upstream public source.
|
|
36
|
+
|
|
37
|
+
## Details
|
|
38
|
+
|
|
39
|
+
Local [Model Context Protocol](https://modelcontextprotocol.io) server for Polish public data. It speaks stdio and exposes 14 tools, one for each public Apify Actor by [enterprising_hamster](https://apify.com/enterprising_hamster).
|
|
6
40
|
|
|
7
41
|
`tools/list` answers with no `APIFY_TOKEN` and no network. `tools/call` runs that Actor on your Apify account. Create a token at [console.apify.com/settings/integrations](https://console.apify.com/settings/integrations) and set `APIFY_TOKEN`. A call without a token returns an MCP tool error that points at that page.
|
|
8
42
|
|
|
@@ -27,10 +61,11 @@ Each call returns at most 100 dataset items and at most 256 KiB of JSON. Pass `m
|
|
|
27
61
|
| `polish-developer-apartment-prices` | Developer apartment and house offers, with price per m², from dane.gov.pl. | [Store](https://apify.com/enterprising_hamster/polish-developer-apartment-prices) |
|
|
28
62
|
| `polish-electricity-market-pse` | PSE electricity prices and grid rows (RCE, day-ahead, imbalance, load, generation). | [Store](https://apify.com/enterprising_hamster/polish-electricity-market-pse) |
|
|
29
63
|
| `polish-new-companies-krs` | New and changed companies from the KRS bulletin with NIP, REGON, PKD, and share capital. No personal data. | [Store](https://apify.com/enterprising_hamster/polish-new-companies-krs) |
|
|
64
|
+
| `polish-company-lookup-regon` | Company lookup by NIP, REGON or KRS in the GUS REGON register: name, legal form, address, PKD, status, optional VAT status. No GUS key needed, no phone or email. | [Store](https://apify.com/enterprising_hamster/polish-company-lookup-regon) |
|
|
30
65
|
|
|
31
66
|
The full tool and parameter descriptions that clients see live in [`catalog/tool-descriptions.json`](catalog/tool-descriptions.json). Every tool is annotated `readOnlyHint: true`, `destructiveHint: false`, `idempotentHint: true`, `openWorldHint: true`: it only reads the public source, but each `tools/call` starts a paid Apify Actor run, billed pay-per-event to the Apify account behind `APIFY_TOKEN`, and waits up to 300 s for it.
|
|
32
67
|
|
|
33
|
-
`polish-mcp-servers` and `polish-mcp` list all
|
|
68
|
+
`polish-mcp-servers` and `polish-mcp` list all 14. `polish-law-mcp` lists only `polish-law-mcp-server`. `polish-public-registers` lists the other 13, including `cee-public-tenders`.
|
|
34
69
|
|
|
35
70
|
## Install
|
|
36
71
|
|
|
@@ -118,7 +153,7 @@ Omit `APIFY_TOKEN` if you only want `tools/list`.
|
|
|
118
153
|
The same data is also available as hosted MCP servers on [Apify](https://apify.com/enterprising_hamster). Point your client at a URL and authenticate with your Apify account. Those servers still run as Apify Actors.
|
|
119
154
|
|
|
120
155
|
- **Polish Law MCP**: Polish statutes from the Sejm ELI API (Dziennik Ustaw, Monitor Polski) and court judgments from SAOS.
|
|
121
|
-
- **Polish Public Registers**:
|
|
156
|
+
- **Polish Public Registers**: 12 official Polish registers (EU-funded tenders, EV charging stations, vehicle registrations, building permits, land parcels and zoning, healthcare facilities, developer apartment prices, electricity market, new companies from KRS, company lookup in REGON, legal acts, court judgments).
|
|
122
157
|
|
|
123
158
|
| Server | MCP Registry name | MCP URL (Streamable HTTP) |
|
|
124
159
|
|---|---|---|
|
|
@@ -129,7 +164,7 @@ The same data is also available as hosted MCP servers on [Apify](https://apify.c
|
|
|
129
164
|
### Polish Public Registers URL
|
|
130
165
|
|
|
131
166
|
```
|
|
132
|
-
https://mcp.apify.com/?tools=enterprising_hamster/polish-eu-funds-tenders-baza-konkurencyjnosci,enterprising_hamster/polish-ev-charging-stations-eipa,enterprising_hamster/polish-vehicle-registrations-cepik,enterprising_hamster/polish-building-permits-gunb,enterprising_hamster/polish-land-parcels-uldk-zoning,enterprising_hamster/polish-healthcare-facilities-rpwdl,enterprising_hamster/polish-developer-apartment-prices,enterprising_hamster/polish-electricity-market-pse,enterprising_hamster/polish-new-companies-krs,enterprising_hamster/polish-legal-acts-eli,enterprising_hamster/polish-court-judgments-saos
|
|
167
|
+
https://mcp.apify.com/?tools=enterprising_hamster/polish-eu-funds-tenders-baza-konkurencyjnosci,enterprising_hamster/polish-ev-charging-stations-eipa,enterprising_hamster/polish-vehicle-registrations-cepik,enterprising_hamster/polish-building-permits-gunb,enterprising_hamster/polish-land-parcels-uldk-zoning,enterprising_hamster/polish-healthcare-facilities-rpwdl,enterprising_hamster/polish-developer-apartment-prices,enterprising_hamster/polish-electricity-market-pse,enterprising_hamster/polish-new-companies-krs,enterprising_hamster/polish-company-lookup-regon,enterprising_hamster/polish-legal-acts-eli,enterprising_hamster/polish-court-judgments-saos
|
|
133
168
|
```
|
|
134
169
|
|
|
135
170
|
You can drop Actors from the `tools=` list to expose only the registers you need.
|
|
@@ -160,7 +195,7 @@ Pricing (pay per event, FREE/BRONZE Apify plan tier):
|
|
|
160
195
|
|
|
161
196
|
### Polish Public Registers tools
|
|
162
197
|
|
|
163
|
-
Each Actor is exposed as one MCP tool that runs the Actor. The Apify MCP server also adds four helper tools: `get-actor-run`, `get-dataset-items`, `get-key-value-store-record`, `abort-actor-run` (
|
|
198
|
+
Each Actor is exposed as one MCP tool that runs the Actor. The Apify MCP server also adds four helper tools: `get-actor-run`, `get-dataset-items`, `get-key-value-store-record`, `abort-actor-run` (16 tools in total).
|
|
164
199
|
|
|
165
200
|
Prices are per delivered result, FREE/BRONZE Apify plan tier. Higher plan tiers pay less; see each Actor page.
|
|
166
201
|
|
|
@@ -175,6 +210,7 @@ Prices are per delivered result, FREE/BRONZE Apify plan tier. Higher plan tiers
|
|
|
175
210
|
| Developer apartment prices (dane.gov.pl) | [polish-developer-apartment-prices](https://apify.com/enterprising_hamster/polish-developer-apartment-prices) | $0.002 offer; $0.004 price change |
|
|
176
211
|
| Electricity market (PSE API) | [polish-electricity-market-pse](https://apify.com/enterprising_hamster/polish-electricity-market-pse) | $0.0003 market data row |
|
|
177
212
|
| New and changed companies (KRS API, Ministry of Justice) | [polish-new-companies-krs](https://apify.com/enterprising_hamster/polish-new-companies-krs) | $0.004 company |
|
|
213
|
+
| Company lookup by NIP, REGON, KRS (GUS REGON BIR1.2) | [polish-company-lookup-regon](https://apify.com/enterprising_hamster/polish-company-lookup-regon) | $0.003 company |
|
|
178
214
|
| Legal acts (Sejm ELI) | [polish-legal-acts-eli](https://apify.com/enterprising_hamster/polish-legal-acts-eli) | $0.002 act metadata; $0.008 act with text |
|
|
179
215
|
| Court judgments (SAOS) | [polish-court-judgments-saos](https://apify.com/enterprising_hamster/polish-court-judgments-saos) | $0.003 judgment metadata; $0.01 judgment with full text |
|
|
180
216
|
|
|
@@ -207,7 +243,7 @@ Cursor, `~/.cursor/mcp.json` or `.cursor/mcp.json` in a project:
|
|
|
207
243
|
}
|
|
208
244
|
},
|
|
209
245
|
"polish-public-registers": {
|
|
210
|
-
"url": "https://mcp.apify.com/?tools=enterprising_hamster/polish-eu-funds-tenders-baza-konkurencyjnosci,enterprising_hamster/polish-ev-charging-stations-eipa,enterprising_hamster/polish-vehicle-registrations-cepik,enterprising_hamster/polish-building-permits-gunb,enterprising_hamster/polish-land-parcels-uldk-zoning,enterprising_hamster/polish-healthcare-facilities-rpwdl,enterprising_hamster/polish-developer-apartment-prices,enterprising_hamster/polish-electricity-market-pse,enterprising_hamster/polish-new-companies-krs,enterprising_hamster/polish-legal-acts-eli,enterprising_hamster/polish-court-judgments-saos",
|
|
246
|
+
"url": "https://mcp.apify.com/?tools=enterprising_hamster/polish-eu-funds-tenders-baza-konkurencyjnosci,enterprising_hamster/polish-ev-charging-stations-eipa,enterprising_hamster/polish-vehicle-registrations-cepik,enterprising_hamster/polish-building-permits-gunb,enterprising_hamster/polish-land-parcels-uldk-zoning,enterprising_hamster/polish-healthcare-facilities-rpwdl,enterprising_hamster/polish-developer-apartment-prices,enterprising_hamster/polish-electricity-market-pse,enterprising_hamster/polish-new-companies-krs,enterprising_hamster/polish-company-lookup-regon,enterprising_hamster/polish-legal-acts-eli,enterprising_hamster/polish-court-judgments-saos",
|
|
211
247
|
"headers": {
|
|
212
248
|
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
|
|
213
249
|
}
|
|
@@ -251,7 +287,7 @@ Look them up at `https://registry.modelcontextprotocol.io/v0.1/servers?search=ka
|
|
|
251
287
|
|
|
252
288
|
## Data sources
|
|
253
289
|
|
|
254
|
-
All data comes from official Polish public registers and open-data APIs: Sejm ELI, SAOS, Baza Konkurencyjności, EIPA (UDT), CEPiK, GUNB, GUGiK ULDK, RPWDL, dane.gov.pl, PSE, KRS. Personal data is limited. Building-permit investors who are private persons are anonymised, private EV station operators are anonymised, CEPiK data is aggregated (no VINs or owners), ULDK parcels come without owners,
|
|
290
|
+
All data comes from official Polish public registers and open-data APIs: Sejm ELI, SAOS, Baza Konkurencyjności, EIPA (UDT), CEPiK, GUNB, GUGiK ULDK, RPWDL, dane.gov.pl, PSE, KRS, GUS REGON. Personal data is limited. Building-permit investors who are private persons are anonymised, private EV station operators are anonymised, CEPiK data is aggregated (no VINs or owners), ULDK parcels come without owners, KRS rows carry company-level fields only (no board members or shareholders), and REGON rows carry no phone, fax or email.
|
|
255
291
|
|
|
256
292
|
## License
|
|
257
293
|
|
package/catalog/actors.json
CHANGED
|
@@ -2502,5 +2502,105 @@
|
|
|
2502
2502
|
}
|
|
2503
2503
|
}
|
|
2504
2504
|
}
|
|
2505
|
+
},
|
|
2506
|
+
{
|
|
2507
|
+
"actorId": "enterprising_hamster/polish-company-lookup-regon",
|
|
2508
|
+
"name": "polish-company-lookup-regon",
|
|
2509
|
+
"title": "Poland Company Lookup API – REGON, NIP, KRS",
|
|
2510
|
+
"description": "Look up a Polish company by NIP, REGON or KRS in the official GUS REGON register: name, address, PKD, dates and optional VAT status. No phone, fax or email. For KYC, CRM and AI agents (MCP).",
|
|
2511
|
+
"isPublic": true,
|
|
2512
|
+
"buildId": "AEMWS4UulvF2UZSUU",
|
|
2513
|
+
"buildNumber": "0.1.3",
|
|
2514
|
+
"inputSchema": {
|
|
2515
|
+
"title": "Poland company lookup (REGON)",
|
|
2516
|
+
"type": "object",
|
|
2517
|
+
"schemaVersion": 1,
|
|
2518
|
+
"properties": {
|
|
2519
|
+
"nips": {
|
|
2520
|
+
"title": "NIP numbers",
|
|
2521
|
+
"type": "array",
|
|
2522
|
+
"editor": "stringList",
|
|
2523
|
+
"description": "Tax identifiers (NIP). Spaces, hyphens and a leading PL are ignored. Invalid checksums are returned as found=false and are not charged.",
|
|
2524
|
+
"default": [
|
|
2525
|
+
"7740001454",
|
|
2526
|
+
"6920000013",
|
|
2527
|
+
"5250007738",
|
|
2528
|
+
"5260250274"
|
|
2529
|
+
]
|
|
2530
|
+
},
|
|
2531
|
+
"regons": {
|
|
2532
|
+
"title": "REGON numbers",
|
|
2533
|
+
"type": "array",
|
|
2534
|
+
"editor": "stringList",
|
|
2535
|
+
"description": "9-digit subjects or 14-digit local units. Checksums are validated.",
|
|
2536
|
+
"default": [
|
|
2537
|
+
"000331501"
|
|
2538
|
+
]
|
|
2539
|
+
},
|
|
2540
|
+
"krsNumbers": {
|
|
2541
|
+
"title": "KRS numbers",
|
|
2542
|
+
"type": "array",
|
|
2543
|
+
"editor": "stringList",
|
|
2544
|
+
"description": "Court numbers. Shorter values are zero-padded to 10 digits. Looked up one at a time.",
|
|
2545
|
+
"default": []
|
|
2546
|
+
},
|
|
2547
|
+
"identifiers": {
|
|
2548
|
+
"title": "Mixed identifiers",
|
|
2549
|
+
"type": "array",
|
|
2550
|
+
"editor": "stringList",
|
|
2551
|
+
"description": "Optional prefixes NIP:, REGON: and KRS:. Without a prefix, 9 or 14 digits are a REGON and 10 digits with a valid NIP checksum are a NIP. Anything else returns the error \"ambiguous, use prefix\".",
|
|
2552
|
+
"default": []
|
|
2553
|
+
},
|
|
2554
|
+
"gusApiKey": {
|
|
2555
|
+
"title": "GUS API key",
|
|
2556
|
+
"type": "string",
|
|
2557
|
+
"editor": "textfield",
|
|
2558
|
+
"description": "Optional. Your own production BIR1 user key from GUS. Leave empty: the Actor uses its own production key.",
|
|
2559
|
+
"isSecret": true
|
|
2560
|
+
},
|
|
2561
|
+
"useTestEnvironment": {
|
|
2562
|
+
"title": "Use GUS test environment",
|
|
2563
|
+
"type": "boolean",
|
|
2564
|
+
"editor": "checkbox",
|
|
2565
|
+
"description": "When no production key is set, call the public GUS test service. Data is anonymized and frozen around 8 November 2014. Ignored when a key is set.",
|
|
2566
|
+
"default": false
|
|
2567
|
+
},
|
|
2568
|
+
"includeLocalUnits": {
|
|
2569
|
+
"title": "Include local units",
|
|
2570
|
+
"type": "boolean",
|
|
2571
|
+
"editor": "checkbox",
|
|
2572
|
+
"description": "Nest up to 50 local units (14-digit REGON) on each company. No extra charge. A 14-digit REGON in the input is its own row.",
|
|
2573
|
+
"default": false
|
|
2574
|
+
},
|
|
2575
|
+
"includeSoleTraders": {
|
|
2576
|
+
"title": "Include sole traders",
|
|
2577
|
+
"type": "boolean",
|
|
2578
|
+
"editor": "checkbox",
|
|
2579
|
+
"description": "When false, a sole trader (JDG) is returned with found=true and skipped=sole_trader and is not charged.",
|
|
2580
|
+
"default": true
|
|
2581
|
+
},
|
|
2582
|
+
"soleTraderFullAddress": {
|
|
2583
|
+
"title": "Full address for sole traders",
|
|
2584
|
+
"type": "boolean",
|
|
2585
|
+
"editor": "checkbox",
|
|
2586
|
+
"description": "Include street, building and apartment for a sole trader. Default is city, postal code, municipality, county and voivodeship only.",
|
|
2587
|
+
"default": false
|
|
2588
|
+
},
|
|
2589
|
+
"checkVatStatus": {
|
|
2590
|
+
"title": "Check VAT status",
|
|
2591
|
+
"type": "boolean",
|
|
2592
|
+
"editor": "checkbox",
|
|
2593
|
+
"description": "Ask the Ministry of Finance WL2 status method. Adds vatStatus, vatCheckedAt and vatRequestId. On failure the company is still returned with vatError. No bank accounts and no people.",
|
|
2594
|
+
"default": false
|
|
2595
|
+
},
|
|
2596
|
+
"maxItems": {
|
|
2597
|
+
"title": "Max companies",
|
|
2598
|
+
"type": "integer",
|
|
2599
|
+
"editor": "number",
|
|
2600
|
+
"description": "Stop after this many charged companies. Empty means no cap. Not-found rows and skipped sole traders do not count.",
|
|
2601
|
+
"minimum": 1
|
|
2602
|
+
}
|
|
2603
|
+
}
|
|
2604
|
+
}
|
|
2505
2605
|
}
|
|
2506
2606
|
]
|
|
@@ -41,5 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
"polish-new-companies-krs": {
|
|
43
43
|
"description": "Returns new and changed Polish companies from the official KRS register of entrepreneurs (Krajowy Rejestr Sądowy, rejestr przedsiębiorców) via the Ministry of Justice KRS API: for each KRS number on the daily bulletin in the date window (empty dates mean yesterday, at most 31 days) one item with name, KRS, NIP, REGON, legal form, seat address, main and other PKD codes, share capital, registration and last-entry dates and eventType new or changed. Filter by events, PKD code prefixes, voivodeships, legal forms and minimum share capital; company-level fields only, no personal data such as board members or shareholders. Use it for new-company lead lists, KYC and CRM monitoring; for healthcare providers use polish-healthcare-facilities-rpwdl. Read-only: it only queries the public source and never writes to the registry. Each call needs the APIFY_TOKEN env var and starts one paid run of the Apify Actor enterprising_hamster/polish-new-companies-krs on your Apify account, billed pay-per-event per delivered company plus any Apify platform usage; the server waits up to 300 s for the run and returns JSON {items, truncated} with at most maxItems (max 100) items and 256 KiB."
|
|
44
|
+
},
|
|
45
|
+
"polish-company-lookup-regon": {
|
|
46
|
+
"description": "Looks up Polish companies and other registered subjects by NIP, REGON or KRS number in the official GUS REGON register (Statistics Poland, BIR1.2 API): for each identifier one item with registered name, REGON, NIP, KRS, entity type, legal and ownership form, seat address with TERYT, prevailing and other PKD codes, status (active, suspended, closed) and register dates, optionally VAT taxpayer status from the Ministry of Finance white list (WL2) and nested local units. No phone, fax or email; for sole traders the street is omitted unless soleTraderFullAddress is set. No GUS key is needed (gusApiKey is optional). Use it to identify a known company; for newly registered companies use polish-new-companies-krs. Read-only: it only queries the public source and never writes to the registry. Each call needs the APIFY_TOKEN env var and starts one paid run of the Apify Actor enterprising_hamster/polish-company-lookup-regon on your Apify account, billed pay-per-event per delivered company plus any Apify platform usage; the server waits up to 300 s for the run and returns JSON {items, truncated} with at most maxItems (max 100) items and 256 KiB."
|
|
44
47
|
}
|
|
45
48
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "polish-mcp-servers",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "MCP stdio server for Polish public law and registers. Lists
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "MCP stdio server for Polish public law and registers. Lists 14 Apify Actor tools without a token and runs them with APIFY_TOKEN.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Kamil Kaczmarek",
|
|
7
7
|
"homepage": "https://github.com/kamilkaczmareksolutions/polish-mcp-servers#readme",
|
|
@@ -22,7 +22,9 @@
|
|
|
22
22
|
"eli",
|
|
23
23
|
"saos",
|
|
24
24
|
"cepik",
|
|
25
|
-
"krs"
|
|
25
|
+
"krs",
|
|
26
|
+
"regon",
|
|
27
|
+
"nip"
|
|
26
28
|
],
|
|
27
29
|
"type": "module",
|
|
28
30
|
"engines": {
|