Skip to main content
Glama

Search Official Announcements

ris_search_announcements
Read-onlyIdempotent

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 and social-insurance carrier abbreviations expanded), norm ("decrees citing the DSG"), case_number, type, department, plan_type/plan_state (health plans), session_number/legislature (council minutes), and changed_since (all but social_insurance and veterinary) 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.

Input Schema

NameRequiredDescriptionDefault
normNoCited-provision filter (Norm) — "DSG §1", "DSGVO Art32" style. veterinary and ministerial_decrees only ("decrees citing the DSG"). Omit to leave unfiltered; a blank value is rejected.
pageNo1-based result page. Default 1.
typeNoDocument type (Typ) — trade_exam_rules (Befaehigungspruefungsordnung | Meisterpruefungsordnung | HoehereBerufsqualifikation | Fachdiplom | HoeheresFachdiplom), court_rules (Geschaeftsordnung | Geschaeftsverteilung), veterinary (Kundmachungen | VeroeffentlichungenAufGrundVEVO | SonstigeVeroeffentlichungen). Only these values, in any letter case. Omit to leave unfiltered; a blank value is rejected.
queryNoFull-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only. Valid for all collections. Omit to leave unfiltered; a blank value is rejected.
titleNoTitle search (Titel) — phrase field. Valid for all collections except council_minutes. Omit to leave unfiltered; a blank value is rejected.
issuerNoIssuing body — social_insurance (Urheber: a carrier abbreviation such as ÖGK, DVSV, SVS, BVAEB, AUVA, or PVA is expanded to its full designation; a full designation or a "<ABBR> Gesamtvertrag" series is sent as written), ministerial_decrees (Bundesministerium) or council_minutes (Einbringer) — a ministry abbreviation such as "BMF" is expanded, a full designation is sent as written. Values: ris_list_reference topic issuing_bodies or ministries. Omit to leave unfiltered; a blank value is rejected.
numberNoSerial number (Avsvnummer / Avnnummer / Spgnummer) — social_insurance, veterinary, health_structure_plans. Omit to leave unfiltered; a blank value is rejected.
sort_byNoSort column: published or number, where the collection has the column. Default: upstream order.
page_sizeNoDocuments per page, 1–100 (default 20). Served as a page of 10 (1–10) or 20 (11–100), with a notice when that differs. For more results, keep the size and raise page.
plan_typeNohealth_structure_plans only. Plan kind — all (default), expert_opinion (Gutachten), or regulation (Verordnungen). Searches the federal ÖSG unless plan_state is set.
collectionYesWhich collection to search — one per call. social_insurance | veterinary | court_rules | trade_exam_rules | health_structure_plans | ministerial_decrees | council_minutes. Per-collection filter matrix: ris_list_reference topic collections.
departmentNoMinistry department (Abteilung) — ministerial_decrees only. Omit to leave unfiltered; a blank value is rejected.
plan_stateNohealth_structure_plans only. Restrict to one Bundesland’s regional health-structure plan (RSG) — setting it switches the search from the federal ÖSG to that state’s RSG.
case_numberNoBusiness reference number (Geschäftszahl) — veterinary and ministerial_decrees only. Omit to leave unfiltered; a blank value is rejected.
legislatureNoLegislative period (Gesetzgebungsperiode, e.g. "XXVII") — council_minutes only. Omit to leave unfiltered; a blank value is rejected.
published_toNoLatest publication/session date (YYYY-MM-DD).
changed_sinceNoCoarse recency filter — documents changed in RIS within the interval. Every collection except social_insurance and veterinary, where RIS ignores it: use published_from there, or ris_track_changes for changes. For exact windows use ris_track_changes.
in_force_as_ofNoVersion in force on this date (YYYY-MM-DD) — veterinary, court_rules, trade_exam_rules, health_structure_plans, ministerial_decrees (the consolidated-ish collections).
published_fromNoEarliest publication/session date (YYYY-MM-DD). All collections except ministerial_decrees (decrees date by force — use in_force_as_of / entered_force_from/to).
session_numberNoCouncil session number (Sitzungsnummer) — council_minutes only. Omit to leave unfiltered; a blank value is rejected.
sort_directionNoSort direction; applies with sort_by.
entered_force_toNoProvisions that entered force on/before this date (YYYY-MM-DD) — ministerial_decrees only.
entered_force_fromNoProvisions that entered force on/after this date (YYYY-MM-DD) — ministerial_decrees only.

