Ris MCP Server

Search Austrian federal and state law, court decisions, and the authentic Bundesgesetzblatt (RIS).

Remote serverstreamable-http

What is the Ris MCP server?

Connect Ris to Claude, Cursor or any other MCP client and it stops being a tab you switch to. Search Austrian federal and state law, court decisions, and the authentic Bundesgesetzblatt (RIS). The ris mcp server is what makes that connection.

What the server does

  • Declarative tool and resource definitions — single file per primitive, framework handles registration and validation
  • Unified error handling — handlers throw, framework catches, classifies, and formats
  • Pluggable auth (none, jwt, oauth)
  • Structured logging with optional OpenTelemetry tracing
  • STDIO and Streamable HTTP transports
  • All 39 OGD applications across every controller, from consolidated law and the four levels of authentic gazette to the 17 court and tribunal collections

Installation

Because this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • ris_search_legislation — Search consolidated federal, state, and municipal law, one document per §/Artikel/Anlage, filtered to the version in force on a given date (defaults
  • ris_search_case_law — Search Austrian case law (Judikatur), one court or tribunal per call: VfGH, VwGH, ordinary courts, BVwG, LVwG, DSB, the party-transparency senate
  • ris_search_gazette — Browse the promulgation record at every level of government: federal (three era tiers back to 1848, auto-routed), state law and ordinance gazettes
  • ris_search_drafts — Search the federal lawmaking pipeline: ministerial drafts in public review (Begutachtungsentwürfe) and government bills (Regierungsvorlagen)
  • ris_search_announcements — Search sectoral official gazettes and executive documents: social-insurance notices, veterinary notices, court rules, trade-exam regulations, health
  • ris_lookup_citation — Resolve one Austrian legal citation ("§ 6 DSG", "BGBl. I Nr. 165/1999", "RGBl. Nr. 189/1902", a Geschäftszahl, "VfSlg 19.632/2012") to its canonical
  • ris_get_document — Fetch one document's full text as markdown/HTML/XML, or its export URLs, with binding-status labeling and the authentic PDF wherever one exists
  • ris_track_changes — Per-application change feed: every document added or changed in a date window, deletions included
  • ris_list_reference — Ground the domain vocabulary offline: applications and coverage windows, court codes, Bundesländer, decision kinds, ministries, district authorities
  • Prerequisites — The Prerequisites tool exposed by this server

Credentials and setup notes

Configuration is passed through the environment: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, RIS_API_BASE_URL, RIS_CONTENT_BASE_URL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  • Bun v1.3 or higher, or Node.js v24+ (needed for npx/bunx) - No API key — the RIS OGD API is keyless

Worth knowing first

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • With 10 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Ris.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Where it fits

Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Ris's toolset — ris_search_legislation, ris_search_case_law, ris_search_gazette and 7 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Available tools

ToolWhat it does
ris_search_legislationSearch consolidated federal, state, and municipal law, one document per §/Artikel/Anlage, filtered to the version in force on a given date (defaults to today). Also serves English translations of selected laws.
ris_search_case_lawSearch Austrian case law (Judikatur), one court or tribunal per call: VfGH, VwGH, ordinary courts, BVwG, LVwG, DSB, the party-transparency senate, and ten more.
ris_search_gazetteBrowse the promulgation record at every level of government: federal (three era tiers back to 1848, auto-routed), state law and ordinance gazettes, district, and municipal.
ris_search_draftsSearch the federal lawmaking pipeline: ministerial drafts in public review (Begutachtungsentwürfe) and government bills (Regierungsvorlagen).
ris_search_announcementsSearch sectoral official gazettes and executive documents: social-insurance notices, veterinary notices, court rules, trade-exam regulations, health structure plans, ministerial decrees, council-of-ministers minutes.
ris_lookup_citationResolve one Austrian legal citation ("§ 6 DSG", "BGBl. I Nr. 165/1999", "RGBl. Nr. 189/1902", a Geschäftszahl, "VfSlg 19.632/2012") to its canonical document.
ris_get_documentFetch one document's full text as markdown/HTML/XML, or its export URLs, with binding-status labeling and the authentic PDF wherever one exists.
ris_track_changesPer-application change feed: every document added or changed in a date window, deletions included.
ris_list_referenceGround the domain vocabulary offline: applications and coverage windows, court codes, Bundesländer, decision kinds, ministries, district authorities, gazette eras and parts, citation formats, search syntax.
PrerequisitesThe Prerequisites tool exposed by this server.

How to install the Ris MCP server

{
  "mcpServers": {
    "ris-austria-mcp-server": {
      "type": "streamable-http",
      "url": "https://ris-austria.caseyjhand.com/mcp"
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Bun v1.3 or higher, or Node.js v24+ (needed for npx/bunx) - No API key — the RIS OGD API is keyless
VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
MCP_LOG_LEVELConfiguration value read at startup.Optional
RIS_API_BASE_URLEndpoint or connection string the server talks to.Yes
RIS_CONTENT_BASE_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Ris to ris search legislation.
  • Use Ris to ris search case law.
  • Use Ris to ris search gazette.

Frequently asked questions

It connects Ris to MCP-compatible AI assistants such as Claude and Cursor, exposing 10 tools (ris_search_legislation, ris_search_case_law, ris_search_gazette, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Ris directly.