Command Palette

Search for a command to run...

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

RIS Server

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

MCP server that provides access to Austria's official legal database (RIS), enabling AI assistants to search and retrieve legal documents from Austrian federal

GitHubEmbed

Описание

MCP server that provides access to Austria's official legal database (RIS), enabling AI assistants to search and retrieve legal documents from Austrian federal and state law, court decisions, and law gazettes.

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
  • 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

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 (30 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 (30):

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

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.0.0

Setup

git clone https://github.com/philrox/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 all tests
pnpm run check Typecheck + lint + format check + tests
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
├── tools/             # One file per tool handler
│   ├── index.ts
│   ├── bundesrecht.ts
│   ├── landesrecht.ts
│   ├── judikatur.ts
│   └── ...
└── __tests__/         # Unit and integration tests

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 Server

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

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

FAQ

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

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

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

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

RIS Server — hosted или self-hosted?

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

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

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

Похожие MCP

Compare RIS Server with

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

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

Автор?

Embed-бейдж для README

Похожее

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