mcp-krs
Instalacja (jedna komenda)
Opublikowany na npm + MCP Registry (io.github.matematicsolutions/mcp-krs). Uruchomienie bez klonowania:
npx -y @matematicsolutions/mcp-krs
Konfiguracja klienta MCP (stdio):
{ "mcpServers": { "mcp-krs": { "command": "npx", "args": ["-y", "@matematicsolutions/mcp-krs"] } } }
(Budowanie ze źródeł — niżej.)
MCP server dla Krajowego Rejestru Sądowego przez oficjalne, darmoweAPI Ministerstwa Sprawiedliwości (api-krs.ms.gov.pl/api/krs).
Po co
Kancelaria pyta o kontrahenta → Patron zwraca pełne dane rejestrowe:nazwa, forma prawna, NIP, REGON, adres, kapitał, skład zarządu, sposóbreprezentacji, prokurenci, główny PKD, status (aktywny / likwidacja /upadłość). Plus URL do wyszukiwarki MS.
Krytyczne dla pracy nad umowami: pytanie „czy ta osoba może samapodpisać tę umowę za spółkę X" sprowadza się do dwóch ruchów —krs__get_board z numerem KRS, potem porównanie sposobu reprezentacjize stroną podpisującą.
Tooly
get_entity(krs, rejestr?)— odpis aktualny (pełne dane podmiotu).get_entity_full(krs, rejestr?)— odpis pełny (z historią wpisów).get_board(krs, rejestr?)— skrócona: tylko reprezentacja(sposób + skład) + prokurenci.
Parametry:
krs— 1-10 cyfr, zera wiodące dopełniane automatycznie(28860→0000028860).rejestr—P(przedsiębiorców, default) lubS(stowarzyszeń).
Każda zwrotka zawiera structuredContent.citations z polami:title, url (MS wyszukiwarka), krs, nazwa, nip, regon,forma_prawna, status, miejscowosc, sad_rejestrowy, rejestr.
Patron czyta pole automatycznie i wystawia w panelu UI jako sekcję„Krajowy Rejestr Sądowy (KRS — MS)".
Stack
- Node 18+ (wbudowany
fetch) @modelcontextprotocol/sdk- Stdio transport
- Throttle 500 ms (2 req/s) — MS API tolerancyjne ale grzecznie
Build + uruchomienie
npm install
npm run build
node dist/index.js
Wpięcie do Patrona
W patron/backend/mcp-servers.json:
{
"name": "krs",
"transport": "stdio",
"command": "node",
"args": ["C:/Users/<TWOJ-UZYTKOWNIK>/mcp-krs/dist/index.js"],
"enabled": true
}
Smoke test
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"s","version":"0"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_board","arguments":{"krs":"28860"}}}' \
| node dist/index.js
Powinno zwrócić ORLEN SA, sposób reprezentacji „dwaj członkowie zarządudziałający łącznie", skład zarządu, prokurenci + URL.
Uwagi RODO
API MS w odpowiedziach zwraca zamaskowane dane osobowe członkówzarządu (gwiazdki w nazwiskach po nowelizacji 2023). Patron przepuszczato surowo, nie demaskuje. Dla pełnych nazwisk: użytkownik kancelariiotwiera link MS w przeglądarce po zalogowaniu.
Lineage
Kontrakt API z oficjalnej dokumentacjiMS api-krs.ms.gov.pl. Implementacja TS od zera.
Licencja
MIT.
Part of the MateMatic legal stack
This server is one of five MCP connectors covering Polish jurisdiction +EU law, used by Patron(AGPL-3.0) and any other MCP-aware legal AI agent.
- mcp-krs (this repo) — Polish company registry (official MS API)
- mcp-saos — common courts, SN, TK, KIO
- mcp-nsa — NSA + 16 WSA administrative courts
- mcp-isap — Polish legislation (Dz.U. + M.P.)
- mcp-eu-sparql — EU law + CJEU (EUR-Lex)
All five MCP servers share the same structuredContent.citationscontract: each tool returns an array of {title, url, snippet?, ...metadata}that legal agents can render directly in their citation panel.
See matematicsolutions/.githubfor the full org profile.