swiss-academic-libraries-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
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_recordA | 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_recordsA | 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_recordA | 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_collectionsA | 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_recordsA | 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_recordA | 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_recordsA | 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_recordA | 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 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_getA | 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.
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 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
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 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
| Name | Description |
|---|---|
| research-workflow | Strukturierter Recherche-Workflow für ein Thema über alle Quellen. |
| education-research | Bildungsrecherche-Workflow für den Schulamt-Kontext. |
| doi-to-swiss-shelf | Verbindet die internationale (DOI/Preprint) mit der nationalen Ebene (swisscovery). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_sources | Strukturierte Ü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. |
TDQS
Scored across 16 tools
Most tools are cleanly separated by data source and action: search, single-record retrieval, and collection listing are easy to tell apart. The closest pairs are search_preprints/search_publications and swisscovery_search/search_publications, but their descriptions clearly differentiate arXiv preprints, Crossref publications, and the Swiss union catalogue.
The dominant pattern is a source prefix plus an action (swisscovery_search, erara_list_records, oa_law_get), with a consistent snake_case style across all 16 names. Minor deviations exist: search_preprints and search_publications drop the source prefix, and library_info is noun_noun rather than verb_noun.
Sixteen tools is slightly above the typical 3-15 range, but the count is justified by six distinct data sources plus helper tools. The repeated list/get/collections triples for e-rara, e-periodica, and e-manuscripta are systematic rather than redundant.
Core workflows are covered: search and retrieve for swisscovery and OA law, list/get plus collection discovery for e-rara and e-manuscripta, DOI resolution, and cross-source navigation. The main gap is eperiodica_list_collections, which would mirror the other OAI repositories and make set filtering easier; agents can still work around it via date-based listing.