Skip to main content
Glama

Skolverket MCP Server

Skolverket MCP Server

En Model Context Protocol (MCP) server som ger LLMs fullständig tillgång till Skolverkets öppna API:er. Med denna server kan Claude och andra LLMs söka, läsa och analysera läroplaner, skolenheter, utbildningstillfällen, statistik och inspektionsrapporter.

🌟 Funktioner

🔧 MCP Capabilities (Ny i v2.1.0)

🛠️ Tools (27 verktyg)

  • 17 verktyg för Läroplan API

  • 4 verktyg för Skolenhetsregistret

  • 6 verktyg för Planned Educations API

📚 Resources (4 resurser) - Ny i v2.1.0

Statiska datakällor för snabb kontextinläsning:

  • skolverket://api/info - API-information och metadata

  • skolverket://school-types - Kompletta skoltyper (aktiva + utgångna)

  • skolverket://types-of-syllabus - Läroplanstyper och kategorier

  • skolverket://subject-course-codes - Alla ämnes- och kurskoder

💡 Prompts (5 guider) - Ny i v2.1.0

Guidade arbetsflöden för vanliga uppgifter:

  • analyze_course - Steg-för-steg kursanalys

  • compare_curriculum_versions - Jämför läroplansversioner

  • find_adult_education - Hitta vuxenutbildningar

  • plan_study_path - Studievägledning för elever

  • teacher_course_planning - Kursplanering för lärare

📚 Läroplan API (Syllabus API)

  • Sök och hämta läroplaner (LGR11, GY11, etc.)

  • Ämnen och kurser med kunskapskrav

  • Gymnasieprogram med inriktningar och yrkesutfall

  • Versionshistorik för alla läroplaner

🏫 Skolenhetsregistret API

  • Sök efter skolenheter (skolor, förskolor, gymnasier)

  • Filtrera efter status (aktiva, nedlagda, vilande)

  • Hämta skolenhetskoder och grundläggande information

🎓 Planned Educations API

  • Vuxenutbildning: Yrkeshögskola, SFI, Komvux

  • Utbildningstillfällen: Planerade utbildningar med start-datum och platser

  • Statistik: Skolstatistik per enhet och kommun

  • Kvalitetsdata: Inspektionsrapporter och skolenkäter

  • Stöddata: Utbildningsområden och inriktningar

Installation

Snabbstart med npx (rekommenderat)

{ "mcpServers": { "skolverket": { "command": "npx", "args": ["-y", "skolverket-mcp"] } } }

Installation via npm

npm install -g skolverket-mcp

Lägg sedan till i Claude Desktop config:

{ "mcpServers": { "skolverket": { "command": "skolverket-mcp" } } }

Manuell installation från källkod

git clone https://github.com/KSAklfszf921/skolverket-syllabus-mcp.git cd skolverket-syllabus-mcp npm install npm run build

Lägg till i Claude Desktop config:

{ "mcpServers": { "skolverket": { "command": "node", "args": ["/sökväg/till/skolverket-syllabus-mcp/dist/index.js"] } } }

Användning

Konfigurera Claude Desktop

  1. Öppna Claude Desktop

  2. Gå till inställningar (Settings)

  3. Navigera till "Developer" → "Edit Config"

  4. Lägg till server-konfigurationen ovan

  5. Starta om Claude Desktop

📋 Alla Verktyg

Läroplan API (17 verktyg)

Ämnen

  • search_subjects - Sök ämnen med filter

  • get_subject_details - Hämta fullständig ämnesinformation

  • get_subject_versions - Se historiska versioner

Kurser

  • search_courses - Sök kurser med omfattande filter

  • get_course_details - Detaljerad kursinformation med kunskapskrav

  • get_course_versions - Historiska kursversioner

Program

  • search_programs - Sök gymnasieprogram

  • get_program_details - Programinformation med inriktningar

  • get_program_versions - Programversioner över tid

Läroplaner

  • search_curriculums - Sök läroplaner (LGR11, GY11, etc.)

  • get_curriculum_details - Fullständig läroplan

  • get_curriculum_versions - Läroplansversioner

Stöddata

  • get_school_types - Lista skoltyper

  • get_types_of_syllabus - Lista läroplanstyper

  • get_subject_and_course_codes - Alla ämnes- och kurskoder

  • get_study_path_codes - Studievägskodar

  • get_api_info - API-information

