Used as the HTTP client for making requests to Skolverket's APIs
Runtime environment for the MCP server implementation
Package manager used for distribution and installation of the MCP server
Programming language used for type-safe implementation of the MCP server
Schema validation library used for runtime validation of API inputs and responses
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 metadataskolverket://school-types- Kompletta skoltyper (aktiva + utgångna)skolverket://types-of-syllabus- Läroplanstyper och kategorierskolverket://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 kursanalyscompare_curriculum_versions- Jämför läroplansversionerfind_adult_education- Hitta vuxenutbildningarplan_study_path- Studievägledning för eleverteacher_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)
Installation via npm
Lägg sedan till i Claude Desktop config:
Manuell installation från källkod
Lägg till i Claude Desktop config:
Användning
Konfigurera Claude Desktop
Öppna Claude Desktop
Gå till inställningar (Settings)
Navigera till "Developer" → "Edit Config"
Lägg till server-konfigurationen ovan
Starta om Claude Desktop
📋 Alla Verktyg
Läroplan API (17 verktyg)
Ämnen
search_subjects- Sök ämnen med filterget_subject_details- Hämta fullständig ämnesinformationget_subject_versions- Se historiska versioner
Kurser
search_courses- Sök kurser med omfattande filterget_course_details- Detaljerad kursinformation med kunskapskravget_course_versions- Historiska kursversioner
Program
search_programs- Sök gymnasieprogramget_program_details- Programinformation med inriktningarget_program_versions- Programversioner över tid
Läroplaner
search_curriculums- Sök läroplaner (LGR11, GY11, etc.)get_curriculum_details- Fullständig läroplanget_curriculum_versions- Läroplansversioner
Stöddata
get_school_types- Lista skoltyperget_types_of_syllabus- Lista läroplanstyperget_subject_and_course_codes- Alla ämnes- och kurskoderget_study_path_codes- Studievägskodarget_api_info- API-information
Skolenhetsregistret API (4 verktyg)
search_school_units- Sök skolenheter med filterget_school_unit_details- Hämta skolenhetsdetaljerget_school_units_by_status- Filtrera efter statussearch_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 utbildningsinformationfilter_adult_education_by_distance- Filtrera distans/campusfilter_adult_education_by_pace- Filtrera efter studietakt
Stöddata
get_education_areas- Hämta utbildningsområdenget_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?"
"Vad är kunskapskraven för betyget E i Matematik 1c?"
För Lärare
"Visa centralt innehåll för Svenska 2 på gymnasiet"
"Hitta alla aktiva skolor i Göteborg"
För Studie- och Yrkesvägledare
"Vilka inriktningar finns på Naturvetenskapsprogrammet?"
"Visa alla SFI-kurser med låg studietakt i Uppsala"
För Forskare och Administratörer
"Hur har läroplanen för matematik förändrats mellan 2011 och 2022?"
"Vilka skolor har lagts ner i Stockholms län de senaste åren?"
🔑 Vanliga Koder och Termer
Skoltyper
GR- GrundskolanGY- GymnasieskolanVUX- VuxenutbildningGRSÄR- GrundsärskolanGYSÄR- Gymnasiesärskolan
Utbildningsformer (typeOfSchool)
yh- Yrkeshögskolasfi- SFI (Svenska för invandrare)komvuxgycourses- Komvux gymnasiekurserkomvuxbasiccourses- 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
Byggd med
@modelcontextprotocol/sdk- MCP SDKaxios- HTTP-klientzod- Schema-validering och runtime validationwinston- 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/syllabusSkolenhetsregistret:
https://api.skolverket.se/skolenhetsregistret/v2Planned 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-informationskolverket://school-types- Skoltyperskolverket://types-of-syllabus- Läroplanstyperskolverket://subject-course-codes- Ämnes- och kurskoder
💡 Prompts
analyze_course- Kursanalyscompare_curriculum_versions- Versionsjämförelsefind_adult_education- Hitta vuxenutbildningarplan_study_path- Studievägledningteacher_course_planning- Kursplanering
Utveckling
Krav
Node.js 18 eller senare
npm 9 eller senare
Bygg projektet
Utvecklingsläge
Testning lokalt
Bidra
Bidrag är välkomna! För att bidra:
Forka projektet
Skapa en feature branch (
git checkout -b feature/amazing-feature)Commita dina ändringar (
git commit -m 'Add amazing feature')Pusha till branchen (
git push origin feature/amazing-feature)Ö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.
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.
Tools
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.
- 🌟 Funktioner
- Installation
- Användning
- 📋 Alla Verktyg
- 💡 Användningsexempel
- 🔑 Vanliga Koder och Termer
- 🏗️ Teknisk Information
- 🎯 Use Cases
- 🆕 Version 2.1.0 - Nyheter
- Utveckling
- Bidra
- Licens
- Attribution
- Support
- Changelog
- Relaterade Projekt
- Författare