polish-mcp-servers 0.1.2 → 0.1.4
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 +46 -7
- package/catalog/actors.json +335 -1
- package/catalog/tool-descriptions.json +9 -0
- package/package.json +8 -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, MSiG company announcements, Ukraine Prozorro tenders, building permits, land parcels, EV chargers, electricity prices and more (16 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 16 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 16 tools), `polish-law-mcp` (law only), `polish-public-registers` (the other 15).
|
|
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 16 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,13 @@ 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) |
|
|
65
|
+
| `ukraine-prozorro-tenders` | Ukraine Prozorro tenders with English fields, CPV, delivery oblast, UAH value, deadlines, and links. Daily only-new alerts. | [Store](https://apify.com/enterprising_hamster/ukraine-prozorro-tenders) |
|
|
66
|
+
| `polish-company-announcements-msig` | Monitor Sądowy i Gospodarczy notices for companies and other legal entities, with KRS and court. Natural persons excluded. | [Store](https://apify.com/enterprising_hamster/polish-company-announcements-msig) |
|
|
30
67
|
|
|
31
68
|
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
69
|
|
|
33
|
-
`polish-mcp-servers` and `polish-mcp` list all
|
|
70
|
+
`polish-mcp-servers` and `polish-mcp` list all 16. `polish-law-mcp` lists only `polish-law-mcp-server`. `polish-public-registers` lists the other 15, including `cee-public-tenders` and `ukraine-prozorro-tenders`.
|
|
34
71
|
|
|
35
72
|
## Install
|
|
36
73
|
|
|
@@ -118,7 +155,7 @@ Omit `APIFY_TOKEN` if you only want `tools/list`.
|
|
|
118
155
|
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
156
|
|
|
120
157
|
- **Polish Law MCP**: Polish statutes from the Sejm ELI API (Dziennik Ustaw, Monitor Polski) and court judgments from SAOS.
|
|
121
|
-
- **Polish Public Registers**:
|
|
158
|
+
- **Polish Public Registers**: 13 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, court and business gazette (MSiG), legal acts, court judgments).
|
|
122
159
|
|
|
123
160
|
| Server | MCP Registry name | MCP URL (Streamable HTTP) |
|
|
124
161
|
|---|---|---|
|
|
@@ -129,7 +166,7 @@ The same data is also available as hosted MCP servers on [Apify](https://apify.c
|
|
|
129
166
|
### Polish Public Registers URL
|
|
130
167
|
|
|
131
168
|
```
|
|
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
|
|
169
|
+
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-company-announcements-msig,enterprising_hamster/polish-legal-acts-eli,enterprising_hamster/polish-court-judgments-saos
|
|
133
170
|
```
|
|
134
171
|
|
|
135
172
|
You can drop Actors from the `tools=` list to expose only the registers you need.
|
|
@@ -160,7 +197,7 @@ Pricing (pay per event, FREE/BRONZE Apify plan tier):
|
|
|
160
197
|
|
|
161
198
|
### Polish Public Registers tools
|
|
162
199
|
|
|
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` (
|
|
200
|
+
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` (17 tools in total).
|
|
164
201
|
|
|
165
202
|
Prices are per delivered result, FREE/BRONZE Apify plan tier. Higher plan tiers pay less; see each Actor page.
|
|
166
203
|
|
|
@@ -175,6 +212,8 @@ Prices are per delivered result, FREE/BRONZE Apify plan tier. Higher plan tiers
|
|
|
175
212
|
| 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
213
|
| Electricity market (PSE API) | [polish-electricity-market-pse](https://apify.com/enterprising_hamster/polish-electricity-market-pse) | $0.0003 market data row |
|
|
177
214
|
| 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 |
|
|
215
|
+
| 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 |
|
|
216
|
+
| Court and business gazette (MSiG) | [polish-company-announcements-msig](https://apify.com/enterprising_hamster/polish-company-announcements-msig) | $0.003 announcement |
|
|
178
217
|
| 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
218
|
| 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
219
|
|
|
@@ -207,7 +246,7 @@ Cursor, `~/.cursor/mcp.json` or `.cursor/mcp.json` in a project:
|
|
|
207
246
|
}
|
|
208
247
|
},
|
|
209
248
|
"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",
|
|
249
|
+
"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-company-announcements-msig,enterprising_hamster/polish-legal-acts-eli,enterprising_hamster/polish-court-judgments-saos",
|
|
211
250
|
"headers": {
|
|
212
251
|
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
|
|
213
252
|
}
|
|
@@ -251,7 +290,7 @@ Look them up at `https://registry.modelcontextprotocol.io/v0.1/servers?search=ka
|
|
|
251
290
|
|
|
252
291
|
## Data sources
|
|
253
292
|
|
|
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,
|
|
293
|
+
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, MSiG (Monitor Sądowy i Gospodarczy). The `ukraine-prozorro-tenders` tool reads the official Prozorro API and is not a Polish register, same as `cee-public-tenders`. 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), REGON rows carry no phone, fax or email, and MSiG notices about natural persons are excluded with `fullText` off unless the caller asks for it.
|
|
255
294
|
|
|
256
295
|
## License
|
|
257
296
|
|
package/catalog/actors.json
CHANGED
|
@@ -2502,5 +2502,339 @@
|
|
|
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
|
+
}
|
|
2605
|
+
},
|
|
2606
|
+
{
|
|
2607
|
+
"actorId": "enterprising_hamster/ukraine-prozorro-tenders",
|
|
2608
|
+
"name": "ukraine-prozorro-tenders",
|
|
2609
|
+
"title": "Ukraine Prozorro Tenders API – English, CPV & Daily Alerts",
|
|
2610
|
+
"description": "Ukraine public tenders from the official Prozorro API for foreign contractors and reconstruction work: CPV, keywords, delivery oblast, UAH value, deadlines, links. Daily only-new alerts. JSON, CSV, Excel.",
|
|
2611
|
+
"isPublic": true,
|
|
2612
|
+
"buildId": "Uw5LNJaa3bYp5QL6m",
|
|
2613
|
+
"buildNumber": "0.1.3",
|
|
2614
|
+
"inputSchema": {
|
|
2615
|
+
"schemaVersion": 1,
|
|
2616
|
+
"title": "Ukraine Prozorro tenders input",
|
|
2617
|
+
"type": "object",
|
|
2618
|
+
"properties": {
|
|
2619
|
+
"lastDays": {
|
|
2620
|
+
"title": "Modified in the last N days",
|
|
2621
|
+
"type": "integer",
|
|
2622
|
+
"editor": "number",
|
|
2623
|
+
"minimum": 1,
|
|
2624
|
+
"maximum": 90,
|
|
2625
|
+
"description": "Walk the modification feed newest first until dateModified is older than this window. Publication filters apply on the tender document.",
|
|
2626
|
+
"default": 1,
|
|
2627
|
+
"prefill": 1
|
|
2628
|
+
},
|
|
2629
|
+
"onlyOpen": {
|
|
2630
|
+
"title": "Only open competitive tenders",
|
|
2631
|
+
"type": "boolean",
|
|
2632
|
+
"editor": "checkbox",
|
|
2633
|
+
"description": "Keep active.enquiries and active.tendering only. Direct awards (reporting, negotiation) are always excluded.",
|
|
2634
|
+
"default": true,
|
|
2635
|
+
"prefill": true
|
|
2636
|
+
},
|
|
2637
|
+
"includeDetails": {
|
|
2638
|
+
"title": "Include description text",
|
|
2639
|
+
"type": "boolean",
|
|
2640
|
+
"editor": "checkbox",
|
|
2641
|
+
"description": "When enabled, store Prozorro's description and charge the tender-with-details event.",
|
|
2642
|
+
"default": false,
|
|
2643
|
+
"prefill": false
|
|
2644
|
+
},
|
|
2645
|
+
"maxItems": {
|
|
2646
|
+
"title": "Maximum tenders to save",
|
|
2647
|
+
"type": "integer",
|
|
2648
|
+
"editor": "number",
|
|
2649
|
+
"minimum": 1,
|
|
2650
|
+
"maximum": 10000,
|
|
2651
|
+
"description": "Stop scheduling new detail requests once this many rows are pushed.",
|
|
2652
|
+
"default": 50,
|
|
2653
|
+
"prefill": 50
|
|
2654
|
+
},
|
|
2655
|
+
"maxRequestsPerSecond": {
|
|
2656
|
+
"title": "Maximum requests per second",
|
|
2657
|
+
"type": "number",
|
|
2658
|
+
"editor": "number",
|
|
2659
|
+
"minimum": 0.2,
|
|
2660
|
+
"maximum": 5,
|
|
2661
|
+
"description": "Minimum spacing between list and detail HTTP starts. The list docs describe a separate sync cadence of about five minutes, which is not this cap.",
|
|
2662
|
+
"default": 5,
|
|
2663
|
+
"prefill": 5
|
|
2664
|
+
},
|
|
2665
|
+
"onlyNew": {
|
|
2666
|
+
"title": "Only tenders not seen before",
|
|
2667
|
+
"type": "boolean",
|
|
2668
|
+
"editor": "checkbox",
|
|
2669
|
+
"description": "Skip ids stored under stateKey in the ukraine-prozorro-seen key-value store (50,000 ids per key).",
|
|
2670
|
+
"default": false,
|
|
2671
|
+
"prefill": false
|
|
2672
|
+
},
|
|
2673
|
+
"stateKey": {
|
|
2674
|
+
"title": "State key for only-new runs",
|
|
2675
|
+
"type": "string",
|
|
2676
|
+
"editor": "textfield",
|
|
2677
|
+
"isSecret": true,
|
|
2678
|
+
"description": "Key in the seen store when onlyNew is true. Use a unique name per alert task."
|
|
2679
|
+
},
|
|
2680
|
+
"keywords": {
|
|
2681
|
+
"title": "Keywords",
|
|
2682
|
+
"type": "array",
|
|
2683
|
+
"editor": "stringList",
|
|
2684
|
+
"description": "Optional. Keep tenders whose title, English title, description, or item text contains any keyword (case- and accent-insensitive).",
|
|
2685
|
+
"default": [],
|
|
2686
|
+
"prefill": []
|
|
2687
|
+
},
|
|
2688
|
+
"cpvCodes": {
|
|
2689
|
+
"title": "CPV prefixes",
|
|
2690
|
+
"type": "array",
|
|
2691
|
+
"editor": "stringList",
|
|
2692
|
+
"description": "Optional. Match any item CPV code that starts with the given prefix (2–8 digits). The list API cannot filter by CPV.",
|
|
2693
|
+
"default": [],
|
|
2694
|
+
"prefill": []
|
|
2695
|
+
},
|
|
2696
|
+
"regions": {
|
|
2697
|
+
"title": "Delivery oblasts",
|
|
2698
|
+
"type": "array",
|
|
2699
|
+
"editor": "stringList",
|
|
2700
|
+
"description": "Optional. Match items[].deliveryAddress.region as published (for example Херсонська область). Buyer address is not used.",
|
|
2701
|
+
"default": [],
|
|
2702
|
+
"prefill": []
|
|
2703
|
+
},
|
|
2704
|
+
"minValueUah": {
|
|
2705
|
+
"title": "Minimum value (UAH)",
|
|
2706
|
+
"type": "number",
|
|
2707
|
+
"editor": "number",
|
|
2708
|
+
"minimum": 0,
|
|
2709
|
+
"description": "Optional. Tenders without UAH value fail this filter."
|
|
2710
|
+
},
|
|
2711
|
+
"maxValueUah": {
|
|
2712
|
+
"title": "Maximum value (UAH)",
|
|
2713
|
+
"type": "number",
|
|
2714
|
+
"editor": "number",
|
|
2715
|
+
"minimum": 0,
|
|
2716
|
+
"description": "Optional. Tenders without UAH value fail this filter."
|
|
2717
|
+
}
|
|
2718
|
+
}
|
|
2719
|
+
}
|
|
2720
|
+
},
|
|
2721
|
+
{
|
|
2722
|
+
"actorId": "enterprising_hamster/polish-company-announcements-msig",
|
|
2723
|
+
"name": "polish-company-announcements-msig",
|
|
2724
|
+
"title": "Poland Court & Business Gazette API – MSiG Announcements",
|
|
2725
|
+
"description": "Daily Monitor Sądowy i Gospodarczy (Polish Court and Business Gazette) notices about companies and other legal entities: bankruptcy, restructuring, liquidation, mergers, transformations, creditor calls, with KRS and court. Natural persons excluded. JSON, CSV, Excel.",
|
|
2726
|
+
"isPublic": true,
|
|
2727
|
+
"buildId": "r9zsaPD1AtiXU36Yw",
|
|
2728
|
+
"buildNumber": "0.1.4",
|
|
2729
|
+
"inputSchema": {
|
|
2730
|
+
"schemaVersion": 1,
|
|
2731
|
+
"title": "Poland MSiG announcements input",
|
|
2732
|
+
"type": "object",
|
|
2733
|
+
"properties": {
|
|
2734
|
+
"lastDays": {
|
|
2735
|
+
"title": "Last N calendar days",
|
|
2736
|
+
"type": "integer",
|
|
2737
|
+
"editor": "number",
|
|
2738
|
+
"minimum": 1,
|
|
2739
|
+
"maximum": 90,
|
|
2740
|
+
"description": "Keep issues whose cover date is on or after today minus N-1 days. Ignored when dateFrom or dateTo is set. Default 1 is today's issue only.",
|
|
2741
|
+
"default": 1,
|
|
2742
|
+
"prefill": 1
|
|
2743
|
+
},
|
|
2744
|
+
"dateFrom": {
|
|
2745
|
+
"title": "Issue date from",
|
|
2746
|
+
"type": "string",
|
|
2747
|
+
"editor": "textfield",
|
|
2748
|
+
"description": "Inclusive ISO date (YYYY-MM-DD). When set, lastDays is ignored."
|
|
2749
|
+
},
|
|
2750
|
+
"dateTo": {
|
|
2751
|
+
"title": "Issue date to",
|
|
2752
|
+
"type": "string",
|
|
2753
|
+
"editor": "textfield",
|
|
2754
|
+
"description": "Inclusive ISO date (YYYY-MM-DD). When set, lastDays is ignored."
|
|
2755
|
+
},
|
|
2756
|
+
"announcementKinds": {
|
|
2757
|
+
"title": "Announcement kinds",
|
|
2758
|
+
"type": "array",
|
|
2759
|
+
"editor": "select",
|
|
2760
|
+
"items": {
|
|
2761
|
+
"type": "string",
|
|
2762
|
+
"enum": [
|
|
2763
|
+
"bankruptcy",
|
|
2764
|
+
"restructuring",
|
|
2765
|
+
"liquidation",
|
|
2766
|
+
"merger",
|
|
2767
|
+
"demerger",
|
|
2768
|
+
"transformation",
|
|
2769
|
+
"dissolution",
|
|
2770
|
+
"creditor_call",
|
|
2771
|
+
"other"
|
|
2772
|
+
]
|
|
2773
|
+
},
|
|
2774
|
+
"description": "Optional. Keep only these kinds. Empty means every legal-entity notice.",
|
|
2775
|
+
"default": [],
|
|
2776
|
+
"prefill": []
|
|
2777
|
+
},
|
|
2778
|
+
"keywords": {
|
|
2779
|
+
"title": "Keywords",
|
|
2780
|
+
"type": "array",
|
|
2781
|
+
"editor": "stringList",
|
|
2782
|
+
"description": "Matched against the entity name, the legal form, the chapter line, the subsection line, the kind, and KRS. The notice body is not searched.",
|
|
2783
|
+
"default": [],
|
|
2784
|
+
"prefill": []
|
|
2785
|
+
},
|
|
2786
|
+
"krsNumbers": {
|
|
2787
|
+
"title": "KRS numbers",
|
|
2788
|
+
"type": "array",
|
|
2789
|
+
"editor": "stringList",
|
|
2790
|
+
"description": "Optional. Keep notices whose header KRS matches (6-10 digits, padded to 10).",
|
|
2791
|
+
"default": [],
|
|
2792
|
+
"prefill": []
|
|
2793
|
+
},
|
|
2794
|
+
"fullText": {
|
|
2795
|
+
"title": "Include full notice text",
|
|
2796
|
+
"type": "boolean",
|
|
2797
|
+
"editor": "checkbox",
|
|
2798
|
+
"description": "Off by default. When on, fullText is the notice body and can name liquidators, shareholders, and other people. Turn it on only when you have a legal basis to store that text. Notices about natural persons are never returned.",
|
|
2799
|
+
"default": false,
|
|
2800
|
+
"prefill": false
|
|
2801
|
+
},
|
|
2802
|
+
"maxItems": {
|
|
2803
|
+
"title": "Maximum announcements to save",
|
|
2804
|
+
"type": "integer",
|
|
2805
|
+
"editor": "number",
|
|
2806
|
+
"minimum": 1,
|
|
2807
|
+
"maximum": 10000,
|
|
2808
|
+
"description": "Stop pushing once this many legal-entity rows are saved.",
|
|
2809
|
+
"default": 50,
|
|
2810
|
+
"prefill": 50
|
|
2811
|
+
},
|
|
2812
|
+
"maxRequestsPerSecond": {
|
|
2813
|
+
"title": "Maximum requests per second",
|
|
2814
|
+
"type": "number",
|
|
2815
|
+
"editor": "number",
|
|
2816
|
+
"minimum": 0.2,
|
|
2817
|
+
"maximum": 5,
|
|
2818
|
+
"description": "Minimum spacing between GetFiles and PDF download requests to the Ministry site.",
|
|
2819
|
+
"default": 1,
|
|
2820
|
+
"prefill": 1
|
|
2821
|
+
},
|
|
2822
|
+
"onlyNew": {
|
|
2823
|
+
"title": "Only announcements not seen before",
|
|
2824
|
+
"type": "boolean",
|
|
2825
|
+
"editor": "checkbox",
|
|
2826
|
+
"description": "Skip ids stored under stateKey in the polish-msig-seen key-value store (50,000 ids per key).",
|
|
2827
|
+
"default": false,
|
|
2828
|
+
"prefill": false
|
|
2829
|
+
},
|
|
2830
|
+
"stateKey": {
|
|
2831
|
+
"title": "State key for only-new runs",
|
|
2832
|
+
"type": "string",
|
|
2833
|
+
"editor": "textfield",
|
|
2834
|
+
"isSecret": true,
|
|
2835
|
+
"description": "Key in the seen store when onlyNew is true. Use a unique name per alert task."
|
|
2836
|
+
}
|
|
2837
|
+
}
|
|
2838
|
+
}
|
|
2505
2839
|
}
|
|
2506
|
-
]
|
|
2840
|
+
]
|
|
@@ -41,5 +41,14 @@
|
|
|
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."
|
|
47
|
+
},
|
|
48
|
+
"ukraine-prozorro-tenders": {
|
|
49
|
+
"description": "Lists Ukraine public tenders from the official Prozorro API for foreign contractors and reconstruction work, with English field names, CPV codes, delivery oblast, value in UAH, status, bid deadline and a link to the tender. Filter by lastDays, onlyOpen, keywords, CPV prefixes, delivery regions and a UAH value range. includeDetails adds the description and is charged at a higher rate. onlyNew with a stateKey is the daily alert of tenders not seen before. It does not cover Poland. Use it for the official Prozorro feed; for Czech, Slovak, Hungarian and Ukrainian tenders in one schema use cee-public-tenders, and for Polish EU-funded notices use polish-eu-funds-tenders-baza-konkurencyjnosci. 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/ukraine-prozorro-tenders on your Apify account, billed pay-per-event per delivered tender (includeDetails costs more) 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."
|
|
50
|
+
},
|
|
51
|
+
"polish-company-announcements-msig": {
|
|
52
|
+
"description": "Lists Monitor Sądowy i Gospodarczy (Polish Court and Business Gazette) notices about companies and other legal entities: bankruptcy, restructuring, liquidation, mergers, demergers, transformations, dissolutions and creditor calls, with KRS and court when the notice header has them. Notices about natural persons are never returned. Filter by lastDays (default 1 is today's issue), an inclusive dateFrom and dateTo, announcementKinds, keywords or KRS numbers. fullText is off by default; when on, the notice body can name liquidators, shareholders and other people, so leave it off unless there is a legal basis to store that text. Use it for gazette notices about a company; for newly registered companies use polish-new-companies-krs, and to look up a known NIP, REGON or KRS use polish-company-lookup-regon. 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-company-announcements-msig on your Apify account, billed pay-per-event per delivered announcement 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
53
|
}
|
|
45
54
|
}
|
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.4",
|
|
4
|
+
"description": "MCP stdio server for Polish public law and registers. Lists 16 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,12 @@
|
|
|
22
22
|
"eli",
|
|
23
23
|
"saos",
|
|
24
24
|
"cepik",
|
|
25
|
-
"krs"
|
|
25
|
+
"krs",
|
|
26
|
+
"regon",
|
|
27
|
+
"nip",
|
|
28
|
+
"msig",
|
|
29
|
+
"prozorro",
|
|
30
|
+
"ukraine"
|
|
26
31
|
],
|
|
27
32
|
"type": "module",
|
|
28
33
|
"engines": {
|