Skip to main content
Glama

Search Austrian Gazettes

ris_search_gazette
Read-onlyIdempotent

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo1-based result page. Default 1.
partNoFederal only. part1 (Gesetze) | part2 (Verordnungen) | part3 (Staatsverträge) — parts exist from 1997; pre_1997 searches the older partless BGBl (routes to the 1945–2003 tier). Semantics: ris_list_reference topic gazette_parts.
typeNoDocument-type filter (Typ) for federal and state law gazettes: laws (Gesetze) | regulations (Verordnungen) | announcements (Kundmachungen) | other (Sonstiges).
queryNoFull-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only. Syntax: ris_list_reference topic search_syntax. Omit to leave unfiltered; a blank value is rejected.
scopeNoJurisdiction level: federal (default — the Bundesgesetzblatt, era tier auto-routed), a Bundesland (burgenland … wien, its Landesgesetzblatt), district (Bezirke promulgations), or municipal (Gemeinde promulgations).federal
titleNoTitle search (Titel) — phrase field: * allowed leading or trailing with ≥2 characters beside it. Omit to leave unfiltered; a blank value is rejected.
issuerNoIssuing body — federal (EinbringendeStelle: a ministry abbreviation such as "BMF" or a full designation; an abbreviation missing from ris_list_reference topic ministries is rejected, a full designation missing from it is sent as written) or ordinance gazettes (Vbl Einbringer, exact match with no wildcards: Landeshauptmann/frau, Landesregierung, Amt der Landesregierung, Sonstige Landesbehörden) only. Omit to leave unfiltered; a blank value is rejected.
numberNoGazette number, e.g. "171/2026" or "BGBl. II Nr. 171/2026" (federal), "61/2026" (state), a Kundmachungsnummer (district/municipal). A trailing year routes a federal query to the right era tier; a bare number searches the current tier. Omit to leave unfiltered; a blank value is rejected.
seriesNoState scopes only. law_gazette (default when omitted) searches the authentic Landesgesetzblatt; ordinance_gazette searches the Verordnungsblätter (Vbl — currently Tirol only, 2022+).
sort_byNoSort column: published (Kundmachungsdatum) or number. Availability varies by tier; default: upstream order.
page_sizeNoDocuments per page: 10 or 20 (default 20). For more results, keep the size and raise page.
state_eraNoState scopes only. current (default when omitted) searches the authentic Landesgesetzblatt; legacy searches the state’s earlier non-authentic series — Niederösterreich’s systematic LgblNO collection, or the historical Lgbl for the other Bundesländer (Wien carries neither).
municipalityNoMunicipal only. Exact municipality name (Gemeinde), RIS’s spelling. Omit to leave unfiltered; a blank value is rejected.
published_toNoLatest promulgation date (YYYY-MM-DD). Federal: the interval must stay inside one era tier, so pair it with published_from — an interval crossing 2004-01-01 or 1945-01-01 is rejected with the boundaries to split at.
published_fromNoEarliest promulgation date (YYYY-MM-DD). A pre-2004 range routes a federal query to an earlier era tier. Federal: the interval must stay inside one tier — set published_to as well, since a one-sided bound is open into every tier beyond it.
sort_directionNoSort direction; applies with sort_by.
district_authorityNoDistrict only. Bezirksverwaltungsbehörde name, e.g. "Bezirkshauptmannschaft Liezen" — full list: ris_list_reference topic district_authorities. Omit to leave unfiltered; a blank value is rejected.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number RIS served.
errorNoPresent when the call failed. Absent on success.
noticeNoZero-hit guidance — names the likely cause and the concrete next call.
resultsNoMatching gazette entries for the requested page. Totals, paging, and the served application in enrichment.
pageSizeNoPage size RIS applied.
truncatedNoPresent and true when more pages exist beyond this one — raise page to continue.
totalCountNoTotal matching entries across all pages.
servedApplicationNoThe RIS application that served the query — for federal, the single era tier auto-routed from the number’s year or the publication-date interval (BgblAuth 2004+, BgblPdf 1945–2003, BgblAlt 1848–1940); otherwise the resolved state/district/municipal application.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • changedInput schema / properties / district_authority / description
      Previous value: -"District only. Bezirksverwaltungsbehörde name, e.g. \"Bezirkshauptmannschaft Liezen\" — full list: ris_list_reference topic district_authorities."New value: +"District only. Bezirksverwaltungsbehörde name, e.g. \"Bezirkshauptmannschaft Liezen\" — full list: ris_list_reference topic district_authorities. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / district_authority / pattern
      Added value: +"\\S"
    • changedInput schema / properties / issuer / description
      Previous value: -"Issuing body — federal (EinbringendeStelle, e.g. \"BMF\") or ordinance gazettes (Vbl Einbringer: Landeshauptmann/frau, Landesregierung, Amt der Landesregierung, Sonstige Landesbehörden) only. Phrase field."New value: +"Issuing body — federal (EinbringendeStelle: a ministry abbreviation such as \"BMF\" or a full designation; an abbreviation missing from ris_list_reference topic ministries is rejected, a full designation missing from it is sent as written) or ordinance gazettes (Vbl Einbringer, exact match with no wildcards: Landeshauptmann/frau, Landesregierung, Amt der Landesregierung, Sonstige Landesbehörden) only. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / issuer / pattern
      Added value: +"\\S"
    • changedInput schema / properties / municipality / description
      Previous value: -"Municipal only. Exact municipality name (Gemeinde), RIS’s spelling."New value: +"Municipal only. Exact municipality name (Gemeinde), RIS’s spelling. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / municipality / pattern
      Added value: +"\\S"
    • changedInput schema / properties / number / description
      Previous value: -"Gazette number, e.g. \"171/2026\" or \"BGBl. II Nr. 171/2026\" (federal), \"61/2026\" (state), a Kundmachungsnummer (district/municipal). A trailing year routes a federal query to the right era tier; a bare number searches the current tier."New value: +"Gazette number, e.g. \"171/2026\" or \"BGBl. II Nr. 171/2026\" (federal), \"61/2026\" (state), a Kundmachungsnummer (district/municipal). A trailing year routes a federal query to the right era tier; a bare number searches the current tier. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / number / pattern
      Added value: +"\\S"
    • removedInput schema / properties / page_size / anyOf
      Removed value: -[
      -  {
      -    "const": 10,
      -    "type": "number"
      -  },
      -  {
      -    "const": 20,
      -    "type": "number"
      -  },
      -  {
      -    "const": 50,
      -    "type": "number"
      -  },
      -  {
      -    "const": 100,
      -    "type": "number"
      -  }
      -]
    • changedInput schema / properties / page_size / description
      Previous value: -"Documents per page — RIS accepts 10, 20, 50, or 100. Default 20."New value: +"Documents per page: 10 or 20 (default 20). For more results, keep the size and raise page."
    • addedInput schema / properties / page_size / enum
      Added value: +[
      +  10,
      +  20
      +]
    • addedInput schema / properties / page_size / type
      Added value: +"number"
    • changedInput schema / properties / query / description
      Previous value: -"Full-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only. Syntax: ris_list_reference topic search_syntax."New value: +"Full-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only. Syntax: ris_list_reference topic search_syntax. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / query / pattern
      Added value: +"\\S"
    • changedInput schema / properties / title / description
      Previous value: -"Title search (Titel) — phrase field: * allowed leading or trailing with ≥2 characters beside it."New value: +"Title search (Titel) — phrase field: * allowed leading or trailing with ≥2 characters beside it. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / title / pattern
      Added value: +"\\S"
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `scope_filter_mismatch`: A filter was combined with a scope that does not support it (part off federal; series/state_era off a state scope; district_authority off district; municipality off municipal; issuer outside federal/ordinance gazettes), or series: ordinance_gazette was combined with state_era: legacy (ordinance gazettes have no legacy counterpart) — rejected locally before any upstream call; the message names the offending pair. `cross_tier_range`: A federal published_from/published_to interval overlaps more than one Bundesgesetzblatt era tier (BgblAuth 2004+, BgblPdf 1945–2003, BgblAlt 1848–1940) — including a one-sided bound, which is open into every tier beyond it. Rejected locally before any upstream call: one call serves exactly one application, so a spanning range would return the records of a single tier and silently omit the rest of the interval. A year-bearing number or part: pre_1997 names the tier outright and is never rejected. `invalid_query`: A page past the last page of results; or a parameter the resolved gazette does not carry — sort_by, number, type, part, issuer, or a state absent from the historical Lgbl series — rejected locally before any upstream call, naming the field and the gazette that rejected it (by scope/series/state_era, or for a federal era tier by its window and the input that routed there); or RIS rejecting a value in-band (the Client error message is passed through verbatim, in German, and it does not name the page). `upstream_error`: RIS is unreachable, returned a server error, or served an HTML error page. `upstream_timeout`: RIS did not answer the search within the request deadline. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `scope_filter_mismatch`: A filter was combined with a scope that does not support it (part off federal; series/state_era off a state scope; district_authority off district; municipality off municipal; issuer outside federal/ordinance gazettes), or series: ordinance_gazette was combined with state_era: legacy (ordinance gazettes have no legacy counterpart) — rejected locally before any upstream call; the message names the offending pair. `cross_tier_range`: A federal published_from/published_to interval overlaps more than one Bundesgesetzblatt era tier (BgblAuth 2004+, BgblPdf 1945–2003, BgblAlt 1848–1940) — including a one-sided bound, which is open into every tier beyond it. Rejected locally before any upstream call: one call serves exactly one application, so a spanning range would return the records of a single tier and silently omit the rest of the interval. A year-bearing number or part: pre_1997 names the tier outright and is never rejected. `unresolved_ministry`: A federal issuer is an abbreviation-shaped value matching no row of the RIS ministries table (the message names the closest matches), or a ministry the table lists only for another issuer parameter (the message names the parameters that accept it) — rejected locally before any upstream call. A value the table does not know that contains a space is sent to RIS as written instead. `invalid_query`: A page past the last page of results; or a parameter the resolved gazette does not carry — sort_by, number, type, part, issuer, or a state absent from the historical Lgbl series — rejected locally before any upstream call, naming the field and the gazette that rejected it (by scope/series/state_era, or for a federal era tier by its window and the input that routed there); or RIS rejecting a value in-band (the Client error message is passed through verbatim, in German, and it does not name the page). `upstream_error`: RIS is unreachable, returned a server error, or served an HTML error page. `upstream_timeout`: RIS did not answer the search within the request deadline. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "scope_filter_mismatch",
      -  "cross_tier_range",
      -  "invalid_query",
      -  "upstream_error",
      -  "upstream_timeout"
      -]New value: +[
      +  "scope_filter_mismatch",
      +  "cross_tier_range",
      +  "unresolved_ministry",
      +  "invalid_query",
      +  "upstream_error",
      +  "upstream_timeout"
      +]
  2. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "results",
      +      "totalCount",
      +      "page",
      +      "pageSize",
      +      "servedApplication"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `scope_filter_mismatch`: A filter was combined with a scope that does not support it (part off federal; series/state_era off a state scope; district_authority off district; municipality off municipal; issuer outside federal/ordinance gazettes), or series: ordinance_gazette was combined with state_era: legacy (ordinance gazettes have no legacy counterpart) — rejected locally before any upstream call; the message names the offending pair. `cross_tier_range`: A federal published_from/published_to interval overlaps more than one Bundesgesetzblatt era tier (BgblAuth 2004+, BgblPdf 1945–2003, BgblAlt 1848–1940) — including a one-sided bound, which is open into every tier beyond it. Rejected locally before any upstream call: one call serves exactly one application, so a spanning range would return the records of a single tier and silently omit the rest of the interval. A year-bearing number or part: pre_1997 names the tier outright and is never rejected. `invalid_query`: A page past the last page of results; or a parameter the resolved gazette does not carry — sort_by, number, type, part, issuer, or a state absent from the historical Lgbl series — rejected locally before any upstream call, naming the field and the gazette that rejected it (by scope/series/state_era, or for a federal era tier by its window and the input that routed there); or RIS rejecting a value in-band (the Client error message is passed through verbatim, in German, and it does not name the page). `upstream_error`: RIS is unreachable, returned a server error, or served an HTML error page. `upstream_timeout`: RIS did not answer the search within the request deadline. Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "scope_filter_mismatch",
      +            "cross_tier_range",
      +            "invalid_query",
      +            "upstream_error",
      +            "upstream_timeout"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "results",
      -  "totalCount",
      -  "page",
      -  "pageSize",
      -  "servedApplication"
      -]
  3. Changed3 schema fields changed
    • changedInput schema / properties / published_from / description
      Previous value: -"Earliest promulgation date (YYYY-MM-DD). A pre-2004 range routes a federal query to an earlier era tier."New value: +"Earliest promulgation date (YYYY-MM-DD). A pre-2004 range routes a federal query to an earlier era tier. Federal: the interval must stay inside one tier — set published_to as well, since a one-sided bound is open into every tier beyond it."
    • changedInput schema / properties / published_to / description
      Previous value: -"Latest promulgation date (YYYY-MM-DD)."New value: +"Latest promulgation date (YYYY-MM-DD). Federal: the interval must stay inside one era tier, so pair it with published_from — an interval crossing 2004-01-01 or 1945-01-01 is rejected with the boundaries to split at."
    • changedOutput schema / properties / servedApplication / description
      Previous value: -"The RIS application that served the query — for federal, the era tier auto-routed by year (BgblAuth 2004+, BgblPdf 1945–2003, BgblAlt 1848–1940); otherwise the resolved state/district/municipal application."New value: +"The RIS application that served the query — for federal, the single era tier auto-routed from the number’s year or the publication-date interval (BgblAuth 2004+, BgblPdf 1945–2003, BgblAlt 1848–1940); otherwise the resolved state/district/municipal application."
  4. Changed2 schema fields changed
    • changedInput schema / properties / published_from / pattern
      Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])$"
    • changedInput schema / properties / published_to / pattern
      Previous value: -"^\\d{4}-\\d{2}-\\d{2}$"New value: +"^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])$"
  5. Changed2 schema fields changed
    • removedInput schema / properties / include_non_authentic
      Removed value: -{
      -  "description": "State scopes only. Adds the historical non-authentic state gazette — Niederösterreich’s systematic LgblNO, or the older Lgbl for the other Bundesländer (Wien is not carried).",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / state_era
      Added value: +{
      +  "description": "State scopes only. current (default when omitted) searches the authentic Landesgesetzblatt; legacy searches the state’s earlier non-authentic series — Niederösterreich’s systematic LgblNO collection, or the historical Lgbl for the other Bundesländer (Wien carries neither).",
      +  "enum": [
      +    "current",
      +    "legacy"
      +  ],
      +  "type": "string"
      +}
  6. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only, idempotent, and open-world annotations, the description discloses important behavior: year-based tier auto-routing, rejection of date intervals crossing tier boundaries, missing federal gazette coverage for 1941–1944, Tirol-only ordinance gazettes, Vienna's lack of legacy series, and the binding-label/authentic-PDF behavior of results. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but not padded, and it front-loads the core resource and jurisdiction scope. It is one long paragraph rather than structured bullets, and some details repeat schema descriptions, but the complexity of 17 parameters and tiered federal/state rules justifies its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 17 optional parameters and an output schema, the description covers the necessary selection context: jurisdiction scopes, era tiers, state series, filter semantics, result labels, and a pointer to ris_list_reference for supplementary reference data. Nothing critical for invoking the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all 17 parameters at 100% coverage, so the baseline is 3. The description adds value by tying parameters to jurisdiction and series choices, explaining date-boundary constraints, giving concrete number examples, and clarifying pre-2004 auto-routing behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Browse') and a specific resource: Austria's authentic, legally binding gazettes at federal, state, district, and municipal levels. It also distinguishes the tool from the closest sibling by stating that ris_lookup_citation resolves a known gazette number directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear when-to-use context: searching/browsing gazettes across jurisdictions and eras, with an explicit alternative for known citation numbers. It also directs the agent to ris_list_reference for coverage windows, era tiers, and part semantics, though it does not explicitly contrast with sibling search tools like ris_search_legislation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.