Skip to main content
Glama
malkreide

swiss-academic-libraries-mcp

by malkreide

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
library_infoA

Ü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_searchA

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.

swisscovery_get_record

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.

erara_list_records

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.

erara_get_record

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.

erara_list_collections

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.

eperiodica_list_records

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.

eperiodica_get_record

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.

emanuscripta_list_records

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.

emanuscripta_get_record

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.

emanuscripta_list_collectionsA

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.

oa_law_searchA

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).

oa_law_get

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.

resolve_doiA

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.

search_publicationsA

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.

search_preprintsA

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.

Prompts

Interactive templates invoked by user choice

NameDescription
research-workflowStrukturierter Recherche-Workflow für ein Thema über alle Quellen.
education-researchBildungsrecherche-Workflow für den Schulamt-Kontext.
doi-to-swiss-shelfVerbindet die internationale (DOI/Preprint) mit der nationalen Ebene (swisscovery).

Resources

Contextual data attached and managed by the client

NameDescription
get_sourcesStrukturierte Übersicht aller Datenquellen als JSON-Ressource. Konsumiert die SOURCES-Konstante (Single Source of Truth, F-10). Felder 'label' und 'content' werden in der JSON-Resource unterdrückt — sie sind rein für die Markdown-Darstellung in library_info.
get_oa_legal_sourcesÜbersicht der OA-Rechtsliteratur-Quellen (deklarative Registry) als JSON. Führt die Quellen-Metadaten der oa_law_*-Tools auf. Der Supabase-Anon-Key (Repositorium) wird bewusst unterdrückt — er ist rein lesend und öffentlich, gehört aber nicht in eine Übersichts-Ressource.
get_intl_metadata_sourcesÜbersicht der internationalen Metadatenquellen (Crossref, arXiv) als JSON. Attribution steht pro Quelle (unterschiedliche Nennungsbedingungen). Beide Quellen sind ohne API-Key zugänglich; Crossref nutzt einen polite pool, der per Env-Var CROSSREF_MAILTO adressiert wird.

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/malkreide/swiss-academic-libraries-mcp'

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