Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Ris

БесплатноНе проверен

An MCP server that gives you access to Austria's official legal database, the Rechtsinformationssystem (RIS).

GitHubEmbed

Описание

An MCP server that gives you access to Austria's official legal database, the Rechtsinformationssystem (RIS).

README

CI npm version License: MIT Node.js MCP MCP Registry

An MCP (Model Context Protocol) server that gives AI assistants access to Austria's official legal database — the Rechtsinformationssystem (RIS).

Ask your AI assistant about Austrian law, and it will search and retrieve legal documents directly from the official government API. No API key required.

What You Can Do

Once connected, you can ask your AI assistant things like:

"What does Austrian law say about tenancy rights?"

"Find Constitutional Court decisions on freedom of expression."

"Show me §1295 of the ABGB (Austrian Civil Code)."

"What laws about climate protection were published in 2024?"

"Look up the building code for the province of Salzburg."

"Get the full text of document NOR40052761."

The server translates these natural language requests into structured API calls against the RIS Open Government Data API.

Features

  • 12 specialized tools covering all major RIS collections
  • Federal law (ABGB, StGB, UGB, ...) and state law for all 9 provinces
  • Court decisions from 16 court types (Supreme Court, Constitutional Court, Administrative Court, ...)
  • Law gazettes — Federal (BGBl) and state (LGBl)
  • Government bills, ministerial decrees, cabinet protocols
  • Full document retrieval with smart prefix-based routing
  • Change history tracking across 36 application types
  • Interactive result list (MCP Apps) in hosts that support it — with a full text answer everywhere else
  • Markdown and JSON output formats
  • Free and open — uses Austria's Open Government Data API, no API key needed

Quick Start

Run directly without installation:

pnpm dlx ris-mcp-ts

Or install globally:

pnpm add -g ris-mcp-ts

Configuration

Claude Desktop

Add to your Claude Desktop config (Settings > Developer > Edit Config):

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ris": {
      "command": "npx",
      "args": ["-y", "ris-mcp-ts"]
    }
  }
}

Note: The "Add custom connector" UI in Claude Desktop only supports remote MCP servers (HTTP/SSE). Local stdio servers like this one must be configured via the JSON file.

Tip: You can also use pnpm dlx instead of npx in all configuration examples if you prefer pnpm.

Claude Code

Add to your project or user settings:

claude mcp add ris -- npx -y ris-mcp-ts

VS Code (GitHub Copilot)

Add to .vscode/mcp.json in your project:

{
  "servers": {
    "ris": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "ris-mcp-ts"]
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for global access):

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

Windsurf

Add to your Windsurf MCP config at ~/.codeium/windsurf/mcp_config.json:

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

Other MCP Clients

Any MCP-compatible client can connect via stdio transport:

npx -y ris-mcp-ts
# or: pnpm dlx ris-mcp-ts

Available Tools

Tool Description
ris_bundesrecht Search federal laws (ABGB, StGB, UGB, etc.)
ris_landesrecht Search state/provincial laws (all 9 provinces)
ris_judikatur Search court decisions (16 court types)
ris_bundesgesetzblatt Search Federal Law Gazettes (BGBl I/II/III)
ris_landesgesetzblatt Search State Law Gazettes (LGBl)
ris_regierungsvorlagen Search government bills
ris_dokument Retrieve full document text by ID or URL
ris_bezirke Search district authority announcements
ris_gemeinden Search municipal law and regulations
ris_sonstige Search miscellaneous collections (8 sub-apps)
ris_history Track document change history (36 app types)
ris_verordnungen Search state ordinance gazettes

Interactive Result List

One widget, all eleven search tools. There is a single interactive result list, and every search tool renders into it: federal law, state law, case law, the federal and state law gazettes, government bills, district authority announcements, municipal law, the miscellaneous collections, change history and the ordinance gazettes. The screenshots below are the same widget in two different hosts, not two different features.