Skolenhetsregistret API (4 verktyg)

  • search_school_units - Sök skolenheter med filter

  • get_school_unit_details - Hämta skolenhetsdetaljer

  • get_school_units_by_status - Filtrera efter status

  • search_school_units_by_name - Sök efter namn

Planned Educations API (6 verktyg)

Vuxenutbildning

  • search_adult_education - Sök vuxenutbildningar (YH, SFI, Komvux)

  • get_adult_education_details - Detaljerad utbildningsinformation

  • filter_adult_education_by_distance - Filtrera distans/campus

  • filter_adult_education_by_pace - Filtrera efter studietakt

Stöddata

  • get_education_areas - Hämta utbildningsområden

  • get_directions - Hämta inriktningar

💡 Användningsexempel

För Elever och Föräldrar

"Vilka yrkeshögskoleutbildningar inom IT finns i Stockholm som startar i höst?"

Använder: search_adult_education Resultat: Lista över YH-utbildningar med startdatum och antagning

"Vad är kunskapskraven för betyget E i Matematik 1c?"

Använder: get_course_details med kod "MATMAT01c" Resultat: Fullständiga kunskapskrav för alla betyg

För Lärare

"Visa centralt innehåll för Svenska 2 på gymnasiet"

Använder: get_course_details Resultat: Detaljerat centralt innehåll strukturerat per område

"Hitta alla aktiva skolor i Göteborg"

Använder: search_school_units med filter Resultat: Lista över aktiva skolenheter

För Studie- och Yrkesvägledare

"Vilka inriktningar finns på Naturvetenskapsprogrammet?"

Använder: get_program_details med kod "NA" Resultat: Inriktningar, profiler och yrkesutfall

"Visa alla SFI-kurser med låg studietakt i Uppsala"

Använder: search_adult_education med filter Resultat: SFI-utbildningar anpassade för sökkriterierna

För Forskare och Administratörer

"Hur har läroplanen för matematik förändrats mellan 2011 och 2022?"

Använder: get_subject_versions + get_subject_details Resultat: Jämförelse mellan olika versioner

"Vilka skolor har lagts ner i Stockholms län de senaste åren?"

Använder: get_school_units_by_status med status "UPPHORT" Resultat: Lista över nedlagda skolenheter

🔑 Vanliga Koder och Termer

Skoltyper

  • GR - Grundskolan

  • GY - Gymnasieskolan

  • VUX - Vuxenutbildning

  • GRSÄR - Grundsärskolan

  • GYSÄR - Gymnasiesärskolan

Utbildningsformer (typeOfSchool)

  • yh - Yrkeshögskola

  • sfi - SFI (Svenska för invandrare)

  • komvuxgycourses - Komvux gymnasiekurser

  • komvuxbasiccourses - Komvux grundläggande kurser

Exempel på Koder

  • Kurser: MATMAT01c (Matematik 1c), SVESVE01 (Svenska 1)

  • Ämnen: GRGRMAT01 (Matematik grundskola)

  • Program: NA (Naturvetenskap), TE (Teknik), EK (Ekonomi)

  • Läroplaner: LGR11 (Läroplan för grundskolan 2011), GY11 (Gymnasiet 2011)

🏗️ Teknisk Information

Arkitektur

skolverket-mcp/ ├── src/ │ ├── index.ts # Huvudserver med Resources & Prompts │ ├── errors.ts # Custom error classes (ny i v2.1.0) │ ├── logger.ts # Winston logging (ny i v2.1.0) │ ├── cache.ts # In-memory cache (ny i v2.1.0) │ ├── validator.ts # Zod validation (ny i v2.1.0) │ ├── api/ │ │ ├── base-client.ts # HTTP-klient med rate limiting & caching │ │ ├── syllabus-client.ts # Läroplan API │ │ ├── school-units-client.ts # Skolenheter API │ │ └── planned-education-client.ts # Planned Educations API │ ├── tools/ │ │ ├── syllabus/ # Läroplanverktyg (17 st) │ │ ├── school-units/ # Skolenhetsverktyg (4 st) │ │ └── planned-education/ # Utbildningsverktyg (6 st) │ └── types/ │ ├── syllabus.ts # Läroplantyper │ ├── school-units.ts # Skolenhetstyper │ └── planned-education.ts # Utbildningstyper ├── dist/ # Kompilerad JavaScript ├── logs/ # Log-filer (ny i v2.1.0) │ ├── combined.log # Alla loggar │ ├── error.log # Endast errors │ ├── exceptions.log # Uncaught exceptions │ └── rejections.log # Unhandled promise rejections ├── package.json ├── tsconfig.json └── README.md

