Swiss cultural heritage: SIKART artists, Nationalmuseum, Helveticat, Memobase, Dodis
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
claude mcp add swiss-cultural-heritage-mcp -- uvx swiss-cultural-heritage-mcp{
"mcpServers": {
"swiss-cultural-heritage-mcp": {
"command": "uvx",
"args": ["swiss-cultural-heritage-mcp"]
}
}
}Resumen de MCP Servers
> 🇨🇭 **Part of the [Swiss Public Data MCP Portfolio](https://github.com/malkreide)**
# 🏛️ swiss-cultural-heritage-mcp

[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io/)
[](https://github.com/malkreide/swiss-cultural-heritage-mcp)

> MCP Server for Swiss cultural heritage — SIK-ISEA artists, Nationalmuseum collections, and the Nationalbibliothek bibliography
[🇩🇪 Deutsche Version](README.de.md)
---
## Overview
`swiss-cultural-heritage-mcp` provides AI-native access to Swiss cultural heritage data sources, all without authentication:
| Source | Data | API |
|--------|------|-----|
| **SIK-ISEA (SIKART)** | ~17,000 Swiss artists — SIKART biographical data | opendata.swiss CKAN |
| **Nationalmuseum (SNM)** | Museum collections (numismatics, seals, special collections) | opendata.swiss CKAN |
| **Nationalbibliothek (NB)** | Swiss national bibliography (Helveticat) | OAI-PMH |
| **Memoriav / Memobase** | Audiovisual heritage (photo, audio, video) | Linked Open Data (JSON-LD / Hydra) |
| **Dodis** | Diplomatic Documents of Switzerland (documents, persons, organisations) | JSON-REST (Solr) + permalinks |
This server completes the humanistic dimension of the Swiss public data portfolio — history, literature, and art — alongside existing servers for law ([fedlex-mcp](https://github.com/malkreide/fedlex-mcp)), transport, statistics, and more.
The **memory-institution facade** (Memobase + Dodis) is exposed through three
federated tools — `search_heritage`, `get_heritage_item`, `list_heritage_collections` —
rather than one tool-family per source. Every result carries **source, permalink and
licence**, and the licence is reported **separately for metadata and for the
digitised object** (they diverge: metadata is open Linked Open Data, but a
digitised object may be *In Copyright*). Only metadata and links are returned —
copyright-protected full texts (e.g. Dodis transcriptions) are never reproduced.
**Anchor demo query (art):** *"Find works by Zurich-based painters from the 19th century in the Nationalmuseum, and cross-reference with their biography in the SIK-ISEA artist database."*
**Anchor demo query (memory institutions):** *"Which sources on the development of the Zurich Volksschule in the 19th century can be found in the Swiss memory institutions?"* → `search_heritage(query="Volksschule Zürich", collection="all", date_from="1800", date_to="1899")`.
### Demo

---
## Features
- 🏛️ **11 tools, 2 resources, 2 prompts** across five data sources
- 🔍 **`heritage_cross_search`** — parallel search across SIK-ISEA + SNM + NB in a single call
- 🏛️ **`search_heritage`** — federated facade over Memobase + Dodis with per-result source, permalink and split metadata/digitised-object licence
- 🌐 **Bilingual output** (Markdown / JSON)
- 🔓 **No API key required** — all data under open licenses
- ☁️ **Dual transport** — stdio (Claude Desktop) + Streamable HTTP (cloud)
- 📚 **Prompt templates** for art research and finding educational materials
**Project phase:** **Phase 1 — read-only.** Every tool is annotated `readOnlyHint: true`; there are no write or destructive operations. Moving to Phase 2 (write-capable) requires the prerequisites in [`docs/roadmap.md`](docs/roadmap.md).
---
## Prerequisites
- Python 3.11+
- [uv](https://github.com/astral-sh/uv) (recommended) or pip
---
## Installation
```bash
# Clone the repository
git clone https://github.com/malkreide/swiss-cultural-heritage-mcp.git
cd swiss-cultural-heritage-mcp
# Install
pip install -e .
# or with uv:
uv pip install -e .
```
Or with `uvx` (no permanent installation):
```bash
uvx swiss-cultural-heritage-mcp
```
---
## Quickstart
```bash
# stdio (for Claude Desktop)
python -m swiss_cultural_heritage_mcp.server
# Streamable HTTP (port 8000)
python -m swiss_cultural_heritage_mcp.server --http --port 8000
```
Try it immediately in Claude Desktop:
> *"Who is Ferdinand Hodler?"*
> *"What coins does the Nationalmuseum have from Zurich?"*
> *"Find publications about Volksschule in the Swiss national bibliography"*
[→ More use cases by audience →](EXAMPLES.md)
---
## Configuration
### Claude Desktop
Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"swiss-cultural-heritage": {
"command": "python",
"args": ["-m", "swiss_cultural_heritage_mcp.server"]
}
}
}
```
Or with `uvx`:
```json
{
"mcpServers": {
"swiss-cultural-heritage": {
"command": "uvx",
"args": ["swiss-cultural-heritage-mcp"]
}
}
}
```
**Config file locations:**
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
### Cloud Deployment (SSE for browser access)
For use via **claude.ai in the browser** (e.g. on managed workstations without local software):
**Render.com (recommended):**
1. Push/fork the repository to GitHub
2. On [render.com](https://render.com): New Web Service → connect GitHub repo
3. **Select region `Frankfurt` (EU)** — required for Swiss public-sector use under revDSG / EDÖB. See [`docs/data-residency.md`](docs/data-residency.md).
4. Set start command: `python -m swiss_cultural_heritage_mcp.server --http --port 8000`
5. In claude.ai under Settings → MCP Servers, add: `https://your-app.onrender.com/sse`
> 💡 *"stdio for the developer laptop, SSE for the browser."*
For container deployments (Docker / Kubernetes / Cloud Run): the repository ships a hardened `Dockerfile` (non-root UID 10001). See [`docs/security.md`](docs/security.md) for recommended `SecurityContext` and [`docs/network-egress.md`](docs/network-egress.md) for egress policy. The service runs **single-instance** by default; before scaling horizontally, see [`docs/scaling.md`](docs/scaling.md) for the session-affinity prerequisites.
---
## Available Tools
### SIK-ISEA (Swiss Art Research)
| Tool | Description |
|------|-------------|
| `heritage_search_artists` | Search ~17,000 Swiss artists (SIKART) by name or place |
| `heritage_get_artist` | Full artist profile by SIKART ID (HAUPTNR) |
### Nationalmuseum (SNM)
| Tool | Description |
|------|-------------|
| `heritage_search_museum_datasets` | Search SNM datasets on opendata.swiss |
| `heritage_browse_collection` | Browse objects within a collection via CKAN DataStore |
### Nationalbibliothek (NB)
| Tool | Description |
|------|-------------|
| `heritage_search_helveticat` | Search Swiss national bibliography via OAI-PMH |
| `heritage_list_nb_collections` | List available OAI-PMH sets |
| `heritage_get_publication` | Full Dublin Core metadata for a publication |
### Cross-Source
| Tool | Description |
|------|-------------|
| `heritage_cross_search` | Parallel search across SIK-ISEA + SNM + NB |
### Memory institutions (Memobase + Dodis) — federated facade
| Tool | Description |
|------|-------------|
| `search_heritage` | Federated search over Memobase + Dodis (`collection = memobase \| dodis \| all`), with `date_from` / `date_to` / `media_type` filters. Every result carries source, permalink and a split metadata/digitised-object licence |
| `get_heritage_item` | Full metadata for one object (`collection`, `item_id`). Metadata + links only — protected full texts are never reproduced |
| `list_heritage_collections` | Discovery: which collections exist, their protocol, auth and licences — including the probed-but-not-connected sources (Bundesarchiv, Landesmuseum) and *why* |
### Example Use Cases
| Query | Tool |
|-------|------|
| *"Who is Ferdinand Hodler?"* | `heritage_get_artist` |
| *"Find Swiss artists born in Basel"* | `heritage_search_artists` |
| *"What coins from Zurich does the Nationalmuseum have?"* | `heritage_browse_collection` |
| *"Find publications about Volksschule"* | `heritage_search_helveticat` |
| *"Search for everything about Sophie Taeuber-Arp"* | `heritage_cross_search` |
| *"Sources on the 19th-c. Zurich Volksschule in Swiss memory institutions"* | `search_heritage` |
---
## Architecture
```
┌─────────────────┐ ┌──────────────────────────────┐ ┌──────────────────────────┐
│ Claude / AI │────▶│ Swiss Cultural Heritage MCP │────▶│ SIK-ISEA │
│ (MCP Host) │◀────│ (MCP Server) │◀────│ opendata.swiss / CKAN │
└─────────────────┘ │ │ ├──────────────────────────┤
│ 11 Tools · 2 Resources │────▶│ Nationalmuseum (SNM) │
│ 2 Prompts │◀────│ opendata.swiss / CKAN │
│ Stdio | SSE │ ├──────────────────────────┤
│ │────▶│ Nationalbibliothek (NB) │
│ No authentication required │◀────│ OAI-PMH (Helveticat) │
│ │ ├──────────────────────────┤
│ search_heritage facade │────▶│ Memobase (JSON-LD/Hydra)│
│ │◀────│ Dodis (JSON-REST/Solr) │
└──────────────────────────────┘ └──────────────────────────┘
```
### Data Source Characteristics
| Source | Protocol | Coverage | Auth |
|--------|----------|----------|------|
| SIK-ISEA (SIKART) | CKAN DataStore | ~17,0Lo que la gente pregunta sobre swiss-cultural-heritage-mcp
¿Qué es malkreide/swiss-cultural-heritage-mcp?
+
malkreide/swiss-cultural-heritage-mcp es mcp servers para el ecosistema de Claude AI. Swiss cultural heritage: SIKART artists, Nationalmuseum, Helveticat, Memobase, Dodis Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-09-19.
¿Cómo se instala swiss-cultural-heritage-mcp?
+
Puedes instalar swiss-cultural-heritage-mcp clonando el repositorio (https://github.com/malkreide/swiss-cultural-heritage-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar malkreide/swiss-cultural-heritage-mcp?
+
Nuestro agente de seguridad ha analizado malkreide/swiss-cultural-heritage-mcp y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene malkreide/swiss-cultural-heritage-mcp?
+
malkreide/swiss-cultural-heritage-mcp es mantenido por malkreide. La última actividad registrada en GitHub es del 2026-09-19, con 0 issues abiertos.
¿Hay alternativas a swiss-cultural-heritage-mcp?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega swiss-cultural-heritage-mcp en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/malkreide-swiss-cultural-heritage-mcp)<a href="https://claudewave.com/repo/malkreide-swiss-cultural-heritage-mcp"><img src="https://claudewave.com/api/badge/malkreide-swiss-cultural-heritage-mcp" alt="Featured on ClaudeWave: malkreide/swiss-cultural-heritage-mcp" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ
The fastest path to AI-powered full stack observability, even for lean teams.