← Back to search

io.github.malkreide/swiss-academic-libraries-mcp

malkreide Scanned 15d ago

swisscovery, e-rara, e-periodica, e-manuscripta via SRU/OAI-PMH

C
72.1 / 100

Versions

1.0.5latest
first seen Jun 30, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 16

library_info
annotations: none low

Übersicht aller verfügbaren Datenquellen und Tools dieses MCP-Servers. Empfohlen als Einstiegspunkt: zeigt alle vier Bibliotheksquellen, die verfügbaren Tools mit kurzen Beschreibungen und Beispielanfragen. Kein Netzwerkzugriff erforderlich. Returns: str: Markdown-Dokumentation mit Datenquellen, Tool-Übersicht und Beispielen.

swisscovery_search
annotations: none low

Durchsucht den swisscovery-Gesamtkatalog (500+ Schweizer Bibliotheken) via SRU. Unterstützt einfache Volltextsuche und CQL-Feldsuche: - Volltextsuche: "Volksschule Zürich" - Titelsuche: title = "Bildungsreform" - Autorensuche: creator = "Pestalozzi" - Schlagwortsuche: subject = "Pädagogik" - Kombiniert: title = "Schule" AND creator = "Pestalozzi" Args: params (SwisscoverySearchInput): Suchparameter: - query (str): CQL-Suchanfrage - max_records (int): Maximale Ergebnisanzahl (1–50, Standard: 10) - start_record (int): Startposition für Pagination (Standard: 1) - response_format (str): 'markdown' oder 'json' Returns: str: Formatierte Liste der Treffer mit Titel, Autor, Erscheinungsinfo, Sprache, ISBN/ISSN, MMS-ID und swisscovery-Link. Bei JSON: vollständiges MARC-geparsertes Dict pro Eintrag. Enthält Gesamttrefferanzahl und next_record_position für Pagination.

params SwisscoverySearchInput
swisscovery_get_record
annotations: none low

Ruft einen einzelnen Titel aus swisscovery via MMS-ID ab. Die MMS-ID wird aus den Ergebnissen von swisscovery_search (Feld 'mms_id') entnommen. Args: params (SwisscoveryGetRecordInput): Input mit: - mms_id (str): MMS-ID des Titels (z.B. '991134165199705501') Returns: str: Detaillierter MARC-Eintrag als Markdown inkl. aller verfügbaren Felder: Titel, Autor, Erscheinungsinfo, Umfang, Sprache, ISBN/ISSN, Schlagworte, Abstract, URLs und swisscovery-Permalink.

params SwisscoveryGetRecordInput
erara_list_records
annotations: none low

Listet digitalisierte historische Druckwerke aus e-rara (OAI-PMH). e-rara enthält über 250'000 digitalisierte Werke aus Schweizer Bibliotheken, darunter historische Bücher, Karten, Flugblätter und Einblattdrucke. Verfügbare Sammlungen (set_spec) mit erara_list_collections abrufen. Bekannte Sets: 'zut' (ETH-Bibliothek), 'bau_1' (UB Basel), 'bge_g' (BGE Genf), 'stibi' (Stiftsbibliothek St. Gallen). Args: params (OaiSearchInput): Filterparameter: - from_date (str): Startdatum YYYY-MM-DD (optional) - until_date (str): Enddatum YYYY-MM-DD (optional) - set_spec (str): Sammlung/Bibliothek (optional) - resumption_token (str): Pagination-Token (optional) - response_format (str): 'markdown' oder 'json' Returns: str: Liste der Einträge mit Titel, Autor, Datum, Verlag, Typ, URL. Enthält resumption_token für weitere Seiten und Gesamtanzahl.

params OaiSearchInput
erara_get_record
annotations: none low

