skanfirmy.pl
by bartosz-kuc · remote · no sign-in to list tools · v1.4.0 · published by GitHub user bartosz-kuc
Verify Polish companies by NIP/KRS/REGON + EU VAT (VIES). 14 MCP tools (9 no-key).
14 tools: 9 change things and 5 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things9Claude Code: ask: see these tools
- Only reads5Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http skanfirmy https://skanfirmy.pl/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Changes things 9Claude Code: ask
generuj_mikrorachunekGenerate the individual tax micro-account (for PIT/CIT/VAT payments) from a NIP.No findings
Why it is in this group
- The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate the individual tax micro-account (for PIT/CIT/VAT payments) from a NIP. The server does not accept PESEL (personal ID) — for a PESEL compute it locally: BBAN = "101000712221" + PESEL + "0", IBAN = "PL" + ISO 7064 mod-97 check digits + BBAN (or use skanfirmy.pl/mikrorachunek, which computes it in the browser).
oblicz_odsetkiCalculate statutory or commercial (B2B) late-payment interest, broken down by NBP reference-rate periods.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Calculate statutory or commercial (B2B) late-payment interest, broken down by NBP reference-rate periods.
observe_nipAdd a NIP to monitoring.No findings
Why it is in this group
- The description's first verb is "add": a word for a change.
Description, as the server wrote it Add a NIP to monitoring. You get notified (via changes_since or email) when its VAT status, bank account, or registry data shown on the Ministry of Finance White List (name, address, KRS, REGON) changes. For natural persons running a business (entities without a KRS number) only the VAT status and masked bank accounts are monitored (GDPR): no name, address or REGON changes. Requires a skanfirmy API key (Authorization: Bearer, or the api_key argument). Free plan: up to 10 NIPs.
set_webhookSet (or clear) a push webhook URL for your monitoring, instead of or in addition to polling.No findings
Why it is in this group
- The name "set_webhook" says "set": a word for a change.
Description, as the server wrote it Set (or clear) a push webhook URL for your monitoring, instead of or in addition to polling. When we detect a change for a monitored NIP, we send a POST signed with HMAC-SHA256 (X-Skanfirmy-Signature header). Returns the secret ONCE. Pass an empty url to disable. Requires a skanfirmy API key. Public https addresses only (port 443).
sprawdz_lista_nipBulk-check up to 30 NIPs in one call to the Ministry of Finance VAT White List: VAT status, bank accounts, REGON, KRS number and address of each entity.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Bulk-check up to 30 NIPs in one call to the Ministry of Finance VAT White List: VAT status, bank accounts, REGON, KRS number and address of each entity. For entities without a KRS number (natural persons) the address is reduced to the town and bank accounts to their count, and no REGON number or registration date is returned (GDPR) — check a specific account with sprawdz_rachunek. For verifying a portfolio of counterparties. Ministry limits: max 30 NIPs per call; the Ministry's daily query limit is shared by the whole service — when it is exhausted, the tool returns an error. Does not fetch full KRS data (use sprawdz_nip for individual entities). If every NIP in the list is an entity with a KRS number already checked today, the result comes from a same-day cache without a Ministry query: mfCached is true and mfRequestDateTime is the time of the oldest of those queries.
sprawdz_nipCheck VAT status (VAT White List / Biała Lista) and KRS data for a Polish company by NIP.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Check VAT status (VAT White List / Biała Lista) and KRS data for a Polish company by NIP. For entities without a KRS number (sole proprietors and civil partnerships, i.e. natural persons) personal data is limited (GDPR): the address is reduced to the town (the White List does not say whether it is a business or a home address), and bank accounts to their count — check a specific account with sprawdz_rachunek; no REGON number, registration date or PKD codes are returned for them (the ceidg field is always null). The privacy field lists what was hidden. White List data for entities with a KRS number may come from a same-day cache: then mfCached is true and bl.mfRequestDateTime is the time of the original Ministry query.
sprawdz_rachunekCheck whether a bank account number (NRB) appears in the VAT White List for a given NIP.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Check whether a bank account number (NRB) appears in the VAT White List for a given NIP. Due diligence for payments above PLN 15,000.
sprawdz_regonLook up entity data in the REGON register (Statistics Poland / GUS BIR) by NIP: REGON number, official name, legal form (legal or natural person), address (voivodeship, county, mun…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Look up entity data in the REGON register (Statistics Poland / GUS BIR) by NIP: REGON number, official name, legal form (legal or natural person), address (voivodeship, county, municipality). Covers ALL entities, including sole proprietors that are not in the KRS. For natural persons (GUS type F / LF) and civil partnerships (s.c.) only the NIP, name, entity type code (typ), form (forma: 'osoba fizyczna' / 'jednostka lokalna osoby fizycznej' / 'spółka cywilna'), town and activity status (status: active / ended) are returned — no REGON number, address, administrative units or dates (GDPR); the full entry is in the GUS REGON search (privacy.officialSource).
unobserve_nipStop watching a NIP — the watch is deleted right away.No findings
Why it is in this group
- The description's first verb is "stop": a word for a change.
Description, as the server wrote it Stop watching a NIP — the watch is deleted right away. Requires a skanfirmy API key.
Only reads 5Claude Code: allow
changes_sinceReturn changes (VAT status, bank accounts, or registry data — name, address, KRS, REGON — from the White List) detected since a given date for the NIPs you monitor.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return changes (VAT status, bank accounts, or registry data — name, address, KRS, REGON — from the White List) detected since a given date for the NIPs you monitor. The field property is one of: status_vat, account_added, account_removed, name, address, krs, regon. For natural persons (entities without a KRS number; natural_person: true) only status_vat, account_added and account_removed are returned, account numbers are masked (check digits + last 4, e.g. 61…2874) and name is null (GDPR); check a specific account with sprawdz_rachunek. A polling channel for agents. Requires a skanfirmy API key.
list_observationsReturn the list of NIPs you monitor, with their current VAT status and last-checked date (name is null for natural persons running a business).No findings
Why it is in this group
- The name "list_observations" says "list": a word for reading.
Description, as the server wrote it Return the list of NIPs you monitor, with their current VAT status and last-checked date (name is null for natural persons running a business). Each entry keeps the raw Ministry of Finance literal in status_vat and, when a status is known, adds derived language-neutral fields vat_active (boolean) and status_vat_code (active/exempt/not_registered). Requires a skanfirmy API key.
sprawdz_viesValidate a counterparty's EU VAT number in the VIES system (European Commission).No findings
Why it is in this group
- The description's first verb is "validate": a word for reading.
Description, as the server wrote it Validate a counterparty's EU VAT number in the VIES system (European Commission). For Polish (PL) numbers the address is reduced to the town, because the number may belong to a natural person (GDPR).
szukaj_katalog_apiSearch otwarteAPI.pl, a catalog of public Polish and EU APIs (VAT, KRS, GUS, NBP, ECB, Eurostat and more).No findings
Why it is in this group
- The description's first verb is "search": a word for reading.
Description, as the server wrote it Search otwarteAPI.pl, a catalog of public Polish and EU APIs (VAT, KRS, GUS, NBP, ECB, Eurostat and more). Returns matching entries with a link to each API's official docs. An empty query returns the whole catalog (optionally narrowed by scope or topic).
szukaj_pkdSearch PKD 2025 business activity codes by activity name or code number.No findings
Why it is in this group
- The description's first verb is "search": a word for reading.
Description, as the server wrote it Search PKD 2025 business activity codes by activity name or code number.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.4.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http skanfirmy https://skanfirmy.pl/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__skanfirmy__sprawdz_vies",
"mcp__skanfirmy__szukaj_pkd",
"mcp__skanfirmy__szukaj_katalog_api",
"mcp__skanfirmy__list_observations",
"mcp__skanfirmy__changes_since"
],
"ask": [
"mcp__skanfirmy__sprawdz_nip",
"mcp__skanfirmy__sprawdz_lista_nip",
"mcp__skanfirmy__sprawdz_regon",
"mcp__skanfirmy__sprawdz_rachunek",
"mcp__skanfirmy__generuj_mikrorachunek",
"mcp__skanfirmy__oblicz_odsetki",
"mcp__skanfirmy__observe_nip",
"mcp__skanfirmy__unobserve_nip",
"mcp__skanfirmy__set_webhook"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as skanfirmy. Review it before you use it.
