# io.github.Honeyfield-Org/ris (npm · ris-mcp-ts)

Access Austrian laws, court decisions & legal documents via the RIS API.

- Trust score: 87/100 (high trust)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- npm · `ris-mcp-ts`: 87/100 (this document), [markdown](https://verifymcp.io/servers/honeyfield-org-ris/ris-mcp-ts.md), [page](https://verifymcp.io/servers/honeyfield-org-ris/ris-mcp-ts)

## Channel facts

- Registry: `npm`
- Package: `ris-mcp-ts`
- Version: `1.8.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 33 of 119 dependencies flagged as unhealthy (1 deprecated).
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to Honeyfield-Org/ris-mcp-ts).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 12 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 74/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 6410 tokens (~427/item across 15 items; 13 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 43/100
  - Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the io.github.Honeyfield-Org/ris MCP server?

io.github.Honeyfield-Org/ris runs locally as an npm package, launched with npx -y ris-mcp-ts. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add honeyfield-org-ris -- npx -y ris-mcp-ts
```

### Cursor

```json
{
  "mcpServers": {
    "honeyfield-org-ris": {
      "command": "npx",
      "args": [
        "-y",
        "ris-mcp-ts"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "honeyfield-org-ris": {
      "command": "npx",
      "args": [
        "-y",
        "ris-mcp-ts"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add honeyfield-org-ris -- npx -y ris-mcp-ts
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "honeyfield-org-ris": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "ris-mcp-ts"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add honeyfield-org-ris --command npx --arg -y --arg ris-mcp-ts
```

### Hermes

```yaml
mcp_servers:
  honeyfield-org-ris:
    command: "npx"
    args: ["-y", "ris-mcp-ts"]
```

### Netclaw

```json
{
  "McpServers": {
    "honeyfield-org-ris": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "ris-mcp-ts"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add honeyfield-org-ris -t stdio -c npx -a -y ris-mcp-ts
```

### Other

```json
{
  "mcpServers": {
    "honeyfield-org-ris": {
      "command": "npx",
      "args": [
        "-y",
        "ris-mcp-ts"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-21 (score 87, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-19 (score 86, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-16 (score 85, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-09-09 (score 81, +26)

- [security improvement] Malware scan: unverified → pass
- [security improvement] Known CVEs: unverified → pass
- [functional improvement] Dependency health: unverified → 0.86

### 2026-09-08 (score 55)

First indexed and scored.

## MCP tools (13)

### `ris_bundesrecht` (~672 tokens)

Bundesrecht durchsuchen

Search Austrian federal laws (Bundesrecht).

Use this tool to find Austrian federal legislation like ABGB, StGB, UGB, etc.

Search strategy: "titel" and "paragraph" are the precise entry points — prefer them
whenever the law or the section is known ("paragraph" is ignored for applikation="Erv",
the English translations). "suchworte" runs a broad full-text search
and the RIS API returns those hits ordered alphabetically by law title, not by
relevance, so a common term buries the relevant law under thousands of results.
Austrian law often splits one topic across several statutes, so look for a companion
law: warranty, for example, is covered both by the VGG (consumer sales, B2C, in force
since 2022) and by §§ 922 ff ABGB (general warranty law, including B2B).

Example queries:
  \- suchworte="Mietrecht" -> Find laws mentioning rent law
  \- titel="ABGB", paragraph="1295" -> Find specific ABGB section
  \- titel="B-VG", paragraph="7", abschnitt_typ="Artikel" -> Article-based laws
  \- titel="ABGB", fassung_vom="2015-01-01" -> Consolidated version as of a date
  \- applikation="Begut" -> Search draft legislation

Input parameters:

- `abschnitt_typ` (string): Type of section that "paragraph" refers to: "Paragraph" (default), "Artikel" (article-based laws like B-VG), or "Anlage" (annex). "Art 7 B-VG" requires "Artikel".
- `applikation` (string): Data source - "BrKons" (consolidated, default), "Begut" (drafts), "BgblAuth" (gazette), "Erv" (English translations)
- `fassung_vom` (string): Consolidated version as of this date (YYYY-MM-DD) — retrieves the law text as it stood on that day. Not supported for "Erv".
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `paragraph` (string): Section number to search for (e.g., "1295" for §1295, "7" for Art 7)
- `response_format` (string): "markdown" (default) or "json"
- `seite` (integer): Page number (default: 1)
- `suchworte` (string): Broad full-text search terms (e.g., "Mietrecht", "Schadenersatz"). Hits come back ordered alphabetically by law title, not by relevance — prefer "titel" and/or "paragraph" whenever the law or the sec…
- `titel` (string): Search in law titles (e.g., "ABGB", "Strafgesetzbuch")

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_landesrecht` (~613 tokens)

Landesrecht durchsuchen

Search Austrian state/provincial laws (Landesrecht).

Use this tool to find laws enacted by Austrian federal states (Bundeslaender).

Search strategy: "titel" and "paragraph" (together with "bundesland") are the precise
entry points — prefer them whenever the law or the section is known. "suchworte" runs a
broad full-text search and the RIS API returns those hits ordered alphabetically by law
title, not by relevance, so a common term buries the relevant law under thousands of
results. Austrian law often splits one topic across several statutes and across the
federal/state divide — when the topic turns out to be federal rather than state law
(warranty, for example, sits in the VGG and in §§ 922 ff ABGB), search it with
ris_bundesrecht instead.

Example queries:
  \- suchworte="Bauordnung", bundesland="Salzburg" -> Find state building law
  \- titel="Bauordnung", bundesland="Wien", paragraph="1" -> Specific section
  \- suchworte="Naturschutz", bundesland="Tirol", fassung_vom="2020-01-01" -> Version as of a date

Input parameters:

- `abschnitt_typ` (string): Type of section that "paragraph" refers to: "Paragraph" (default), "Artikel", or "Anlage" (annex).
- `applikation` (string): "LrKons" (consolidated, default)
- `bundesland` (string): Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland
- `fassung_vom` (string): Consolidated version as of this date (YYYY-MM-DD) — retrieves the law text as it stood on that day.
- `gesetzesnummer` (string): Exact law number (Gesetzesnummer) for a specific state law
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `paragraph` (string): Section number to search for (e.g., "1" for §1, "7" for Art 7)
- `response_format` (string): "markdown" or "json"
- `seite` (integer): Page number
- `suchworte` (string): Broad full-text search terms. Hits come back ordered alphabetically by law title, not by relevance — prefer "titel" and/or "paragraph" whenever the law or the section is known.
- `titel` (string): Search in law titles

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_judikatur` (~860 tokens)

Judikatur durchsuchen

Search Austrian court decisions (Judikatur).

Use this tool to find court decisions from Austrian courts. Choose the
jurisdiction via "gerichtsbarkeit" (which court system to search).

RIS distinguishes two document kinds, controlled by "dokumenttyp":
  \- Rechtssatz: abstract legal principle / headnote (Leitsatz) distilled from a decision
  \- Entscheidungstext: the full decision text including reasoning (Begruendung)
The default "beide" searches both for the most complete results.

Example queries:
  \- gerichtsbarkeit="Vfgh", suchworte="Grundrecht" -> Constitutional Court decisions
  \- suchworte="Schadenersatz", gericht="OGH" -> Only Supreme Court (OGH) decisions
  \- norm="1295 ABGB" -> Which decisions cite §1295 ABGB?
  \- gerichtsbarkeit="Justiz", fachgebiet="Arbeitsrecht", sortierung="datum_ab" -> Newest labor-law decisions

Input parameters:

- `dokumenttyp` (string): Which document kind to search: "rechtssatz" (abstract headnotes only), "entscheidungstext" (full decision texts only), or "beide" (both, default). The RIS API otherwise searches only Rechtssätze.
- `entscheidungsart` (string): Type of decision. Allowed values differ by jurisdiction, e.g. Vfgh/Vwgh/Bvwg: "Beschluss", "Erkenntnis"; Lvwg also "Bescheid"; Justiz: "Verstärkter Senat", "Ordentliche Erledigung (Sachentscheidung)".
- `entscheidungsdatum_bis` (string): Decision date to (YYYY-MM-DD)
- `entscheidungsdatum_von` (string): Decision date from (YYYY-MM-DD)
- `fachgebiet` (string): Subject area of OGH case law (e.g., "Arbeitsrecht", "Insolvenzrecht"). Applies to gerichtsbarkeit="Justiz" and only matches full decision texts (requires dokumenttyp "entscheidungstext" or "beide").
- `gericht` (string): Filter by the actual court within the jurisdiction (e.g., "OGH", "OLG Wien"). Applies to gerichtsbarkeit="Justiz".
- `gerichtsbarkeit` (string): Court system / data collection to search (maps to the RIS "Applikation"): "Justiz" (OGH/OLG/LG/BG, default), "Vfgh" (Constitutional), "Vwgh" (Administrative), "Bvwg", "Lvwg", "Dsk" (Data Protection),…
- `geschaeftszahl` (string): Case number (e.g., "5Ob234/20b")
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `norm` (string): Search by legal norm (e.g., "1319a ABGB")
- `rechtsgebiet` (string): Broad legal area: "Zivilrecht" or "Strafrecht". Applies to gerichtsbarkeit="Justiz".
- `response_format` (string): "markdown" or "json"
- `sammlungsnummer` (string): Collection number: VfSlg (gerichtsbarkeit="Vfgh") or VwSlg (gerichtsbarkeit="Vwgh").
- `seite` (integer): Page number
- `sortierung` (string): Sort by decision date: "datum_auf" (oldest first) or "datum_ab" (newest first).
- `suchworte` (string): Full-text search in decisions

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_bundesgesetzblatt` (~341 tokens)

Bundesgesetzblatt durchsuchen

Search Austrian Federal Law Gazettes (Bundesgesetzblatt).

Use this tool for historical research and tracking when laws were enacted.
Contains official publications of federal laws, ordinances, and treaties.

Example queries:
  \- bgblnummer="120", jahrgang="2023", teil="1" -> Find specific gazette
  \- suchworte="Klimaschutz" -> Full-text search in gazettes

Input parameters:

- `applikation` (string): "BgblAuth" (authentic 2004+, default), "BgblPdf" (PDF), "BgblAlt" (1945-2003)
- `bgblnummer` (string): Gazette number (e.g., "120")
- `jahrgang` (string): Year (e.g., "2023")
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `response_format` (string): "markdown" (default) or "json"
- `seite` (integer): Page number (default: 1)
- `suchworte` (string): Full-text search terms
- `teil` (string): Part - "1" (I=Laws), "2" (II=Ordinances), "3" (III=Treaties)
- `titel` (string): Search in gazette titles

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_landesgesetzblatt` (~337 tokens)

Landesgesetzblatt durchsuchen

Search Austrian State Law Gazettes (Landesgesetzblatt).

Use this tool to find official publications of state/provincial laws.
Covers all 9 federal states (Bundeslaender).

Example queries:
  \- lgblnummer="50", jahrgang="2023", bundesland="Wien"
  \- suchworte="Bauordnung", bundesland="Salzburg"

Input parameters:

- `applikation` (string): "LgblAuth" (authentic, default), "Lgbl" (general), "LgblNO" (Lower Austria)
- `bundesland` (string): Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland
- `jahrgang` (string): Year (e.g., "2023")
- `lgblnummer` (string): Gazette number (e.g., "50")
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `response_format` (string): "markdown" (default) or "json"
- `seite` (integer): Page number (default: 1)
- `suchworte` (string): Full-text search terms
- `titel` (string): Search in gazette titles

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_regierungsvorlagen` (~347 tokens)

Regierungsvorlagen durchsuchen

Search Austrian Government Bills (Regierungsvorlagen).

Use this tool for legislative history and parliamentary materials.
Contains government proposals submitted to parliament.

Example queries:
  \- suchworte="Klimaschutz" -> Full-text search in bills
  \- einbringende_stelle="BMF (Bundesministerium für Finanzen)" -> Bills from Finance Ministry
  \- beschlussdatum_von="2024-01-01", beschlussdatum_bis="2024-12-31" -> Bills from 2024

Input parameters:

- `beschlussdatum_bis` (string): Decision date to (YYYY-MM-DD)
- `beschlussdatum_von` (string): Decision date from (YYYY-MM-DD)
- `einbringende_stelle` (string): Filter by submitting ministry
- `im_ris_seit` (string): Filter by time in RIS
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `response_format` (string): "markdown" (default) or "json"
- `seite` (integer): Page number (default: 1)
- `sortierung_richtung` (string): Sort direction
- `sortierung_spalte` (string): Sort by column
- `suchworte` (string): Full-text search terms
- `titel` (string): Search in bill titles

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_dokument` (~105 tokens)

Dokument abrufen

Retrieve full text of a legal document.

Use this after searching to load the complete text of a specific law or decision.

Note: For long documents, content may be truncated. Use specific searches to narrow down.

Input parameters:

- `dokumentnummer` (string): RIS document number (e.g., "NOR40052761") - from search results
- `response_format` (string): "markdown" (default) or "json"
- `url` (string): Direct URL to document content

Output parameters:

- `dokumentnummer` (string): RIS document number of this document, echoed from the request
- `outline` (array): Jump targets of the document. Returned for a truncated markdown response whose outline is small enough to travel with it — a document that fits in one response has nothing to navigate to, and a statu…
- `source_url` (string): RIS URL the document text was rendered from
- `text` (string): The document text, identical to the text content block — truncated at 25000 characters with a German notice when the document is longer
- `total_length` (integer): Length of the string "text" was cut from — the full rendered document in the requested format; greater than the length of "text" when the document was truncated

### `ris_dokument_abschnitt` (~120 tokens)

Dokumentabschnitt

Return one section of a document already open in the RIS document viewer. Intended for the viewer widget, not for direct use — for the full text of a document use `ris_dokument`.

Input parameters:

- `dokumentnummer` (string): RIS document number of the open document - from the ris_dokument call that opened it
- `offset` (integer): Character offset into the document text; 0 returns the first section and the outline
- `url` (string): Direct URL of the open document, for documents opened by URL rather than by number

Output parameters:

- `dokumentnummer` (string): RIS document number of the document this section belongs to
- `next_offset`: Offset to request for the following section, or null at the end of the document
- `outline` (array): Jump targets of the document. Only returned for offset 0; empty when the document has no headings
- `source_url` (string): RIS URL the document text was rendered from
- `text` (string): The requested section of the document text
- `total_length` (integer): Length of the complete document text — compare across calls to detect that the document was re-fetched and offsets shifted

### `ris_bezirke` (~395 tokens)

Bezirksverwaltungsbehörden durchsuchen

Search Austrian district administrative authority announcements (Kundmachungen der Bezirksverwaltungsbehörden).

Use this tool to find announcements and ordinances from district administrative authorities.

Note: Only certain states publish here: Niederösterreich, Oberösterreich, Tirol, Vorarlberg, Burgenland, Steiermark.

Example queries:
  \- bundesland="Niederösterreich", suchworte="Bauordnung"
  \- bezirksverwaltungsbehoerde="Bezirkshauptmannschaft Innsbruck"

Input parameters:

- `bezirksverwaltungsbehoerde` (string): District authority name (e.g., "Bezirkshauptmannschaft Innsbruck", "Bezirkshauptmannschaft Amstetten")
- `bundesland` (string): Filter by state - Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien
- `im_ris_seit` (string): Filter by time in RIS
- `kundmachungsdatum_bis` (string): Announcement date to (YYYY-MM-DD)
- `kundmachungsdatum_von` (string): Announcement date from (YYYY-MM-DD)
- `kundmachungsnummer` (string): Announcement number
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `response_format` (string): "markdown" (default) or "json"
- `seite` (integer): Page number (default: 1)
- `suchworte` (string): Full-text search terms
- `titel` (string): Search in titles

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_gemeinden` (~654 tokens)

Gemeinderecht durchsuchen

Search Austrian municipal law (Gemeinderecht).

Use this tool to find municipal regulations and local ordinances.

Applications:
  \- Gr: Municipal law (Gemeinderecht) - default
  \- GrA: Cross-border municipal law (Gemeinderecht Authentisch/Amtsblätter)

Example queries:
  \- gemeinde="Graz", suchworte="Parkgebuehren"
  \- bundesland="Tirol", titel="Gebuehrenordnung"
  \- applikation="Gr", index="Baurecht"
  \- applikation="GrA", bezirk="Bregenz"

Input parameters:

- `applikation` (string): "Gr" (municipal law, default) or "GrA" (cross-border/Amtsblätter)
- `bezirk` (string): District name (GrA only, e.g., "Bregenz")
- `bundesland` (string): Filter by state - Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien
- `fassung_vom` (string): Historical version date (YYYY-MM-DD, Gr only)
- `gemeinde` (string): Municipality name (e.g., "Graz")
- `gemeindeverband` (string): Municipal association name (GrA only)
- `geschaeftszahl` (string): File number/Aktenzeichen (Gr only)
- `im_ris_seit` (string): Filter by time in RIS - EinerWoche, ZweiWochen, EinemMonat, DreiMonaten, SechsMonaten, EinemJahr
- `index` (string): Subject area index (Gr only) - VertretungskoerperUndAllgemeineVerwaltung, OeffentlicheOrdnungUndSicherheit, UnterrichtErziehungSportUndWissenschaft, KunstKulturUndKultus, SozialeWohlfahrtUndWohnbaufo…
- `kundmachungsdatum_bis` (string): Announcement date to (YYYY-MM-DD, GrA only)
- `kundmachungsdatum_von` (string): Announcement date from (YYYY-MM-DD, GrA only)
- `kundmachungsnummer` (string): Announcement number (GrA only)
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `response_format` (string): "markdown" (default) or "json"
- `seite` (integer): Page number (default: 1)
- `sortierung_richtung` (string): Sort direction
- `sortierung_spalte_gr` (string): Sort column (Gr only)
- `suchworte` (string): Full-text search terms
- `titel` (string): Search in titles

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_sonstige` (~1018 tokens)

Sonstige Sammlungen durchsuchen

Search miscellaneous Austrian legal collections (Sonstige).

Use this tool for specialized legal documents and historical materials.

Available applications:
  \- PruefGewO: Trade licensing examinations (Gewerbeordnung)
  \- Avsv: Social insurance announcements (Sozialversicherung)
  \- Spg: Health structure plans (Strukturpläne Gesundheit)
  \- Avn: Official veterinary notices (Amtliche Veterinärnachrichten)
  \- KmGer: Court announcements (Kundmachungen der Gerichte)
  \- Upts: Party transparency decisions (Parteien-Transparenz-Senat)
  \- Mrp: Council of Ministers protocols (Ministerratsprotokolle)
  \- Erlaesse: Ministerial decrees (Erlässe der Bundesministerien)

Example queries:
  \- applikation="Mrp", suchworte="Budget", einbringer="BMF..."
  \- applikation="Erlaesse", bundesministerium="Bundesministerium für Finanzen"
  \- applikation="Upts", partei="SPÖ - Sozialdemokratische Partei Österreichs"
  \- applikation="KmGer", kmger_typ="Geschaeftsordnung"
  \- applikation="Avsv", dokumentart="Richtlinie"

Input parameters:

- `abteilung` (string): Department/division (Erlaesse only)
- `applikation` (string, required): Collection to search - "PruefGewO" (trade exams), "Avsv" (social insurance), "Spg" (health plans), "Avn" (veterinary notices), "KmGer" (court announcements), "Upts" (party transparency), "Mrp" (cabin…
- `avn_typ` (string): Notice type (Avn only) - Kundmachung, Verordnung, Erlass
- `avnnummer` (string): AVN number (Avn only)
- `avsvnummer` (string): AVSV number (Avsv only)
- `bundesministerium` (string): Federal ministry (Erlaesse only)
- `datum_bis` (string): Date to (YYYY-MM-DD)
- `datum_von` (string): Date from (YYYY-MM-DD)
- `dokumentart` (string): Document type search (Avsv only) - free text search expression
- `einbringer` (string): Submitter (Mrp only, e.g., ministry abbreviation)
- `fassung_vom` (string): Historical version date (YYYY-MM-DD, for Erlaesse)
- `fundstelle` (string): Source reference (Erlaesse only)
- `gericht` (string): Court name (KmGer only)
- `geschaeftszahl` (string): File number/Aktenzeichen (for Mrp, Upts, KmGer)
- `gesetzgebungsperiode` (string): Legislative period (Mrp only, e.g., '27')
- `im_ris_seit` (string): Filter by time in RIS - EinerWoche, ZweiWochen, EinemMonat, DreiMonaten, SechsMonaten, EinemJahr
- `kmger_typ` (string): Announcement type (KmGer only) - Geschaeftsordnung, Geschaeftsverteilung
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `norm` (string): Legal norm reference (for Erlaesse, Upts)
- `osg_typ` (string): Austrian health structure plan type (Spg only) - ÖSG, ÖSG - Großgeräteplan
- `partei` (string): Political party (Upts only)
- `pruefgewo_typ` (string): Examination type (PruefGewO only) - Befähigungsprüfung, Eignungsprüfung, Meisterprüfung
- `response_format` (string): "markdown" (default) or "json"
- `rsg_land` (string): Federal state for RSG (Spg only)
- `rsg_typ` (string): Regional health structure plan type (Spg only) - RSG, RSG - Großgeräteplan
- `seite` (integer): Page number (default: 1)
- `sitzungsnummer` (string): Session number (Mrp only)
- `sortierung_richtung` (string): Sort direction
- `spgnummer` (string): SPG number (Spg only)
- `suchworte` (string): Full-text search terms
- `titel` (string): Search in titles
- `urheber` (string): Author/institution (Avsv only)

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_history` (~542 tokens)

Änderungshistorie durchsuchen

Search document change history (Aenderungshistorie).

Use this tool to track changes to legal documents over time.
Shows when documents were created, modified, or deleted.

Available applications (30 total):
  \- Bundesrecht: Bundesnormen, BgblAuth, BgblAlt, BgblPdf, RegV
  \- Landesrecht: Landesnormen, LgblAuth, Lgbl, LgblNO, Vbl, Gemeinderecht, GemeinderechtAuth
  \- Judikatur: Justiz, Vfgh, Vwgh, Bvwg, Lvwg, Dsk, Gbk, Pvak, AsylGH
  \- Sonstige: Bvb, Mrp, Erlaesse, PruefGewO, Avsv, Spg, KmGer, Dok, Normenliste

Example queries:
  \- applikation="Bundesnormen", aenderungen_von="2024-01-01", aenderungen_bis="2024-01-31"
  \- applikation="Justiz", aenderungen_von="2024-06-01"

Input parameters:

- `aenderungen_bis` (string): Changes to date (YYYY-MM-DD)
- `aenderungen_von` (string): Changes from date (YYYY-MM-DD)
- `applikation` (string, required): Application to search history for - categories: Bundesrecht (Bundesnormen, BgblAuth, BgblAlt, BgblPdf, RegV), Landesrecht (Landesnormen, LgblAuth, Lgbl, LgblNO, Vbl, Gemeinderecht), Judikatur (Justiz…
- `include_deleted` (boolean): Include deleted documents in results (default: false)
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `response_format` (string): "markdown" (default) or "json"
- `seite` (integer): Page number (default: 1)

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

### `ris_verordnungen` (~371 tokens)

Verordnungsblätter durchsuchen

Search Austrian state ordinance gazettes (Verordnungsblaetter der Laender).

Use this tool to find official publications of state/provincial ordinances.
NOTE: Currently only Tirol data is available (since January 1, 2022).
Other federal states have not yet published their ordinance gazettes in RIS.

Example queries:
  \- suchworte="Wolf" -> Full-text search
  \- titel="Verordnung" -> Search in title
  \- bundesland="Tirol" -> Filter by state (currently only Tirol has data)
  \- kundmachungsnummer="25" -> Search by publication number
  \- kundmachungsdatum_von="2024-01-01", kundmachungsdatum_bis="2024-12-31" -> Date range

Input parameters:

- `bundesland` (string): Filter by state (currently only Tirol has data)
- `kundmachungsdatum_bis` (string): Publication date to (YYYY-MM-DD)
- `kundmachungsdatum_von` (string): Publication date from (YYYY-MM-DD)
- `kundmachungsnummer` (string): Publication number
- `limit`: Results per page: 10, 20, 50 or 100 (default: 20). Every hit costs about 1k characters of structured payload, so prefer 20 for browsing and 50 for a broad survey; a page that would exceed the payload…
- `response_format` (string): "markdown" (default) or "json"
- `seite` (integer): Page number (default: 1)
- `suchworte` (string): Full-text search terms
- `titel` (string): Search in title

Output parameters:

- `documents` (array): The documents on this page
- `has_more` (boolean): Whether further result pages are available
- `notice` (string): Present when the page was delivered at a smaller size than requested to fit the payload budget — page, page_size and query already describe the delivered page; page with query.limit
- `page` (number): Page number of this result set (1-based)
- `page_size` (number): Number of documents per page
- `query` (object): Echo of the validated search parameters alongside the tool name — re-issue the call with an incremented "seite" for the next page
- `total_hits` (number): Total number of documents in RIS matching the search

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/honeyfield-org-ris/ris-mcp-ts#diagnostics

## Score history

- 2026-09-21: 87
- 2026-09-20: 86
- 2026-09-19: 86
- 2026-09-18: 85
- 2026-09-17: 85
- 2026-09-16: 85
- 2026-09-15: 81
- 2026-09-14: 81
- 2026-09-13: 81
- 2026-09-12: 81
- 2026-09-11: 81
- 2026-09-10: 81
- 2026-09-09: 81
- 2026-09-08: 55

## Common questions

### What is the io.github.Honeyfield-Org/ris MCP server?

io.github.Honeyfield-Org/ris is an MCP server listed in the public MCP registry as io.github.Honeyfield-Org/ris. Access Austrian laws, court decisions & legal documents via the RIS API. This page covers its npm package (ris-mcp-ts).

### Is the io.github.Honeyfield-Org/ris MCP server safe to use?

io.github.Honeyfield-Org/ris scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.Honeyfield-Org/ris MCP server expose?

io.github.Honeyfield-Org/ris exposes 13 tools: ris_bundesrecht, ris_landesrecht, ris_judikatur, ris_bundesgesetzblatt, ris_landesgesetzblatt, and 8 more. Their descriptions and schemas cost roughly 6,375 tokens of context every time the server is loaded.

### Is the io.github.Honeyfield-Org/ris MCP server still maintained?

io.github.Honeyfield-Org/ris is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.Honeyfield-Org/ris MCP server under?

io.github.Honeyfield-Org/ris declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/ris-mcp-ts
- Socket report: https://socket.dev/npm/package/ris-mcp-ts
- Repository: https://github.com/Honeyfield-Org/ris-mcp-ts
- Changelog RSS feed: https://verifymcp.io/servers/honeyfield-org-ris/ris-mcp-ts.xml
- Changelog JSON feed: https://verifymcp.io/servers/honeyfield-org-ris/ris-mcp-ts.json
- HTML version of this page: https://verifymcp.io/servers/honeyfield-org-ris/ris-mcp-ts
