loading…
Search for a command to run...
loading…
MCP server providing access to Swiss cultural heritage data including ISOS townscapes, Living Traditions, cultural prizes, and press releases from the Federal O
MCP server providing access to Swiss cultural heritage data including ISOS townscapes, Living Traditions, cultural prizes, and press releases from the Federal Office of Culture, with no API key required.
🇨🇭 Part of the Swiss Public Data MCP Portfolio
License: MIT
Python 3.11+
MCP
Data Source
MCP server for Swiss cultural heritage data from the Federal Office of Culture (BAK) — ISOS townscapes, Living Traditions, cultural prizes, press releases. No API key required.
swiss-culture-mcp makes Swiss cultural data accessible to AI assistants. The server connects LLMs like Claude with Switzerland's national cultural heritage: from protected townscapes (ISOS) to living traditions of intangible cultural heritage and current cultural awards.
Sources: geo.admin.ch REST API · news.admin.ch RSS · opendata.swiss CKAN · lebendige-traditionen.ch
No API key required. All data sources are publicly available (Open Government Data).
Anchor demo query: "Which protected townscapes are there in the school districts of the city of Zurich, and what living traditions are practised there?"
| # | Tool | Description |
|---|---|---|
| 1 | bak_search_isos |
Search ISOS townscapes by place name |
| 2 | bak_isos_by_kanton |
List all ISOS objects in a canton |
| 3 | bak_get_isos_detail |
Get full details of an ISOS object |
| 4 | bak_isos_by_kategorie |
Filter ISOS by settlement type (Stadt, Dorf, etc.) |
| 5 | bak_isos_statistics |
ISOS inventory statistics (sampled by canton) |
| 6 | bak_get_news |
Current BAK press releases |
| 7 | bak_get_kulturpreise |
Swiss cultural prizes (Film Prize, Grand Prix Literature, etc.) |
| 8 | bak_get_opendata |
BAK datasets on opendata.swiss |
| 9 | bak_list_traditions |
List Switzerland's Living Traditions |
| 10 | bak_get_tradition_detail |
Get detailed description of a tradition |
3 Resources: bak://isos/kantone · bak://isos/kategorien · bak://kulturpreise/uebersicht
| Source | API Type | Content |
|---|---|---|
| geo.admin.ch | REST MapServer | ISOS (Federal Inventory of Swiss Townscapes) |
| news.admin.ch | RSS Feed | BAK press releases, cultural prizes |
| opendata.swiss | CKAN REST API | BAK open data datasets |
| lebendige-traditionen.ch | HTML Fetch | 228 entries of intangible cultural heritage |
uv or pip# Recommended: uvx (no install step needed)
uvx swiss-culture-mcp
# Alternative: pip
pip install swiss-culture-mcp
# Start the server (stdio mode for Claude Desktop)
uvx swiss-culture-mcp
Try it immediately in Claude Desktop:
"Show me all protected townscapes in the canton of Graubünden" "Which living traditions are practised in canton Appenzell?" "Which Swiss cultural prizes were awarded in 2026?"
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT |
stdio |
Transport: stdio or streamable_http |
MCP_HOST |
127.0.0.1 |
Bind host for HTTP transport (loopback by default) |
MCP_PORT |
8000 |
Port for HTTP transport |
MCP_ALLOW_PUBLIC_BIND |
false |
If true, permits binding 0.0.0.0 without auth. Set this only behind an authenticating reverse proxy (e.g. Cloudflare Access, oauth2-proxy). |
LOG_LEVEL |
INFO |
DEBUG, INFO, WARNING, ERROR — structured JSON logs to stderr |
{
"mcpServers": {
"swiss-culture": {
"command": "uvx",
"args": ["swiss-culture-mcp"]
}
}
}
Config file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAfter restarting Claude Desktop, all tools are available. Example queries:
For use via claude.ai in the browser (e.g. on managed workstations without local software):
Render.com (recommended):
https://your-app.onrender.com/mcp# Docker / local HTTP mode (loopback only — safe default)
MCP_TRANSPORT=streamable_http MCP_PORT=8000 python -m swiss_culture_mcp.server
# Public bind (DANGEROUS — only behind an authenticating reverse proxy)
MCP_TRANSPORT=streamable_http MCP_HOST=0.0.0.0 MCP_ALLOW_PUBLIC_BIND=true \
python -m swiss_culture_mcp.server
⚠️ Security: The server itself has no authentication. Binding to a public interface without an upstream auth layer turns it into an open proxy for the federal data sources. Always run an authenticating reverse proxy (Cloudflare Access, oauth2-proxy, nginx + auth_request) in front of
0.0.0.0deployments.
┌─────────────────┐ ┌──────────────────────────┐ ┌──────────────────────────┐
│ Claude / AI │────▶│ Swiss Culture MCP │────▶│ geo.admin.ch REST │
│ (MCP Host) │◀────│ (MCP Server) │◀────│ news.admin.ch RSS │
└─────────────────┘ │ │ │ opendata.swiss CKAN │
│ 10 Tools · 3 Resources │ │ lebendige-traditionen │
│ Stdio | Streamable HTTP │ └──────────────────────────┘
└──────────────────────────┘
swiss-culture-mcp/
├── src/
│ └── swiss_culture_mcp/
│ ├── __init__.py
│ └── server.py # All 10 tools, 3 resources
├── tests/
│ ├── conftest.py # pytest configuration
│ └── test_server.py # 36 tests (unit + live)
├── pyproject.toml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md # This file (English)
└── README.de.md # German version
# Unit tests (no API key required)
PYTHONPATH=src pytest tests/ -m "not live"
# Integration tests (live API calls)
PYTHONPATH=src pytest tests/ -m "live"
"Which protected townscapes are there in the school districts of the city of Zurich?"
→ bak_isos_by_kanton(kanton="ZH") + bak_get_isos_detail(...)
"Find living traditions for a project week on the theme of cultural heritage"
→ bak_list_traditions() + bak_get_tradition_detail(slug="...")
"Which UNESCO World Heritage Sites are also in ISOS?"
→ bak_search_isos(query="...") + bak_get_opendata(query="UNESCO")
"Is the building at address X within an ISOS perimeter?"
→ bak_search_isos(query="community/place name")
"Which BAK datasets are available for GIS integration?"
→ bak_get_opendata() → WMS/WFS URLs for GIS software
"Show current cultural policy of the federal government"
→ bak_get_news() + bak_get_kulturpreise()
→ More use cases by audience →
| Aspect | Details |
|---|---|
| Access | Read-only — the server cannot modify or delete any data |
| Personal data | No personal data — all sources are aggregated, public cultural heritage data |
| Rate limits | Built-in per-query caps (e.g. max 100 ISOS results, 50 news items, 200 category entries) |
| Timeout | 20 seconds per API call |
| Authentication | No API keys required — all 4 data sources are publicly accessible |
| Licenses | All data under open licenses (Open Government Data): geo.admin.ch, opendata.swiss, news.admin.ch |
| Terms of Service | Subject to ToS of the respective data sources: geo.admin.ch, opendata.swiss, news.admin.ch, lebendige-traditionen.ch |
swiss-culture-mcp can be combined with other servers in the portfolio:
| Combination | Use Case |
|---|---|
+ swiss-transport-mcp |
Cultural tourism: day trips to traditions by public transport |
+ zurich-opendata-mcp |
Local cultural atlas: ISOS + Zurich city events |
+ global-education-mcp |
Cultural education in international comparison |
+ fedlex-mcp |
Cultural property transfer act + BAK enforcement practice |
+ swiss-statistics-mcp |
Cultural expenditure by canton (BFS data) |
See CHANGELOG.md
MIT License — see LICENSE
Hayal Oezkan · malkreide
Run in your terminal:
claude mcp add swiss-culture-mcp -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.