openlex-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Host to bind the HTTP server (default: 127.0.0.1). | 127.0.0.1 |
| MCP_PORT | No | Port to bind the HTTP server (default: 8000). | 8000 |
| MCP_CORS_ORIGINS | No | Comma-separated list of allowed CORS origins (e.g., https://claude.ai). Defaults to empty (no cross-origin access). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| openlex__zhlaw_search_lawsA | Volltextsuche in allen Zürcher Gesetzen mit FTS5-Ranking. Allgemeine Suche nach einem Rechtsbegriff über alle ~970 kantonalen Gesetze. Wähle dieses Tool wenn das Rechtsgebiet unbekannt ist. Für das Bildungsrecht (412.x) ist openlex__zhlaw_find_education_laws schneller und präziser. Um Artikel innerhalb eines bekannten Gesetzes zu finden, nutze openlex__zhlaw_search_articles. FTS5-Syntax: AND, OR, NOT, Phrasensuche "...". Ergebnisse nach BM25-Relevanz sortiert. Max 50 Treffer pro Aufruf (limit-Parameter). sr_prefix filtert nach Rechtsgebiet (412=Bildung, 331=Steuern, 700=Bau). Sucht im lokalen Cache — Aktualität der Metadaten via openlex__zhlaw_get_law_metadata prüfen. query='Elternrat OR Elternmitwirkung', sr_prefix='412', limit=10 |
| openlex__zhlaw_get_lawA | Ruft ein Zürcher Gesetz anhand der Ordnungsnummer oder Abkürzung ab. Wenn die Ordnungsnummer oder Abkürzung eines Gesetzes bereits bekannt ist und Metadaten oder Volltext abgerufen werden sollen. Um ein Gesetz erst zu finden, openlex__zhlaw_search_laws oder openlex__zhlaw_find_education_laws vorschalten. Unterstützt LS-Nummern ('412.100') und Abkürzungen ('VSG'). include_content=True liefert den Volltext (bis 5000 Zeichen, dann truncated=True). Bei Truncation: openlex__zhlaw_get_article für einzelne Artikel verwenden. Wichtige Gesetze: VSG, LPG, PBG, StG, KV. identifier='VSG', include_content=False |
| openlex__zhlaw_get_articleA | Extrahiert einen einzelnen Artikel aus einem Zürcher Gesetz. Wenn der genaue Wortlaut eines bestimmten Artikels benötigt wird. Voraussetzung: Gesetz und Artikelnummer sind bekannt. Um zuerst relevante Artikel zu finden: openlex__zhlaw_search_articles nutzen. Unterstützt Standard-Artikelnummern (28), Buchstaben-Artikel (28a) und Bis-Artikel (28bis). Liefert Titel, alle Absätze und Volltext des Artikels. Gibt count=0 zurück wenn der Artikel nicht existiert — Artikelnummer ohne 'Art.' angeben (nur die Zahl). law_identifier='VSG', article_number='28' |
| openlex__zhlaw_list_lawsA | Listet Zürcher Gesetze auf mit optionalem Filter nach Rechtsgebiet. Wenn eine strukturierte Übersicht aller Gesetze eines Rechtsgebiets benötigt wird (z.B. alle aktiven Bildungsgesetze). Für gezielte Textsuche ist openlex__zhlaw_search_laws besser; für reines Bildungsrecht openlex__zhlaw_find_education_laws. sr_prefix filtert nach Ordnungsnummer-Prefix (412=Bildung, 331=Steuern, 700=Bau, 131=Verfassung, 810=Gesundheit). active_only=True blendet aufgehobene Gesetze aus. Unterstützt Paginierung via offset. Gibt Titel, Abkürzung, SR-Nummer und Status zurück — keinen Volltext. sr_prefix='412', active_only=True, limit=50 |
| openlex__zhlaw_find_education_lawsA | Sucht gezielt im Zürcher Bildungsrecht (Ordnungsnummern 412.x). Bevorzuge dieses Tool gegenüber openlex__zhlaw_search_laws wenn die Anfrage klar im Bildungsbereich liegt (Schule, Lehrpersonen, Kindergarten, Sonderpädagogik, Tagesstrukturen). Schneller und präziser als die allgemeine Suche, da nur die 412.x-Serie (VSG, VSV, LPG, LPVO, VSM u.a.) durchsucht wird. Sucht ausschliesslich in aktiven 412.x-Gesetzen. Bei keinen Treffern: automatischer Fallback auf alle Rechtsgebiete mit Hinweis im message- Feld. Für Artikel innerhalb eines gefundenen Gesetzes: openlex__zhlaw_search_articles. Synergie: Fundstelle + swiss-courts-mcp → Rechtsprechung finden. query='Elternrat', limit=10 |
| openlex__zhlaw_search_articlesA | Durchsucht alle Artikel eines bestimmten Gesetzes nach einem Begriff. Wenn bekannt ist, in welchem Gesetz gesucht werden soll, aber nicht welcher Artikel relevant ist. Liefert alle Treffer-Artikel mit Inhalt. Für einen einzelnen Artikel mit bekannter Nummer: openlex__zhlaw_get_article. Parst das Gesetz in einzelne Artikel und durchsucht Titel und Inhalt. Suche ist case-insensitive, kein FTS5 (einfaches Substring-Match). Gibt count=0 wenn kein Artikel den Begriff enthält. Benötigt Volltext im Cache — bei fehlendem Inhalt: Hinweis im message-Feld. law_identifier='VSG', query='Elternrat' |
| openlex__zhlaw_get_law_metadataA | Ruft aktuelle Metadaten eines Gesetzes live von zh.ch ab. Wenn der aktuelle Stand eines Gesetzes auf zh.ch geprüft werden soll — z.B. ob es kürzlich geändert wurde, welche PDF-Version aktuell gilt oder welche ZH-Lex URL direkt verlinkt werden kann. Einziges Tool mit Live-HTTP-Aufruf; alle anderen Tools lesen den lokalen Cache. Macht einen echten HTTP-Request an www.zh.ch (ca. 1–3 s). Erfordert Netzwerkzugang. Liefert: Seitentitel, PDF-Links, Änderungsdatum, ZH-Lex URL. Bei 404 oder Timeout: found=False mit Fehlerdetail im error-Feld. Nur Ordnungsnummern akzeptiert (kein Abkürzungs-Lookup). sr_number='412.100' |
| openlex__zhlaw_update_cacheA | Aktualisiert den lokalen Cache der Zürcher Gesetzesdaten. Nur aufrufen wenn Gesetzes-Suchergebnisse veraltet wirken oder der Cache explizit neu geladen werden soll. Der Cache wird automatisch beim Start befüllt und ist 24 Stunden gültig — manuelles Update ist selten nötig. Lädt ~970 Gesetze von HuggingFace (rcds/swiss_legislation) in die lokale SQLite-DB mit FTS5-Index (~25 s erster Lauf). force=False überspringt den Download wenn Cache <24h alt (gibt status='cache_fresh' zurück). force=True erzwingt Neudownload. Erfordert Internetzugang zu HuggingFace. force=False |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/openlex-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server