Nor Data Statfin Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Nor Data Statfin Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server for official statistics from Statistics Finland (Tilastokeskus) — the StatFin database, exposed through the PxWeb API. Search 3000+ tables, inspect their dimensions, and pull data as JSON-stat2. No API key required.
Part of the nor-data family of Nordic open-data MCP servers. Built on the same pattern as the SSB (Norway) server — StatFin and SSB both speak PxWeb, so the tools mirror each other.
| Tool | What it does |
|---|---|
sok_tabell | Keyword search across all StatFin tables. PxWeb has no server-side search, so this matches a bundled index (built from the full table tree) locally and returns the most relevant tables with their tabell_id. |
hent_tabell | Metadata for a table: title + dimensions (variables) with their valid value codes and labels. Read this first to learn which filter codes exist. |
hent_data | Fetch actual values as JSON-stat2, filtered by a flat {variabelkode: [verdier]} map. Supports special selections like {filter:'top', values:['1']} for the latest period. |
list_emner | List the ~140 StatFin subject areas (e.g. vaerak = Population structure). Scope a search or browse when a keyword misses. |
All tools accept an optional lang (en default, fi, sv). Variable codes are language-independent; only titles/labels are localised.
sok_tabell({ query: "population by region" })→ tabell_id: "vaerak/statfin_vaerak_pxt_11ra.px"
hent_tabell({ tabell_id }) → sees variables Alue (area), Vuosi (year), Tiedot (info)hent_data({ tabell_id, filtre: { Alue: ["SSS"], Vuosi: { filter: "top", values: ["1"] } } })→ latest national figures as JSON-stat2
// Claude Desktop / Claude Code MCP config
{
"mcpServers": {
"statfin": {
"command": "npx",
"args": ["-y", "@nor-data/statfin-mcp"]
}
}
}npm install
npm run build-index # crawl the StatFin tree → data/tables-index.json (~1–2 min)
npm run dev # run from source via tsx
npm run build # compile to dist/The search index is bundled in the package (data/tables-index.json). Re-run npm run build-index to refresh it (nightly is plenty — StatFin updates tables, not the tree, frequently).
(HTTP 403) — keep hent_data selections small (few regions × few years).
vtp, kivih, sekn, akay) return HTTP 400 server-side andare skipped during indexing; this is a StatFin quirk, not a bug here. The index records them under skipped.
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.