Connects your Claude workspace directly to Statistics Sweden's PxWebAPI 2.0, giving you programmatic access to over 1,200 official statistical tables covering population, economy, environment, labor, and education data dating back to the 1950s. You get four main tools: search tables by keyword and category, resolve region names to official codes with fuzzy matching (handles "Goteborg" to "Göteborg"), preview table metadata and dimensions before fetching, and pull actual data with precise selections. The smart part is the region resolver, which maps natural language queries like "Lerum" to code 1441, and the preview tool that shows you what dimensions exist before you query. Reach for this when you need authoritative Swedish statistics without manually browsing SCB's web interface or wrestling with their API docs.
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 Statistics Sweden's PxWebAPI 2.0, enabling LLM:s to access:
Data ranges from 1950s to present (monthly/quarterly updates). Real-time population statistics updated to November 2025.
| Feature | Description |
|---|---|
| Comprehensive Access | 1,200+ tables, 312+ regions, 75+ years of historical data |
| Smart Querying | Natural language search, region code resolution ("Lerum" → 1441), TOP() & wildcard support |
| Fuzzy Matching | "Goteborg" matches "Göteborg", "Malmo" matches "Malmö" |
| Developer-Friendly | Full documentation, clear errors with suggestions, selection validation, metadata in responses |
| Production-Ready | Rate limiting (30 req/10s), consistent behavior, proper data types, language support (SV/EN) |
| Swedish by Default | All tools use Swedish (sv) as default for best search results |
| Real-Time Data | Monthly/quarterly updates, population data to November 2025 |
| 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 |
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 mcp add scb -- node /absolut/sökväg/till/SCB-MCP/dist/index.js
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"]
}
}
}
The server runs locally over stdio. Clone, build, and point your MCP client to dist/index.js.
git clone https://github.com/isakskogstad/SCB-MCP.git
cd SCB-MCP
npm install
npm run build
claude mcp add scb -- node /absolute/path/to/SCB-MCP/dist/index.js
{
"mcpServers": {
"scb": {
"command": "node",
"args": ["/absolute/path/to/SCB-MCP/dist/index.js"]
}
}
}
# 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)
results = scb.search_tables(query="population", limit=10)
results = scb.search_tables(query="environment", category="environment", limit=5)
# 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"
region = scb.find_region_code(query="Lerum")
region = scb.find_region_code(query="Stockholm")
# Fuzzy matching - works without Swedish characters
region = scb.find_region_code(query="Goteborg")
# Returns: code="1480", name="Göteborg"
# 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
data = scb.get_table_data(
tableId="TAB637",
selection={
"Region": ["1441"],
"Kon": ["1+2"],
"Tid": ["2024"],
"ContentsCode": ["BE0101G9"]
}
)
| 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.) |
| Issue | Solution |
|---|---|
| Large dataset? | Always use preview_data() first to test |
| Too much data? | Use "TOP(5)" instead of "*" for time periods |
| Wrong codes? | Call get_table_variables() first — codes vary between tables |
| Unsure about units? | Check variable label for units (kt, tonnes, percent, etc.) |
# 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
data = scb.get_table_data(
tableId="TAB637",
selection={
"Region": ["1441", "0180"], # Lerum and Stockholm
"Kon": ["1+2"],
"Tid": ["TOP(5)"],
"ContentsCode": ["BE0101G9"]
}
)
# Stockholm: 41.0 years (2024), Lerum: 40.1 years (2024)
Av: Isak Skogstad
com.mcparmory/google-sheets
domdomegg/google-sheets-mcp
henilcalagiya/google-sheets-mcp
cct15/war-dashboard-data
moooonad/mcp-google-sheets-full
io.github.br0ski777/csv-to-json