Skip to main content
Glama
README.md9.68 kB
# 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) ```bash # 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: ```json { "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: ```bash render blueprint sync ``` ### Docker ```bash 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 ```bash 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 - [KB:s API-dokumentation](https://kb.se/samverkan-och-utveckling/libris/teknisk-information.html) - [Libris](https://libris.kb.se/) - [K-samsök](https://kulturarvsdata.se/) - [MCP Specification](https://modelcontextprotocol.io/) ## 📄 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.

Latest Blog Posts

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/isakskogstad/KB-MCP'

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