IS

isakskogstad/scb-mcp

Developer tools
9 stars 5 forks Quality 58 Trend 17

Connect LLMs or AI-chatbots to let them query and interact with official data and statistics from SCB (Sweden Statistics)

Overview

SCB MCP är server som LLM:s och AI-chatbotar kan använda för att söka, hitta och hämta officiell data och statistik från Statistikbyrån (SCB). Det omfattar 1 200+ statistiktabeller med data om befolkning & demografi, ekonomi & finans, miljö, arbetsmarknad, utbildning och transport. Perfekt för att bygga interaktiva instrumentpaneler, forskningsverktyg och utbildningsapplikationer. The SCB MCP server provides seamless integration with , enabling LLM:s to access: - : Regional data, migrations, births, deaths (312+ regions) - : GDP, taxes, business statistics, national accounts - : Greenhouse gas emissions, water/waste management, sustainability metrics - : Employment, unemployment, occupational data, skills matching - : Student statistics, course enrollments, skills development Data ranges from 1950s to present (monthly/quarterly updates). Real-time population statistics updated to November 2025. SCB MCP-servern ger sömlös integrering med Statistikbyråns (SCB) PxWebAPI 2.

README

📊 SCB MCP Server

SCB MCP är server som LLM:s och AI-chatbotar kan använda för att söka, hitta och hämta officiell data och statistik från Statistikbyrån (SCB). Det omfattar 1 200+ statistiktabeller med data om befolkning & demografi, ekonomi & finans, miljö, arbetsmarknad, utbildning och transport. Perfekt för att bygga interaktiva instrumentpaneler, forskningsverktyg och utbildningsapplikationer.


Översikt

SCB MCP-servern ger sömlös integrering med Statistikbyråns (SCB) PxWebAPI 2.0, vilket gör det möjligt för LLM:s att tillgå:

  • Befolkning & demografi: Regionaldata, migrationer, födslar, dödsfall (312+ regioner)
  • Ekonomi & finans: BNP, skatter, företagsstatistik, nationalräkenskaper
  • Miljö: Växthusgaser, vatten/avfallshantering, hållbarhetsvärdena
  • Arbetsmarknad: Sysselsättning, arbetslöshet, yrkesdata, kompetensmatchning
  • Utbildning: Studentstatistik, kursanmälningar, kompetensutveckling

Huvudfunktioner

Funktion Beskrivning
Omfattande åtkomst 1 200+ tabeller, 312+ regioner, 75+ års historiska data
Smart sökning Naturspråkig sökning, regionkodupplösning (“Lerum” → 1441), TOP() & wildcard-stöd
Fuzzy matching “Goteborg” matchar “Göteborg”, “Malmo” matchar “Malmö”
Utvecklarvänlig Fullständig dokumentation, tydliga felmeddelanden, valideringsmöjligheter, metadata i svaren
Produktionsklar Rate limiting (30 req/10s), konsekvent beteende, rätt datatyper, språkstöd (SV/EN)
Svenska som standard Alla verktyg använder svenska (sv) som default för bästa sökresultat
Aktuell data Månatliga/kvartalsvisa uppdateringar, befolkningsdata till november 2025

🚀 Installation

Servern körs lokalt via stdio. Klona, bygg och peka din MCP-klient mot dist/index.js.

git clone https://github.com/isakskogstad/SCB-MCP.git
cd SCB-MCP
npm install
npm run build

Claude Code (CLI)

claude mcp add scb -- node /absolut/sökväg/till/SCB-MCP/dist/index.js

Claude Desktop / Codex / Gemini / Cursor (stdio)

Lägg till i klientens MCP-konfiguration (t.ex. ~/Library/Application Support/Claude/claude_desktop_config.json för Claude Desktop):

{
  "mcpServers": {
    "scb": {
      "command": "node",
      "args": ["/absolut/sökväg/till/SCB-MCP/dist/index.js"]
    }
  }
}

Användarguide

1. Sök efter statistiktabeller

# Hitta befolkningsrelaterade tabeller
results = scb.search_tables(query="befolkning statistik", limit=10)

# Filtrera efter kategori
results = scb.search_tables(query="miljö", category="environment", limit=5)

2. Hitta regionkoder

# Lerum kommun
region = scb.find_region_code(query="Lerum")
# Returnerar: code="1441", name="Lerum"

# Större regioner
region = scb.find_region_code(query="Stockholm")
# Returnerar: code="01" (län), code="0180" (kommun)

# Fuzzy matching - fungerar utan svenska tecken
region = scb.find_region_code(query="Goteborg")
# Returnerar: code="1480", name="Göteborg"

3. Hämta data

# Medelålder i Lerum 2024
data = scb.get_table_data(
    tableId="TAB637",
    selection={
        "Region": ["1441"],
        "Kon": ["1+2"],
        "Tid": ["2024"],
        "ContentsCode": ["BE0101G9"]
    }
)
# Resultat: Medelålder i Lerum 2024: 40.1 år

Best practices

Problem Lösning
Stor datamängd? Använd alltid preview_data() först för att testa
För mycket data? Använd "TOP(5)" istället för "*" för tidsperioder
Felaktiga koder? Anropa get_table_variables() först — koder varierar mellan tabeller
Osäker på enheter? Kontrollera variabeletikett för enheter (kt, ton, procent osv.)

Praktiska exempel

Ex: Befolkningstrend Lerum vs Stockholm

# Jämför två regioner över tid
data = scb.get_table_data(
    tableId="TAB637",
    selection={
        "Region": ["1441", "0180"],  # Lerum och Stockholm
        "Kon": ["1+2"],
        "Tid": ["TOP(5)"],
        "ContentsCode": ["BE0101G9"]
    }
)
# Stockholm: 41.0 år (2024), Lerum: 40.1 år (2024)
# Trend: Stockholm åldras snabbare

Resurser


Av: Isak Skogstad

View the full README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide New to MCP? Start with the mcpskill.org guide →

Configuration

{ "mcpServers": { "scb": { "command": "node", "args": ["/absolut/sökväg/till/SCB-MCP/dist/index.js"] } } }