SCB MCP
Connect LLMs or AI-chatbots to let them query and interact with official data and statistics from SCB (Sweden Statistics)
📊 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
🇬🇧 Overview
The SCB MCP server provides seamless integration with Statistics Sweden's PxWebAPI 2.0, enabling LLM:s to access:
- Population & Demographics: Regional data, migrations, births, deaths (312+ regions)
- Economy & Finance: GDP, taxes, business statistics, national accounts
- Environment: Greenhouse gas emissions, water/waste management, sustainability metrics
- Labor Market: Employment, unemployment, occupational data, skills matching
- Education: Student statistics, course enrollments, skills development
Data ranges from 1950s to present (monthly/quarterly updates). Real-time population statistics updated to November 2025.
- 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
🇬🇧 Key features (English)
| 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 |
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"]
}
}
}
🇬🇧 Installation (English)
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 Code (CLI)
claude mcp add scb -- node /absolute/path/to/SCB-MCP/dist/index.js
Claude Desktop / Codex / Gemini / Cursor (stdio)
{
"mcpServers": {
"scb": {
"command": "node",
"args": ["/absolute/path/to/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)
🇬🇧 Usage guide (English)
1. Search for statistical tables
results = scb.search_tables(query="population", limit=10)
results = scb.search_tables(query="environment", 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"
🇬🇧 Resolve region codes (English)
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"
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
🇬🇧 Fetch data (English)
data = scb.get_table_data(
tableId="TAB637",
selection={
"Region": ["1441"],
"Kon": ["1+2"],
"Tid": ["2024"],
"ContentsCode": ["BE0101G9"]
}
)
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.) |
🇬🇧 Best practices (English)
| 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.) |
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
🇬🇧 Example 1: Population trends (English)
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)
Resurser
- SCB-databas: https://www.scb.se/
- API-dokumentation: https://www.scb.se/en/services/open-data-api/pxwebapi/
- Dataexplorer: https://pxweb.scb.se/pxweb/en/
Av: Isak Skogstad
관련 서버
pgEdge PostgreSQL MCP Server
100% Open Source Enterprise PostgreSQL MCP with natural language queries, hybrid search (pgvector+BM25)
Adobe Commerce MCP Server by CData
A read-only MCP server for Adobe Commerce, enabling LLMs to query live data using the CData JDBC driver.
PawSQL MCP Server
A SQL optimization service providing performance analysis and optimization suggestions through an API.
OSV Database
An MCP server for querying the OSV (Open Source Vulnerability) database API.
Poland Parliament
MCP server providing access to official records of activities of the Polish Parliament, including information on members, voting records, committees, and proceedings.
Quickbase MCP Server
An MCP server for Quickbase, enabling seamless integration with AI assistants like Claude Desktop.
claude-memory-fts
Long-term memory mcp server with sqlite fts5 full-text search, bm25 ranking, and access tracking. zero config via npx.com
Trino MCP Server
Securely interact with Trino databases to list tables, read data, and execute SQL queries.
Unofficial Human Protein Atlas MCP Server
Access Human Protein Atlas data, including protein expression, localization, and pathology.
MongoDB
Interact with MongoDB databases using natural language to query collections, inspect schemas, and manage data.