KRS Poland MCP Server
Click on "Install 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 Poland MCP ServerShow me the current KRS record for KRS 0000123456"
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 Poland MCP Server
An MCP server for the Polish National Court Register (KRS) public API.
Usage
This server is designed to be run with npx, allowing you to use it as a tool provider for LLM clients without a global installation.
Running with npx
To start the server, run the following command:
npx krs-poland-mcp-serverConfiguration for LLM Clients
To integrate this server with an LLM client (like LM Studio or others that support MCP), you can configure it to spawn the server process. Here is an example configuration:
{
"mcpServers": {
"krs-poland-mcp-server": {
"command": "npx",
"args": [
"-y",
"krs-poland-mcp-server"
]
}
}
}This configuration tells the client how to start the KRS tool server.
Related MCP server: Rejestr.io MCP Server
Server Functions
The server provides the following tools (checklist):
Get Current KRS Record (
get-krs-current-extract): Retrieves the current status and information for a given entity from the KRS.Get Full KRS Record (
get-krs-full-extract): Retrieves the complete historical data for a given entity from the KRS.
Development
To run the server in a development environment:
Clone the repository.
Install dependencies:
npm installBuild the project:
npm run buildRun the server:
npm start
Author
Piotr Kolawa (@pkolawa) / (Linkedin)
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
2 toolsGet_Current_KRS_Recordget-krs-current-extractB
Get current status of the entity in KRS
| Name | Required | Description | Default |
|---|---|---|---|
| krs | Yes | Numer KRS (10 cyfr) | |
| rejestr | Yes | Rejestr: P – przedsiębiorców, S – stowarzyszeń (P/S, wielkość liter bez znaczenia) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, permissions, rate limits, or output format. The description only states the basic function without additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the tool's purpose without any extraneous information. Every word is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the existence of a sibling tool, the description lacks information about return values and does not explain what 'current status' entails. This makes it incomplete for a tool with two required parameters and no output specification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters adequately. The description does not add meaning beyond what is in the schema, thus baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get current status of the entity in KRS' clearly states the action (Get) and the resource (current status), distinguishing it from the sibling tool 'Get_Full_KRS_Record' which presumably retrieves the full record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the sibling, nor any conditions or prerequisites. It only states what the tool does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Get_Full_KRS_Recordget-krs-full-extractC
Get full status of the entity in KRS
| Name | Required | Description | Default |
|---|---|---|---|
| krs | Yes | Numer KRS (10 cyfr) | |
| rejestr | Yes | Rejestr: P – przedsiębiorców, S – stowarzyszeń (P/S, wielkość liter bez znaczenia) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the burden. It does not disclose any behavioral traits such as whether the operation is read-only, any rate limits, or data freshness. The lack of detail makes it hard to anticipate tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it lacks structure (e.g., bullet points) and does not elaborate on key aspects. It could be improved without adding excessive length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about what 'full status' includes, but it does not. This is insufficient for a tool likely returning complex data, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the parameter meanings (krs pattern, rejestr enum) are already documented in the schema. The description adds no additional semantic value beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get full status of the entity in KRS' indicates the tool retrieves status information, but 'full status' is vague. It distinguishes from 'Get_Current_KRS_Record' only by the word 'full', leaving ambiguity about what additional data is included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the sibling 'Get_Current_KRS_Record'. There is no mention of prerequisites, typical use cases, or conditions for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.3.1- First observed
Get_Current_KRS_Record - First observed
Get_Full_KRS_Record
TDQS
Both tools retrieve KRS records, and their names ('Current' vs 'Full') are unclear in differentiation. Descriptions do not explain what additional data 'Full' provides, leading to potential confusion for an agent.
Both tools use 'Get_' prefix with PascalCase, which is consistent. However, the second word ('Current' vs 'Full') is somewhat arbitrary and not part of a clear pattern (e.g., Get_Current vs Get_Full).
With only 2 tools, the server is very narrowly scoped. This can be appropriate if the sole purpose is retrieving two variants of a record, but it feels thin for a typical MCP server.
Only retrieval operations are provided, lacking search, creation, or updates. If the domain requires any interaction beyond fetching records, the tool surface is severely incomplete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Polish company registry: 4.4M firms, KRS/REGON data, VAT white list checks, financial statements
MCP server for 3M+ Polish companies — KRS & CEIDG financials, ownership, and industry search.
Verify Polish companies by NIP/KRS/REGON + EU VAT (VIES). 9 MCP tools, no key.
Live data from 27 official national company registries. Unmodified. For KYB and due diligence.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables querying the Polish KNF e-RUP payment institution registry, including entity search, details, services, agents, branches, and history.8MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to Poland's largest business registry database, enabling company search, beneficiary checks, and financial document retrieval via natural language.1-
- AlicenseAqualityBmaintenanceMCP server for the Polish company register (KRS) via the official Ministry of Justice API — entities, boards and shareholders with verifiable citations.3611MIT
- 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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pkolawa/krs-poland-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server