ZBS Index What actually exists in applied AI, with the source next to it

mcp server

ris-austria-mcp-server

Search Austrian federal and state law, court decisions, and the authentic Bundesgesetzblatt (RIS).

Description as published by the maintainer. Source

  • version 0.4.1
  • active
  • retrieval

active — Most recent push to the repository was 2026-07-31. Dashed tags are derived by ZBS Index from the published description, not stated by the maintainer.

What this server can do

9 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.

ris_get_document(format, sections, application, document_url, document_number)
Fetch one RIS document’s full text or its rendition URLs, with explicit binding status and the amtssigniert authentic PDF surfaced wherever it exists. Address the document exactly one of two ways: document_number plus application (both copied verbatim from a ris_search_* or ris_lookup_citation result), or a document_url from a result’s content_urls — or, for a draft’s companion documents (Erläuterungen, Textgegenüberstellung, WFA, cover letter, annexes), a ris_search_drafts record’s materials[].url, which is the only route to them. format: markdown (default — the HTML rendition converted to markdown), html (raw HTML rendition), xml (the RIS Nutzdaten XML), or urls_only (no fetch — every rendition URL, including the Authentisch PDF). Format availability varies by application and the tool degrades explicitly, never silently: consolidated law, gazettes, case law, drafts, and most sectoral collections carry full text; district and municipal promulgations and court rules (Bvb, GrA, KmGer) publish only the signed authentic PDF; party-transparency decisions and council minutes (Upts, Mrp) are PDF-only; the 1848–1940 imperial gazettes (BgblAlt) are metadata-only — for these a text-format request returns a format_unavailable notice with the usable URL, not an error. Every result carries binding_status; only authentic (amtssigniert) publications are legally binding. This tool returns content, not fresh metadata — the metadata rides the search/lookup step that produced the document number. When the markdown text overflows the 40,000-byte budget the tool returns an outline (kind: outline) instead of truncating: the document’s §/Artikel/Anlage sections where it carries at least two such headings, otherwise contiguous byte windows named Part 1 of N … Part N of N covering the whole text and listed in document order. Re-call with sections:[…] naming outline entries to retrieve just those; a name matching no entry returns the outline again with a notice rather than the whole document. Windows are cut at line breaks, not at sentence or § boundaries, so one can open mid-sentence — read them in order and pull the neighbour when a passage straddles a cut. Raw html and xml renditions are never sliced and return whole at any size. Markdown drops the screen-reader expansions RIS ships alongside each abbreviated citation, keeping the visible citation form; raw html/xml renditions are returned exactly as published.
ris_list_reference(topic)
Ground the opaque German codes across the RIS surface — static and offline, no upstream call. Topics: applications (all 39, with coverage windows, binding status, and content formats), courts (17 codes with Geschäftszahl examples and successor mapping), states (the three Bundesland request spellings), decision_types, decision_kinds (per-court Entscheidungsart values), issuing_bodies (dsk/dok/pvak/verg bodies and social-insurance issuers), ministries (abbreviations and full designations, historical included), collections (the 7 announcement collections and their parameter matrix), stages (lawmaking pipeline), changed_since_intervals, section_types, gazette_parts (BGBl parts and era tiers), law_types, district_authorities (all Bezirksverwaltungsbehörden), justiz_subject_areas (Fachgebiet taxonomy), search_syntax (operators and wildcard rules), and citation_formats (the shapes ris_lookup_citation parses). Recovery hints from the other ris_* tools route here. Required: topic.
ris_lookup_citation(kind, court, state, citation, in_force_as_of)
Resolve a single Austrian legal citation to its canonical RIS document deterministically — no keyword search. Four routes are auto-detected from the citation shape (or forced with kind): a norm citation — section-first ("§ 6 DSG", "Art 10 B-VG"), abbreviation-first ("DSG §1", "DSGVO Art32", the shape ris_search_case_law returns in norms_cited), or a bare abbreviation like "ABGB" — resolves through consolidated federal law, or a Bundesland with a state hint, as in force today or on in_force_as_of; a gazette citation ("BGBl. I Nr. 165/1999", pre-2004 "BGBl. Nr. 194/1961", imperial "RGBl. Nr. 189/1902", or "LGBl. Nr. 61/2026" with a state hint) routes to the right federal era tier by year, or to a state Landesgesetzblatt — falling back to that Bundesland’s pre-e-Recht series when the citation predates its switch; a case number ("Ro 2026/03/0016", "G 287/2022", "14Os49/26a", "2025-0.934.677", "W256 …") is matched to its court — pass court to skip detection, and ambiguous formats probe up to two courts; a collection number ("VfSlg 19.632/2012", "VwSlg 18.000 A/2010") resolves through the VfGH/VwGH collection — a VwSlg cite given without its part letter can name one decision in each of the two VwGH series, and comes back as ambiguous with both cites named rather than resolved to one of them. Returns the single best-matching document in the same shape as the corresponding search tool, with alternatives_count when more than one matched. A citation that cannot be classified or resolved returns found: false with next-step guidance — it never throws for a miss; only an upstream RIS outage is an error. For keyword rather than citation lookup, use ris_search_legislation or ris_search_case_law. Required: citation.
ris_search_announcements(norm, page, type, query, title, issuer, number, sort_by, page_size, plan_type, collection, department, plan_state, case_number, legislature, published_to, changed_since, in_force_as_of, published_from, session_number, sort_direction, entered_force_to, entered_force_from)
Search Austria’s sectoral official gazettes and executive documents — seven collections behind one collection enum: social_insurance (Amtliche Verlautbarungen der Sozialversicherung, authentic), veterinary (Amtliche Veterinärnachrichten, authentic), court_rules (Kundmachungen der Gerichte — rules of procedure and case-allocation plans, authentic; currently LVwG Tirol and Vorarlberg only), trade_exam_rules (Prüfungsordnungen gemäß Gewerbeordnung, authentic), health_structure_plans (Strukturpläne Gesundheit — federal ÖSG and per-state RSG, authentic), ministerial_decrees (Erlässe der Bundesministerien — decrees interpreting law; bind the administration, not citizens), and council_minutes (Ministerratsprotokolle — council-of-ministers session records). Each collection accepts a different filter set: query and title are broadly available; number, published_from/to, in_force_as_of, issuer (ministry abbreviations expanded), norm ("decrees citing the DSG"), case_number, type, department, plan_type/plan_state (health plans), and session_number/legislature (council minutes) apply where the collection supports them — a filter outside its set is rejected locally. Every result carries a binding label, the authentic PDF where it exists, and the RIS web view (document_url) — the only browsable surface for the PDF-only council minutes and for ministerial decrees. Per-collection parameter matrix and issuers: ris_list_reference topic collections or issuing_bodies. Required: collection.
ris_search_case_law(norm, page, court, party, query, state, senate, sort_by, page_size, commission, court_name, decided_to, legal_area, case_number, subject_law, decided_from, issuing_body, subject_area, changed_since, decision_kind, decision_type, sort_direction, collection_number, discrimination_ground)
Search Austrian case law (Judikatur) in ONE court or tribunal per call — court is required: vfgh (Constitutional Court), vwgh (Supreme Administrative Court), justiz (ordinary courts incl. OGH, selected decisions), bvwg (federal administrative), lvwg (state administrative), dsk (data protection authority), normenliste (VwGH norm index), dok, pvak, gbk, verg, upts (party transparency), and the historical uvs, asylgh, ubas, umse, bks. Cross-court research is one call per court (calls are cheap); historical bodies are closed windows with successors — codes, windows, and Geschäftszahl examples: ris_list_reference topic courts. Filter by full-text query, cited norm ("DSG §1", "DSGVO Art32" — the highest-value filter), exact case_number (Geschäftszahl), decision date range, decision_type (headnote vs full text), decision_kind, or the court-conditional filters: issuing_body (dsk/dok/pvak/verg), court_name/legal_area/subject_area (justiz), state (lvwg/uvs), party (upts), commission/senate/discrimination_ground (gbk), subject_law (bks), collection_number (vfgh/vwgh/uvs). For a known Geschäftszahl or VfSlg/VwSlg cite, ris_lookup_citation resolves it directly. Required: court.
ris_search_drafts(page, query, stage, title, sort_by, ministry, page_size, decided_to, decided_from, in_review_on, changed_since, sort_direction)
Search Austria’s federal lawmaking pipeline BEFORE promulgation — the monitoring counterpart to ris_search_gazette (what will become law). stage selects the phase: review_drafts (Begutachtungsentwürfe — draft laws a ministry has put into public review, before any government bill exists) or government_bills (Regierungsvorlagen — bills the council of ministers adopted and submitted to parliament, 2004+). Filter by query (full text), title, ministry (accepts an abbreviation like "BMF" — expanded to RIS’s exact designation; the historical name at submission time counts), in_review_on (review_drafts only — drafts whose review window covers the date; today = "what is in Begutachtung right now"), or decided_from/to (government_bills only — council adoption date). changed_since gives coarse recency. Each record carries materials — the companion documents filed with the draft (Erläuterungen, Textgegenüberstellung, Vorblatt/WFA, covering letter, annexes); the Erläuterungen carry the drafting reasoning the bill text omits, and passing a materials[].url to ris_get_document as document_url is the only way to read one (format there picks the rendition returned). Documents are preparatory, not binding law. Ministry codes: ris_list_reference topic ministries. Required: stage.
ris_search_gazette(page, part, type, query, scope, title, issuer, number, series, sort_by, page_size, state_era, municipality, published_to, published_from, sort_direction, district_authority)
Browse Austria’s promulgation record — the authentic, legally binding gazettes — at every level of government. scope picks the jurisdiction: federal (default; the Bundesgesetzblatt across three era tiers auto-routed by year — BgblAuth 2004+ authentic, BgblPdf 1945–2003, BgblAlt 1848–1940 metadata-only ÖNB scans; one call serves one tier, so a published_from/published_to interval crossing 2004-01-01 or 1945-01-01 is rejected with the boundaries to split at, and RIS carries no federal gazette for 1941–1944), one Bundesland (its Landesgesetzblatt), district (Bezirke promulgations), or municipal (Gemeinde promulgations). For a state scope, series selects law gazettes (law_gazette, the default → LGBl) vs ordinance gazettes (ordinance_gazette → Verordnungsblätter, currently Tirol only), and state_era picks which era of that series to search: current (the default → the authentic LGBl) or legacy (the state’s earlier non-authentic series — Niederösterreich’s systematic LgblNO, or the older Lgbl elsewhere; Wien carries neither, and ordinance gazettes have no legacy series). Filter by query (full text), title, number ("171/2026" — a pre-2004 number auto-routes to the right era tier), part (federal I/II/III or pre_1997), type (laws/regulations/announcements/other), published_from/to, issuer (federal or ordinance gazettes only), district_authority (district only), or municipality (municipal only). Every result carries a binding label (authentic vs historical_record vs consolidated_informational) and the amtssigniert authentic PDF wherever it exists — the binding artifact, never a paraphrase. For one known gazette number, ris_lookup_citation resolves it directly. Coverage windows, era tiers, and part semantics: ris_list_reference topic applications or gazette_parts.
ris_search_legislation(page, index, query, scope, title, law_id, sort_by, language, page_size, section_to, municipality, section_from, section_type, changed_since, left_force_to, in_force_as_of, sort_direction, left_force_from, entered_force_to, entered_force_from, include_all_versions)
Search Austrian consolidated law and English translations: federal law (scope: federal, the default), one Bundesland (scope: burgenland … wien), municipal law (municipality plus a state scope — selected norms in 6 Bundesländer), or English translations of selected federal laws (language: english, federal only, ~138 documents). One document is one § / Artikel / Anlage; fetch a whole law by filtering law_id. Searches apply the version in force today in Austria by default — set in_force_as_of for another date, include_all_versions: true for full version history, or an entered_force / left_force window for new-law and repeal tracking; the three version filters are mutually exclusive, and the applied date is echoed back in the result. query is full text (boolean UND/ODER/NICHT or AND/OR/NOT, trailing-only * wildcard); title matches title, short title, and abbreviation ("DSG"). For a specific citation like "§ 6 DSG", ris_lookup_citation resolves it deterministically instead. Consolidated text is informational, not legally binding — the authentic gazette artifact lives in ris_search_gazette.
ris_track_changes(page, page_size, changed_to, application, changed_from, include_deleted)
Track every document added or changed in one RIS application within an exact date window (changed_from/changed_to), optionally including deletions (include_deleted) — the delta-sync and monitoring primitive for mirrors and watchers, and the only surface that reports removals. Unlike the search tools’ coarse, additive-only changed_since intervals, this is exact-dated and deletion-aware. application takes any RIS application code (e.g. BrKons, Dsk, BgblAuth); the four applications with a different History-feed name are mapped automatically. Each changed document comes back in a compact cross-class record — document_number (for ris_get_document), title, dates, binding_status, and rendition URLs — plus its last-changed date; removed documents come back as deleted records with a deletion timestamp. One application per call; page explicitly for large windows. Application codes and coverage: ris_list_reference topic applications. Required: application.