Ruft ein einzelnes digitalisiertes Druckwerk aus e-rara ab. Die OAI-Identifier stammen aus den Ergebnissen von erara_list_records. Format: 'oai:www.e-rara.ch:{id}' (z.B. 'oai:www.e-rara.ch:29725195') Args: params (OaiGetRecordInput): Input mit: - oai_identifier (str): OAI-Identifier des Werks - response_format (str): 'markdown' oder 'json' Returns: str: Vollständige Dublin-Core-Metadaten: Titel, Autor(en), Datum, Verlag, Typ, Themen, Beschreibung, Relationen und Digitalisat-URL.

params OaiGetRecordInput
erara_list_collections
annotations: none low

Listet alle in e-rara vertretenen Bibliotheken und Sammlungen auf. Die Set-Bezeichner (spec) können als set_spec in erara_list_records verwendet werden, um die Suche auf eine bestimmte Bibliothek einzuschränken. Args: params (ListCollectionsInput): Input mit: - filter_name (str): Filter nach Bibliotheksname (optional) Returns: str: Tabellarische Übersicht aller Sammlungen mit Set-Bezeichner und Name.

params ListCollectionsInput
eperiodica_list_records
annotations: none low

Listet digitalisierte Zeitschriftenartikel und Periodika aus e-periodica (OAI-PMH). e-periodica bietet Zugriff auf über 1 Million digitalisierte Artikel aus Schweizer Zeitschriften (1750–heute), darunter Fachzeitschriften, Kulturzeitschriften und historische Periodika. OAI-Identifier-Format: 'oai:agora.ch:{zeitschrift}:{jahr}:{heft}::{seite}' Args: params (OaiSearchInput): Filterparameter: - from_date (str): Startdatum YYYY-MM-DD (optional) - until_date (str): Enddatum YYYY-MM-DD (optional) - set_spec (str): Zeitschriften-Set (optional) - resumption_token (str): Pagination-Token (optional) - response_format (str): 'markdown' oder 'json' Returns: str: Liste der Artikel mit Titel, Autor(en), Datum, Quelle/Zeitschrift, URL. Enthält resumption_token und Gesamtanzahl für Pagination.

params OaiSearchInput
eperiodica_get_record
annotations: none low

Ruft einen einzelnen Zeitschriftenartikel aus e-periodica ab. Die OAI-Identifier stammen aus den Ergebnissen von eperiodica_list_records. Format: 'oai:agora.ch:{zeitschrift}:{jahr}:{heft}::{seite}' Args: params (OaiGetRecordInput): Input mit: - oai_identifier (str): OAI-Identifier des Artikels - response_format (str): 'markdown' oder 'json' Returns: str: Vollständige Dublin-Core-Metadaten: Titel, Autor(en), Datum, Quelle, Themen, Beschreibung, Sprache und Digitalisat-URL.

params OaiGetRecordInput
emanuscripta_list_records
annotations: none low

Listet digitalisierte Handschriften und Archivalien aus e-manuscripta (OAI-PMH). e-manuscripta bietet Zugriff auf digitalisierte Handschriften, Nachlässe, Briefe und andere Archivmaterialien aus Schweizer Bibliotheken und Archiven. Darunter Bestände der ETH-Bibliothek, ZB Zürich, UB Basel u.a. Verfügbare Sammlungen mit emanuscripta_list_collections() abrufen. Args: params (OaiSearchInput): Filterparameter: - from_date (str): Startdatum YYYY-MM-DD (optional) - until_date (str): Enddatum YYYY-MM-DD (optional) - set_spec (str): Sammlung/Archiv (optional) - resumption_token (str): Pagination-Token (optional) - response_format (str): 'markdown' oder 'json' Returns: str: Liste der Objekte mit Titel, Autor(en), Datum, Sammlung, Typ, URL. Enthält resumption_token und Gesamtanzahl für Pagination.

params OaiSearchInput
emanuscripta_get_record
annotations: none low