ris_dokument opens a reader instead. A single document can run to a quarter of a million characters, far past what one answer may carry, so the viewer loads it section by section as you scroll, offers an outline to jump by where the document has one, and links back into RIS. The full text still reaches the chat either way — the widget is never the only copy.

Hosts that support the MCP Apps extension render the hits as an interactive list — page through results without retyping the search, open a document in the browser, or request its full text with one click. The widget follows the host's light or dark theme; the shots below show both.

The RIS widget running inside Claude: a connector row reading 'ris-mcp / ris_bundesrecht', below it the result list for 'Verbrauchergewährleistungsgesetz' with 40 hits and its first sections, each tagged 'Bundesrecht'. The same RIS widget running inside ChatGPT: the result list for 'Verbrauchergewährleistungsgesetz' with 40 hits and its first sections, above ChatGPT's own composer with the placeholder 'ChatGPT fragen'.
In Claude In ChatGPT

Case law search for 'Verjährung' in the light theme: 7,466 hits, with court, decision date and case number on the expanded result, the actions 'Im RIS öffnen', 'PDF' and 'Volltext in den Chat', and pagination controls at the bottom.
The expanded detail view, light theme — metadata, the three actions, and pagination

Example Prompts

RIS is a German-language database, so these work best in German. Each of these lands on a different tool:

"Zeig mir das Verbrauchergewährleistungsgesetz" — ris_bundesrecht

"Finde aktuelle OGH-Rechtsprechung zu Verjährung" — ris_judikatur

"Was steht im Tiroler Landesrecht zum Naturschutz?" — ris_landesrecht

"Zeig mir BGBl. I Nr. 175/2021" — ris_bundesgesetzblatt

In a host without MCP Apps support the same prompts return the full text answer instead — see the table below.

Host What you get
claude.ai Result list (pagination, document links) + document viewer (outline navigation, lazy loading)
ChatGPT Result list (pagination) + document viewer (outline navigation, lazy loading)
Claude Code, and any client without MCP Apps support The regular text results, unchanged

The chat answer is always complete. The widgets are an addition to it, never a replacement — a host that does not render them loses nothing.

Tool Reference

ris_bundesrecht — Federal Laws

Search Austrian federal laws such as ABGB, StGB, UGB, and more.

Inputs:

Parameter Type Description
suchworte string Full-text search (e.g., "Mietrecht", "Schadenersatz")
titel string Search in law titles (e.g., "ABGB", "Strafgesetzbuch")
paragraph string Section number (e.g., "1295" for §1295, "7" for Art 7)
abschnitt_typ string Type of section paragraph refers to: "Paragraph" (default), "Artikel" (article-based laws like B-VG), "Anlage" (annex)
applikation string "BrKons" (consolidated, default), "Begut" (drafts), "BgblAuth" (gazette), "Erv" (English translations)
fassung_vom string Date for historical version (YYYY-MM-DD)
seite number Page number (default: 1)
limit number Results per page: 10, 20, 50, 100 (default: 20)
response_format string "markdown" (default) or "json"

All parameters are optional. At least one search parameter (suchworte, titel, or paragraph) should be provided.

Note: applikation="Erv" (English translations) uses a different parameter vocabulary internally (SearchTerms/Title) and does not support paragraph/abschnitt_typ or fassung_vom.

ris_landesrecht — State/Provincial Laws

Search state laws of the nine Austrian provinces.

Inputs:

Parameter Type Description
suchworte string Full-text search
titel string Search in law titles
bundesland string Province: Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland
paragraph string Section number (e.g., "1" for §1, "7" for Art 7)
abschnitt_typ string Type of section paragraph refers to: "Paragraph" (default), "Artikel", "Anlage"
fassung_vom string Date for historical version (YYYY-MM-DD)
gesetzesnummer string Exact law number (Gesetzesnummer) of a specific state law
applikation string "LrKons" (consolidated, default)
seite number Page number
limit number Results per page
response_format string "markdown" or "json"
ris_judikatur — Court Decisions

Search court decisions from Austrian courts.

