Skip to main content
Glama
malkreide

swiss-cultural-heritage-mcp

by malkreide

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

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

Tools

Functions exposed to the LLM to take actions

NameDescription
heritage_search_artistsA

Sucht Schweizer Künstler·innen in den SIKART-Daten (~17'000 Einträge).

SIKART (Lexikon zur Kunst in der Schweiz, herausgegeben vom Schweizerischen Institut für Kunstwissenschaft SIK-ISEA) dokumentiert historische und zeitgenössische Kunstschaffende mit biografischen Grunddaten. Die Suche läuft als CKAN-DataStore-Volltextsuche über alle Felder; mehrere Begriffe werden UND-verknüpft. Liefert die exakte Suche keine Treffer, wird automatisch breiter mit dem spezifischsten Begriff gesucht und das Resultat als match_type: fuzzy markiert (ARCH-003); bleibt es leer, match_type: none.

Args: params (ArtistSearchInput): - query (str | None): Name, Beruf oder Stichwort (z. B. 'Hodler') - region (str | None): Geburts-/Sterbeort oder Kanton (z. B. 'Basel') - limit (int): Max. Ergebnisse (Standard: 20) - offset (int): Paginierungs-Offset - response_format: 'markdown' oder 'json'

Returns: str: Liste gefundener Künstler·innen mit Name, Lebensdaten, Kanton, Kurzbiografie.

heritage_get_artistA

Ruft den vollständigen SIKART-Datensatz zu einer Künstler·in ab.

Args: params (ArtistDetailInput): - artist_id (str): SIKART-ID (HAUPTNR aus heritage_search_artists) - response_format: 'markdown' oder 'json'

Returns: str: Vollständiges Profil mit Lebensdaten, Orten, Kurzbiografie und Links.

heritage_search_museum_datasetsA

Sucht Datensätze des Schweizerischen Nationalmuseums (SNM) auf opendata.swiss.

Das SNM publiziert Sammlungsdaten als Open Data: Numismatik (~100'000 Münzen), Siegelsammlung (~80'000 Objekte), Spezialsammlungen und weitere. Bei 0 exakten Treffern wird die Solr-Suche automatisch gelockert (OR-verknüpfte Präfix-Wildcards) und das Resultat als match_type: fuzzy markiert (ARCH-003).

Args: params (MuseumSearchInput): - query (str | None): Suchbegriff über Titel/Beschreibung - collection (str | None): Sammlungsfilter (z. B. 'numismatik') - limit / offset: Paginierung - response_format: 'markdown' oder 'json'

Returns: str: Liste verfügbarer SNM-Datensätze mit Titel, Beschreibung und Download-URLs (CSV, XLSX, JSON).

heritage_browse_collectionA

Durchsucht Objekte innerhalb eines SNM-Sammlungsdatensatzes via CKAN DataStore.

Voraussetzung: Resource-ID aus heritage_search_museum_datasets.

Args: params (CollectionBrowseInput): - resource_id (str): CKAN Resource-ID (aus heritage_search_museum_datasets) - query (str | None): Suchbegriff (z. B. 'Zürich', 'Karl der Grosse', 'Gold') - limit / offset: Paginierung - response_format: 'markdown' oder 'json'

Returns: str: Liste von Sammlungsobjekten mit verfügbaren Feldern.

heritage_search_helveticatA

Durchsucht die Schweizerische Nationalbibliothek (Helveticat).

Zwei Zugänge derselben Quelle, und der Aufruf wählt sie:

  • query ohne set_spec → SRU, eine echte serverseitige Volltextsuche über den Gesamtbestand, mit Trefferzahl. Findet die Anfrage nichts, wird einmal gelockert wiederholt (alle Wörter statt der Wortfolge) und das Ergebnis als match_type: fuzzy markiert.

  • set_spec (mit oder ohne Zeitfenster) → OAI-PMH, das eine Sammlung seitenweise ausliefert. query filtert dann nur noch innerhalb der abgerufenen Seite; die Ausgabe sagt das.

Die Trennung ist nicht Geschmack, sondern gemessen: SRU kennt die OAI-Sets nicht (alma.mms_memberOf="helveticat" → 0 Treffer), und OAI-PMH kennt keine Volltextsuche. Beide Identifier sind dieselben, also frisst heritage_get_publication jedes Ergebnis von beiden Wegen.

Args: params (HelvticatSearchInput): - query (str | None): Suchbegriff (serverseitig ohne set_spec) - set_spec (str | None): Sammlung aus heritage_list_nb_collections - from_date (str | None): Änderungsdatum von (nur mit set_spec) - until_date (str | None): Änderungsdatum bis (nur mit set_spec) - limit (int): Max. Ergebnisse 1–50 (Standard: 10) - response_format: 'markdown' oder 'json'

Returns: str: Liste von Publikationen mit Titel, Autor, Jahr, Schlagwörtern und Identifier.

heritage_list_nb_collectionsA

Listet verfügbare Sammlungen/Sets der Nationalbibliothek auf (OAI-PMH ListSets).

Args: params (NbCollectionsInput | None): - response_format: 'markdown' (Standard) oder 'json'

Returns: str: Liste aller OAI-PMH Sets mit Bezeichner (setSpec) und Name.

heritage_get_publicationA

Ruft die Metadaten einer Publikation der NB ab — ausgewählte MARC21-Felder.

Die Quelle liefert MARCXML. Dieses Werkzeug bildet daraus eine Auswahl von Feldern auf Dublin-Core-ähnliche Schlüssel ab: Titel, Urheber·innen, Mitwirkende, Verlag, Erscheinungsjahr, Typ, Umfang, Sprache, Schlagwörter, Beschreibung, Rechte, Reihe und Identifier.

Was NICHT enthalten ist: alles ausserhalb dieser Auswahl — Kontrollfelder, die Ausgabebezeichnung (MARC 250), Erscheinungsverlauf, lokale Felder. «Vollständige Metadaten» wäre also falsch, und die Antwort darf nicht als der ganze Katalogsatz gelesen werden. Wer den braucht, nimmt den Permalink aus identifier und geht an die Quelle.

Args: params (PublicationDetailInput): - identifier (str): OAI-ID aus heritage_search_helveticat - response_format: 'markdown' oder 'json'

Returns: str: Ausgewählte, auf DC-Schlüssel normalisierte Felder — nicht der vollständige Katalogsatz.

heritage_cross_searchA

Durchsucht SIK-ISEA, SNM und NB gleichzeitig nach einem Begriff.

Fächert auf drei Upstreams auf (i. d. R. > 2 s). Sofern der Client einen Progress-Token gesendet hat, wird nach jeder abgeschlossenen Quelle ctx.report_progress() gemeldet; fehlgeschlagene Quellen werden zusätzlich über ctx.warning() als strukturierte Warnung signalisiert (SDK-003), statt nur als Text im Ergebnis zu erscheinen.

Args: params (CrossSearchInput): - query (str): Suchbegriff - sources (list[str]): ['sik_isea', 'snm', 'nb'] (Standard: alle) - limit_per_source (int): Max. Ergebnisse je Quelle (Standard: 5) - response_format: 'markdown' (Standard) oder 'json' ctx (Context): Vom MCP-SDK injiziert (Progress/Logging); bei direkten Aufrufen ohne Request None.

Returns: ResultEnvelope | str: Aggregierte Ergebnisse aus allen gewählten Quellen.

search_heritageA

Durchsucht Schweizer Gedächtnisinstitutionen (Memobase, Dodis) föderiert.

Föderierte Fassade über zwei Quellen mit offenen, standardisierten Schnittstellen: Memobase (audiovisuelles Kulturerbe, Linked-Open-Data-API) und Dodis (Diplomatische Dokumente der Schweiz, JSON-REST/Solr). Bei collection='all' wird parallel gesucht; fällt eine Quelle aus, liefern die übrigen trotzdem (die Fehlerquelle wird im meta.errors und — sofern ein Progress-Token vorliegt — via ctx.warning gemeldet).

Jeder Treffer trägt Quelle, Permalink und Lizenz, wobei Metadaten- und Digitalisat-Lizenz getrennt ausgewiesen werden (sie fallen bei diesen Quellen auseinander). Es werden nur Metadaten und Links geliefert — keine geschützten Volltexte.

date_from/date_to/media_type werden clientseitig auf die je Quelle abgerufene Seite angewandt (die Upstreams bieten hierfür keine verlässlichen Serverfilter); die Trefferzahl kann dadurch kleiner als limit sein — ggf. offset erhöhen.

Args: params (HeritageSearchInput): - query (str): Suchbegriff - collection: 'memobase' | 'dodis' | 'all' - date_from/date_to: Jahr-Filter (clientseitig) - media_type (str): Typ-Filter (clientseitig) - limit/offset: Paginierung pro Quelle - response_format: 'markdown' oder 'json' ctx (Context): vom MCP-SDK injiziert (Progress/Warnungen); bei direktem Aufruf None.

Returns: ResultEnvelope | str: Aggregierte, normalisierte Treffer inkl. Provenienz.

get_heritage_itemA

Ruft die vollständigen Metadaten eines Objekts aus Memobase oder Dodis ab.

Liefert Metadaten, Permalink und Lizenz (Metadaten- und Digitalisat-/Dokument- recht getrennt). Geschützte Volltexte (Dodis-Transkriptionen) werden nicht reproduziert — dafür verweist die Antwort auf den Permalink.

Args: params (HeritageItemInput): - collection: 'memobase' oder 'dodis' - item_id (str): Objekt-ID aus search_heritage - response_format: 'markdown' oder 'json'

Returns: ResultEnvelope | str: Objekt-Metadaten inkl. Provenienz und Lizenz.

list_heritage_collectionsA

Listet die Gedächtnisinstitutionen der föderierten Fassade und ihren Status auf.

Discovery-Tool für search_heritage / get_heritage_item: welche collection-Werte gibt es, welches Protokoll, welche Auth, welche Lizenz (Metadaten vs. Digitalisat)? Auch die geprüften, aber bewusst nicht angebundenen Quellen (Bundesarchiv, Landesmuseum) werden mit Grund ausgewiesen.

Args: params (HeritageCollectionsInput | None): - response_format: 'markdown' (Standard) oder 'json'

Returns: ResultEnvelope | str: Sammlungen mit Status, Protokoll, Auth und Lizenzen.

Prompts

Interactive templates invoked by user choice

NameDescription
heritage_research_artistStrukturierter Recherche-Prompt zu einer Schweizer Künstler·in. Args: artist_name: Name der zu recherchierenden Künstler·in context: Forschungskontext (z. B. 'Unterricht Sek I', 'Ausstellung', 'Monografie')
heritage_find_educational_resourcesPrompt zur Suche nach Bildungsressourcen aus Schweizer Kulturerbe-Quellen. Args: topic: Thema für den Unterricht (z. B. 'Mittelalter', 'Schweizer Kunst', 'Migration') school_level: Schulstufe (z. B. 'Primarstufe', 'Sekundarstufe I', 'Gymnasium')

Resources

Contextual data attached and managed by the client

NameDescription
sik_isea_overviewÜbersicht SIK-ISEA: Datenquelle, Umfang und verfügbare Tools.
nb_collections_overviewStatische Übersicht der Nationalbibliothek-Sammlungen und ihrer zwei Zugänge.

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation3/5

The source-specific tools are clearly separated into search/detail pairs for SIKART, the National Library, the SNM, and the Memobase/Dodis facade. However, `heritage_cross_search` and `search_heritage` are both multi-source search tools covering different institutions, and `heritage_list_nb_collections` vs. `list_heritage_collections` have similar names, so descriptions are needed to avoid misselection.

Naming Consistency3/5

Eight tools follow a `heritage_<verb>_<object>` pattern, but `search_heritage`, `get_heritage_item`, and `list_heritage_collections` reverse the order, breaking predictability. The verbs are specific and all names are readable snake_case, so the naming is mixed rather than chaotic.

Tool Count5/5

11 tools is a well-scoped count for the stated purpose of searching Swiss cultural heritage sources. Each search tool has a corresponding detail/lookup tool, plus collection discovery and cross-search tools, without unnecessary redundancy.

Completeness4/5

The set covers search and detail for SIKART, the National Library, the National Museum datasets/objects, and the Memobase/Dodis facade, along with collection discovery and cross-searching. Minor gaps remain: there is no single-object retrieval for SNM objects beyond a browse query, and no unified cross-search across all five sources.

Maintenance

ActivityActive
ResponsivenessUnresponsive