Ruft ein einzelnes Handschriften-Objekt aus e-manuscripta ab. Die OAI-Identifier stammen aus den Ergebnissen von emanuscripta_list_records. Format: 'oai:www.e-manuscripta.ch:{id}' Args: params (OaiGetRecordInput): Input mit: - oai_identifier (str): OAI-Identifier des Objekts - response_format (str): 'markdown' oder 'json' Returns: str: Vollständige Dublin-Core-Metadaten: Titel, Autor(en), Datum, Sammlung/Archiv, Typ, Themen, Beschreibung, Relationen und URL.

params OaiGetRecordInput
emanuscripta_list_collections
annotations: none low

Listet alle in e-manuscripta vertretenen Archive und Sammlungen auf. Die Set-Bezeichner können als set_spec in emanuscripta_list_records verwendet werden. Args: params (ListCollectionsInput): Input mit: - filter_name (str): Filter nach Sammlungsname (optional) Returns: str: Tabellarische Übersicht aller Sammlungen mit Set-Bezeichner und Name.

params ListCollectionsInput
oa_law_search
annotations: none low

Durchsucht frei zugängliche schweizerische rechtswissenschaftliche Beiträge. Quellen: sui generis (OA-Rechtszeitschrift), ex/ante (peer-reviewt, mehrsprachig) und Repositorium.ch (Fachrepositorium Schweizer Recht). Geliefert werden ausschliesslich **Metadaten** (Titel, Autorschaft, Jahr, Lizenz, DOI, Link, Abstract falls vorhanden) — **kein Volltext**. Das Feld `license` ist immer gesetzt; fehlt eine maschinenlesbare Lizenz, steht dort "unknown" (Open Access heisst frei lesbar, nicht zwingend frei weiterverwendbar). Sprache wird geführt, aber nur gefiltert, wenn `language` ausdrücklich gesetzt ist. Args: params (OaLawSearchInput): query, source, language, year_from, year_to, peer_reviewed, max_records, response_format. Returns: str: Trefferliste mit Titel, Autorschaft, Jahr, Lizenz, DOI und Link, inklusive Quellen-Status (nicht erreichbare Quellen werden ausgewiesen).

params OaLawSearchInput
oa_law_get
annotations: none low

Ruft einen einzelnen OA-Rechtsbeitrag über DOI oder auflösbare URL ab. Identifier stammen aus den oa_law_search-Ergebnissen (DOI oder Link). Geliefert werden Metadaten inkl. Lizenz — **kein Volltext**. Args: params (OaLawGetInput): identifier (DOI oder URL), response_format. Returns: str: Detailmetadaten des Beitrags oder ein Hinweis, wenn nichts gefunden wurde.

params OaLawGetInput
resolve_doi
annotations: none low

Löst eine DOI über Crossref zu vollständigen Publikationsmetadaten auf. Beantwortet «was ist das überhaupt?» für eine DOI und liefert die Brücke zur nationalen Ebene: Titel, ISSN, ISBN und Autor:innen kommen als saubere Top-Level-Felder zurück. Damit lässt sich direkt in **swisscovery** prüfen, ob eine Schweizer Bibliothek den Titel führt — z.B. `swisscovery_search(query="<ISSN>")` oder mit Titel/Autor:in kombiniert. Stark bei internationaler Forschungsliteratur; für deutschsprachige CH-Bildungspublikationen ist Crossref schwach (siehe Known findings). Args: params (ResolveDoiInput): doi (blank oder als URL), response_format. Returns: str: Metadaten inkl. Lizenz und auflösbarem Link, oder ein Hinweis, wenn die DOI bei Crossref nicht auflösbar ist. Enthält einen konkreten Vorschlag zur Weitersuche in swisscovery.

params ResolveDoiInput
search_publications
annotations: none low

Durchsucht die internationale Forschungsliteratur über Crossref (bibliografisch). Liefert pro Treffer Titel, Autor:innen, Jahr, Typ, ISSN/ISBN, Lizenz und DOI. Jeder Treffer trägt eine DOI, die sich mit `resolve_doi` vertiefen und mit ISSN/ISBN/Titel in **swisscovery** gegen den Schweizer Bestand prüfen lässt. Wichtige Einschränkung: Crossref ist stark bei internationaler Forschungsliteratur, aber **schwach bei deutschsprachiger CH-Bildungs- literatur** (z.B. Lehrplan-21-Umfeld). Für CH-Bildungspublikationen ist `swisscovery_search` oder `oa_law_search` die bessere Wahl. Args: params (SearchPublicationsInput): query, year_from, year_to, limit, response_format. Returns: str: Trefferliste mit DOI je Eintrag, oder ein Hinweis bei null Treffern.

