Skip to main content
Glama
malkreide

swiss-culture-mcp

by malkreide

πŸ‡¨πŸ‡­ Part of the Swiss Public Data MCP Portfolio

πŸ›οΈ swiss-culture-mcp

Version License: MIT Python 3.11+ MCP Data Source CI

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.

πŸ‡©πŸ‡ͺ Deutsche Version


Overview

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?"


Features

  • 🏘️ ISOS search – Federal Inventory of Swiss Townscapes Worth Protecting by name, canton or settlement type

  • πŸ“œ Living Traditions – 228 entries of Swiss intangible cultural heritage

  • πŸ† Cultural prizes – Swiss Film Prize, Grand Prix Literature, Music Prize and more

  • πŸ“° BAK press releases – current news from the Federal Office of Culture

  • πŸ“¦ Open data catalogue – BAK datasets on opendata.swiss

  • ☁️ Dual transport – stdio for Claude Desktop, Streamable HTTP for cloud deployment

#

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


Data Sources

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


Prerequisites

  • Python 3.11+

  • uv or pip

  • No API keys required


Installation

# Recommended: uvx (no install step needed)
uvx swiss-culture-mcp

# Alternative: pip
pip install swiss-culture-mcp

Quickstart

# 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?"


Configuration

Environment Variables

Variable

Default

Description

MCP_TRANSPORT

stdio

Transport: stdio or streamable_http

MCP_PORT

8000

Port for HTTP transport

Claude Desktop Configuration

{
  "mcpServers": {
    "swiss-culture": {
      "command": "uvx",
      "args": ["swiss-culture-mcp"]
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

After restarting Claude Desktop, all tools are available. Example queries:

  • "Show me all protected townscapes in the canton of GraubΓΌnden"

  • "What is the Alphorn and BΓΌchelspiel tradition?"

  • "Which Swiss cultural prizes were awarded in 2026?"

  • "Is the old town of Stein am Rhein in the ISOS inventory?"

  • "Which living traditions are practised in canton Appenzell?"

Cloud Deployment (Streamable HTTP)

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: New Web Service β†’ connect GitHub repo

  3. Set environment variables in the Render dashboard

  4. In claude.ai under Settings β†’ MCP Servers, add: https://your-app.onrender.com/mcp

# Docker / local HTTP mode
MCP_TRANSPORT=streamable_http MCP_PORT=8000 python -m swiss_culture_mcp.server

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   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  β”‚     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Project Structure

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

Testing

# Unit tests (no API key required)
PYTHONPATH=src pytest tests/ -m "not live"

# Integration tests (live API calls)
PYTHONPATH=src pytest tests/ -m "live"

Example Use Cases

Schools / Education

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

City Administration / Spatial Planning

"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

AI Working Group / Demos

"Show current cultural policy of the federal government"
β†’ bak_get_news() + bak_get_kulturpreise()
β†’ More use cases by audience β†’

Safety & Limits

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


Known Limitations

  • ISOS statistics: Sample-based per canton (not exhaustive for all cantons)

  • Living Traditions: HTML scraping – may break if lebendige-traditionen.ch changes its structure

  • BAK news/prizes: RSS feed limited to the most recent entries

  • opendata.swiss CKAN: Full-text search may return results from other publishers


Synergies with Other MCP Servers

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)


Changelog

See CHANGELOG.md


License

MIT License β€” see LICENSE


Author

Hayal Oezkan Β· malkreide


A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
1Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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-culture-mcp'

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