Last successful function declaration observed on . Source: https://ris-austria.caseyjhand.com/mcp. We list what the server declared; we do not call any of these functions.

Endpoint status observed on . Source: https://ris-austria.caseyjhand.com/mcp.

Signals

These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.

Signal Value What it measures Window Observed Source
GitHub stars 1 Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. cumulative, all time GitHub
Last commit 2026-07-31 Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. point in time GitHub
Open issues 1 Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. as of fetch GitHub
Latest published version 0.4.1 Latest version string the maintainer published to the registry. as of fetch Model Context Protocol
Registry record last updated 2026-07-31 When the registry record was last updated by its maintainer. point in time Model Context Protocol
License Apache-2.0 Licence GitHub detected in the repository. Detection can be wrong; the LICENSE file is authoritative. as of fetch GitHub
First listed in the MCP Registry 2026-07-31 Date this server was first published to the official MCP Registry. Not a usage or quality measure. point in time Model Context Protocol
repository status active The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. as of fetch GitHub
mcp tools declared 9 tools Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. as of probe ris-austria.caseyjhand.com
mcp endpoint status ok The server listed 9 functions when asked. as of probe ris-austria.caseyjhand.com

Where to get it

Related, by what their authors tagged them

  • io.github.cyanheads/courtlistener-mcp-server — last commit 2026-07-30, shares case-law, legal-research
    Search US court opinions, federal dockets, judges, citations, and oral arguments via CourtListener.
  • Gridbert — last commit 2026-08-06, shares austria
    Austrian energy data: 100+ electricity tariffs daily, grid fees, subsidies, bill analysis.
  • LibreJustice — last commit 2026-07-24, shares case-law
    Search French and European case law and French legal texts (codes, statutes, treaties).
  • io.github.cyanheads/openstates-mcp-server — last commit 2026-07-31, shares bun, legislation
    Search bills, legislators, committees, and events across all 50 US states, DC, and 5 US territories.
  • OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine — last commit 2026-08-06, shares legal-research
    1M+ Swiss court decisions, statutes & doctrine with citation graph (DE/FR/IT). CC0, free, 42 tools.
  • io.github.aa0101181514/tw-legal-rag — last commit 2026-08-05, shares legal-research
    Citation-guarded retrieval over 22M Taiwan court judgments and administrative interpretations
  • io.github.cyanheads/congressgov-mcp-server — last commit 2026-07-01, shares legislation
    Access U.S. congressional data - bills, votes, members, committees - via MCP.
  • io.github.cyanheads/eur-lex-mcp-server — last commit 2026-07-30, shares legislation
    Search EU legislation, CJEU case law, and treaties; traverse CELLAR graph; browse EuroVoc concepts.
  • io.github.cyanheads/census-mcp-server — last commit 2026-07-31, shares bun, stdio, streamable-http
    Query U.S. Census Bureau data, variables, and geography via MCP.
  • io.github.cyanheads/finnhub-mcp-server — last commit 2026-07-30, shares bun, stdio, streamable-http
    Real-time US-equity quotes, company fundamentals, earnings, analyst trends, and news via Finnhub.

These share tags the maintainers applied themselves, such as case-law, legal-research, austria, bun. Common tags like "mcp" or "ai" are ignored for this: agreeing with six hundred other projects is not a similarity.

This is not a recommendation and not a test result. It is a map of what the authors said their work is about.

Also from cyanheads

How the author describes it

Topics the maintainer set on GitHub: ai-agent, austria, austrian-law, bun, bundesgesetzblatt, case-law, gazette, legal-research, legislation, mcp, mcp-server, model-context-protocol, ris, stdio, streamable-http, typescript.

This record as data

Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.

GET /api/v1/entries/mcp_server.json

Sources

  1. cyanheads/ris-austria-mcp-server on GitHub — GitHub, observed , trust tier 3.
  2. Official MCP Registry — Model Context Protocol, observed , trust tier 1.
  3. Tools declared by the MCP server at https://ris-austria.caseyjhand.com/mcp — ris-austria.caseyjhand.com, observed , trust tier 4.