Inputs:

Parameter Type Description
suchworte string Full-text search in decisions
gerichtsbarkeit string Court system / data collection to search — the RIS "Applikation" (see below; default "Justiz")
dokumenttyp string "rechtssatz" (headnotes only), "entscheidungstext" (full texts only), or "beide" (both, default)
gericht string Actual court within the jurisdiction (e.g., "OGH", "OLG Wien"); applies to gerichtsbarkeit="Justiz"
rechtsgebiet string Broad legal area: "Zivilrecht" or "Strafrecht" (Justiz)
fachgebiet string OGH subject area (e.g., "Arbeitsrecht"); Justiz, needs dokumenttyp "entscheidungstext"/"beide"
entscheidungsart string Decision type (e.g., "Erkenntnis", "Beschluss"); allowed values differ by jurisdiction
sammlungsnummer string Collection number: VfSlg (Vfgh) or VwSlg (Vwgh)
norm string Legal norm (e.g., "1319a ABGB")
geschaeftszahl string Case number (e.g., "5Ob234/20b")
entscheidungsdatum_von string Decision date from (YYYY-MM-DD)
entscheidungsdatum_bis string Decision date to (YYYY-MM-DD)
sortierung string Sort by decision date: "datum_auf" (oldest first) or "datum_ab" (newest first)
seite number Page number
limit number Results per page
response_format string "markdown" or "json"

Available gerichtsbarkeit values (16):

Value Court system
Justiz Supreme Court (OGH), Higher Regional Courts (OLG), Regional Courts (LG) — default
Vfgh Constitutional Court
Vwgh Supreme Administrative Court
Bvwg Federal Administrative Court
Lvwg Provincial Administrative Courts
Dsk Data Protection Authority
AsylGH Asylum Court (historical, until 2013)
Normenliste Index of legal norms
Pvak Personnel Representation Supervisory Commission
Gbk Equal Treatment Commission
Dok Disciplinary Commission
Verg Federal Procurement Office (historical, dissolved 2014)
Uvs Independent Administrative Senates (historical, dissolved 2014)
Ubas Independent Federal Asylum Senate (historical, dissolved 2014)
Umse Environmental Senate (historical, dissolved 2014)
Bks Federal Communications Board (historical, dissolved 2014)
ris_bundesgesetzblatt — Federal Law Gazette

Search the Federal Law Gazette (BGBl) — official publications of federal legislation.

Inputs:

Parameter Type Description
bgblnummer string Gazette number (e.g., "120")
teil string "1" (I = Acts), "2" (II = Regulations), "3" (III = Treaties)
jahrgang string Year (e.g., "2023")
suchworte string Full-text search
titel string Search in titles
applikation string "BgblAuth" (authentic from 2004, default), "BgblPdf" (PDF), "BgblAlt" (1945–2003)
seite number Page number
limit number Results per page
response_format string "markdown" or "json"
ris_landesgesetzblatt — State Law Gazette

Search State Law Gazettes (LGBl) — official publications of state legislation.

Inputs:

Parameter Type Description
lgblnummer string Gazette number (e.g., "50")
jahrgang string Year (e.g., "2023")
bundesland string Province name
suchworte string Full-text search
titel string Search in titles
applikation string "LgblAuth" (authentic, default), "Lgbl" (general), "LgblNO" (Niederoesterreich)
seite number Page number
limit number Results per page
response_format string "markdown" or "json"
ris_regierungsvorlagen — Government Bills

Search government bills — draft legislation submitted to parliament.

Inputs:

Parameter Type Description
suchworte string Full-text search
titel string Search in titles
beschlussdatum_von string Approval date from (YYYY-MM-DD)
beschlussdatum_bis string Approval date to (YYYY-MM-DD)
einbringende_stelle string Submitting ministry (e.g., BKA, BMF, BMJ, BMK)
im_ris_seit string Added recently: EinerWoche, ZweiWochen, EinemMonat, DreiMonaten, SechsMonaten, EinemJahr
sortierung_richtung string Ascending or Descending
sortierung_spalte string Kurztitel, EinbringendeStelle, Beschlussdatum
seite number Page number
limit number Results per page
response_format string "markdown" or "json"
ris_dokument — Full Document Retrieval

