io.github.isakskogstad/scb-mcp

平台与服务

by isakskogstad

MCP server for Statistics Sweden (SCB) - 1200+ tables with population, economy, environment data

什么是 io.github.isakskogstad/scb-mcp

MCP server for Statistics Sweden (SCB) - 1200+ tables with population, economy, environment data

README

<img width="640" height="320" alt="MCP SERVER" src="https://github.com/user-attachments/assets/8183270f-cc19-4513-a26b-c8c18e60f1d8" />

MCP Registry Server Status MCP Protocol

📊 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

<details> <summary><strong>🇬🇧 Overview </strong></summary>

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.

</details> 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

<details> <summary><strong>🇬🇧 Key features (English)</strong></summary>
FeatureDescription
Comprehensive Access1,200+ tables, 312+ regions, 75+ years of historical data
Smart QueryingNatural language search, region code resolution ("Lerum" → 1441), TOP() & wildcard support
Fuzzy Matching"Goteborg" matches "Göteborg", "Malmo" matches "Malmö"
Developer-FriendlyFull documentation, clear errors with suggestions, selection validation, metadata in responses
Production-ReadyRate limiting (30 req/10s), consistent behavior, proper data types, language support (SV/EN)
Swedish by DefaultAll tools use Swedish (sv) as default for best search results
Real-Time DataMonthly/quarterly updates, population data to November 2025
</details>

Huvudfunktioner

FunktionBeskrivning
Omfattande åtkomst1 200+ tabeller, 312+ regioner, 75+ års historiska data
Smart sökningNaturspråkig sökning, regionkodupplösning ("Lerum" → 1441), TOP() & wildcard-stöd
Fuzzy matching"Goteborg" matchar "Göteborg", "Malmo" matchar "Malmö"
UtvecklarvänligFullständig dokumentation, tydliga felmeddelanden, valideringsmöjligheter, metadata i svaren
ProduktionsklarRate limiting (30 req/10s), konsekvent beteende, rätt datatyper, språkstöd (SV/EN)
Svenska som standardAlla verktyg använder svenska (sv) som default för bästa sökresultat
Aktuell dataMånatliga/kvartalsvisa uppdateringar, befolkningsdata till november 2025

🚀 Snabbstart

Enklaste sättet: Använd den redan hostade servern — ingen installation behövs!

MCP remote URL: https://scb-mcp.onrender.com/mcp

Lägg till denna konfiguration i din MCP-värd:

json
{
  "mcpServers": {
    "scb": {
      "type": "http",
      "url": "https://scb-mcp.onrender.com/mcp"
    }
  }
}

Klart! Du har nu tillgång till alla 1 200+ svenska statistiktabeller.

<details> <summary><strong>🇬🇧 Quick start (English)</strong></summary>

Easiest way: Use the already hosted server — no installation needed!

MCP remote URL: https://scb-mcp.onrender.com/mcp

Add this configuration to your MCP host:

json
{
  "mcpServers": {
    "scb": {
      "type": "http",
      "url": "https://scb-mcp.onrender.com/mcp"
    }
  }
}

Done! You now have access to all 1,200+ Swedish statistical tables.

</details>

Installation & inställning

Alternativ 1: Remote URL (ingen installation)

Använd den hostade servern direkt - fungerar med alla MCP-kompatibla klienter:

URL: https://scb-mcp.onrender.com/mcp

KlientHur du ansluter
GitHub Copilot (VS Code)Lägg till i .vscode/mcp.json (se nedan)
ChatGPT (Dev Mode)Lägg till MCP server URL: https://scb-mcp.onrender.com/mcp
Claude WebLägg till MCP server: https://scb-mcp.onrender.com/mcp
GeminiKonfigurera HTTP MCP endpoint
CustomPOST till /mcp med JSON-RPC 2.0

GitHub Copilot (VS Code)

Skapa .vscode/mcp.json i ditt projekt:

