Anleitungen · Eine Aufgabe erledigen
Das Gateway aufrufen
Zweistufige Entdeckung, ein Aufruf, und was eine Absage bedeutet — lokal heute, öffentlich, sobald der Endpunkt serviert wird.
Auf dieser Seite
Ein Gateway, zwei Funktionen: Politik (Rate, Sitzungsbudget, typisierte Absagen) und Aggregation (flache Namen, deterministische Werkzeugliste, zweistufige Entdeckung). Dahinter zwei Schnittstellen zu Bundesinfrastruktur: fedlex über dem öffentlichen Fedlex-SPARQL-Endpunkt, lindas über den 44 politischen Datenwürfeln der Bundeskanzlei.
Stand: mcp.openhelvetia.swiss/mcp ist vorbereitet und nicht serviert. Alles hier beschreibt den gebauten Stand, wie ihn die Tests beweisen. Lokal läuft er heute; wie, steht in MCP-Gateway betreiben, testen, ansteuern.
Die drei Türen
| Tür | Für wen | Bemerkung |
|---|---|---|
| MCP über stdio | lokale Hosts und Tests | die Maschinentür; der Prozess ist die Sitzung |
MCP streamable-HTTP /mcp | Agenten und Hosts über das Netz | die vorgesehene öffentliche Tür (Revision 2026-07-28) |
JSON-Hülle GET /tools, POST /tool/<id> | einfache Clients, der Chat dieser Website | lokal; kein Produktionstransport; dieselben Werkzeuge, dieselben Absagen |
Relais /relay/infomaniak/<Produkt>/… | der Chat dieser Website, für einen Anbieter, dessen API keine Browser-Aufrufe annimmt | reicht chat/completions und models mit dem eigenen Schlüssel des Besuchers an Infomaniak weiter und nirgendwohin sonst; speichert und protokolliert nichts davon; offen nur, wo der Betreiber --relay setzt (E16, Revision 05.09.2026) |
Zweistufige Entdeckung
- meta.tools. Jedes Werkzeug mit Kennung, Domäne, Einzeiler und Gewicht, ohne Eingabeschemata. Kostet 1.
- meta.schemas. Die vollständigen Eingabeschemata nur der genannten Kennungen, typisch drei bis fünf.
- Aufruf. Beide Stufen und
tools/listlesen denselben Router; die Schemata sind byte-identisch.
Eine Zeile aus Stufe eins, wörtlich aus dem Werkzeug-Inventar:
{
"id": "fedlex.resolve_sr",
"domain": "fedlex",
"summary": "Resolve an SR number (e.g. 832.10) to the act's ELI, titles and in-force status: use when a question names an SR; predecessors stay visible. norm.",
"weight": 2
}
Ein Aufruf über die JSON-Hülle
curl -s http://127.0.0.1:8700/tools
curl -s -X POST http://127.0.0.1:8700/tool/meta.schemas -H 'content-type: application/json' -d '{"names": ["fedlex.resolve_sr", "fedlex.read_article"]}'
curl -s -X POST http://127.0.0.1:8700/tool/lindas.list_cubes -H 'content-type: application/json' -d '{}'
Die erste Nachricht über MCP streamable-HTTP
POST https://mcp.openhelvetia.swiss/mcp
Accept: application/json, text/event-stream
Content-Type: application/json
MCP-Protocol-Version: 2026-07-28
MCP-Method: server/discover
{
"jsonrpc": "2.0",
"id": 1,
"method": "server/discover",
"params": {
"protocolVersion": "2026-07-28",
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}
Beide Accept-Typen, Versions- und Methoden-Header, params._meta mit beiden Schlüsseln: fehlt eines, weist ein konformer Server die Anfrage ab, bevor MCP-Logik läuft.
Grenzen
Sitzungsbudget: gewichtete harte Grenze (Registerlesen 1, Domänenaufruf 2), erholt sich nicht. Rate: Voreinstellung 60 Gewichtseinheiten pro Minute, Burst 20, je Client. Eine Absage kostet nichts. Die sechs Absagen stehen in der Referenz.