Byggd med

  • @modelcontextprotocol/sdk - MCP SDK

  • axios - HTTP-klient

  • zod - Schema-validering och runtime validation

  • winston - Strukturerad logging (ny i v2.1.0)

  • p-limit - Rate limiting och concurrency control (ny i v2.1.0)

  • TypeScript - Type-säkerhet

Nya Funktioner i v2.1.0

🔍 Strukturerad Logging

  • Winston-baserad logging med filrotation

  • Separata loggar för errors och kombinerad output

  • Automatisk loggning av alla API-anrop

  • Debug-läge med detaljerad information

💾 Intelligent Caching

  • In-memory cache med TTL (Time To Live)

  • Automatisk cache-rensning var 5:e minut

  • Statisk data cachas i 24 timmar

  • Cache-statistik tillgänglig via logger

🚦 Rate Limiting

  • Max 5 samtidiga API-anrop per klient

  • Automatisk kö-hantering med p-limit

  • Förhindrar API rate limiting

  • Optimerad prestanda

✅ Runtime Validation

  • Zod-baserad input-validering

  • Tydliga felmeddelanden på svenska

  • Återanvändbara valideringsscheman

  • Type-safe validering

🎯 Custom Error Handling

  • Hierarkisk error-struktur

  • SkolverketApiError för API-fel

  • ValidationError för input-fel

  • ResourceNotFoundError för saknade resurser

  • RateLimitError med retry-information

API-dokumentation

Servern använder följande Skolverket API:er:

  • Läroplan API: https://api.skolverket.se/syllabus

  • Skolenhetsregistret: https://api.skolverket.se/skolenhetsregistret/v2

  • Planned Educations: https://api.skolverket.se/planned-educations (v4)

🎯 Use Cases

Lärare

  • Kursplanering med centralt innehåll

  • Bedömning med kunskapskrav

  • Tematiskt arbete över ämnen

  • Hitta närliggande skolenheter

Elever

  • Kursval och programval

  • Förstå kunskapskrav och betyg

  • Hitta vuxenutbildningar och vidareutbildning

  • Söka yrkeshögskoleutbildningar

Studie- och Yrkesvägledare

  • Programinformation med yrkesutfall

  • Vägledning om vidareutbildning

  • Sök utbildningstillfällen med filter

  • Jämför utbildningsalternativ

Utbildningsadministratörer

  • Läroplansförändringar över tid

  • Kursutbud och planering

  • Skolenhetsregister och status

  • Statistik och kvalitetsdata

Forskare

  • Analys av läroplaner

  • Historisk utveckling

  • Skolenkätsdata

  • Inspektionsrapporter

🆕 Version 2.1.0 - Nyheter

🎯 Nya MCP Capabilities

Resources - 4 statiska resurser för snabb kontextinläsning ✅ Prompts - 5 guidade arbetsflöden för vanliga uppgifter ✅ Förbättrade Tools - Alla 27 verktyg har utökade beskrivningar med use cases

🔧 Nya Funktioner

Strukturerad Logging - Winston-baserad logging med filrotation ✅ Intelligent Caching - In-memory cache med TTL och automatisk rensning ✅ Rate Limiting - Max 5 samtidiga API-anrop med p-limit ✅ Runtime Validation - Zod-baserad input-validering med svenska felmeddelanden ✅ Custom Error Handling - Hierarkisk error-struktur för bättre felhantering

📚 Resources

  • skolverket://api/info - API-information

  • skolverket://school-types - Skoltyper

  • skolverket://types-of-syllabus - Läroplanstyper

  • skolverket://subject-course-codes - Ämnes- och kurskoder

💡 Prompts

  • analyze_course - Kursanalys

  • compare_curriculum_versions - Versionsjämförelse

  • find_adult_education - Hitta vuxenutbildningar

  • plan_study_path - Studievägledning

  • teacher_course_planning - Kursplanering

Utveckling

Krav

  • Node.js 18 eller senare

  • npm 9 eller senare

Bygg projektet

npm install npm run build

Utvecklingsläge

npm run dev

Testning lokalt

npx @modelcontextprotocol/inspector node dist/index.js

Bidra

Bidrag är välkomna! För att bidra:

  1. Forka projektet

  2. Skapa en feature branch (git checkout -b feature/amazing-feature)

  3. Commita dina ändringar (git commit -m 'Add amazing feature')

  4. Pusha till branchen (git push origin feature/amazing-feature)

  5. Öppna en Pull Request

