polish-mcp-servers 0.1.1 → 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 CHANGED
@@ -1,11 +1,47 @@
1
1
  # Polish MCP servers
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
+ [![npm](https://img.shields.io/npm/v/polish-mcp-servers)](https://www.npmjs.com/package/polish-mcp-servers)
5
+ ![License: MIT](https://img.shields.io/badge/license-MIT-blue)
4
6
 
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).
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
+ ![Demo: an MCP client lists the 13 tools over stdio, then calls polish-new-companies-krs and gets one company back as JSON {items, truncated}](docs/demo.gif)
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
 
43
+ 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).
44
+
9
45
  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
46
 
11
47
  ## Tools
@@ -24,22 +60,32 @@ Each call returns at most 100 dataset items and at most 256 KiB of JSON. Pass `m
24
60
  | `polish-healthcare-facilities-rpwdl` | RPWDL facilities with address, contact, specialties, and beds. | [Store](https://apify.com/enterprising_hamster/polish-healthcare-facilities-rpwdl) |
25
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) |
26
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) |
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) |
27
65
 
28
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.
29
67
 
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`.
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`.
31
69
 
32
70
  ## Install
33
71
 
34
- From GitHub, without an npm publish:
72
+ From npm ([`polish-mcp-servers`](https://www.npmjs.com/package/polish-mcp-servers)):
35
73
 
36
74
  ```bash
37
- npx -y github:kamilkaczmareksolutions/polish-mcp-servers
75
+ npx -y polish-mcp-servers
38
76
  ```
39
77
 
40
78
  Law only, or registers only:
41
79
 
42
80
  ```bash
81
+ npx -y --package polish-mcp-servers polish-law-mcp
82
+ npx -y --package polish-mcp-servers polish-public-registers
83
+ ```
84
+
85
+ Alternative, straight from GitHub (latest `main`, no npm registry):
86
+
87
+ ```bash
88
+ npx -y github:kamilkaczmareksolutions/polish-mcp-servers
43
89
  npx -y --package github:kamilkaczmareksolutions/polish-mcp-servers polish-law-mcp
44
90
  npx -y --package github:kamilkaczmareksolutions/polish-mcp-servers polish-public-registers
45
91
  ```
@@ -77,21 +123,21 @@ Claude Desktop reads `claude_desktop_config.json`. Cursor reads `~/.cursor/mcp.j
77
123
  "mcpServers": {
78
124
  "polish-mcp": {
79
125
  "command": "npx",
80
- "args": ["-y", "github:kamilkaczmareksolutions/polish-mcp-servers"],
126
+ "args": ["-y", "polish-mcp-servers"],
81
127
  "env": {
82
128
  "APIFY_TOKEN": "<YOUR_APIFY_TOKEN>"
83
129
  }
84
130
  },
85
131
  "polish-law": {
86
132
  "command": "npx",
87
- "args": ["-y", "--package", "github:kamilkaczmareksolutions/polish-mcp-servers", "polish-law-mcp"],
133
+ "args": ["-y", "--package", "polish-mcp-servers", "polish-law-mcp"],
88
134
  "env": {
89
135
  "APIFY_TOKEN": "<YOUR_APIFY_TOKEN>"
90
136
  }
91
137
  },
92
138
  "polish-public-registers": {
93
139
  "command": "npx",
94
- "args": ["-y", "--package", "github:kamilkaczmareksolutions/polish-mcp-servers", "polish-public-registers"],
140
+ "args": ["-y", "--package", "polish-mcp-servers", "polish-public-registers"],
95
141
  "env": {
96
142
  "APIFY_TOKEN": "<YOUR_APIFY_TOKEN>"
97
143
  }
@@ -107,7 +153,7 @@ Omit `APIFY_TOKEN` if you only want `tools/list`.
107
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.
108
154
 
109
155
  - **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).
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).
111
157
 
112
158
  | Server | MCP Registry name | MCP URL (Streamable HTTP) |
113
159
  |---|---|---|
@@ -118,7 +164,7 @@ The same data is also available as hosted MCP servers on [Apify](https://apify.c
118
164
  ### Polish Public Registers URL
119
165
 
120
166
  ```
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
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
122
168
  ```
123
169
 
124
170
  You can drop Actors from the `tools=` list to expose only the registers you need.
@@ -149,7 +195,7 @@ Pricing (pay per event, FREE/BRONZE Apify plan tier):
149
195
 
150
196
  ### Polish Public Registers tools
151
197
 
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).
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).
153
199
 
154
200
  Prices are per delivered result, FREE/BRONZE Apify plan tier. Higher plan tiers pay less; see each Actor page.
155
201
 
@@ -163,6 +209,8 @@ Prices are per delivered result, FREE/BRONZE Apify plan tier. Higher plan tiers
163
209
  | Healthcare facilities (RPWDL) | [polish-healthcare-facilities-rpwdl](https://apify.com/enterprising_hamster/polish-healthcare-facilities-rpwdl) | $0.004 facility |
164
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 |
165
211
  | Electricity market (PSE API) | [polish-electricity-market-pse](https://apify.com/enterprising_hamster/polish-electricity-market-pse) | $0.0003 market data row |
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 |
166
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 |
167
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 |
168
216
 
@@ -195,7 +243,7 @@ Cursor, `~/.cursor/mcp.json` or `.cursor/mcp.json` in a project:
195
243
  }
196
244
  },
197
245
  "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",
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",
199
247
  "headers": {
200
248
  "Authorization": "Bearer <YOUR_APIFY_TOKEN>"
201
249
  }
@@ -239,7 +287,7 @@ Look them up at `https://registry.modelcontextprotocol.io/v0.1/servers?search=ka
239
287
 
240
288
  ## Data sources
241
289
 
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.
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.
243
291
 
244
292
  ## License
245
293
 
@@ -2375,5 +2375,232 @@
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
+ }
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
+ }
2378
2605
  }
2379
2606
  ]
@@ -38,5 +38,11 @@
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."
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."
41
47
  }
42
48
  }
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.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",
@@ -21,7 +21,10 @@
21
21
  "open-data",
22
22
  "eli",
23
23
  "saos",
24
- "cepik"
24
+ "cepik",
25
+ "krs",
26
+ "regon",
27
+ "nip"
25
28
  ],
26
29
  "type": "module",
27
30
  "engines": {