isakskogstad

KB MCP Server

Community isakskogstad
Updated

Kungliga Biblioteket MCP-server

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älla Beskrivning Antal poster
Libris Bibliografiska poster 20M+
K-samsök Kulturarvsobjekt 10M+
Swepub Forskningspublikationer 2M+
id.kb.se Auktoriteter & vokabulär 500K+

Version 2.1.0

Funktion Antal
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.

Verktyg Beskrivning
libris_search Fritextsökning
libris_search_author Sök efter författare
libris_search_title Sök efter titel
libris_search_subject Sök efter ämne
libris_search_isbn Sök efter ISBN

2. Libris XL REST (6 verktyg)

Avancerad åtkomst till bibliografisk data.

Verktyg Beskrivning
libris_get_record Hämta specifik post
libris_find Avancerad sökning med operatorer
libris_get_holdings Biblioteksbestånd
libris_get_work Alla utgåvor av ett verk
libris_autocomplete Sökförslag
libris_related Relaterade verk

3. K-samsök (7 verktyg)

Kulturarv från 83 institutioner.

Verktyg Beskrivning
ksamsok_search CQL-sökning
ksamsok_search_location Geografisk sökning
ksamsok_search_type Sök efter objekttyp
ksamsok_search_time Sök efter tidsperiod
ksamsok_get_object Hämta specifikt objekt
ksamsok_get_relations Objektrelationer
ksamsok_statistics Statistik och facetter

4. OAI-PMH (5 verktyg)

Bulkexport av metadata.

Verktyg Beskrivning
oaipmh_list_records Lista poster
oaipmh_get_record Hämta enskild post
oaipmh_list_sets Tillgängliga sets
oaipmh_list_formats Metadataformat
oaipmh_resume Paginering

5. data.kb.se (5 verktyg)

Digitaliserat material.

Verktyg Beskrivning
kb_data_list_collections Lista samlingar
kb_data_get_item Hämta objekt
kb_data_search Sök digitaliserat
kb_data_get_manifest IIIF-manifest
kb_data_get_metadata Metadata i olika format

6. Swepub (6 verktyg)

Svensk forskningspublicering.

Verktyg Beskrivning
swepub_search Sök publikationer
swepub_search_author Sök efter forskare
swepub_search_affiliation Sök efter lärosäte
swepub_search_subject Sök efter ämne
swepub_get_publication Hämta publikation
swepub_export Exportera till RIS/BibTeX

7. id.kb.se (4 verktyg)

Auktoriteter och vokabulär.

Verktyg Beskrivning
idkb_get_entity Hämta entitet
idkb_search Sök auktoriteter
idkb_get_vocab_term Hämta vokabulärterm
idkb_list_vocab Lista vokabulär

8. SPARQL (4 verktyg)

Länkad data-frågor.

Verktyg Beskrivning
sparql_query Kör SPARQL SELECT
sparql_describe Beskriv resurs
sparql_count Räkna resultat
sparql_templates Frågemallar

9. Export (5 verktyg)

Bibliografi och referenshantering.

Verktyg Beskrivning
export_author_bibliography Författarbibliografi
export_subject_bibliography Ämnesbibliografi
export_search_results Exportera sökresultat
export_publication_list Skapa publikationslista
export_formats_info Information om format

10. Hjälp (5 verktyg)

Dokumentation och metadata.

Verktyg Beskrivning
kb_api_info Översikt alla API:er
kb_api_status Kontrollera status
kb_search_tips Söktips och syntax
kb_data_dictionary Datadefinitioner
kb_example_queries Exempelfrågor

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

Kraftfulla verktyg för avancerade användningsfall.

Verktyg Beskrivning
combined_search Sök i flera databaser samtidigt
quick_stats Snabbstatistik från alla API:er
find_related_works Hitta relaterade verk
historical_periods_search Sök efter historisk period
swedish_counties_info Lista svenska län

📚 MCP Resources

Read-only resurser för dokumentation och referens:

Resurs URI Beskrivning
kb://api/overview Översikt över alla API:er
kb://search/syntax Komplett söksyntax-guide
kb://examples/libris Libris-exempel
kb://examples/ksamsok K-samsök-exempel
kb://examples/sparql SPARQL-exempel
kb://examples/research Swepub-exempel
kb://data/objecttypes K-samsök objekttyper

💬 MCP Prompts

Fördefinierade promptmallar för vanliga uppgifter:

Prompt Beskrivning Parametrar
prompt_find_books_by_author Hitta böcker av författare author_name
prompt_research_topic Utforska ett ämne topic
prompt_genealogy_search Släktforskning parish, county
prompt_cultural_heritage_location Kulturarv per län county
prompt_export_bibliography Skapa bibliografi topic, format
prompt_sparql_analysis SPARQL-analys analysis_type
prompt_time_period_search Tidsperiod-sökning from_year, to_year
prompt_compare_institutions Jämför lärosäten institution1, 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

Endpoint Beskrivning
/health Health check
/info Server-information
/sse SSE-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.

MCP Server · Populars

MCP Server · New