Retrieve the full text of a legal document by its ID or URL. Uses a dual strategy: direct URL access first, then search API fallback.

Inputs:

Parameter Type Description
dokumentnummer string RIS document number (e.g., "NOR40052761")
url string Direct URL to document content
response_format string "markdown" (default) or "json"

At least one of dokumentnummer or url is required. Long documents are truncated to 25,000 characters.

Supported document prefixes:

Prefix Type
NOR Federal norms
LBG, LKT, LNO, LOO, LSB, LST, LTI, LVB, LWI State laws (9 provinces)
JWR, JWT Supreme Administrative Court (VwGH)
JFR, JFT Constitutional Court (VfGH)
JJR, JJT Ordinary courts (Justiz)
BVWG, LVWG Federal / State Administrative Courts
DSB, PDK, GBK, PVAB, DKT, NL, ASYLGH Data protection, equal treatment, personnel, disciplinary, norm lists, asylum
VERG, JUR, JUT, UBAS, UMSE, BKS Historical jurisdictions (dissolved 2014)
BGBLA, BGBL, BGBLPDF Federal Law Gazette (authentic / 1945–2003 / PDF)
REGV Government bills
BVB District authorities
VBL Ordinance gazettes
MRP, ERL, PRUEF, AVSV, SPG, KMGER Cabinet protocols, decrees, trade exams, social insurance, health plans, court announcements

The full routing registry lives in DOCUMENT_ROUTES (src/client.ts); unknown prefixes fall back to a Justiz search.

ris_bezirke — District Authority Announcements

Search announcements from district administrative authorities.

Note: Only available for: Niederoesterreich, Oberoesterreich, Tirol, Vorarlberg, Burgenland, Steiermark.

Inputs:

Parameter Type Description
suchworte string Full-text search
titel string Search in titles
bundesland string Province name
bezirksverwaltungsbehoerde string District authority name
kundmachungsnummer string Announcement number
kundmachungsdatum_von string Date from (YYYY-MM-DD)
kundmachungsdatum_bis string Date to (YYYY-MM-DD)
im_ris_seit string Added recently: EinerWoche, ZweiWochen, EinemMonat, DreiMonaten, SechsMonaten, EinemJahr
seite number Page number
limit number Results per page
response_format string "markdown" or "json"
ris_gemeinden — Municipal Law

Search municipal law — local ordinances and regulations.

Inputs:

Parameter Type Description
suchworte string Full-text search
titel string Search in titles
bundesland string Province name
gemeinde string Municipality name (e.g., "Graz")
applikation string "Gr" (municipal law, default) or "GrA" (official gazettes)
im_ris_seit string Added recently
seite number Page number
limit number Results per page
response_format string "markdown" or "json"

Additional parameters depend on the selected application. See Gr (municipal law) and GrA (official gazettes) specific parameters in the source code.

ris_sonstige — Miscellaneous Collections

Search miscellaneous legal collections and specialized databases.

Inputs:

Parameter Type Description
applikation string Required. Collection to search (see below)
suchworte string Full-text search
titel string Search in titles
datum_von string Date from (YYYY-MM-DD)
datum_bis string Date to (YYYY-MM-DD)
im_ris_seit string Added recently
seite number Page number
limit number Results per page
response_format string "markdown" or "json"

Available collections:

Value Description
Mrp Cabinet protocols (Ministerratsprotokolle)
Erlaesse Ministerial decrees
Upts Party transparency reports
KmGer Court announcements
Avsv Social insurance regulations
Avn Veterinary notices
Spg Health structure plans
PruefGewO Trade licensing exams

Each collection has additional specific parameters. See the tool description for details.

ris_history — Document Change History

Track document creation, modification, and deletion across the RIS database.

