Skip to main content

MCP server for Swiss federal law via the Fedlex SPARQL endpoint

Project description

Fedlex MCP Server

Zugriff auf das Schweizer Bundesrecht via Claude Desktop oder Claude.ai

Python 3.11+ MCP Lizenz


Was ist das?

Dieser MCP-Server verbindet KI-Assistenten (Claude) mit dem Fedlex SPARQL-Endpoint der Schweizerischen Bundeskanzlei. Damit können KI-Agenten direkt im Gespräch Schweizer Bundesrecht nachschlagen, Rechtsänderungen überwachen und Gesetze analysieren — ohne manuelle Recherche auf fedlex.admin.ch.

Metapher: USB-C für Bundesrecht. Einmal angeschlossen, kann Claude jederzeit in die Systematische Rechtssammlung «greifen».


Tools (7)

Tool Beschreibung
fedlex_search_laws Erlasse der SR nach Stichwort im Titel suchen
fedlex_get_law_by_sr Erlass nach SR-Nummer abrufen (z.B. 235.1 = DSG)
fedlex_get_recent_publications Neueste Publikationen der Amtlichen Sammlung (AS)
fedlex_get_upcoming_changes Erlasse, die bald in Kraft treten (Rechtsmonitoring)
fedlex_search_gazette Im Bundesblatt (BBl) suchen
fedlex_get_law_history Alle Fassungen eines Erlasses (Versionsgeschichte)
fedlex_search_treaties Staatsverträge (SR-Nummern beginnen mit 0.)

Anwendungsbeispiele

"Zeig mir alle gültigen Bundesgesetze zur Berufsbildung"
→ fedlex_search_laws(keywords="Berufsbildung")

"Was steht im Datenschutzgesetz? Ist es noch in Kraft?"
→ fedlex_get_law_by_sr(sr_number="235.1")

"Welche Bundesgesetze treten in den nächsten 3 Monaten in Kraft?"
→ fedlex_get_upcoming_changes(days_ahead=90)

"Was hat der Bundesrat diese Woche im Bundesblatt publiziert?"
→ fedlex_get_recent_publications(days=7)

"Zeig mir die Versionsgeschichte des DSG — wann trat die Revision in Kraft?"
→ fedlex_get_law_history(sr_number="235.1")

"Welche Bildungsabkommen hat die Schweiz mit der EU?"
→ fedlex_search_treaties(keywords="Bildung")

Installation

Voraussetzungen

  • Python 3.11+
  • uv oder pip

Lokal (Claude Desktop)

# 1. Repository klonen
git clone https://github.com/malkreide/fedlex-mcp.git
cd fedlex-mcp

# 2. Abhängigkeiten installieren
pip install -r requirements.txt

# 3. Direkt testen
python server.py

Claude Desktop Konfiguration

Datei öffnen:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Eintrag hinzufügen:

{
  "mcpServers": {
    "fedlex": {
      "command": "python",
      "args": ["/absoluter/pfad/zu/fedlex-mcp/server.py"]
    }
  }
}

Mit uvx (empfohlen, kein manuelles Install):

{
  "mcpServers": {
    "fedlex": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/malkreide/fedlex-mcp", "fedlex-mcp"]
    }
  }
}

Claude Desktop neu starten. Im Chat erscheinen danach 7 neue Tools (Hammer-Icon).


Cloud-Deployment (Render.com / SSE)

Für Zugriff via Browser oder ohne lokale Installation:

# Server starten (SSE-Transport)
MCP_TRANSPORT=sse PORT=8000 python server.py

render.yaml Beispiel:

services:
  - type: web
    name: fedlex-mcp
    runtime: python
    buildCommand: pip install -r requirements.txt
    startCommand: python server.py
    envVars:
      - key: MCP_TRANSPORT
        value: sse
      - key: PORT
        value: 10000

Datenmodell (JOLux-Ontologie)

jolux:ConsolidationAbstract  ←  SR-Eintrag
  └─ jolux:isRealizedBy  →  jolux:Expression (URI endet auf /de, /fr, /it, /rm)
     ├─ jolux:title               "Bundesgesetz vom 19. Juni 1992 über den Datenschutz"
     ├─ jolux:titleShort          "DSG"
     └─ jolux:historicalLegalId   "235.1"

jolux:inForceStatus:
  .../0  ✅ In Kraft
  .../1  ⚠️ Nicht mehr in SR publiziert
  .../3  ❌ Nicht mehr in Kraft

SPARQL-Endpoint: https://fedlex.data.admin.ch/sparqlendpoint
Lizenz: Freie Wiederverwendung (kommerziell und andere Zwecke) gemäss fedlex.admin.ch/de/broadcasters


Sprachen

Code Sprache
de Deutsch (Standard, vollständigste Abdeckung)
fr Français
it Italiano
rm Rumantsch

Sicherheitshinweise

  • Dieser Server ist read-only — keine schreibenden Operationen
  • Alle Abfragen gehen direkt an den öffentlichen Fedlex-Endpoint
  • Keine API-Keys oder Authentifizierung erforderlich
  • Datensouveränität: Keine Daten werden an Dritte übertragen

Verwandte Projekte


Entwickelt von

Hayal Hayal | GitHub: @malkreide


English summary: MCP server providing access to Swiss federal law via the Fedlex SPARQL endpoint. 7 tools covering the Systematic Compilation (SR), Official Gazette, Federal Bulletin, version history, and international treaties. Read-only, no authentication required, dual transport (stdio + SSE).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fedlex_mcp-0.1.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fedlex_mcp-0.1.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file fedlex_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: fedlex_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fedlex_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3869035d48280c6a5d895627041fb71d0e99133e1119904687835b3dce9cabdb
MD5 6053204c160941575ed63f7334844b17
BLAKE2b-256 67d4fe36e06f25b3907e4a1542c69d7ff962852107f3a3acbc389d458a8a05ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for fedlex_mcp-0.1.0.tar.gz:

Publisher: publish.yml on malkreide/fedlex-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fedlex_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fedlex_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fedlex_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e449661a2b2fbe8fbb41138a28ff6a27d0e74462d6af997fe48925abfe2dd108
MD5 cba2bc384ea2faaa12c6001d82932e18
BLAKE2b-256 46fed9ee29143286e98b97410563673b82805aa35fad6b2509927b61ee56b2d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for fedlex_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on malkreide/fedlex-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page