Output Schema

NameRequiredDescriptionDefault
pageNo1-based page number RIS served.
errorNoPresent when the call failed. Absent on success.
noticeNoThe served page size when it differs from page_size, then zero-hit guidance — the likely cause and the concrete next call.
resultsNoMatching documents for the requested page. Totals and paging in enrichment.
pageSizeNoPage size RIS applied.
truncatedNoPresent and true when more pages exist beyond this one — raise page to continue.
totalCountNoTotal matching documents across all pages.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / page_size / description
      Previous value: -"Documents per page: 10 or 20 (default 20). For more results, keep the size and raise page."New value: +"Documents per page, 1–100 (default 20). Served as a page of 10 (1–10) or 20 (11–100), with a notice when that differs. For more results, keep the size and raise page."
    • removedInput schema / properties / page_size / enum
      Removed value: -[
      -  10,
      -  20
      -]
    • addedInput schema / properties / page_size / maximum
      Added value: +100
    • addedInput schema / properties / page_size / minimum
      Added value: +1
    • changedInput schema / properties / page_size / type
      Previous value: -"number"New value: +"integer"
    • changedOutput schema / properties / notice / description
      Previous value: -"Zero-hit guidance — names the likely cause and the concrete next call."New value: +"The served page size when it differs from page_size, then zero-hit guidance — the likely cause and the concrete next call."
  2. Changed16 schema fields changed
    • changedInput schema / properties / type / description
      Previous value: -"Document type (Typ) — trade_exam_rules (Befaehigungspruefungsordnung | Meisterpruefungsordnung), court_rules (Geschaeftsordnung | Geschaeftsverteilung), veterinary (Kundmachungen | VeroeffentlichungenAufGrundVEVO | SonstigeVeroeffentlichungen). Omit to leave unfiltered; a blank value is rejected."New value: +"Document type (Typ) — trade_exam_rules (Befaehigungspruefungsordnung | Meisterpruefungsordnung | HoehereBerufsqualifikation | Fachdiplom | HoeheresFachdiplom), court_rules (Geschaeftsordnung | Geschaeftsverteilung), veterinary (Kundmachungen | VeroeffentlichungenAufGrundVEVO | SonstigeVeroeffentlichungen). Only these values, in any letter case. Omit to leave unfiltered; a blank value is rejected."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `collection_filter_mismatch`: A parameter was combined with a collection that does not accept it — rejected locally before any upstream call; the message names the offending parameter and lists the collection’s valid parameters. Includes changed_since on social_insurance or veterinary, where RIS ignores the recency filter and would return the whole collection; that rejection’s recovery names the replacement calls. `unresolved_ministry`: A ministerial_decrees or council_minutes issuer did not resolve — an abbreviation-shaped value matching no row of the RIS ministries table (the message names the closest matches), a ministry the table lists only for another issuer parameter (the message names the parameters that accept it), or an abbreviation carrying several designations this collection cannot tell apart (the message lists them). 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 value rejected locally — a plan_state outside regional health-structure plans, or a sort_by value this collection has no column for, in which case the message names the values it does sort by; 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: `collection_filter_mismatch`: A parameter was combined with a collection that does not accept it — rejected locally before any upstream call; the message names the offending parameter and lists the collection’s valid parameters. Includes changed_since on social_insurance or veterinary, where RIS ignores the recency filter and would return the whole collection; that rejection’s recovery names the replacement calls. `unresolved_ministry`: A ministerial_decrees or council_minutes issuer did not resolve — an abbreviation-shaped value matching no row of the RIS ministries table (the message names the closest matches), a ministry the table lists only for another issuer parameter (the message names the parameters that accept it), or an abbreviation carrying several designations this collection cannot tell apart (the message lists them). 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 value rejected locally — a type outside the collection’s values, a plan_state outside regional health-structure plans, or a sort_by value this collection has no column for, in which case the message names the values it does sort by; 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."
    • addedOutput schema / properties / results / items / properties / approved
      Added value: +{
      +  "description": "Approval date (Genehmigungsdatum) — ministerial_decrees only, which carry no publication date.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / case_numbers
      Added value: +{
      +  "description": "Business reference numbers (Geschäftszahl / GZ) — present on ministerial_decrees, veterinary, court_rules, and trade_exam_rules (empty when the entry carries none), absent on other collections. The case_number filter takes one on veterinary and ministerial_decrees.",
      +  "items": {
      +    "description": "One business reference number, trimmed.",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / results / items / properties / court_name
      Added value: +{
      +  "description": "Court whose rules these are (Gericht, e.g. \"LVwG Tirol\") — court_rules only.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / department
      Added value: +{
      +  "description": "Ministry department (Abteilung) — ministerial_decrees only; the department filter takes this value.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / in_force_from
      Added value: +{
      +  "description": "Entry-into-force date (Inkrafttretensdatum), where recorded.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / in_force_until
      Added value: +{
      +  "description": "Repeal date (Ausserkrafttretensdatum), where recorded.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / keywords
      Added value: +{
      +  "description": "Subject keywords (Schlagworte), comma-separated as RIS writes them.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / legislature
      Added value: +{
      +  "description": "Legislative period (Gesetzgebungsperiode, e.g. \"XXVIII\") — council_minutes only; the legislature filter takes this value.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / results / items / properties / norms_cited / description
      Previous value: -"Norms the document cites (veterinary notices and decrees) — copy an entry verbatim into a norm filter to find siblings. Empty when none."New value: +"Norms the document cites (veterinary notices and decrees), one entry per RIS item and never split — a decree entry often names several norms (\"TP1 GGG, TP2 GGG\"). Copy an entry verbatim into the norm filter to find the document and its siblings. Empty when none."
    • addedOutput schema / properties / results / items / properties / note
      Added value: +{
      +  "description": "Annotation (Anmerkung) — e.g. the earlier notice this one replaces.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / plan_state
      Added value: +{
      +  "description": "Plan region as RIS writes it (Land — Oesterreich for the federal ÖSG, else the Bundesland, e.g. Salzburg) — health_structure_plans only.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / promulgation
      Added value: +{
      +  "description": "Gazette citation of a decree (Fundstelle, e.g. \"eJABl Nr. 13/2026\") — ministerial_decrees only.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / session_number
      Added value: +{
      +  "description": "Council session number (Sitzungsnummer, e.g. \"65\", \"58b\") — council_minutes only; the session_number filter takes this value.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / type
      Added value: +{
      +  "description": "Document type (Typ — e.g. Erlass, Rundschreiben, Kundmachung, Geschaeftsverteilung, Meisterpruefungsordnung, RsgVerordnung).",
      +  "type": "string"
      +}
  3. Changed27 schema fields changed
    • changedInput schema / properties / case_number / description
      Previous value: -"Business reference number (Geschäftszahl) — veterinary and ministerial_decrees only."New value: +"Business reference number (Geschäftszahl) — veterinary and ministerial_decrees only. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / case_number / pattern
      Added value: +"\\S"
    • changedInput schema / properties / changed_since / description
      Previous value: -"Coarse recency filter — documents changed in RIS within the interval. For exact windows use ris_track_changes."New value: +"Coarse recency filter — documents changed in RIS within the interval. Every collection except social_insurance and veterinary, where RIS ignores it: use published_from there, or ris_track_changes for changes. For exact windows use ris_track_changes."
    • changedInput schema / properties / department / description
      Previous value: -"Ministry department (Abteilung) — ministerial_decrees only."New value: +"Ministry department (Abteilung) — ministerial_decrees only. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / department / pattern
      Added value: +"\\S"
    • changedInput schema / properties / issuer / description
      Previous value: -"Issuing body — social_insurance (Urheber, e.g. ÖGK/SVS/BVAEB/AUVA/PVA), ministerial_decrees (Bundesministerium — abbreviation expanded), council_minutes (Einbringer ministry). Values: ris_list_reference topic issuing_bodies or ministries."New value: +"Issuing body — social_insurance (Urheber: a carrier abbreviation such as ÖGK, DVSV, SVS, BVAEB, AUVA, or PVA is expanded to its full designation; a full designation or a \"<ABBR> Gesamtvertrag\" series is sent as written), ministerial_decrees (Bundesministerium) or council_minutes (Einbringer) — a ministry abbreviation such as \"BMF\" is expanded, a full designation is sent as written. Values: ris_list_reference topic issuing_bodies or ministries. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / issuer / pattern
      Added value: +"\\S"
    • changedInput schema / properties / legislature / description
      Previous value: -"Legislative period (Gesetzgebungsperiode, e.g. \"XXVII\") — council_minutes only."New value: +"Legislative period (Gesetzgebungsperiode, e.g. \"XXVII\") — council_minutes only. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / legislature / pattern
      Added value: +"\\S"
    • changedInput schema / properties / norm / description
      Previous value: -"Cited-provision filter (Norm) — \"DSG §1\", \"DSGVO Art32\" style. veterinary and ministerial_decrees only (\"decrees citing the DSG\")."New value: +"Cited-provision filter (Norm) — \"DSG §1\", \"DSGVO Art32\" style. veterinary and ministerial_decrees only (\"decrees citing the DSG\"). Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / norm / pattern
      Added value: +"\\S"
    • changedInput schema / properties / number / description
      Previous value: -"Serial number (Avsvnummer / Avnnummer / Spgnummer) — social_insurance, veterinary, health_structure_plans."New value: +"Serial number (Avsvnummer / Avnnummer / Spgnummer) — social_insurance, veterinary, health_structure_plans. 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. Valid for all collections."New value: +"Full-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only. Valid for all collections. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / query / pattern
      Added value: +"\\S"
    • changedInput schema / properties / session_number / description
      Previous value: -"Council session number (Sitzungsnummer) — council_minutes only."New value: +"Council session number (Sitzungsnummer) — council_minutes only. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / session_number / pattern
      Added value: +"\\S"
    • changedInput schema / properties / title / description
      Previous value: -"Title search (Titel) — phrase field. Valid for all collections except council_minutes."New value: +"Title search (Titel) — phrase field. Valid for all collections except council_minutes. Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / title / pattern
      Added value: +"\\S"
    • changedInput schema / properties / type / description
      Previous value: -"Document type (Typ) — trade_exam_rules (Befaehigungspruefungsordnung | Meisterpruefungsordnung), court_rules (Geschaeftsordnung | Geschaeftsverteilung), veterinary (Kundmachungen | VeroeffentlichungenAufGrundVEVO | SonstigeVeroeffentlichungen)."New value: +"Document type (Typ) — trade_exam_rules (Befaehigungspruefungsordnung | Meisterpruefungsordnung), court_rules (Geschaeftsordnung | Geschaeftsverteilung), veterinary (Kundmachungen | VeroeffentlichungenAufGrundVEVO | SonstigeVeroeffentlichungen). Omit to leave unfiltered; a blank value is rejected."
    • addedInput schema / properties / type / pattern
      Added value: +"\\S"
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `collection_filter_mismatch`: A parameter was combined with a collection that does not accept it — rejected locally before any upstream call; the message names the offending parameter and lists the collection’s valid parameters. `invalid_query`: A page past the last page of results; or a parameter value rejected locally — an unknown or ambiguous issuer, a plan_state outside regional health-structure plans, or a sort_by value this collection has no column for, in which case the message names the values it does sort by; 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: `collection_filter_mismatch`: A parameter was combined with a collection that does not accept it — rejected locally before any upstream call; the message names the offending parameter and lists the collection’s valid parameters. Includes changed_since on social_insurance or veterinary, where RIS ignores the recency filter and would return the whole collection; that rejection’s recovery names the replacement calls. `unresolved_ministry`: A ministerial_decrees or council_minutes issuer did not resolve — an abbreviation-shaped value matching no row of the RIS ministries table (the message names the closest matches), a ministry the table lists only for another issuer parameter (the message names the parameters that accept it), or an abbreviation carrying several designations this collection cannot tell apart (the message lists them). 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 value rejected locally — a plan_state outside regional health-structure plans, or a sort_by value this collection has no column for, in which case the message names the values it does sort by; 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: -[
      -  "collection_filter_mismatch",
      -  "invalid_query",
      -  "upstream_error",
      -  "upstream_timeout"
      -]New value: +[
      +  "collection_filter_mismatch",
      +  "unresolved_ministry",
      +  "invalid_query",
      +  "upstream_error",
      +  "upstream_timeout"
      +]
  4. 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"
      +    ]
      +  },
      +  {
      +    "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: `collection_filter_mismatch`: A parameter was combined with a collection that does not accept it — rejected locally before any upstream call; the message names the offending parameter and lists the collection’s valid parameters. `invalid_query`: A page past the last page of results; or a parameter value rejected locally — an unknown or ambiguous issuer, a plan_state outside regional health-structure plans, or a sort_by value this collection has no column for, in which case the message names the values it does sort by; 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": [
      +            "collection_filter_mismatch",
      +            "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"
      -]
  5. Changed1 schema field changed
    • addedOutput schema / properties / results / items / properties / document_url
      Added value: +{
      +  "description": "RIS web view of the document (DokumentUrl) — for humans. The only browsable surface for council minutes (PDF-only) and ministerial decrees.",
      +  "type": "string"
      +}
  6. Changed5 schema fields changed
    • changedInput schema / properties / entered_force_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 / entered_force_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])$"
    • changedInput schema / properties / in_force_as_of / 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_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])$"
  7. Changed1 schema field changed
    • changedInput schema / properties / issuer / description
      Previous value: -"Issuing body — social_insurance (Urheber, e.g. ÖGK/SVS/BVAEB/AUVA/PVA), ministerial_decrees (Bundesministerium — abbreviation expanded server-side), council_minutes (Einbringer ministry). Values: ris_list_reference topic issuing_bodies or ministries."New value: +"Issuing body — social_insurance (Urheber, e.g. ÖGK/SVS/BVAEB/AUVA/PVA), ministerial_decrees (Bundesministerium — abbreviation expanded), council_minutes (Einbringer ministry). Values: ris_list_reference topic issuing_bodies or ministries."
  8. First observed

TDQS

A4.7/5.0
Behavior5/5

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

The description adds substantial behavior beyond the read-only/idempotent annotations: collection-specific filter support, local rejection of invalid filters, binding labels and authentic PDF availability, browsable document_url surfaces for PDF-only collections, and page_size serving quirks. It also notes changed_since being ignored for social_insurance and veterinary, and published_from not applying to ministerial_decrees.

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 appropriately sized for a 23-parameter, seven-collection search tool, and the collection list is front-loaded. It could be easier to scan with structured grouping, but nearly every sentence carries operational information.

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?

Given 23 parameters, seven collections, an existing output schema, and read-only annotations, the description covers the essential missing context: collection boundaries, filter applicability, fallback behavior, and where to look up the full matrix. An agent has enough information to select the right collection and avoid invalid filter combinations.

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

Parameters5/5

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

Although schema coverage is already 100%, the description adds crucial cross-parameter meaning: which filters apply to which collection, abbreviation expansion for issuer, norm’s cited-provision semantics, and exceptions such as changed_since being ignored for two collections. This is more than restating schema descriptions; it explains how parameters behave in context.

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 states a specific verb-resource pair: searching Austria’s sectoral official gazettes and executive documents across seven named collections. The collection list and domain scope make it clearly distinguishable from sibling searches such as ris_search_case_law, ris_search_gazette, and ris_search_legislation.

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 explicitly says each collection accepts a different filter set, that unsupported filters are rejected locally, and points to ris_list_reference for the per-collection matrix and issuers. It does not directly contrast with every sibling tool, but the collection-by-collection applicability rules provide strong usage context.

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.