Inputs:

Parameter Type Description
applikation string Required. Application type (36 options — see below)
aenderungen_von string Changes from date (YYYY-MM-DD)
aenderungen_bis string Changes to date (YYYY-MM-DD)
include_deleted boolean Include deleted documents (default: false)
seite number Page number
limit number Results per page
response_format string "markdown" or "json"

Available applications (36):

Federal law: Bundesnormen, BgblAuth, BgblAlt, BgblPdf, RegV State law: Landesnormen, LgblAuth, Lgbl, LgblNO, Vbl, Gemeinderecht, GemeinderechtAuth Case law: Justiz, Vfgh, Vwgh, Bvwg, Lvwg, Dsk, Gbk, Pvak, AsylGH Other: Bvb, Mrp, Erlaesse, PruefGewO, Avsv, Spg, KmGer, Dok, Normenliste Historical (jurisdictions dissolved on 2014-01-01, change history still tracked): Verg, Upts, Uvs, Ubas, Umse, Bks

ris_verordnungen — State Ordinance Gazettes

Search state ordinance gazettes (Verordnungsblätter).

Note: Currently only data from Tirol is available (since January 2022).

Inputs:

Parameter Type Description
suchworte string Full-text search
titel string Search in titles
bundesland string Province name
kundmachungsnummer string Announcement number
kundmachungsdatum_von string Date from (YYYY-MM-DD)
kundmachungsdatum_bis string Date to (YYYY-MM-DD)
seite number Page number
limit number Results per page
response_format string "markdown" or "json"

Development

Prerequisites

  • Node.js >= 20.19.0 (required by the Vite 7 widget build)

Setup

git clone https://github.com/Honeyfield-Org/ris-mcp-ts.git
cd ris-mcp-ts
pnpm install
pnpm run build

Scripts

Script Description
pnpm run dev Start with hot reload (tsx)
pnpm run build Compile TypeScript
pnpm start Run compiled version
pnpm test Run the server tests
pnpm run test:ui Run the widget tests (jsdom)
pnpm run gen:ui Build the widget bundle into src/generated/ (runs automatically before dev/test/typecheck)
pnpm run check Typecheck + lint + format check + both test suites
pnpm run inspect Launch MCP Inspector for manual testing

Project Structure

src/
├── index.ts           # Entry point (stdio transport)
├── server.ts          # MCP server setup, delegates to tools/
├── client.ts          # HTTP client for RIS API
├── types.ts           # Zod schemas + TypeScript types
├── parser.ts          # JSON parsing and response normalization
├── formatting.ts      # Output formatting (markdown/json)
├── helpers.ts         # Shared helper functions
├── constants.ts       # Static mappings and configuration
├── widgets.ts         # MCP Apps widget resource + tool metadata
├── tools/             # One file per tool handler
│   ├── index.ts
│   ├── bundesrecht.ts
│   ├── landesrecht.ts
│   ├── judikatur.ts
│   └── ...
└── __tests__/         # Unit and integration tests

ui/                    # Widget sources (browser code, built by Vite)
├── trefferliste/      # The result-list widget
└── shared/            # Host bridge, shared states and theme

Contributing

See CONTRIBUTING.md for guidelines.

License

MIT


Built on the Open Government Data API provided by the Austrian Federal Chancellery (Bundeskanzleramt).

from github.com/Honeyfield-Org/ris-mcp-ts

Установить Ris в Claude Desktop, Claude Code, Cursor

Рекомендуется · одна команда, все IDE
unyly install ris-mcp

Ставит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.

Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh

Или настроить вручную

Выполни в терминале:

claude mcp add ris-mcp -- npx -y ris-mcp-ts

Пошаговые гайды: как установить Ris

FAQ

Ris MCP бесплатный?

Да, Ris MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Ris?

Нет, Ris работает без API-ключей и переменных окружения.

Ris — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Ris в Claude Desktop, Claude Code или Cursor?

Открой Ris на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Ris with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории data