{
  "markdown": "<img width=\"640\" height=\"320\" alt=\"MCP SERVER\" src=\"https://github.com/user-attachments/assets/8183270f-cc19-4513-a26b-c8c18e60f1d8\" />\n\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-Published-brightgreen)](https://registry.modelcontextprotocol.io/servers/io.github.isakskogstad/scb-mcp)\n[![MCP Protocol](https://img.shields.io/badge/MCP-2025--03--26-green)](https://modelcontextprotocol.io/)\n\n# 📊 SCB MCP Server\n\nSCB 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.\n\n---\n\n## Översikt\n\n<details>\n<summary><strong>🇬🇧 Overview </strong></summary>\n\nThe SCB MCP server provides seamless integration with **Statistics Sweden's PxWebAPI 2.0**, enabling LLM:s to access:\n\n- **Population & Demographics**: Regional data, migrations, births, deaths (312+ regions)\n- **Economy & Finance**: GDP, taxes, business statistics, national accounts\n- **Environment**: Greenhouse gas emissions, water/waste management, sustainability metrics\n- **Labor Market**: Employment, unemployment, occupational data, skills matching\n- **Education**: Student statistics, course enrollments, skills development\n\nData ranges from 1950s to present (monthly/quarterly updates). Real-time population statistics updated to November 2025.\n\n</details>\nSCB 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å:\n\n- **Befolkning & demografi**: Regionaldata, migrationer, födslar, dödsfall (312+ regioner)\n- **Ekonomi & finans**: BNP, skatter, företagsstatistik, nationalräkenskaper\n- **Miljö**: Växthusgaser, vatten/avfallshantering, hållbarhetsvärdena\n- **Arbetsmarknad**: Sysselsättning, arbetslöshet, yrkesdata, kompetensmatchning\n- **Utbildning**: Studentstatistik, kursanmälningar, kompetensutveckling\n\n---\n\n<details>\n<summary><strong>🇬🇧 Key features (English)</strong></summary>\n\n| Feature                  | Description                                                                                    |\n| ------------------------ | ---------------------------------------------------------------------------------------------- |\n| **Comprehensive Access** | 1,200+ tables, 312+ regions, 75+ years of historical data                                      |\n| **Smart Querying**       | Natural language search, region code resolution (\"Lerum\" → 1441), TOP() & wildcard support     |\n| **Fuzzy Matching**       | \"Goteborg\" matches \"Göteborg\", \"Malmo\" matches \"Malmö\"                                         |\n| **Developer-Friendly**   | Full documentation, clear errors with suggestions, selection validation, metadata in responses |\n| **Production-Ready**     | Rate limiting (30 req/10s), consistent behavior, proper data types, language support (SV/EN)   |\n| **Swedish by Default**   | All tools use Swedish (sv) as default for best search results                                  |\n| **Real-Time Data**       | Monthly/quarterly updates, population data to November 2025                                    |\n\n</details>\n\n## Huvudfunktioner\n\n| Funktion                 | Beskrivning                                                                                  |\n| ------------------------ | -------------------------------------------------------------------------------------------- |\n| **Omfattande åtkomst**   | 1 200+ tabeller, 312+ regioner, 75+ års historiska data                                      |\n| **Smart sökning**        | Naturspråkig sökning, regionkodupplösning (\"Lerum\" → 1441), TOP() & wildcard-stöd            |\n| **Fuzzy matching**       | \"Goteborg\" matchar \"Göteborg\", \"Malmo\" matchar \"Malmö\"                                       |\n| **Utvecklarvänlig**      | Fullständig dokumentation, tydliga felmeddelanden, valideringsmöjligheter, metadata i svaren |\n| **Produktionsklar**      | Rate limiting (30 req/10s), konsekvent beteende, rätt datatyper, språkstöd (SV/EN)           |\n| **Svenska som standard** | Alla verktyg använder svenska (sv) som default för bästa sökresultat                         |\n| **Aktuell data**         | Månatliga/kvartalsvisa uppdateringar, befolkningsdata till november 2025                     |\n\n---\n\n## 🚀 Installation\n\nServern körs lokalt via stdio. Klona, bygg och peka din MCP-klient mot `dist/index.js`.\n\n```bash\ngit clone https://github.com/isakskogstad/SCB-MCP.git\ncd SCB-MCP\nnpm install\nnpm run build\n```\n\n### Claude Code (CLI)\n\n```bash\nclaude mcp add scb -- node /absolut/sökväg/till/SCB-MCP/dist/index.js\n```\n\n### Claude Desktop / Codex / Gemini / Cursor (stdio)\n\nLägg till i klientens MCP-konfiguration (t.ex. `~/Library/Application Support/Claude/claude_desktop_config.json` för Claude Desktop):\n\n```json\n{\n  \"mcpServers\": {\n    \"scb\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolut/sökväg/till/SCB-MCP/dist/index.js\"]\n    }\n  }\n}\n```\n\n<details>\n<summary><strong>🇬🇧 Installation (English)</strong></summary>\n\nThe server runs locally over stdio. Clone, build, and point your MCP client to `dist/index.js`.\n\n```bash\ngit clone https://github.com/isakskogstad/SCB-MCP.git\ncd SCB-MCP\nnpm install\nnpm run build\n```\n\n#### Claude Code (CLI)\n\n```bash\nclaude mcp add scb -- node /absolute/path/to/SCB-MCP/dist/index.js\n```\n\n#### Claude Desktop / Codex / Gemini / Cursor (stdio)\n\n```json\n{\n  \"mcpServers\": {\n    \"scb\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/SCB-MCP/dist/index.js\"]\n    }\n  }\n}\n```\n\n</details>\n\n---\n\n## Användarguide\n\n### 1. Sök efter statistiktabeller\n\n```python\n# Hitta befolkningsrelaterade tabeller\nresults = scb.search_tables(query=\"befolkning statistik\", limit=10)\n\n# Filtrera efter kategori\nresults = scb.search_tables(query=\"miljö\", category=\"environment\", limit=5)\n```\n\n<details>\n<summary><strong>🇬🇧 Usage guide (English)</strong></summary>\n\n### 1. Search for statistical tables\n\n```python\nresults = scb.search_tables(query=\"population\", limit=10)\nresults = scb.search_tables(query=\"environment\", category=\"environment\", limit=5)\n```\n\n</details>\n\n---\n\n### 2. Hitta regionkoder\n\n```python\n# Lerum kommun\nregion = scb.find_region_code(query=\"Lerum\")\n# Returnerar: code=\"1441\", name=\"Lerum\"\n\n# Större regioner\nregion = scb.find_region_code(query=\"Stockholm\")\n# Returnerar: code=\"01\" (län), code=\"0180\" (kommun)\n\n# Fuzzy matching - fungerar utan svenska tecken\nregion = scb.find_region_code(query=\"Goteborg\")\n# Returnerar: code=\"1480\", name=\"Göteborg\"\n```\n\n<details>\n<summary><strong>🇬🇧 Resolve region codes (English)</strong></summary>\n\n```python\nregion = scb.find_region_code(query=\"Lerum\")\nregion = scb.find_region_code(query=\"Stockholm\")\n\n# Fuzzy matching - works without Swedish characters\nregion = scb.find_region_code(query=\"Goteborg\")\n# Returns: code=\"1480\", name=\"Göteborg\"\n```\n\n</details>\n\n---\n\n### 3. Hämta data\n\n```python\n# Medelålder i Lerum 2024\ndata = scb.get_table_data(\n    tableId=\"TAB637\",\n    selection={\n        \"Region\": [\"1441\"],\n        \"Kon\": [\"1+2\"],\n        \"Tid\": [\"2024\"],\n        \"ContentsCode\": [\"BE0101G9\"]\n    }\n)\n# Resultat: Medelålder i Lerum 2024: 40.1 år\n```\n\n<details>\n<summary><strong>🇬🇧 Fetch data (English)</strong></summary>\n\n```python\ndata = scb.get_table_data(\n    tableId=\"TAB637\",\n    selection={\n        \"Region\": [\"1441\"],\n        \"Kon\": [\"1+2\"],\n        \"Tid\": [\"2024\"],\n        \"ContentsCode\": [\"BE0101G9\"]\n    }\n)\n```\n\n</details>\n\n---\n\n## Best practices\n\n| Problem                | Lösning                                                               |\n| ---------------------- | --------------------------------------------------------------------- |\n| **Stor datamängd?**    | Använd alltid `preview_data()` först för att testa                    |\n| **För mycket data?**   | Använd `\"TOP(5)\"` istället för `\"*\"` för tidsperioder                 |\n| **Felaktiga koder?**   | Anropa `get_table_variables()` först — koder varierar mellan tabeller |\n| **Osäker på enheter?** | Kontrollera variabeletikett för enheter (kt, ton, procent osv.)       |\n\n<details>\n<summary><strong>🇬🇧 Best practices (English)</strong></summary>\n\n| Issue                   | Solution                                                       |\n| ----------------------- | -------------------------------------------------------------- |\n| **Large dataset?**      | Always use `preview_data()` first to test                      |\n| **Too much data?**      | Use `\"TOP(5)\"` instead of `\"*\"` for time periods               |\n| **Wrong codes?**        | Call `get_table_variables()` first — codes vary between tables |\n| **Unsure about units?** | Check variable label for units (kt, tonnes, percent, etc.)     |\n\n</details>\n\n---\n\n## Praktiska exempel\n\n### Ex: Befolkningstrend Lerum vs Stockholm\n\n```python\n# Jämför två regioner över tid\ndata = scb.get_table_data(\n    tableId=\"TAB637\",\n    selection={\n        \"Region\": [\"1441\", \"0180\"],  # Lerum och Stockholm\n        \"Kon\": [\"1+2\"],\n        \"Tid\": [\"TOP(5)\"],\n        \"ContentsCode\": [\"BE0101G9\"]\n    }\n)\n# Stockholm: 41.0 år (2024), Lerum: 40.1 år (2024)\n# Trend: Stockholm åldras snabbare\n```\n\n<details>\n<summary><strong>🇬🇧 Example 1: Population trends (English)</strong></summary>\n\n```python\ndata = scb.get_table_data(\n    tableId=\"TAB637\",\n    selection={\n        \"Region\": [\"1441\", \"0180\"],  # Lerum and Stockholm\n        \"Kon\": [\"1+2\"],\n        \"Tid\": [\"TOP(5)\"],\n        \"ContentsCode\": [\"BE0101G9\"]\n    }\n)\n# Stockholm: 41.0 years (2024), Lerum: 40.1 years (2024)\n```\n\n</details>\n\n---\n\n## Resurser\n\n- **SCB-databas**: https://www.scb.se/\n- **API-dokumentation**: https://www.scb.se/en/services/open-data-api/pxwebapi/\n- **Dataexplorer**: https://pxweb.scb.se/pxweb/en/\n\n---\n\n**Av: Isak Skogstad**\n",
  "bytes": 9891,
  "sha": "bfaa7e63d7a9fb269e2d5fadc3865efad86aa6133fc392842b3971e5dd2f8475",
  "repo_slug": "isakskogstad/scb-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_isakskogstad_scb_mcp_224f9b96/readme"
}