protogrid

Search / io.github.bartosz-kuc/skanfirmy

skanfirmy.pl

R0· no sign-in

Verify Polish companies by NIP/KRS/REGON + EU VAT (VIES). 14 MCP tools (9 no-key).

v1.4.0 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality63needs work
Trust94of 100
Uptime, 30 days97%
Latency p50285 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "skanfirmy": {
      "type": "http",
      "url": "https://skanfirmy.pl/mcp"
    }
  }
}
claude mcp add --transport http skanfirmy https://skanfirmy.pl/mcp
[mcp_servers.skanfirmy]
url = "https://skanfirmy.pl/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "skanfirmy": {
      "type": "remote",
      "url": "https://skanfirmy.pl/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "skanfirmy": {
      "type": "http",
      "url": "https://skanfirmy.pl/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=skanfirmy&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc2thbmZpcm15LnBsL21jcCJ9"
}
{
  "servers": {
    "skanfirmy": {
      "type": "http",
      "url": "https://skanfirmy.pl/mcp"
    }
  }
}
{
  "mcpServers": {
    "skanfirmy": {
      "httpUrl": "https://skanfirmy.pl/mcp"
    }
  }
}
extensions:
  "skanfirmy":
    enabled: true
    name: "skanfirmy"
    type: streamable_http
    uri: "https://skanfirmy.pl/mcp"
    timeout: 300

Quality 63 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: unobserve_nip (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); sprawdz_regon (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); szukaj_katalog_api (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 2,191 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes16 tool changes in 30 days
  • fail
    stability.rug_pull5 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

14 tools, about 2,191 tokens to load them all · tool set 174c3e9d7620 · tools last changed 2026-10-02 · checked 2026-10-20 17:34 UTC

Tool changes

  • unobserve_nipchangeddescriptionmeaning changed
    before

    Stop watching a NIP (it stays on your list of ended watches until you unsubscribe). Requires a skanfirmy API key.

    after · 32% of words in common

    Stop watching a NIP — the watch is deleted right away. Requires a skanfirmy API key.

  • unobserve_nipchangeddescription, input schemameaning changed
    before

    Remove a NIP from monitoring. Requires a skanfirmy API key.

    after · 27% of words in common

    Stop watching a NIP (it stays on your list of ended watches until you unsubscribe). Requires a skanfirmy API key.

  • sprawdz_regonchangeddescription
    before

    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, form (forma: 'osoba fizyczna' / '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).

    after · 92% of words in common

    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).

  • sprawdz_lista_nipchangeddescription
    before

    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, about 500 bulk queries/day per IP. Does not fetch full KRS data (use sprawdz_nip for individual entities).

    after · 76% of words in common

    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).

  • changes_sincechangeddescription
    before

    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) account numbers are masked (check digits + last 4, e.g. 61…2874) and the address is reduced to the town (GDPR); check a specific account with sprawdz_rachunek. A polling channel for agents. Requires a skanfirmy API key.

    after · 92% of words in common

    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_observationschangeddescription
    before

    Return the list of NIPs you monitor, with their current VAT status and last-checked date. 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.

    after · 86% of words in common

    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.

  • observe_nipchangeddescription
    before

    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. Requires a skanfirmy API key (Authorization: Bearer, or the api_key argument). Free plan: up to 10 NIPs.

    after · 74% of words in common

    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.

  • sprawdz_regonchangeddescription
    before

    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.) the address is limited to the town and administrative units, without street, number or postal code (GDPR).

    after · 67% of words in common

    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, form (forma: 'osoba fizyczna' / '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).

  • sprawdz_lista_nipchangeddescription
    before

    Bulk-check up to 30 NIPs in one call to the Ministry of Finance VAT White List: VAT status, bank accounts, REGON, KRS 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 (GDPR) — check a specific account with sprawdz_rachunek. For verifying a portfolio of counterparties. Ministry limits: max 30 NIPs per call, about 500 bulk queries/day per IP. Does not fetch full KRS data (use sprawdz_nip for individual entities).

    after · 93% of words in common

    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, about 500 bulk queries/day per IP. Does not fetch full KRS data (use sprawdz_nip for individual entities).

  • sprawdz_nipchangeddescription
    before

    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. The privacy field lists what was hidden.

    after · 83% of words in common

    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.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance80
liveness99
freshness100
hygiene100

+repository +namespace-matches-repo +reachable +uptime-97% +updated-18d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://skanfirmy.pl/mcp streamable-httpnoneyes97%285 ms2025-06-182026-10-20

Tools (14)

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. 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.
generuj_mikrorachunekGenerate 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).
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). 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.
oblicz_odsetkiCalculate statutory or commercial (B2B) late-payment interest, broken down by NBP reference-rate periods.
observe_nipAdd 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. 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. 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).
sprawdz_nipCheck 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.
sprawdz_rachunekCheck 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, 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).
sprawdz_viesValidate 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). 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.
unobserve_nipStop watching a NIP — the watch is deleted right away. Requires a skanfirmy API key.

Schemas: list_tools.

Similar MCP servers

More from io.github.bartosz-kuc

Official server.json
{
  "name": "io.github.bartosz-kuc/skanfirmy",
  "title": "skanfirmy.pl",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://skanfirmy.pl/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.4.0",
  "repository": {
    "url": "https://github.com/bartosz-kuc/skanfirmy-mcp",
    "source": "github"
  },
  "description": "Verify Polish companies by NIP/KRS/REGON + EU VAT (VIES). 14 MCP tools (9 no-key)."
}