MCP Server

PESEL/NIP/REGON Validator

com.apished/pesel-nip-regon-validator
Legal & Compliance Public & reachable MCP 2025-11-25

What this MCP does

Validates Polish PESEL, NIP, and REGON identification numbers and decodes PESEL birth date and sex when valid.

nip_validate
Validates the checksum of a 10-digit Polish tax identification number (NIP). Checksum uses weights 6 5 7 2 3 4 5 6 7 over the first 9 digits; sum mod 11 must equal the 10th digit. A sum mod 11 of 10 is itself invalid.
Input schema
{'type': 'object', 'required': ['value'], 'properties': {'value': {'type': 'string', 'description': 'digits-only identifier to validate (no spaces or dashes)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['valid'], 'properties': {'valid': {'type': 'boolean'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}
pesel_validate
Validates the checksum of an 11-digit Polish national identification number (PESEL). Checksum uses weights 1 3 7 9 1 3 7 9 1 3 over the first 10 digits; control digit is (10 - sum mod 10) mod 10. On success also decodes the date of birth and sex embedded in the number; a checksum-valid number with an impossible calendar date (e.g. Feb 30) is still reported invalid.
Input schema
{'type': 'object', 'required': ['value'], 'properties': {'value': {'type': 'string', 'description': 'digits-only identifier to validate (no spaces or dashes)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['valid'], 'properties': {'sex': {'type': 'string'}, 'valid': {'type': 'boolean'}, 'reason': {'type': 'string'}, 'birthDate': {'type': 'string'}}, 'additionalProperties': False}
regon_validate
Validates the checksum of a 9- or 14-digit Polish business registry number (REGON). 9-digit: weights 8 9 2 3 4 5 6 7 over the first 8 digits, sum mod 11 (10 mapped to 0) must equal the 9th digit. 14-digit: the first 9 digits must themselves be a valid 9-digit REGON, and weights 2 4 8 5 0 9 7 3 6 1 2 4 8 over the first 13 digits (sum mod 11, 10 mapped to 0) must equal the 14th digit.
Input schema
{'type': 'object', 'required': ['value'], 'properties': {'value': {'type': 'string', 'description': 'digits-only identifier to validate (no spaces or dashes)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['valid'], 'properties': {'valid': {'type': 'boolean'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}
Added
regon_validate
Sept. 17, 2026, 12:33 p.m.
Added
pesel_validate
Sept. 17, 2026, 12:33 p.m.
Added
nip_validate
Sept. 17, 2026, 12:33 p.m.