polish-mcp-servers 0.1.1 → 0.1.2

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 CHANGED
@@ -2,10 +2,12 @@
2
2
 
3
3
  [![Glama](https://glama.ai/mcp/servers/kamilkaczmareksolutions/polish-mcp-servers/badge)](https://glama.ai/mcp/servers/kamilkaczmareksolutions/polish-mcp-servers)
4
4
 
5
- Local [Model Context Protocol](https://modelcontextprotocol.io) server for Polish public data. It speaks stdio and exposes 12 tools, one for each public Apify Actor by [enterprising_hamster](https://apify.com/enterprising_hamster).
5
+ Local [Model Context Protocol](https://modelcontextprotocol.io) server for Polish public data. It speaks stdio and exposes 13 tools, one for each public Apify Actor by [enterprising_hamster](https://apify.com/enterprising_hamster).
6
6
 
7
7
  `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
8
 
9
+ AI agents without an Apify account can buy a prepaid Apify API token at [agi.apify.com](https://agi.apify.com) (x402, MPP or Skyfire; minimum $1, expires after 14 days, unused balance is not refunded) and set it as `APIFY_TOKEN`. See [Agentic payments with x402](https://docs.apify.com/integrations/x402).
10
+
9
11
  Each call returns at most 100 dataset items and at most 256 KiB of JSON. Pass `maxItems` to ask for fewer. When the Actor schema already defaults `maxItems` to 100 or less, that default stands. The law tool defaults to 20, because that Actor's schema has no `maxItems`.
10
12
 
11
13
  ## Tools
@@ -24,22 +26,31 @@ Each call returns at most 100 dataset items and at most 256 KiB of JSON. Pass `m
24
26
  | `polish-healthcare-facilities-rpwdl` | RPWDL facilities with address, contact, specialties, and beds. | [Store](https://apify.com/enterprising_hamster/polish-healthcare-facilities-rpwdl) |
25
27
  | `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) |
26
28
  | `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
+ | `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) |
27
30
 
28
31
  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.
29
32
 
30
- `polish-mcp-servers` and `polish-mcp` list all 12. `polish-law-mcp` lists only `polish-law-mcp-server`. `polish-public-registers` lists the other 11, including `cee-public-tenders`.
33
+ `polish-mcp-servers` and `polish-mcp` list all 13. `polish-law-mcp` lists only `polish-law-mcp-server`. `polish-public-registers` lists the other 12, including `cee-public-tenders`.
31
34
 
32
35
  ## Install
33
36
 
34
- From GitHub, without an npm publish:
37
+ From npm ([`polish-mcp-servers`](https://www.npmjs.com/package/polish-mcp-servers)):
35
38
 
36
39
  ```bash
37
- npx -y github:kamilkaczmareksolutions/polish-mcp-servers
40
+ npx -y polish-mcp-servers
38
41
  ```
39
42
 
40
43
  Law only, or registers only:
41
44
 
42
45
  ```bash
46
+ npx -y --package polish-mcp-servers polish-law-mcp
47
+ npx -y --package polish-mcp-servers polish-public-registers
48
+ ```
49
+
50
+ Alternative, straight from GitHub (latest `main`, no npm registry):
51
+
52
+ ```bash
53
+ npx -y github:kamilkaczmareksolutions/polish-mcp-servers
43
54
  npx -y --package github:kamilkaczmareksolutions/polish-mcp-servers polish-law-mcp
44
55
  npx -y --package github:kamilkaczmareksolutions/polish-mcp-servers polish-public-registers
45
56
  ```
@@ -77,21 +88,21 @@ Claude Desktop reads `claude_desktop_config.json`. Cursor reads `~/.cursor/mcp.j
77
88
  "mcpServers": {
78
89
  "polish-mcp": {
79
90
  "command": "npx",
80
- "args": ["-y", "github:kamilkaczmareksolutions/polish-mcp-servers"],
91
+ "args": ["-y", "polish-mcp-servers"],
81
92
  "env": {
82
93
  "APIFY_TOKEN": "<YOUR_APIFY_TOKEN>"
83
94
  }
84
95
  },
85
96
  "polish-law": {
86
97
  "command": "npx",
87
- "args": ["-y", "--package", "github:kamilkaczmareksolutions/polish-mcp-servers", "polish-law-mcp"],
98
+ "args": ["-y", "--package", "polish-mcp-servers", "polish-law-mcp"],
88
99
  "env": {
89
100
  "APIFY_TOKEN": "<YOUR_APIFY_TOKEN>"
90
101
  }
91
102
  },
92
103
  "polish-public-registers": {
93
104
  "command": "npx",
94
- "args": ["-y", "--package", "github:kamilkaczmareksolutions/polish-mcp-servers", "polish-public-registers"],
105
+ "args": ["-y", "--package", "polish-mcp-servers", "polish-public-registers"],
95
106
  "env": {
96
107
  "APIFY_TOKEN": "<YOUR_APIFY_TOKEN>"
97
108
  }
@@ -107,7 +118,7 @@ Omit `APIFY_TOKEN` if you only want `tools/list`.
107
118
  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.
108
119
 
109
120
  - **Polish Law MCP**: Polish statutes from the Sejm ELI API (Dziennik Ustaw, Monitor Polski) and court judgments from SAOS.
110
- - **Polish Public Registers**: 10 official Polish registers (EU-funded tenders, EV charging stations, vehicle registrations, building permits, land parcels and zoning, healthcare facilities, developer apartment prices, electricity market, legal acts, court judgments).
121
+ - **Polish Public Registers**: 11 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, legal acts, court judgments).
111
122
 
112
123
  | Server | MCP Registry name | MCP URL (Streamable HTTP) |
113
124
  |---|---|---|
@@ -118,7 +129,7 @@ The same data is also available as hosted MCP servers on [Apify](https://apify.c
118
129
  ### Polish Public Registers URL
119
130
 
120
131
  ```
121
- 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-legal-acts-eli,enterprising_hamster/polish-court-judgments-saos
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
122
133
  ```
123
134
 
124
135
  You can drop Actors from the `tools=` list to expose only the registers you need.
@@ -149,7 +160,7 @@ Pricing (pay per event, FREE/BRONZE Apify plan tier):
149
160
 
150
161
  ### Polish Public Registers tools
151
162
 
152
- 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` (14 tools in total).
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` (15 tools in total).
153
164
 
154
165
  Prices are per delivered result, FREE/BRONZE Apify plan tier. Higher plan tiers pay less; see each Actor page.
155
166
 
@@ -163,6 +174,7 @@ Prices are per delivered result, FREE/BRONZE Apify plan tier. Higher plan tiers
163
174
  | Healthcare facilities (RPWDL) | [polish-healthcare-facilities-rpwdl](https://apify.com/enterprising_hamster/polish-healthcare-facilities-rpwdl) | $0.004 facility |
164
175
  | 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 |
165
176
  | Electricity market (PSE API) | [polish-electricity-market-pse](https://apify.com/enterprising_hamster/polish-electricity-market-pse) | $0.0003 market data row |
177
+ | 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 |
166
178
  | 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 |
167
179
  | 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 |
168
180
 
@@ -195,7 +207,7 @@ Cursor, `~/.cursor/mcp.json` or `.cursor/mcp.json` in a project:
195
207
  }
196
208
  },
197
209
  "polish-public-registers": {
198
- "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-legal-acts-eli,enterprising_hamster/polish-court-judgments-saos",
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",
199
211
  "headers": {
200
212
  "Authorization": "Bearer <YOUR_APIFY_TOKEN>"
201
213
  }
@@ -239,7 +251,7 @@ Look them up at `https://registry.modelcontextprotocol.io/v0.1/servers?search=ka
239
251
 
240
252
  ## Data sources
241
253
 
242
- 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. 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), and ULDK parcels come without owners.
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, and KRS rows carry company-level fields only (no board members or shareholders).
243
255
 
244
256
  ## License
245
257
 
@@ -2375,5 +2375,132 @@
2375
2375
  }
2376
2376
  }
2377
2377
  }
2378
+ },
2379
+ {
2380
+ "actorId": "enterprising_hamster/polish-new-companies-krs",
2381
+ "name": "polish-new-companies-krs",
2382
+ "title": "Poland New Companies API – KRS Registrations Feed",
2383
+ "description": "New and changed Polish companies every day from the official KRS register (nowe spółki KRS): name, NIP, REGON, address, PKD, share capital, registration date. No personal data. For leads, KYC, CRM and AI agents (MCP). CSV, JSON, Excel.",
2384
+ "isPublic": true,
2385
+ "buildId": "3yawBGDegPz9hilZA",
2386
+ "buildNumber": "0.1.2",
2387
+ "inputSchema": {
2388
+ "title": "Poland new & changed companies (KRS)",
2389
+ "type": "object",
2390
+ "schemaVersion": 1,
2391
+ "properties": {
2392
+ "dateFrom": {
2393
+ "title": "From date",
2394
+ "type": "string",
2395
+ "editor": "textfield",
2396
+ "description": "First bulletin day (YYYY-MM-DD, Europe/Warsaw). Empty with dateTo empty means yesterday. One day when only dateFrom is set.",
2397
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
2398
+ },
2399
+ "dateTo": {
2400
+ "title": "To date",
2401
+ "type": "string",
2402
+ "editor": "textfield",
2403
+ "description": "Last bulletin day (inclusive). Must be used together with dateFrom. At most 31 days in the range.",
2404
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
2405
+ },
2406
+ "events": {
2407
+ "title": "Events",
2408
+ "type": "array",
2409
+ "editor": "select",
2410
+ "description": "New = registration date in the window. Changed = appeared on the bulletin but registered earlier. Last-entry date does not reclassify.",
2411
+ "items": {
2412
+ "type": "string",
2413
+ "enum": [
2414
+ "new",
2415
+ "changed"
2416
+ ],
2417
+ "enumTitles": [
2418
+ "New registrations",
2419
+ "Changed companies"
2420
+ ]
2421
+ },
2422
+ "default": [
2423
+ "new",
2424
+ "changed"
2425
+ ]
2426
+ },
2427
+ "pkd": {
2428
+ "title": "PKD codes",
2429
+ "type": "array",
2430
+ "editor": "stringList",
2431
+ "description": "Match full PKD codes or prefixes (e.g. 93 matches 93.29.B). Empty = any activity.",
2432
+ "default": []
2433
+ },
2434
+ "voivodeships": {
2435
+ "title": "Voivodeships",
2436
+ "type": "array",
2437
+ "editor": "select",
2438
+ "description": "Registered seat must be in one of these voivodeships. Empty = whole country.",
2439
+ "items": {
2440
+ "type": "string",
2441
+ "enum": [
2442
+ "dolnośląskie",
2443
+ "kujawsko-pomorskie",
2444
+ "lubelskie",
2445
+ "lubuskie",
2446
+ "łódzkie",
2447
+ "małopolskie",
2448
+ "mazowieckie",
2449
+ "opolskie",
2450
+ "podkarpackie",
2451
+ "podlaskie",
2452
+ "pomorskie",
2453
+ "śląskie",
2454
+ "świętokrzyskie",
2455
+ "warmińsko-mazurskie",
2456
+ "wielkopolskie",
2457
+ "zachodniopomorskie"
2458
+ ],
2459
+ "enumTitles": [
2460
+ "dolnośląskie",
2461
+ "kujawsko-pomorskie",
2462
+ "lubelskie",
2463
+ "lubuskie",
2464
+ "łódzkie",
2465
+ "małopolskie",
2466
+ "mazowieckie",
2467
+ "opolskie",
2468
+ "podkarpackie",
2469
+ "podlaskie",
2470
+ "pomorskie",
2471
+ "śląskie",
2472
+ "świętokrzyskie",
2473
+ "warmińsko-mazurskie",
2474
+ "wielkopolskie",
2475
+ "zachodniopomorskie"
2476
+ ]
2477
+ },
2478
+ "default": []
2479
+ },
2480
+ "legalForms": {
2481
+ "title": "Legal forms",
2482
+ "type": "array",
2483
+ "editor": "stringList",
2484
+ "description": "Exact forma prawna strings after trimming. Empty = any form.",
2485
+ "default": []
2486
+ },
2487
+ "minShareCapital": {
2488
+ "title": "Minimum share capital",
2489
+ "type": "number",
2490
+ "editor": "number",
2491
+ "description": "Companies without share capital fail this filter when set.",
2492
+ "minimum": 0
2493
+ },
2494
+ "maxItems": {
2495
+ "title": "Max companies",
2496
+ "type": "integer",
2497
+ "editor": "number",
2498
+ "description": "Stop after this many companies are saved (default keeps Start runs cheap).",
2499
+ "default": 20,
2500
+ "minimum": 1,
2501
+ "maximum": 20000
2502
+ }
2503
+ }
2504
+ }
2378
2505
  }
2379
2506
  ]
@@ -38,5 +38,8 @@
38
38
  },
39
39
  "polish-electricity-market-pse": {
40
40
  "description": "Returns Polish electricity market and grid data from the official PSE API (Polskie Sieci Elektroenergetyczne): RCE market price, day-ahead and imbalance prices, Kompas Energetyczny, load and generation mix, as 15-minute, hourly or daily rows. Filter by business-date range (history from 2024-06-14) or lastDays; next-day data appears once PSE publishes it, about 14:00 Europe/Warsaw. Use it for energy prices and grid statistics; no sibling tool covers electricity. Read-only: it only queries the public source and never writes to the registry; onlyNew merely keeps a stateKey memory in your own Apify account. Each call needs the APIFY_TOKEN env var and starts one paid run of the Apify Actor enterprising_hamster/polish-electricity-market-pse on your Apify account, billed pay-per-event per delivered data row 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."
41
+ },
42
+ "polish-new-companies-krs": {
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."
41
44
  }
42
45
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "polish-mcp-servers",
3
- "version": "0.1.1",
4
- "description": "MCP stdio server for Polish public law and registers. Lists 12 Apify Actor tools without a token and runs them with APIFY_TOKEN.",
3
+ "version": "0.1.2",
4
+ "description": "MCP stdio server for Polish public law and registers. Lists 13 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",
@@ -21,7 +21,8 @@
21
21
  "open-data",
22
22
  "eli",
23
23
  "saos",
24
- "cepik"
24
+ "cepik",
25
+ "krs"
25
26
  ],
26
27
  "type": "module",
27
28
  "engines": {