Infrastruktur · Die Module: was sie tun, betreiben, testen, ansteuern
MCP-Gateway
Die Maschinen-Tür der Plattform: dieselben Werkzeuge über MCP und eine JSON-Schnittstelle — 52 Fähigkeiten aus zwei Domänen — mit Abruf-Budget und typisierten Absagen.
Auf dieser Seite
Was es tut
Der Gateway ist die Maschinen-Tür der Plattform: dieselben 52 Fähigkeiten über MCP und über eine minimale JSON/HTTP-Schale, beide durch denselben Dispatcher. Die Politik liegt damit an genau einer Stelle — Abruf-Budget, Ratenbegrenzung und typisierte Absagen geschehen einmal, gleich welche Tür der Aufrufer benutzt hat. Die Entdeckung läuft in zwei Stufen: «meta.tools» nennt jedes Werkzeug mit einzeiliger Beschreibung, Domäne und Preis, ohne ein einziges Eingabeschema; «meta.schemas» liefert die Schemata nur der Werkzeuge, die ein Agent auch benannt hat. Dahinter hängen zwei Schnittstellen zu Bundesinfrastruktur, fedlex mit 35 und LINDAS mit 8 Werkzeugen, und ihre Stufe-eins-Zeilen sind wortgleich die des jeweiligen Servers, festgenagelt durch einen Test. Was er nicht tut: die JSON-Schale ist ausdrücklich kein Produktionstransport — eine Verbindung aufs Mal, kein Keep-alive, kein TLS, keine Sitzungen —, und ein abgelehnter Aufruf kostet nichts, weil beide Schranken vor jeder Belastung geprüft werden. Einen öffentlichen Endpunkt serviert er bis heute nicht.
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
Mit den Fixture-Flags antworten beide Schnittstellen aus aufgezeichneten Dateien, ohne Netz. Ohne die Flags fragt der Gateway die öffentlichen Endpunkte des Bundes.
Testen
cargo test --locked --manifest-path mcp/gateway/Cargo.toml
- Aufgezeichnete Fixtures:
mcp/gateway/tests - 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: http://127.0.0.1:8700 — GET /tools, POST /tool/
, POST /mcp
Verträge
- Werkzeug-Inventar (Stufe eins)
mcp/gateway/tool-inventory.json - RFC-9728-Metadaten
mcp/gateway/oauth-protected-resource.json
Ein Domänenwerkzeug über die JSON-Hülle aufrufen
curl -s -X POST http://127.0.0.1:8700/tool/lindas.list_cubes -H 'content-type: application/json' -d '{}'
Antwort (Auszug):
{"cubes":[{"cube":"https://politics.ld.admin.ch/fc/cube-chancellor","description":"Bundeskanzler der Schweiz mit Partei, Kanton und Amtszeiten.","family":"fc","name":"Bundeskanzler","observations":15, …}, …]}
Aufruf und Optionen
usage: oh-mcp-gateway --root <repo root> [--budget <n>] [--rate <n/min>] [--burst <n>] [--trust-forwarded-for] [--upstream-rate <n/s>] [--fedlex-fixtures <dir>] [--lindas-fixtures <dir>] [--http <port>] [--model-key-file <path>] [--model-cap <answers/client/day>]
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: MCP-Gateway.