krs-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@krs-mcp Look up the KRS number for CD Projekt and show its board"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
krs-mcp
An MCP server for the Polish KRS (Krajowy Rejestr Sądowy — National Court Register). It lets any MCP-capable AI client search Polish companies by name, KRS, NIP or REGON, and fetch official current and full registry extracts.
All four tools are read-only and require no API key, account, or configuration. KRS data is public record. Node.js 22.12 or later is required.
Tools
Tool | Inputs | Returns |
|
| Matching entities with their zero-padded 10-digit KRS numbers, city, registry, bankruptcy flag; paginated. Use this first to resolve a company name to a KRS number. |
|
| Current official extract (odpis aktualny): identity, address, board, capital, PKD — as markdown |
| same as | Full official extract (odpis pełny) as semantic JSON, preserving all historical entries. Much larger; prefer |
| same as | Slim view of just the board, supervisory bodies and proxies (prokurenci) |
Related MCP server: Rejestr.io MCP Server
How it works
Search uses an undocumented endpoint behind the Ministry of Justice's public search website, wyszukiwarka-krs.ms.gov.pl. The endpoint is not part of the documented KRS Open API and may change or reject programmatic access without notice.
Extracts (odpisy) come from the Ministry of Justice's official, keyless API at api-krs.ms.gov.pl.
Search results and current extracts are formatted as compact, LLM-friendly markdown. Full extracts remain semantic JSON so no historical entries are discarded.
Every successful result includes a second text block containing JSON provenance: the source URL, retrieval time, source-production time when supplied, and a description of krs-mcp's processing. The source services do not currently provide a separate production timestamp, so
sourceProducedAtisnullrather than inferred. The full extract remains parseable JSON in the first text block.
Reliability
Requests time out after 15 seconds. Network errors, HTTP 429 responses, and server errors are retried twice with short delays. Authentication or permission failures are returned immediately.
A daily GitHub Actions check verifies company-name search and the official extract API against a known public Soba Labs record. A contract change or access failure opens or updates one incident issue. Temporary upstream outages fail the check without creating an issue. Maintainers can also run npm run check:live manually.
GitHub may disable scheduled workflows in a public repository after 60 days without repository activity. If this repository becomes inactive, a maintainer must re-enable the workflow or run it manually.
The live check detects breakage; it does not make the undocumented search endpoint official or supported. A 403 requires human review. Maintainers and repair agents must not bypass new access controls automatically. The official extract tools remain usable if only name search breaks.
Setup
Claude Code / Codex / opencode-style clients
Add to your MCP configuration:
{
"mcpServers": {
"krs-mcp": {
"command": "npx",
"args": ["-y", "krs-mcp"]
}
}
}From source
git clone https://github.com/soba-labs/krs-mcp.git
cd krs-mcp
npm install && npm run buildnpm test is fully self-contained (synthetic fixtures, no network). Optionally, node scripts/fetch-test-fixtures.mjs refreshes ignored live captures for manual comparison with KRS 0001245101.
{
"mcpServers": {
"krs-mcp": {
"command": "node",
"args": ["<path-to-repo>/dist/index.js"]
}
}
}Example workflow
search_companieswith"query": "allegro"→ get the padded KRS numberget_companywith"krs": "0000245961"→ current extractget_boardwith the same KRS → just the people
Need an MCP server for your own registry, CRM or internal data? Talk to Soba Labs.
Data reuse and privacy
The Ministry of Justice's public-sector information reuse conditions require users to identify the source, the time the information was produced and obtained, and any processing applied to it. krs-mcp adds those disclosure fields to every successful tool result and explicitly marks an unavailable source-production time as null. Downstream users remain responsible for preserving the required attribution and complying with applicable privacy and reuse rules.
krs-mcp sends requests only to the Ministry's KRS services. It has no telemetry and does not persist registry responses. Your MCP client may send tool output to its configured model provider; review that provider's privacy terms before processing personal data. The Ministry controls masking in the source responses, and krs-mcp does not independently redact fields in full extracts.
Disclaimer
This project is not affiliated with, endorsed by, or connected to the Polish Ministry of Justice (Ministerstwo Sprawiedliwości). Registry data is fetched from public government sources. Formatted tools transform or select fields as described above; full extracts are passed through as JSON. Provided without warranty of any kind.
License
Read more
KRS MCP server: look up Polish companies from Claude: why we built krs-mcp, setup, and a worked lookup.
What is MCP?: the Model Context Protocol in plain language.
Built by Soba Labs
krs-mcp is free and open source under the MIT license, built and maintained by Soba Labs, an AI-native software development agency that builds and operates production agentic systems. If you need an MCP server or an agent built on your own data, talk to Soba Labs or write to contact@sobalabs.ai.
Available Tools
4 toolsget_boardGet KRS board membersARead-only
List the board, supervisory bodies and proxies of a Polish company from its current KRS extract. Resolve the KRS number first with search_companies.
Inputs: krs (required), rejestr.
get_companyGet current KRS extractARead-only
Fetch the CURRENT (aktualny) official extract of a Polish company from the KRS registry by its 1-10 digit KRS number. Returns identity, address, board, capital and PKD as markdown.
Inputs: krs (required), rejestr.
get_company_fullGet full KRS extractARead-only
Fetch the FULL (pelny) official semantic JSON extract of a Polish company from the KRS registry by its 1-10 digit KRS number. Preserves all historical entries. Much larger than the current extract; use get_company unless history is needed.
Inputs: krs (required), rejestr.
search_companiesSearch the KRS registryARead-only
Search Polish companies in the KRS (National Court Register) by name or partial name ("query"), KRS, NIP or REGON. Returns matching entities with their padded 10-digit KRS numbers — use this FIRST to resolve a company name to a KRS number before calling get_company / get_company_full / get_board.
Inputs: krs, nip, name, page, +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
search_companies is clearly a resolver, and get_company vs get_company_full are distinguished by current vs historical and markdown vs JSON output. get_board overlaps noticeably with get_company, which already returns the board, though the description hints at extra supervisory-body/proxy detail.
All four names are lowercase snake_case following a verb_noun pattern (search_companies, get_company, get_board). The _full suffix on get_company_full is a readable, predictable variant rather than a convention break.
Four tools is a tight, well-scoped surface for a registry lookup server: one resolver plus three targeted retrieval variants. Nothing feels redundant or padded.
Core lifecycle is covered: search by name/KRS/NIP/REGON, current extract, full historical extract, and board data. Minor gaps remain—no shareholder/beneficial-owner or financial-statement retrieval, and search lacks PKD/address filtering—but agents can work around these.
Maintenance
Related MCP Connectors
Verify Polish companies by NIP/KRS/REGON + EU VAT (VIES). 14 MCP tools (9 no-key).
Polish company records from the official KRS register API, with alerts on new registry entries.
Polish companies and people: KRS, CEIDG, financials, boards, VAT, sanctions. Free, no API key.
Polish company data from KRS: profiles, historical connections, financials, state aid.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server providing AI assistants access to Polish public registries (KRS, CEIDG) and statistical data (GUS BDL) for querying companies, sole proprietorships, and regional statistics.7MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to Poland's largest business registry database, enabling company search, beneficiary checks, and financial document retrieval via natural language.1-
- AlicenseCqualityCmaintenanceEnables querying the Polish National Court Register (KRS) to retrieve current and historical entity data.2114 npm4MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for verifying Polish business entities from the National Court Register (KRS) and VAT White List. Allows querying by KRS, NIP, or REGON to retrieve official company data including name, address, board, and capital.Apache 2.0