params SearchPublicationsInput
search_preprints
annotations: none low

Durchsucht Preprints auf arXiv (Naturwissenschaften, Informatik, Mathematik u.a.). Beantwortet «gibt es davon eine frühe/offene Fassung?». Die Anfrage wird automatisch als exakte Phrase gesucht — du musst keine arXiv-Syntax kennen (arXiv würde Leerzeichen sonst als OR interpretieren). Wo arXiv eine verknüpfte Journal-DOI führt, ist sie im Feld `doi` enthalten und lässt sich mit `resolve_doi` zur peer-reviewten Fassung auflösen — die sich wiederum in **swisscovery** gegen den Schweizer Bestand prüfen lässt. Args: params (SearchPreprintsInput): query, category (optional, z.B. 'cs.CL'), limit, response_format. Returns: str: Trefferliste mit arXiv-ID, Kategorie, Datum, ggf. Journal-DOI und Abstract, oder ein Hinweis bei null Treffern.

params SearchPreprintsInput

Permissions 4

network medium
Server uses network capabilities via: http, httpx, urllib
filesystem low
Server uses filesystem capabilities via: open(), os, pathlib, shutil, tempfile
shell high
Server uses shell capabilities via: subprocess
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 45

low
Tool 'library_info' has no annotations annotation_checker · 100%
low
Tool 'swisscovery_search' has no annotations annotation_checker · 100%
low
Tool 'swisscovery_get_record' has no annotations annotation_checker · 100%
low
Tool 'erara_list_records' has no annotations annotation_checker · 100%
low
Tool 'erara_get_record' has no annotations annotation_checker · 100%
low
Tool 'erara_list_collections' has no annotations annotation_checker · 100%
low
Tool 'eperiodica_list_records' has no annotations annotation_checker · 100%
low
Tool 'eperiodica_get_record' has no annotations annotation_checker · 100%
low
Tool 'emanuscripta_list_records' has no annotations annotation_checker · 100%
low
Tool 'emanuscripta_get_record' has no annotations annotation_checker · 100%
low
Tool 'emanuscripta_list_collections' has no annotations annotation_checker · 100%
low
Tool 'oa_law_search' has no annotations annotation_checker · 100%
low
Tool 'oa_law_get' has no annotations annotation_checker · 100%
low
Tool 'resolve_doi' has no annotations annotation_checker · 100%
low
Tool 'search_publications' has no annotations annotation_checker · 100%
low
Tool 'search_preprints' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: pydantic@2.0.0 (GHSA-mr82-8j83-vxmv) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (PYSEC-2026-1812) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: library_info manifest_parser · 90%
info
Tool: swisscovery_search manifest_parser · 90%
info
Tool: swisscovery_get_record manifest_parser · 90%
info
Tool: erara_list_records manifest_parser · 90%
info
Tool: erara_get_record manifest_parser · 90%
info
Tool: erara_list_collections manifest_parser · 90%
info
Tool: eperiodica_list_records manifest_parser · 90%
info
Tool: eperiodica_get_record manifest_parser · 90%
info
Tool: emanuscripta_list_records manifest_parser · 90%
info
Tool: emanuscripta_get_record manifest_parser · 90%
info
Tool: emanuscripta_list_collections manifest_parser · 90%
info
Tool: oa_law_search manifest_parser · 90%
info
Tool: oa_law_get manifest_parser · 90%
info
Tool: resolve_doi manifest_parser · 90%
info
Tool: search_publications manifest_parser · 90%
info
Tool: search_preprints manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (6) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%