MCP Hub
Back to servers

KB-MCP

A comprehensive MCP server providing access to the National Library of Sweden's (Kungliga biblioteket) open APIs, including Libris, K-samsök cultural heritage records, and Swepub research publications.

Tools
57
Updated
Dec 19, 2025
Validated
Jan 11, 2026

KB MCP Server

MCP-server för åtkomst till Kungliga bibliotekets öppna API:er - Sveriges nationella biblioteksdata, kulturarv, forskning och länkad data.

📊 Översikt

DatakällaBeskrivningAntal poster
LibrisBibliografiska poster20M+
K-samsökKulturarvsobjekt10M+
SwepubForskningspublikationer2M+
id.kb.seAuktoriteter & vokabulär500K+

Version 2.1.0

FunktionAntal
Verktyg (Tools)57
Resurser (Resources)7
Promptmallar (Prompts)8

🚀 Installation

Lokal installation (Claude Desktop, Claude Code)

# Klona eller ladda ner
cd kb-mcp-server

# Skapa virtuell miljö (rekommenderat)
python -m venv venv
source venv/bin/activate  # Linux/Mac
# eller: venv\Scripts\activate  # Windows

# Installera dependencies
pip install -r requirements.txt

# Testa
python test_kb_mcp.py

Claude Desktop-konfiguration

Lägg till i ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) eller motsvarande:

{
  "mcpServers": {
    "kb-api": {
      "command": "python",
      "args": ["kb_mcp_server.py"],
      "cwd": "/full/path/to/kb-mcp-server"
    }
  }
}

Starta om Claude Desktop.

Remote deployment (Render)

  1. Push till GitHub
  2. Skapa ny Web Service på Render:
    • Välj repository
    • Build Command: pip install -r requirements.txt
    • Start Command: python kb_mcp_server.py --http --port $PORT
  3. Hämta URL: https://your-service.onrender.com

Alternativt, använd Blueprint:

render blueprint sync

Docker

docker build -t kb-mcp-server .
docker run -p 8000:8000 kb-mcp-server

🔧 Verktyg per Endpoint

1. Libris Xsearch (5 verktyg)

Enkel bibliotekssökning med 20M+ poster.

VerktygBeskrivning
libris_searchFritextsökning
libris_search_authorSök efter författare
libris_search_titleSök efter titel
libris_search_subjectSök efter ämne
libris_search_isbnSök efter ISBN

2. Libris XL REST (6 verktyg)

Avancerad åtkomst till bibliografisk data.

VerktygBeskrivning
libris_get_recordHämta specifik post
libris_findAvancerad sökning med operatorer
libris_get_holdingsBiblioteksbestånd
libris_get_workAlla utgåvor av ett verk
libris_autocompleteSökförslag
libris_relatedRelaterade verk

3. K-samsök (7 verktyg)

Kulturarv från 83 institutioner.

VerktygBeskrivning
ksamsok_searchCQL-sökning
ksamsok_search_locationGeografisk sökning
ksamsok_search_typeSök efter objekttyp
ksamsok_search_timeSök efter tidsperiod
ksamsok_get_objectHämta specifikt objekt
ksamsok_get_relationsObjektrelationer
ksamsok_statisticsStatistik och facetter

4. OAI-PMH (5 verktyg)

Bulkexport av metadata.

VerktygBeskrivning
oaipmh_list_recordsLista poster
oaipmh_get_recordHämta enskild post
oaipmh_list_setsTillgängliga sets
oaipmh_list_formatsMetadataformat
oaipmh_resumePaginering

5. data.kb.se (5 verktyg)

Digitaliserat material.

VerktygBeskrivning
kb_data_list_collectionsLista samlingar
kb_data_get_itemHämta objekt
kb_data_searchSök digitaliserat
kb_data_get_manifestIIIF-manifest
kb_data_get_metadataMetadata i olika format

6. Swepub (6 verktyg)

Svensk forskningspublicering.

VerktygBeskrivning
swepub_searchSök publikationer
swepub_search_authorSök efter forskare
swepub_search_affiliationSök efter lärosäte
swepub_search_subjectSök efter ämne
swepub_get_publicationHämta publikation
swepub_exportExportera till RIS/BibTeX

7. id.kb.se (4 verktyg)

Auktoriteter och vokabulär.

VerktygBeskrivning
idkb_get_entityHämta entitet
idkb_searchSök auktoriteter
idkb_get_vocab_termHämta vokabulärterm
idkb_list_vocabLista vokabulär

8. SPARQL (4 verktyg)

Länkad data-frågor.

VerktygBeskrivning
sparql_queryKör SPARQL SELECT
sparql_describeBeskriv resurs
sparql_countRäkna resultat
sparql_templatesFrågemallar