json
{
  "servers": {
    "scb": {
      "type": "http",
      "url": "https://scb-mcp.onrender.com/mcp"
    }
  }
}

Eller använd Command Palette: MCP: Add Server och välj HTTP-typ.

Ingen autentisering krävs. CORS är aktiverat för alla domäner.


Alternativ 2: Lokal installation (Node.js)

För Claude Code, terminal-klienter eller egen hosting:

bash
# Klona repository
git clone https://github.com/isakskogstad/SCB-MCP.git
cd SCB-MCP

# Installera och bygg
npm install
npm run build

Claude Code (CLI)

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

MCP-konfiguration (stdio)

Lägg till i ~/.config/claude/claude_desktop_config.json:

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

Kör egen HTTP-server

bash
npm run start  # Startar på port 3000
# eller
PORT=8080 npm run start

Alternativ 3: Docker

bash
docker build -t scb-mcp .
docker run -p 3000:3000 scb-mcp

<details> <summary><strong>🇬🇧 Installation & setup (English)</strong></summary>

Option 1: Remote URL (no installation)

Use the hosted server directly - works with all MCP-compatible clients:

URL: https://scb-mcp.onrender.com/mcp

ClientHow to connect
ChatGPT (Dev Mode)Add MCP server URL: https://scb-mcp.onrender.com/mcp
Claude WebAdd MCP server: https://scb-mcp.onrender.com/mcp
GeminiConfigure HTTP MCP endpoint
CustomPOST to /mcp with JSON-RPC 2.0

No authentication required. CORS enabled for all origins.


Option 2: Local installation (Node.js)

For Claude Code, terminal clients or self-hosting:

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

Claude Code (CLI)

bash
claude mcp add scb-mcp -- node /path/to/SCB-MCP/dist/index.js

MCP configuration (stdio)

Add to ~/.config/claude/claude_desktop_config.json:

json
{
  "mcpServers": {
    "scb": {
      "command": "node",
      "args": ["/path/to/SCB-MCP/dist/index.js"],
      "type": "stdio"
    }
  }
}

Run your own HTTP server

bash
npm run start  # Starts on port 3000
# or
PORT=8080 npm run start

Option 3: Docker

bash
docker build -t scb-mcp .
docker run -p 3000:3000 scb-mcp
</details>

Användarguide

1. Sök efter statistiktabeller

python
# 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)
<details> <summary><strong>🇬🇧 Usage guide (English)</strong></summary>

1. Search for statistical tables

python
results = scb.search_tables(query="population", limit=10)
results = scb.search_tables(query="environment", category="environment", limit=5)
</details>

2. Hitta regionkoder

python
# 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"
<details> <summary><strong>🇬🇧 Resolve region codes (English)</strong></summary>
python
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"
</details>

3. Hämta data

python
# 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
<details> <summary><strong>🇬🇧 Fetch data (English)</strong></summary>
python
data = scb.get_table_data(
    tableId="TAB637",
    selection={
        "Region": ["1441"],
        "Kon": ["1+2"],
        "Tid": ["2024"],
        "ContentsCode": ["BE0101G9"]
    }
)
</details>

Best practices

ProblemLö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.)
<details> <summary><strong>🇬🇧 Best practices (English)</strong></summary>
IssueSolution
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.)
</details>

Praktiska exempel

Ex: Befolkningstrend Lerum vs Stockholm

python
# 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
<details> <summary><strong>🇬🇧 Example 1: Population trends (English)</strong></summary>
python
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)
</details>

Resurser


Av: Isak Skogstad

常见问题

io.github.isakskogstad/scb-mcp 是什么?

MCP server for Statistics Sweden (SCB) - 1200+ tables with population, economy, environment data

相关 Skills

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描111.8k

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描111.8k

MCP服务构建器

by alirezarezvani

Universal
热门

从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。

帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。

平台与服务
未扫描9.8k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
83.1k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
78.3k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
34.9k

评论