at-ris-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RIS_RATE_MS | No | Minimum delay between requests in milliseconds | 1200 |
| RIS_BASE_URL | No | API base URL | https://data.bka.gv.at/ris/api/v2.6 |
| RIS_MCP_HOST | No | Bind host for http/sse | 127.0.0.1 |
| RIS_MCP_PATH | No | URL path for the HTTP endpoint | |
| RIS_MCP_PORT | No | Bind port for http/sse | 8000 |
| RIS_SOAP_URL | No | OGD SOAP endpoint | https://data.bka.gv.at/ris/ogd/v2.6/ |
| RIS_AUDIT_DIR | No | If set, audit log directory | |
| RIS_CACHE_DIR | No | SQLite cache directory | ~/.cache/at-ris-mcp |
| RIS_TIMEOUT_S | No | HTTP timeout in seconds | 30 |
| RIS_USER_AGENT | No | User agent string | at-ris-mcp/<version> (+…) |
| RIS_MAX_RETRIES | No | Maximum number of retries | 3 |
| RIS_CACHE_ENABLED | No | Whether cache is enabled | true |
| RIS_MCP_TRANSPORT | No | Server transport: stdio, http, sse, streamable-http | stdio |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ris_search_lawA | Search Austrian federal law (Bundesrecht). applikation: BrKons (consolidated law, default) | BgblAuth | BgblPdf | BgblAlt | Begut | RegV | Erv. Use paragraph/artikel/anlage="N" or "N-M" for section access (BrKons), fassung_vom=YYYY-MM-DD for a historical version snapshot. For Begut/RegV use einbringende_stelle, in_begutachtung_am (Begut) or beschluss_von/beschluss_bis (RegV). Each hit carries eli_uri, human_readable_citation, source_url and content_urls for ris_get_law_text. |
| ris_get_law_textA | Fetch the full text of a statute/section from a hit's content_urls. format: markdown (default) | html | xml | raw (unaltered original). Pass eli_uri and human_readable_citation from the search hit so the text stays citable. content_url must be a .html or .xml URL on ris.bka.gv.at. |
| ris_search_case | Search Austrian case law (Judikatur). gericht: Justiz (default, incl. OGH) | Vfgh | Vwgh | Bvwg | Lvwg | Dsk | Dok | Pvak | Gbk | Uvs | AsylGH | Ubas | Umse | Bks | Verg | Normenliste. norm filters by applied norm (e.g. "ABGB §879"). Keep both rechtssaetze and entscheidungstexte true to get full decisions, not just Rechtssätze. Each hit carries a native ecli and content_urls for ris_get_case_text. |
| ris_get_case_text | Fetch the full text of a decision from a case hit's content_urls. format: markdown (default) | html | xml | raw. Pass ecli and human_readable_citation from the search hit so the text stays citable. content_url must be a .html or .xml URL on ris.bka.gv.at. |
| ris_search_state_law | Search Austrian state law (Landesrecht) of the nine Bundesländer. applikation: LrKons (consolidated state law, default) | LgblAuth | Lgbl | LgblNO | Vbl. bundeslaender: comma-separated list of states to search (LrKons), e.g. "Kaernten,Tirol" (values: Burgenland, Kaernten, Niederoesterreich, Oberoesterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien). paragraph/artikel/anlage="N" or "N-M" for section access, fassung_vom=YYYY-MM-DD for a historical snapshot. App-specific: lgblnummer + kundmachung_von/bis (LgblAuth/Lgbl); einbringer, kundmachungsnummer + kundmachung_von/bis (Vbl); gliederungszahl + ausgabedatum_von/bis (LgblNO). |
| ris_search_misc | Search 'Sonstige' RIS collections (ministerial decrees etc.). applikation: Erlaesse (ministerial decrees, default) | Avsv | Avn | Spg | KmGer | Upts | Mrp | PruefGewO. geschaeftszahl, norm and bundesministerium mainly apply to Erlaesse. App-specific fine filters (only sent for the relevant app): avsvnummer/dokumentart/urheber (Avsv), avnnummer (Avn), spgnummer (Spg), gericht (KmGer), partei/gz (Upts), einbringer/sitzungsnummer/gesetzgebungsperiode (Mrp). kundmachung_von/bis are YYYY-MM-DD dates. Each hit carries source_url and content_urls. |
| ris_search_district | Search district authority notices (Bezirke / Bvb). bundesland: one of Burgenland, Kaernten, Niederoesterreich, Oberoesterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. kundmachung_von/bis are YYYY-MM-DD dates. Each hit carries source_url and content_urls (some notices are PDF-only). |
| ris_search_municipality | Search municipal law (Gemeinden / Gemeinderecht). applikation: Gr (Gemeinderecht, default) | GrA (authentic). bundesland: one of the nine states (see ris_search_district). gemeinde: municipality name. fassung_vom (Gr) for a historical snapshot; kundmachung_von/bis (GrA) filter by promulgation date. Each hit carries source_url and content_urls. |
| ris_list_collections | Static overview of the RIS endpoints/applications covered by this server, plus the scope not yet covered (Landesrecht, History, ...). |
| ris_list_changes | Change/early-warning feed (RIS History) via the OGD SOAP endpoint. anwendung: the application to monitor. NB: consolidated federal law is queried as "Bundesnormen" (not "BrKons"), consolidated state law as "Landesnormen". Other valid values include BgblAuth, Begut, RegV, Justiz, Vfgh, Vwgh, Bvwg, Lvwg, Dsk, Erlaesse, ... (see ris_list_collections). von/bis are YYYY-MM-DD dates (AenderungenVon/Bis). include_deleted also returns removed documents. Returns changed/new/deleted documents, each with id, titel, geaendert, a 'deleted' flag and content_urls where available. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one for searching Austrian federal law, the other for fetching the full text of a specific statute or section. There is no overlap or ambiguity.
Both tools follow a consistent 'ris_verb_noun' pattern: ris_search_law and ris_get_law_text. The naming is predictable and clear.
With only two tools, the server is minimal. While they cover search and retrieval, the scope suggests more tools might be expected (e.g., browsing, categorizing), making it borderline but not inadequate.
The tool surface covers the essential workflow of searching for a law and retrieving its full text. Minor gaps exist, such as direct access to law lists or metadata, but the core functionality is complete.