9. Export (5 verktyg)

Bibliografi och referenshantering.

VerktygBeskrivning
export_author_bibliographyFörfattarbibliografi
export_subject_bibliographyÄmnesbibliografi
export_search_resultsExportera sökresultat
export_publication_listSkapa publikationslista
export_formats_infoInformation om format

10. Hjälp (5 verktyg)

Dokumentation och metadata.

VerktygBeskrivning
kb_api_infoÖversikt alla API:er
kb_api_statusKontrollera status
kb_search_tipsSöktips och syntax
kb_data_dictionaryDatadefinitioner
kb_example_queriesExempelfrågor

11. Nya förbättrade verktyg (5 verktyg)

Kraftfulla verktyg för avancerade användningsfall.

VerktygBeskrivning
combined_searchSök i flera databaser samtidigt
quick_statsSnabbstatistik från alla API:er
find_related_worksHitta relaterade verk
historical_periods_searchSök efter historisk period
swedish_counties_infoLista svenska län

📚 MCP Resources

Read-only resurser för dokumentation och referens:

Resurs URIBeskrivning
kb://api/overviewÖversikt över alla API:er
kb://search/syntaxKomplett söksyntax-guide
kb://examples/librisLibris-exempel
kb://examples/ksamsokK-samsök-exempel
kb://examples/sparqlSPARQL-exempel
kb://examples/researchSwepub-exempel
kb://data/objecttypesK-samsök objekttyper

💬 MCP Prompts

Fördefinierade promptmallar för vanliga uppgifter:

PromptBeskrivningParametrar
prompt_find_books_by_authorHitta böcker av författareauthor_name
prompt_research_topicUtforska ett ämnetopic
prompt_genealogy_searchSläktforskningparish, county
prompt_cultural_heritage_locationKulturarv per läncounty
prompt_export_bibliographySkapa bibliografitopic, format
prompt_sparql_analysisSPARQL-analysanalysis_type
prompt_time_period_searchTidsperiod-sökningfrom_year, to_year
prompt_compare_institutionsJämför lärosäteninstitution1, institution2

📖 Användningsexempel

Hitta böcker av en författare

libris_search_author(author_name="Lagerlöf, Selma")

Sök kulturarvsobjekt

ksamsok_search(query='itemType=Photograph AND countyName="Uppsala län"')

Exportera bibliografi till Zotero

export_author_bibliography(author_name="Strindberg, August", format="ris")

SPARQL-analys

sparql_query(query="SELECT ?author (COUNT(?work) AS ?count) WHERE { ?work dc:creator ?author } GROUP BY ?author ORDER BY DESC(?count) LIMIT 10")

🌐 Remote URL (efter Render-deployment)

Använd i ChatGPT eller andra MCP-klienter:

https://your-service.onrender.com/sse

Endpoints

EndpointBeskrivning
/healthHealth check
/infoServer-information
/sseSSE-transport (MCP)
/messages/Meddelanden (POST)

🔒 Säkerhet

  • Ingen autentisering krävs - KB:s API:er är öppna
  • Ingen API-nyckel - Inga hemligheter att hantera
  • Rate limiting - Respektera KB:s servrar

📁 Projektstruktur

kb-mcp-server/
├── kb_mcp_server.py      # Huvudserver med alla 52 verktyg
├── src/
│   ├── __init__.py
│   └── api_client.py     # HTTP-klient och hjälpfunktioner
├── requirements.txt      # Python-dependencies
├── Procfile             # Render startkommando
├── render.yaml          # Render Blueprint
├── Dockerfile           # Docker-image
├── test_kb_mcp.py       # Testsvit
├── claude_desktop_config.example.json
├── TOOL_DESIGN.md       # Verktygsdesign
└── README.md            # Denna fil

🧪 Testa

python test_kb_mcp.py

Förväntat resultat:

KB MCP Server - Testsvit
============================================================
🔍 Test: Libris Xsearch...
   ✅ OK - 7432 träffar för 'Astrid Lindgren'
🔍 Test: Libris XL...
   ✅ OK - 3 poster för 'Strindberg'
🔍 Test: K-samsök...
   ✅ OK - 12023 runstenar hittade
🔍 Test: OAI-PMH...
   ✅ OK - 5 sets tillgängliga
🔍 Test: id.kb.se...
   ✅ OK - 5 auktoriteter för 'Strindberg'
🔍 Test: Swepub...
   ✅ OK - 15234 forskningspublikationer
============================================================
Resultat: 6/6 tester godkända

📚 Dokumentation

📄 Licens

MIT License - Använd fritt för alla ändamål.

👤 Författare

Utvecklad för åtkomst till Sveriges nationella biblioteksdata via Model Context Protocol.

Reviews

No reviews yet

Sign in to write a review