Skip to main content
Glama
mcp-polish-data

mcp-polish-data

by emilpinski

mcp-polish-data

CI

Status

MCP Server with Polish public data — KRS, CEIDG, GUS BDL for Claude, Cursor, and Windsurf.

Landing page

What is it

A Model Context Protocol (MCP) server that gives AI assistants direct access to Polish government registries and GUS statistics without leaving the chat. Install once, and Claude or Cursor automatically knows how to look up companies in KRS, verify sole traders in CEIDG, and retrieve regional statistics from GUS BDL.

MIT licensed, no API key required.

Related MCP server: krs-verify

Features

  • KRS — look up a company by NIP (via VAT Whitelist — KRS API doesn't support name search), retrieve full extract by 9 or 10-digit KRS number

  • CEIDG — search sole trader businesses by name, NIP, REGON, or owner surname

  • GUS BDL — population by voivodeship, unemployment rate, average gross salary, statistical variable discovery

  • VAT Whitelist (Biala Lista MF) — verify taxpayer VAT status (active/exempt/deregistered), registered bank accounts, SHA-256 response hash for audit trail

  • NIP / REGON / PESEL validation — checksum verification with no API calls; PESEL also extracts date of birth and gender (flagged PII-sensitive)

  • SQLite caching — transparent response cache with per-tool TTL (KRS/CEIDG: 7 days, GUS: 30 days, VAT: 1 day); validation tools are never cached

  • Retry with exponential backoff — handles 429 (respects Retry-After header) and 5xx errors with up to 3 attempts and jitter

  • Graceful degradation — when CEIDG requires a JWT token, the server provides a helpful message instead of crashing

  • Zero configuration — single pip install, no API keys required for basic functions

  • Python 3.11+ — async/await, httpx, FastMCP 2.0

Stack

Layer

Technology

Protocol

Model Context Protocol (MCP)

Framework

FastMCP 2.0

HTTP

httpx (async)

Python

3.11+

Build

Hatchling

Tests

pytest, pytest-asyncio

License

MIT

Getting Started

pip install mcp-polish-data

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "polish-data": {
      "command": "mcp-polish-data"
    }
  }
}

Restart Claude Desktop — tools will appear automatically.

Cursor / Windsurf

git clone https://github.com/emilpinski/mcp-polish-data
cd mcp-polish-data
pip install -e ".[dev]"
pytest tests/ -v -m "not integration"

Available Tools

Tool

Description

krs_search_company(nip)

