Infrastruktur · Die Module: was sie tun, betreiben, testen, ansteuern
fedlex-Engine
Der Eigenbau über dem öffentlichen Fedlex-Endpunkt des Bundes: SR-Nummern, Fassungen, Artikeltexte — jede Antwort mit Beleg. Der erste ausgebaute Bereich.
Auf dieser Seite
Was es tut
Der fedlex-Server liest das Bundesrecht dort, wo der Bund es publiziert: über den öffentlichen SPARQL-Endpunkt fedlex.data.admin.ch/sparqlendpoint und die Akoma-Ntoso-Fassungen im selben Filestore. 35 Werkzeuge — eine SR-Nummer auflösen, die Fassungen einer Erlassfamilie listen, einen Artikel im Wortlaut lesen, ein Zitat gegen den gelesenen Normtext prüfen, die Fundstelle bilden —, und jede Antwort trägt ihre Herkunft und den Moment, in dem sie wirklich geholt wurde. Vor dem Server stand die Datenkunde: 123 Regeln aus zwei Regelwerken, und für jede sagt eine Konformitätstabelle, ob dieser Server sie einhält, ihr widerspricht oder bloss nicht geprüft ist. Ein Test liest diese Tabelle aus: eine Zeile, die «honoured» behauptet, muss einen Test benennen, den es gibt und der auch läuft — «sieht richtig aus» heisst untested, nie honoured. Was er nicht tut: er erfindet keinen Text, ein zwischengespeicherter Erlass wird nie an die Stelle einer Antwort gesetzt, die der Graph verweigert hat, und gegen den Bund geht höchstens eine höfliche Anfrage aufs Mal — zwei pro Sekunde, sonst eine typisierte Absage statt einer Warteschlange.
Selbst betreiben
Sie brauchen:
- Rust (stable über rustup) und Git; alle Befehle laufen aus der Wurzel des Korpus-Checkouts.
Aus der Wurzel des Korpus-Checkouts, Zeile für Zeile:
cargo run --locked --manifest-path mcp/gateway/Cargo.toml -- --root . --http 8700 --fedlex-fixtures mcp/servers/fedlex/tests/fixtures --lindas-fixtures mcp/servers/lindas/tests/fixtures
Danach sehen Sie:
gateway on 127.0.0.1:8700
Der Server spricht MCP über stdin/stdout und hat keine eigene Netzadresse; der einfachste Start ist hinter dem Gateway mit Fixtures. Direkt: cargo run --locked --manifest-path mcp/servers/fedlex/Cargo.toml -- --fixtures mcp/servers/fedlex/tests/fixtures, dann verbindet sich ein MCP-Client über stdio.
Testen
cargo test --locked --manifest-path mcp/servers/fedlex/Cargo.toml
- Aufgezeichnete Fixtures:
mcp/servers/fedlex/tests/fixtures - Läuft ohne Netz: jede Antwort kommt aus dem Repository, das Ergebnis ist bei jedem Lauf gleich.
Ansteuern
- Öffentlich: noch nicht — Kein öffentlicher Endpunkt: weder Zone noch Route noch Deployment sind aufgeschaltet.
- Lokal: über das Gateway: POST http://127.0.0.1:8700/tool/fedlex.
Verträge
- Werkzeugvertrag v1
mcp/servers/fedlex/TOOLSET-v1.md - Regelwerk
docs/reference/fedlex-data-rules.md - Engine-Manifest
mcp/servers/fedlex/engine.manifest.json
Die fedlex-Zeilen der Werkzeugliste
curl -s http://127.0.0.1:8700/tools
Antwort (Auszug):
[{"id":"directory.get","domain":"directory","summary":"The directory envelope (v0.2, authority: manifest). …","weight":1}, … 52 rows]
Mitwirken
Änderungen laufen über Merge Request und dieselben Gates wie für den Verein: Formatierung, Clippy ohne Warnungen, Tests, Siegel- und Drift-Prüfungen. Sicherheitsmeldungen vertraulich an [email protected].
Die Basis-Stufe kostet nichts; wovon der Betrieb lebt, steht unter Über uns, Finanzierung.
Steckbrief
Zustand, Belege, Download und Abhängigkeiten stehen auf der Infrastruktur-Seite: fedlex-Engine.