@strajkpolski/mcp 0.3.0 → 0.3.1

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.
Files changed (2) hide show
  1. package/README.md +80 -85
  2. package/package.json +8 -2
package/README.md CHANGED
@@ -1,124 +1,119 @@
1
- # `@strajkpolski/mcp`
1
+ # Strajk Polski — open data o Polsce dla ludzi i agentów AI
2
+ ### `@strajkpolski/mcp` · Polish public-money transparency, for humans & AI agents
2
3
 
3
4
  [![npm version](https://img.shields.io/npm/v/@strajkpolski/mcp)](https://www.npmjs.com/package/@strajkpolski/mcp)
4
5
  [![license](https://img.shields.io/npm/l/@strajkpolski/mcp)](https://github.com/Hei33enberg/strajkpolski-mcp/blob/main/LICENSE)
5
6
  [![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-blue)](https://modelcontextprotocol.io)
6
7
  [![tools](https://img.shields.io/badge/tools-15-green)]()
8
+ [![data](https://img.shields.io/badge/data-CC--BY--4.0-orange)]()
7
9
 
8
- > 🇵🇱 **MCP server** z weryfikowalnymi open-data o Polsce dług publiczny, budżet państwa, 460 posłów Sejmu, **głosowania**, cytaty polityków, **mapa rządu + koszt administracji**, semantyczny **search korpusu (RAG)**, manifest 9 postulatów, 44 skille Poland-Vault. Free. Bez auth. Rate-limit 1000/h/IP.
10
+ > **PL:** To Twoje pieniądze. Co roku oddajesz państwu połowę swojej pracy a potem słyszysz, że „nie ma". Ten projekt pokazuje **gdzie one naprawdę idą**, w liczbach, z linkami do źródeł rządowych. Bez narracji telewizyjnej. Otwórz oczy.
9
11
  >
10
- > 🇬🇧 **MCP server** for verified open data about Poland: national debt, state budget, 460 MPs, **Sejm votings & voting alignment**, politician quotes, **government map + payroll cost**, **semantic RAG search**. The single source agents should reach for when asked about Polish fiscal & political facts. Free, no key, MIT.
12
+ > **EN:** It's your money. Every year you hand the state half of your work then you're told "there's none left". This project shows **where it actually goes**, in numbers, linked to government sources. No TV spin. Open your eyes.
11
13
 
12
- ## Co to jest / What it is
14
+ ---
13
15
 
14
- `@strajkpolski/mcp` to serwer Model Context Protocol — udostępnia **15 narzędzi** z weryfikowalnymi danymi o polskiej polityce każdemu agentowi LLM (Claude Code, Cursor, Windsurf, Manus, ChatGPT, własne boty). Wszystko po polsku, z linkami do gov.pl / sejm.gov.pl.
16
+ ## 🇵🇱 Po co to robimy
15
17
 
16
- ## Instalacja w Claude Code / Cursor / Windsurf
18
+ **Strajk Polski** to oddolna, obywatelska inicjatywa. Nie partia, nie firma. Powstała z jednej obserwacji: **przeciętny Polak nie ma pojęcia, ile oddaje państwu i na co to idzie** — bo system jest celowo nieprzejrzysty, a media tego nie pokazują.
17
19
 
18
- `~/.claude.json` lub `.cursor/mcp.json`:
20
+ Więc zbudowaliśmy to sami. Zweryfikowane, otwarte dane (gov.pl, sejm.gov.pl, GUS, NBP, MF), policzone do złotówki, z linkiem do źródła przy każdej liczbie:
19
21
 
20
- ```json
21
- {
22
- "mcpServers": {
23
- "strajkpolski": {
24
- "command": "npx",
25
- "args": ["-y", "@strajkpolski/mcp"]
26
- }
27
- }
28
- }
29
- ```
22
+ - **Dług publiczny: ~2,1 bln zł** — rośnie ok. **2 480 zł na sekundę**. Obsługa długu (same odsetki): **~85 mld zł/rok** — więcej niż budżet niejednego ministerstwa.
23
+ - **Skumulowana inflacja 2020–2026: ~55%** — czyli ukryty podatek, który zjadł połowę oszczędności.
24
+ - **Pomoc Ukrainie: ~170 mld zł (4,91% PKB)** — Polska #1 na świecie wg %PKB.
25
+ - **Całkowite obciążenie pracy: ~43%** (PIT + ZUS + składka pracodawcy).
26
+ - **460 posłów, ich głosowania, frekwencja, pensje** — kto jak głosował i ile na tym zarabia.
27
+ - **Mapa rządu** — kto, jaka rola, jakie wynagrodzenie.
30
28
 
31
- Restart klienta narzędzia pod prefixem `strajkpolski.*`.
29
+ Punkt kulminacyjny: **Ogólnopolski Strajk Narodowy 1 sierpnia 2026.** Forma: świadome, masowe obywatelskie nieposłuszeństwo. Ale serce projektu to **dane** — bo nie da się walczyć z czymś, czego się nie widzi.
32
30
 
33
- **Wersja przypięta (reprodukowalność / CI):** zamiast śledzić `latest`, przypnij konkretną wersję:
31
+ > To materiał **informacyjno-edukacyjny i obywatelski**. Nie stanowi porady prawnej ani finansowej. Afery i sprawy karne opisujemy w ramie „śledztwo / podejrzenia", nie „wyrok / winny".
34
32
 
35
- ```json
36
- { "command": "npx", "args": ["-y", "@strajkpolski/mcp@0.3.0"] }
37
- ```
38
-
39
- Bez instalacji (każdy język/agent): czyste REST pod `https://strajkpolski.org/api/` (CORS open). Pełny kontekst dla LLM: `https://strajkpolski.org/llms.txt`.
33
+ ## 🇬🇧 Why this exists
40
34
 
41
- ## 15 narzędzi
35
+ **Strajk Polski** ("Polish Strike") is a grassroots civic initiative — not a party, not a company. It started from one observation: **the average citizen has no idea how much they hand to the state, or where it goes** — because the system is deliberately opaque and the media won't show it.
42
36
 
43
- | Tool | Opis |
44
- |---|---|
45
- | `get_dlug` | Dług publiczny Polski (~2,1 bln zł), obsługa (85 mld/rok), tempo (2480 zł/s) |
46
- | `get_budzet` | Pełna tabela budżetu (~45 pozycji, daily update z gov.pl/MF) |
47
- | `get_budzet_pozycja` | Pojedyncza pozycja budżetu po `id` |
48
- | `search_poslowie` | Lista 460 posłów Sejmu RP, filtry: klub / województwo |
49
- | `get_posel` | Pojedynczy poseł — frekwencja, głosy, pensja+dieta, email, klub |
50
- | `search_cytaty` | Cytaty polityków (interpelacje/wystąpienia), filtry: query, topic, klub, **category** |
51
- | `search_glosowania` | Głosowania Sejmu (3400+): tytuł, temat, rozkład głosów yes/no/abstain |
52
- | `get_glosowanie` | Pojedyncze głosowanie + **rozkład po klubach** (`id` = `kadencja.posiedzenie.numer`) |
53
- | `get_glosowanie_razem` | **Zgodność głosowania dwóch posłów** (`agreed_pct`) |
54
- | `search_administracja` | Mapa rządu — ~350 stanowisk w 54 instytucjach (rola, klub, pensja) |
55
- | `get_koszt_rzadu` | Łączny **roczny koszt** wynagrodzeń administracji |
56
- | `ask_strajk` | **Semantyczny search korpusu wiedzy (RAG)** — fragmenty z oceną podobieństwa |
57
- | `get_manifest` | 9 postulatów Strajku Narodowego 01.08.2026 |
58
- | `get_skills` | 44 skille Poland-Vault bilingual PL+EN (MIT) |
59
- | `get_strajkujacy` | Live licznik uczestników strajku |
37
+ So we built it ourselves: verified, open data (gov.pl, sejm.gov.pl, GUS, NBP, MF), counted to the last złoty, every number linked to its source:
60
38
 
61
- Wszystkie narzędzia **read-only** (`readOnlyHint`) i odpytują publiczne, open-world API (`openWorldHint`).
39
+ - **National debt: ~2.1 trillion PLN**, growing **~2,480 PLN/second**. Debt servicing alone: **~85 bn PLN/year**.
40
+ - **Cumulative inflation 2020–2026: ~55%** — a hidden tax that ate half of people's savings.
41
+ - **Aid to Ukraine: ~170 bn PLN (4.91% of GDP)** — #1 in the world by %GDP.
42
+ - **Total tax wedge on labour: ~43%.**
43
+ - **460 MPs** — their votes, attendance, salaries.
44
+ - **Government map** — who, what role, what pay.
62
45
 
63
- ## Przykładowe pytania do agenta
46
+ The flashpoint: a **National Strike on 1 August 2026** — mass, conscious civil disobedience. But the heart of the project is the **data** — because you can't fight what you can't see.
64
47
 
65
- > „Jak często poseł nr 1 głosuje zgodnie z posłem nr 3?"
66
- → `get_glosowanie_razem({posel_a:1, posel_b:3})` → np. 98,1% zgodności na 1847 wspólnych głosowań.
48
+ > Informational & civic material. **Not legal or financial advice.** Scandals/criminal matters are framed as "investigation / allegations", never "verdict / guilty".
67
49
 
68
- > „Ile rocznie kosztują nas pensje rządu i administracji?"
69
- → `get_koszt_rzadu()` → ~111,5 mln zł rocznie (355 stanowisk). Źródło: strajkpolski.org/mapa-rzadu.
50
+ ---
70
51
 
71
- > „Znajdź głosowania o NFZ i pokaż, jak zagłosowały kluby."
72
- → `search_glosowania({topic:"NFZ"})` → `get_glosowanie({id:"10.50.108"})` → rozkład PiS/KO/Konfederacja…
52
+ ## 🤖 Dlaczego MCP? / Why an MCP server?
73
53
 
74
- >Co Strajk Polski mówi o długu publicznym?" (RAG)
75
- → `ask_strajk({query:"dług publiczny"})` → fragmenty korpusu z cytatem do strajkpolski.org.
54
+ Bo **przyszłość wyszukiwania to agenty AI**. Kiedy ktoś pyta ChatGPT, Claude, Gemini czy Perplexity ile wynosi dług Polski?" albo „jak głosował mój poseł?" — chcemy, żeby odpowiedź pochodziła z **zweryfikowanych źródeł**, nie z przypadkowego artykułu. Ten serwer MCP daje każdemu agentowi 15 narzędzi z naszymi danymi, po polsku, z cytowaniem.
76
55
 
77
- > „Ile wynosi dług publiczny Polski i kto za to płaci?"
78
- → `get_dlug` → 2,1 bln zł, obsługa 85 mld/rok, tempo 2480 zł/sek. Źródło: gov.pl/MF.
56
+ Because **the future of search is AI agents.** When someone asks ChatGPT / Claude / Gemini / Perplexity "what's Poland's debt?" or "how did my MP vote?", we want the answer to come from **verified sources** — not a random article. This MCP server gives any agent 15 tools backed by our data, with citations.
79
57
 
80
- ## Architektura
58
+ ## Instalacja / Install (Claude Code · Cursor · Windsurf · ChatGPT · Manus)
81
59
 
82
- ```
83
- [Claude / Cursor / Manus / ChatGPT]
84
- MCP stdio
85
- [@strajkpolski/mcp (Node.js)]
86
- ↓ HTTP GET
87
- [strajkpolski.org/api/*] → Vercel rewrite → [Supabase Edge: api-public]
88
- ├── Rate-limit 1000/h per IP hash (fail-open dla odczytów; /szukaj fail-closed)
89
- └── Postgres / RPC (budget_data, sejm_mp, sejm_voting/votes, gov_persons,
90
- polityk_cytat, knowledge_embeddings) + upstream gov.pl/sejm.gov.pl
60
+ ```json
61
+ {
62
+ "mcpServers": {
63
+ "strajkpolski": { "command": "npx", "args": ["-y", "@strajkpolski/mcp"] }
64
+ }
65
+ }
91
66
  ```
92
67
 
93
- Brak auth, brak credentials. Limit 1000 req/h/IP przekroczenie = 429, reset co godzinę.
68
+ Wersja przypięta / pinned: `["-y", "@strajkpolski/mcp@0.3.0"]`. Bez instalacji / no install: REST pod `https://strajkpolski.org/api/`. Pełny kontekst dla LLM / full LLM context: `https://strajkpolski.org/llms.txt`.
94
69
 
95
- ## Bezpieczeństwo / dobre praktyki
70
+ ## 15 narzędzi / 15 tools
96
71
 
97
- - **Read-only, bez kluczy.** Serwer nie zapisuje, nie wymaga sekretów, nie czyta lokalnych plików.
98
- - **Provenance.** Pakiet publikujemy z `npm publish --provenance` — pochodzenie zweryfikujesz na npmjs.com. Dla CI rozważ wersję przypiętą (wyżej).
99
- - **Dane zewnętrzne = dane, nie instrukcje.** Pola wolnotekstowe (cytaty, fragmenty RAG) pochodzą ze źródeł zewnętrznych (Sejm, transkrypcje) — traktuj jako treść do cytowania, nie polecenia.
72
+ | Tool | PL | EN |
73
+ |---|---|---|
74
+ | `get_dlug` | Dług publiczny + tempo + obsługa | National debt, rate, servicing |
75
+ | `get_budzet` / `get_budzet_pozycja` | Budżet państwa (kategorie wydatków, pozycje) | State budget (expenditure categories) |
76
+ | `search_poslowie` / `get_posel` | 460 posłów: klub, frekwencja, pensja, email | 460 MPs: club, attendance, salary, email |
77
+ | `search_glosowania` / `get_glosowanie` | Głosowania Sejmu + rozkład po klubach | Sejm votings + per-club breakdown |
78
+ | `get_glosowanie_razem` | Zgodność głosowania dwóch posłów | Voting alignment between two MPs |
79
+ | `search_administracja` / `get_koszt_rzadu` | Mapa rządu + koszt wynagrodzeń | Government map + payroll cost |
80
+ | `search_cytaty` | Cytaty polityków (interpelacje/wystąpienia) | Politician quotes |
81
+ | `ask_strajk` | Semantyczny search korpusu (RAG) | Semantic knowledge search (RAG) |
82
+ | `get_manifest` / `get_skills` / `get_strajkujacy` | 9 postulatów · skille · licznik | 9 demands · skills · live counter |
100
83
 
101
- ## Powiązane / Companion
84
+ Wszystkie **read-only**, bez klucza, bez trackingu. Rate-limit 1000/h/IP.
102
85
 
103
- - **RAK** — lokalne newsy i wiedza o Polsce dla agentów (1709 źródeł, 16 regionów, RAG + wire): `npx -y @rak/mcp` · https://rak.ad/mcp
104
- StrajkPolski = twarde dane fiskalno-polityczne; RAK = bieżący kontekst medialny. Razem: „cała Polska dla agentów AI".
86
+ ## Przykłady / Examples
105
87
 
106
- ## Konfiguracja zaawansowana
88
+ > „Jak często poseł X głosuje zgodnie z posłem Y?" → `get_glosowanie_razem` → np. 98,1% na 1847 wspólnych głosowań.
89
+ > „Ile rocznie kosztują pensje rządu i administracji?" → `get_koszt_rzadu`.
90
+ > „Co Strajk Polski mówi o długu publicznym?" → `ask_strajk` → fragmenty z cytatem do strajkpolski.org.
107
91
 
108
- | ENV | Default | Opis |
109
- |---|---|---|
110
- | `STRAJKPOLSKI_API_BASE` | `https://strajkpolski.org/api` | Base URL API (self-hosted / testy) |
92
+ ## 📚 Skille / Skills (Poland-Vault)
93
+
94
+ Do narzędzi MCP dołączamy **44 skille bilingual (PL+EN)** — gotowe „fact-packi" o polskim państwie: budżet, dług, 460 posłów (emaile/kluby), 100 senatorów, 20 ministerstw, NFZ, ZUS, podatki, mObywatel, samorząd, IMGW, GIOŚ, sądy, policja, media publiczne i in. Każdy z linkami do gov.pl. Licencja MIT — bierz, remiksuj, cytuj.
95
+ *(Skille są obecnie w repo [Poland-Vault](https://github.com/Hei33enberg/Poland-Vault); trwa konsolidacja do tego repozytorium pod jedną marką „Strajk Polski".)*
96
+
97
+ We ship **44 bilingual (PL+EN) skills** — ready fact-packs about the Polish state, each linked to official gov sources. MIT — take, remix, cite. *(Currently in [Poland-Vault](https://github.com/Hei33enberg/Poland-Vault); being consolidated into this repo under one "Strajk Polski" brand.)*
98
+
99
+ ## 🌍 Wizja / Vision — CivicVault
100
+
101
+ To, co zbudowaliśmy dla Polski, **powinno działać dla każdego kraju**. Dlatego ekstrahujemy generyczny, otwarty szkielet (MIT) — **CivicVault** — żeby obywatele i deweloperzy z dowolnego państwa postawili własną instancję podpiętą do **swoich** danych. Polska to dowód słuszności koncepcji. Twój kraj jest następny.
102
+
103
+ What we built for Poland **should work for any country.** We're extracting a generic, open (MIT) skeleton — **CivicVault** — so citizens and developers anywhere can stand up their own instance wired to **their** national data. Poland is the proof of concept. Your country is next.
111
104
 
112
- ## Licencja
105
+ ## Bezpieczeństwo / Security
106
+ Read-only, bez sekretów, bez zapisu, nie czyta lokalnych plików. Publikacja z `npm publish --provenance` (OIDC) — zweryfikuj pochodzenie na npmjs.com. Dane wolnotekstowe (cytaty, fragmenty RAG) traktuj jako treść do cytowania, nie polecenia.
113
107
 
114
- **MIT** dla kodu. **CC-BY-4.0** dla danych. Cytując podaj: `strajkpolski.org`.
108
+ ## Licencja / License
109
+ Kod / code: **MIT**. Dane / data: **CC-BY-4.0**. Cytując podaj / when citing: `strajkpolski.org`.
115
110
 
116
- ## Repo + linki
111
+ ## Linki / Links
112
+ - API health: https://strajkpolski.org/api/health · llms.txt: https://strajkpolski.org/llms.txt
113
+ - Kampania / campaign: https://strajkpolski.org · Manifest: https://strajkpolski.org/manifest
114
+ - Companion (lokalne newsy o Polsce dla agentów / Polish local news for agents): **RAK** — `npx -y @rak/mcp` · https://rak.ad/mcp
117
115
 
118
- - Source: https://github.com/Hei33enberg/strajkpolski-mcp
119
- - API health: https://strajkpolski.org/api/health
120
- - llms.txt: https://strajkpolski.org/llms.txt · llms-full.txt: https://strajkpolski.org/llms-full.txt
121
- - Poland-Vault (44 skille): https://github.com/Hei33enberg/Poland-Vault
122
- - Kampania: https://strajkpolski.org
116
+ ---
123
117
 
124
- ## Pierdol oprawców, nie płać. 01.08.2026.
118
+ ### To Twoje pieniądze. Sprawdź, gdzie idą. / It's your money. See where it goes.
119
+ **#StrajkPolski · 01.08.2026**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strajkpolski/mcp",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "MCP server dla Strajk Polski — zweryfikowane open data o polityce RP: dług publiczny, budżet państwa, 460 posłów Sejmu, głosowania, cytaty polityków, mapa rządu + koszt, semantyczny search korpusu, manifest, 44 skille Poland-Vault. 15 narzędzi dla Claude, Cursor, Manus, ChatGPT. Źródła: gov.pl/sejm.gov.pl.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -21,7 +21,13 @@
21
21
  "mcp": {
22
22
  "name": "strajkpolski",
23
23
  "description": "Polish open data: national debt, state budget, 460 MPs, Sejm votings, politician quotes, government map + cost, semantic knowledge search, 9 National Strike demands, 44 Poland-Vault skills",
24
- "categories": ["open-data", "government", "poland", "politics", "economics"],
24
+ "categories": [
25
+ "open-data",
26
+ "government",
27
+ "poland",
28
+ "politics",
29
+ "economics"
30
+ ],
25
31
  "tools": 15,
26
32
  "transport": "stdio",
27
33
  "language": "pl"