Search company by NIP (via VAT Whitelist — KRS API doesn't support name search)

krs_get_company_details(krs_number)

Full extract for a 9 or 10-digit KRS number

ceidg_search_business(name, nip, regon, surname)

Search sole traders in CEIDG

gus_get_population(unit_name, year)

Population by voivodeship

gus_get_unemployment_rate(year)

Unemployment rate by voivodeship

gus_get_average_salary(year)

Average gross salary by voivodeship

gus_search_variable(query)

Discover statistical variables in GUS BDL

vat_whitelist_check(nip, check_date)

Check VAT taxpayer status in MF Biala Lista — returns VAT status, registered bank accounts, response hash for audit

validate_nip_number(nip)

Validate NIP checksum — pure local computation, no API calls

validate_regon_number(regon)

Validate REGON checksum (9 or 14 digits) — pure local computation, no API calls

validate_pesel_number(pesel)

Validate PESEL checksum and extract date of birth and gender (PII-sensitive, GDPR applies)

batch_company_lookup(nips)

Look up up to 50 companies by NIP simultaneously — returns name, VAT status, KRS number, REGON per NIP. Results cached 7 days.

cache_stats_info()

Show SQLite cache statistics: total entries, per-tool breakdown, hits in last 24h

Environment Variables

Variable

Description

Required

CEIDG_TOKEN

JWT token for advanced CEIDG endpoints

optional

Example Prompts

  • "Look up NIP 5270103391 and tell me the company name and address"

  • "Compare the unemployment rate in 2023 across all voivodeships"

  • "What is the average salary in Pomerania vs Masovia?"

  • "Find all CEIDG sole traders with surname Kowalski in Kraków"

Status

Live — mcp-polish-data.vercel.app | PyPI: mcp-polish-data


Built by Emil Piński

Screenshots

Landing page and documentation API endpoints overview

Available Tools

7 tools
ceidg_search_businessA

Szukaj przedsiębiorcy (jednoosobowej działalności gospodarczej) w CEIDG.

Użyj gdy użytkownik pyta o JDG, freelancera, osobę fizyczną prowadzącą działalność gospodarczą. Dla spółek użyj krs_search_company.

Wymaga co najmniej jednego z: name, nip, regon, surname.

Inputs: name, nip, regon, surname, +1 more. Returns: object

gus_get_average_salaryB

Pobierz przeciętne miesięczne wynagrodzenie brutto dla województw z GUS BDL.

Inputs: year. Returns: object

gus_get_populationA

Pobierz dane demograficzne (ludność) z GUS BDL.

Domyślnie zwraca ludność wszystkich 16 województw na 31 XII danego roku. Podaj unit_name (np. "Mazowieckie") aby zawęzić wyniki.

Inputs: unit_name, year. Returns: object

gus_get_unemployment_rateA

Pobierz stopy bezrobocia rejestrowanego dla 16 województw z GUS BDL.

Inputs: year. Returns: object

gus_search_variableA

Szukaj zmiennej statystycznej w GUS BDL po fragmencie nazwy.

Użyj gdy potrzebujesz wskaźnika którego nie ma w dedykowanych narzędziach (np. "emisja CO2", "liczba lekarzy", "turystyka").

Inputs: query (required), page_size. Returns: object

krs_get_company_detailsA

Pobierz pełne dane spółki z KRS na podstawie numeru KRS.

Zwraca pełen odpis aktualny: dane rejestrowe, siedzibę, zarząd, kapitał zakładowy, PKD, prokurentów, sprawozdania finansowe.

Inputs: krs_number (required). Returns: object

krs_search_companyA

Szukaj podmiotu gospodarczego — preferowana metoda po NIP.

Używa Białej Listy VAT Ministerstwa Finansów — zwraca dane dowolnego podatnika (spółki, JDG, instytucji) po numerze NIP: nazwa, REGON, numer KRS, adres, zarząd, wspólnicy, rachunki bankowe.

Publiczne API KRS nie obsługuje wyszukiwania po nazwie — dlatego najlepszą metodą identyfikacji podmiotu jest NIP.

Inputs: nip, name, max_items. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 7 tools

    Disambiguation4/5

    Tools are mostly distinct: CEIDG vs KRS for different entity types, GUS tools for different statistics. However, ceidg_search_business and krs_search_company could be confused when searching for a company that might be in both, but descriptions clarify which to use.

    Naming Consistency5/5

    All tools follow a consistent 'datasource_action_entity' pattern (e.g., ceidg_search_business, gus_get_average_salary, krs_search_company). No mixing of conventions.

    Tool Count5/5

    7 tools is appropriate for a Polish business data server covering CEIDG, KRS, and GUS statistical data. Each tool serves a distinct purpose without being too few or too many.

    Completeness4/5

    Covers key business lookup (CEIDG, KRS) and major GUS indicators (salary, population, unemployment) with a generic search. Missing some Polish databases (e.g., REGON) but core workflows are well-supported.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      MCP server for the Polish company register (KRS) via the official Ministry of Justice API — entities, boards and shareholders with verifiable citations.
      3
      124 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP 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
    • A
      license
      A
      quality
      D
      maintenance
      MCP server that provides AI agents with Polish business data tools: identifier validation (NIP, PESEL, REGON, KRS, IBAN), VAT whitelist checks, EU VIES lookups, and NBP exchange rates.
      5
      11 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      MCP server for Polish company registries that enables looking up companies by NIP or KRS using public government APIs with no authentication required.
      2
      MIT