SuperAPI AI Directory

ris-mcp-ts

Access Austrian federal and state laws, court decisions and legal documents via the RIS (Rechtsinformationssystem) API.

Open website

About this tool

Purpose

ris-mcp-ts is an MCP (Model Context Protocol) server that provides AI assistants with access to the Austrian official legal database Rechtsinformationssystem (RIS). Users can ask AI assistants questions about Austrian law in natural language, and the server converts these requests into structured calls to the RIS open government data API and directly retrieves official legal documents. No API key is required.

Main capabilities

  • Provides 13 dedicated tools covering the main RIS legal collections.
  • Supports federal law (ABGB, StGB, UGB, etc.) as well as the state law of all 9 states.
  • Supports court decisions from 16 types of courts (Supreme Court, Constitutional Court, Administrative Court, etc.).
  • Supports the Federal Law Gazette (BGBl) and State Law Gazette (LGBl).
  • Supports government bills, ministerial decrees, and minutes of cabinet meetings.
  • Supports retrieving the full text of legal documents by document ID or URL, using a dual strategy of direct URL access first and search API fallback.
  • Supports change history tracking across 36 application types.
  • Provides interactive result lists in hosts that support MCP Apps; provides full-text answers in other hosts.
  • Supports Markdown and JSON output formats.
  • Free and open source, uses the Austrian open government data API, and requires no API key.

Usage

Can be run directly without installation, or installed globally.

Configure in Claude Desktop (Settings > Developer > Edit Config): macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

Note: Claude Desktop's "Add custom connector" interface only supports remote MCP servers (HTTP/SSE). Local stdio servers like this server must be configured through a JSON file.

Tip: If you prefer pnpm, you can use pnpm dlx instead of npx in all configuration examples.

Can also be added to project or user settings, supporting VS Code (GitHub Copilot), Cursor, Windsurf, etc.

VS Code (GitHub Copilot): Add to .vscode/mcp.json in the project. Cursor: Add to .cursor/mcp.json in the project (or the global ~/.cursor/mcp.json). Windsurf: Add to ~/.codeium/windsurf/mcp_config.json.

Other MCP clients: Any MCP-compatible client can connect via stdio transport.

Available tools

  • ris_bundesrecht: Search Austrian federal law, such as ABGB, StGB, UGB, etc. All parameters are optional, but at least one search parameter should be provided (suchworte, titel, or paragraph). Note: applikation="Erv" (English translation) internally uses different parameter vocabulary (SearchTerms / Title) and does not support paragraph / abschnitt_typ or fassung_vom.
  • ris_landesrecht: Search the state law of the nine Austrian states.
  • ris_judikatur: Search court decisions of Austrian courts. Provides 16 gerichtsbarkeit values.
  • ris_bundesgesetzblatt: Search the Federal Law Gazette (BGBl), the official publication of federal legislation.
  • ris_landesgesetzblatt: Search the State Law Gazette (LGBl), the official publication of state legislation.
  • ris_regierungsvorlagen: Search government bills, i.e. draft legislation submitted to parliament.
  • ris_dokument: Retrieve the full text of a legal document by ID or URL. At least one of dokumentnummer or url is required. Long documents are truncated to 25,000 characters. Supports multiple document prefixes; the complete routing registry is in DOCUMENT_ROUTES (src/client.ts); unknown prefixes fall back to Justiz search.
  • ris_dokument_abschnitt: Returns a section of a document already opened in the RIS document viewer. Intended for the viewer widget, not for direct use; retrieve the full document textPlease use ris_dokument. This tool is declared as app-visible only (_meta.ui.visibility: ["app"]); hosts that honor this flag will hide it from the model and allow only the viewer widget to call it. At least one of dokumentnummer or url is required. 25,000 characters per section.
  • ris_bezirksverwaltungsbehoerde: Search announcements by district administrative authorities. Note: only applies to Niederoesterreich, Oberoesterreich, Tirol, Vorarlberg, Burgenland, Steiermark.
  • ris_gemeinderecht: Search municipal law—local ordinances and regulations. Additional parameters depend on the selected application.
  • ris_sonstige: Search miscellaneous legal collections and specialized databases. Each collection has additional specific parameters.
  • ris_aenderungen: Track the creation, modification, and deletion of documents in the RIS database. Provides 36 applications.
  • ris_verordnungsblaetter: Search state law gazettes (Verordnungsblätter). Note: currently only data for Tirol (since January 2022).

Interactive results list

One widget applies to all eleven search tools. All search tools render into the same interactive results list: federal law, state law, case law, federal and state law gazettes, government bills, district authority announcements, municipal law, miscellaneous collections, change history, and law gazettes. ris_dokument, by contrast, opens a reader. A single document can be up to 250,000 characters, far more than can fit in a single answer, so the viewer loads it section by section as you scroll, offers outline jumps (if the document has an outline), and links back to RIS. The full text still reaches the chat; the widget is never the only copy.

Hosts that support the MCP Apps extension render hits as an interactive list—page through without re-entering the search, open documents in the browser, or request the full text with one click. The widget follows the host's light or dark theme.

In hosts that do not support MCP Apps, the same prompt returns a full text answer. The chat answer is always complete; the widget is a supplement, not a replacement.

Example prompts

RIS is a German-language database, so the following prompts are best in German. Each prompt corresponds to 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

Output and limits

The text block for each tool is capped at 25,000 characters. The structuredContent of search tools has a separate budget of 45,000 characters (after serialization); pages exceeding that budget are delivered with the next smaller RIS page size (100 → 50 → 20 → 10), with page, page_size, has_more, and the query echo rewritten, and a German notice added to both the text and the payload. Using limit: 20 is recommended; 50 is suitable for broad investigations; 100 is delivered only when the hits are small. The default is calibrated for Claude Code, which rejects results with structured payloads over 25,000 tokens (measured: 58,659 characters rejected, 46,311 characters accepted; the margin below that covers content that tokenizes worse); claude.ai can render much larger payloads without a budget. Self-hosters whose clients accept larger results can raise the budget via the RIS_STRUCTURED_CONTENT_BUDGET environment variable (positive integer).

Runtime requirements

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

Project structure

See CONTRIBUTING.md for guidelines.

Data source

Built on the open government data API provided by the Austrian Federal Chancellery (Bundeskanzleramt).