Licens

MIT License - se LICENSE för detaljer.

Attribution

Data kommer från Skolverkets öppna API:er. Denna MCP server är inte officiellt associerad med Skolverket.

Support

För bugrapporter och feature requests, öppna ett issue på GitHub: https://github.com/KSAklfszf921/skolverket-syllabus-mcp/issues

Changelog

v2.1.0 (2025-10-30)

  • KRITISKT: Resources-support med 4 statiska URI:er

  • KRITISKT: Prompts-support med 5 guidade arbetsflöden

  • VIKTIGT: Strukturerad logging med Winston (filrotation, JSON-format)

  • VIKTIGT: Intelligent caching med TTL och automatisk rensning

  • VIKTIGT: Rate limiting med p-limit (max 5 samtidiga anrop)

  • VIKTIGT: Runtime validation med Zod och svenska felmeddelanden

  • VIKTIGT: Custom error classes (SkolverketApiError, ValidationError, etc.)

  • 🔧 Förbättrade tool-beskrivningar med ANVÄNDNINGSFALL, RETURNERAR, EXEMPEL

  • 🔧 Uppdaterad capabilities declaration (tools, resources, prompts, logging)

  • 📝 Omfattande dokumentation av alla nya funktioner

v2.0.0 (2025-01-20)

  • ✨ Ny: Integration med Skolenhetsregistret API

  • ✨ Ny: Integration med Planned Educations API

  • ✨ Ny: 10 nya verktyg för vuxenutbildning och skolenheter

  • 🔧 Refaktorerad kodstruktur för bättre modularitet

  • 🔧 Delad base HTTP-klient för alla API:er

  • 📝 Uppdaterad dokumentation och exempel

v1.0.0 (2025-01-20)

  • 🎉 Initial release

  • 17 verktyg för Läroplan API

  • Stöd för ämnen, kurser, program och läroplaner

  • Versionshantering och historiska läroplaner

Relaterade Projekt

Författare

Skapat för att göra svensk utbildningsdata mer tillgänglig via LLMs.

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Enables LLMs to access Swedish educational data through Skolverket's open APIs, allowing users to search curricula, courses, schools, adult education programs, and analyze educational requirements and standards. Provides comprehensive tools for teachers, students, guidance counselors, and educational researchers to interact with official Swedish education data.

  1. 🌟 Funktioner
    1. 🔧 MCP Capabilities (Ny i v2.1.0)
    2. 📚 Läroplan API (Syllabus API)
    3. 🏫 Skolenhetsregistret API
    4. 🎓 Planned Educations API
  2. Installation
    1. Snabbstart med npx (rekommenderat)
    2. Installation via npm
    3. Manuell installation från källkod
  3. Användning
    1. Konfigurera Claude Desktop
  4. 📋 Alla Verktyg
    1. Läroplan API (17 verktyg)
    2. Skolenhetsregistret API (4 verktyg)
    3. Planned Educations API (6 verktyg)
  5. 💡 Användningsexempel
    1. För Elever och Föräldrar
    2. För Lärare
    3. För Studie- och Yrkesvägledare
    4. För Forskare och Administratörer
  6. 🔑 Vanliga Koder och Termer
    1. Skoltyper
    2. Utbildningsformer (typeOfSchool)
    3. Exempel på Koder
  7. 🏗️ Teknisk Information
    1. Arkitektur
    2. Byggd med
    3. Nya Funktioner i v2.1.0
    4. API-dokumentation
  8. 🎯 Use Cases
    1. Lärare
    2. Elever
    3. Studie- och Yrkesvägledare
    4. Utbildningsadministratörer
    5. Forskare
  9. 🆕 Version 2.1.0 - Nyheter
    1. 🎯 Nya MCP Capabilities
    2. 🔧 Nya Funktioner
    3. 📚 Resources
    4. 💡 Prompts
  10. Utveckling
    1. Krav
    2. Bygg projektet
    3. Utvecklingsläge
    4. Testning lokalt
  11. Bidra
    1. Licens
      1. Attribution
        1. Support
          1. Changelog
            1. v2.1.0 (2025-10-30)
            2. v2.0.0 (2025-01-20)
            3. v1.0.0 (2025-01-20)
          2. Relaterade Projekt
            1. Författare

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/KSAklfszf921/skolverket-syllabus-mcp'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server