ris について
ris は、オーストリアの公式法令情報システム Rechtsinformationssystem(RIS)から文書を検索・取得する MCP サーバーです。法令、裁判所の判決、公報などを扱い、文書 ID または URL で全文を取得できます。
主な機能
- 01連邦法と州法の検索
- 0216 種類の裁判機関の判決検索
- 03連邦・州の法律公報の検索
- 04ID または URL による全文取得
- 05文書の変更履歴の追跡
活用シーン
- 01オーストリア民法典の条文を探す
- 02法律問題に関する裁判例を検索
- 03特定年に公布された法令を確認
- 04RIS ID から文書を取得
MCP 対応
RIS Open Government Data API への構造化リクエストに変換する 13 個の専用ツールを MCP クライアントに公開します。結果は Markdown または JSON で取得でき、対応ホストではインタラクティブな検索結果一覧と文書ビューアーを表示できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
RIS MCP サーバー
AI アシスタントからオーストリアの公式法律データベース、**Rechtsinformationssystem(RIS)**にアクセスできるMCP(Model Context Protocol)サーバーです。
AI アシスタントにオーストリアの法律について質問すると、政府公式 API から法律文書を直接検索して取得します。API キーは不要です。
できること
接続すると、AI アシスタントに次のような質問ができます。
「オーストリアの法律では、借家人の権利についてどのように定めていますか?」
「表現の自由に関する憲法裁判所の判決を探してください。」
「ABGB(オーストリア民法典)の §1295 を表示してください。」
「気候保護に関する法律で、2024 年に公布されたものはありますか?」
「ザルツブルク州の建築基準法を調べてください。」
「文書 NOR40052761 の全文を取得してください。」
このサーバーは、自然言語によるリクエストをRIS Open Government Data APIへの構造化された API 呼び出しに変換します。
機能
- RIS の主要なコレクションを網羅する13 種類の専用ツール
- 連邦法(ABGB、StGB、UGB など)と9 つすべての州の州法
- 16 種類の裁判所による判決(最高裁判所、憲法裁判所、行政裁判所など)
- 法律公報 — 連邦(BGBl)および州(LGBl)
- 政府法案、省令、閣議議事録
- プレフィックスに基づくスマートルーティングによる文書全文の取得
- 36 種類の申請タイプにわたる変更履歴の追跡
- 対応ホストではインタラクティブな検索結果リスト(MCP Apps)を表示し、それ以外では全文形式の回答を提供
- Markdown および JSON の出力形式
- 無料でオープン — オーストリアの Open Government Data API を使用し、API キーは不要です
クイックスタート
インストールせずに直接実行できます。
pnpm dlx ris-mcp-ts
または、グローバルにインストールします。
pnpm add -g ris-mcp-ts
設定
Claude Desktop
Claude Desktop の設定に追加します(「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"]
}
}
}
注: Claude Desktop の「Add custom connector」UI が対応しているのは、リモート MCP サーバー(HTTP/SSE)のみです。このサーバーのようなローカル stdio サーバーは、JSON ファイルで設定する必要があります。
ヒント: pnpm を使う場合は、すべての設定例で
npxの代わりにpnpm dlxも使用できます。
Claude Code
プロジェクトまたはユーザーの設定に追加します。
claude mcp add ris -- npx -y ris-mcp-ts
VS Code(GitHub Copilot)
プロジェクトの .vscode/mcp.json に追加します。
{
"servers": {
"ris": {
"type": "stdio",
"command": "npx",
"args": ["-y", "ris-mcp-ts"]
}
}
}
Cursor
プロジェクトの .cursor/mcp.json に追加します(グローバルにアクセスする場合は ~/.cursor/mcp.json に追加します)。
{
"mcpServers": {
"ris": {
"command": "npx",
"args": ["-y", "ris-mcp-ts"]
}
}
}
Windsurf
Windsurf MCP の設定 ~/.codeium/windsurf/mcp_config.json に追加します。
{
"mcpServers": {
"ris": {
"command": "npx",
"args": ["-y", "ris-mcp-ts"]
}
}
}
その他の MCP クライアント
MCP に対応したクライアントであれば、stdio トランスポート経由で接続できます。
npx -y ris-mcp-ts
# or: pnpm dlx ris-mcp-ts
利用可能なツール
| ツール | 説明 |
|---|---|
ris_bundesrecht | 連邦法(ABGB、StGB、UGB など)を検索します |
ris_landesrecht | 州法(全9州)を検索します |
ris_judikatur | 裁判所の判決(16種類の裁判所)を検索します |
ris_bundesgesetzblatt | 連邦官報(BGBl I/II/III)を検索します |
ris_landesgesetzblatt | 州官報(LGBl)を検索します |
ris_regierungsvorlagen | 政府提出法案を検索します |
ris_dokument | ID または URL で文書の全文を取得します |
ris_dokument_abschnitt | 文字オフセットで公開文書の一節を返します(文書ビューアーウィジェットにデータを渡します) |
ris_bezirke | 地区当局の告知を検索します |
ris_gemeinden | 市町村の法律と規則を検索します |
ris_sonstige | その他のコレクション(8つのサブアプリ)を検索します |
ris_history | 文書の変更履歴を追跡します(36種類のアプリ) |
ris_verordnungen | 州の条例官報を検索します |
インタラクティブな検索結果リスト
1つのウィジェットで、11種類すべての検索ツールに対応します。 インタラクティブな検索結果リストは1つだけで、すべての検索ツールの結果がここに表示されます。連邦法、州法、判例、連邦官報と州官報、政府提出法案、地区当局の告知、市町村の法律、その他のコレクション、変更履歴、条例官報に対応しています。以下のスクリーンショットは、別々の機能ではなく、異なる2つのホストで同じウィジェットを表示したものです。
ris_dokument は代わりにリーダーを開きます。 1つの文書が25万文字に及ぶこともあり、1つの回答に収められる量を大幅に超えるため、ビューアーはスクロールに合わせて文書を一節ずつ読み込みます。また、文書にアウトラインがある場合は、そこから目的の箇所に移動でき、RIS へのリンクも表示されます。どちらの場合も全文はチャットに届くため、ウィジェットだけにしか内容がないということはありません。
MCP Apps 拡張機能に対応しているホストでは、検索結果がインタラクティブなリストとして表示されます。検索をやり直さずに結果をページ送りしたり、ブラウザーで文書を開いたり、ワンクリックで全文を取得したりできます。ウィジェットはホストのライトテーマまたはダークテーマに追従します。以下の画像は両方のテーマを示しています。
![]() | ![]() |
| Claude 内 | ChatGPT 内 |
ライトテーマでの詳細表示 — メタデータ、3つの操作、ページ送り
RIS はドイツ語のデータベースなので、ドイツ語での利用が最適です。以下の各例では、異なるツールが呼び出されます。
「消費者保証法を表示して」 —
ris_bundesrecht
「時効に関する最新のOGH判例を検索して」 —
ris_judikatur
「自然保護に関するチロル州法の内容を教えて」 —
ris_landesrecht
「BGBl. I Nr. 175/2021を表示して」 —
ris_bundesgesetzblatt
MCP Apps に対応していないホストでは、同じプロンプトに対して代わりに全文の回答が返されます。下の表をご覧ください。
| ホスト | 表示内容 |
|---|---|
| claude.ai | 結果一覧(ページネーション、文書リンク)+文書ビューアー(アウトラインナビゲーション、遅延読み込み) |
| ChatGPT | 結果一覧(ページネーション)+文書ビューアー(アウトラインナビゲーション、遅延読み込み) |
| Claude Code、およびMCP Appsに対応していないクライアント | 通常のテキスト結果(変更なし) |
チャットの回答は常に完全です。ウィジェットは回答に追加されるものであり、置き換えるものではありません。ウィジェットを表示しないホストでも、情報が失われることはありません。
ツールリファレンス
ris_bundesrecht — 連邦法
ABGB、StGB、UGB などのオーストリア連邦法を検索します。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
suchworte | string | 全文検索(例:「Mietrecht」、「Schadenersatz」) |
titel | string | 法律のタイトルを検索(例:「ABGB」、「Strafgesetzbuch」) |
paragraph | string | 条項番号(§1295の場合は「1295」、Art 7の場合は「7」など) |
abschnitt_typ | string | paragraph が指す条項の種類:「Paragraph」(既定値)、「Artikel」(B-VGなど、条文で構成される法律)、「Anlage」(附属書) |
applikation | string | 「BrKons」(統合版、既定値)、「Begut」(草案)、「BgblAuth」(官報)、「Erv」(英訳) |
fassung_vom | string | 過去の版の日付(YYYY-MM-DD) |
seite | number | ページ番号(既定値:1) |
limit | number | 1ページあたりの結果数:10、20、50、100(既定値:20)。20を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果サイズを参照) |
response_format | string | 「markdown」(既定値)または「json」 |
すべてのパラメーターは任意です。少なくとも1つの検索パラメーター(suchworte、titel、またはparagraph)を指定してください。
注:
applikation="Erv"(英訳)では内部的に異なるパラメーター名(SearchTerms/Title)が使用され、paragraph/abschnitt_typおよびfassung_vomには対応していません。
ris_landesrecht — 州法
オーストリアの9つの州の州法を検索します。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
suchworte | string | 全文検索 |
titel | string | 法律のタイトルを検索 |
bundesland | string | 州:Wien、Niederoesterreich、Oberoesterreich、Salzburg、Tirol、Vorarlberg、Kaernten、Steiermark、Burgenland |
paragraph | string | 条項番号(§1の場合は「1」、Art 7の場合は「7」など) |
abschnitt_typ | string | paragraph が指す条項の種類:「Paragraph」(既定値)、「Artikel」、「Anlage」 |
fassung_vom | string | 過去の版の日付(YYYY-MM-DD) |
gesetzesnummer | string | 特定の州法の正確な法律番号(Gesetzesnummer) |
applikation | string | 「LrKons」(統合版、既定値) |
seite | number | ページ番号 |
limit | number | 1ページあたりの結果数:10、20、50、100(既定値:20)。20を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果サイズを参照) |
response_format | string | 「markdown」または「json」 |
ris_judikatur — 裁判所の判決
オーストリアの裁判所の判決を検索します。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
suchworte | string | 判決の全文検索 |
gerichtsbarkeit | string | 検索対象の裁判所システム/データコレクション — RIS の「Applikation」(下記参照。デフォルトは「Justiz」) |
dokumenttyp | string | 「rechtssatz」(判旨のみ)、「entscheidungstext」(全文のみ)、または「beide」(両方、デフォルト) |
gericht | string | 管轄内の実際の裁判所(例:「OGH」、「OLG Wien」)。gerichtsbarkeit="Justiz" の場合に適用されます |
rechtsgebiet | string | 大まかな法分野:「Zivilrecht」または「Strafrecht」(Justiz) |
fachgebiet | string | OGH の専門分野(例:「Arbeitsrecht」)。Justiz で、dokumenttyp が「entscheidungstext」または「beide」の場合に必要です |
entscheidungsart | string | 決定の種類(例:「Erkenntnis」、「Beschluss」)。指定できる値は管轄によって異なります |
sammlungsnummer | string | 集録番号:VfSlg(Vfgh)または VwSlg(Vwgh) |
norm | string | 法規範(例:「1319a ABGB」) |
geschaeftszahl | string | 事件番号(例:「5Ob234/20b」) |
entscheidungsdatum_von | string | 決定日の開始(YYYY-MM-DD) |
entscheidungsdatum_bis | string | 決定日の終了(YYYY-MM-DD) |
sortierung | string | 決定日順で並べ替え:「datum_auf」(古い順)または「datum_ab」(新しい順) |
seite | number | ページ番号 |
limit | number | 1ページあたりの結果数:10、20、50、100(デフォルト:20)。20 を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果サイズを参照) |
response_format | string | 「markdown」または「json」 |
利用可能な gerichtsbarkeit の値(16):
| 値 | 裁判所システム |
|---|---|
Justiz | 最高裁判所(OGH)、高等地方裁判所(OLG)、地方裁判所(LG)— デフォルト |
Vfgh | 憲法裁判所 |
Vwgh | 最高行政裁判所 |
Bvwg | 連邦行政裁判所 |
Lvwg | 州行政裁判所 |
Dsk | データ保護機関 |
AsylGH | 難民裁判所(歴史的機関、2013年まで) |
Normenliste | 法規範の索引 |
Pvak | 人事代表監督委員会 |
Gbk | 平等処遇委員会 |
Dok | 懲戒委員会 |
Verg | 連邦調達庁(歴史的機関、2014年に解散) |
Uvs | 独立行政審判部(歴史的機関、2014年に解散) |
Ubas | 独立連邦難民審判部(歴史的機関、2014年に解散) |
Umse | 環境審判部(歴史的機関、2014年に解散) |
Bks | 連邦通信委員会(歴史的機関、2014年に解散) |
ris_bundesgesetzblatt — 連邦官報
連邦官報(BGBl)を検索します。連邦法令の公式な公示が掲載されています。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
bgblnummer | string | 官報番号(例:「120」) |
teil | string | 「1」(I=法律)、「2」(II=規則)、「3」(III=条約) |
jahrgang | string | 年(例:「2023」) |
suchworte | string | 全文検索 |
titel | string | タイトルを検索 |
applikation | string | 「BgblAuth」(2004年以降の真正版、デフォルト)、「BgblPdf」(PDF)、「BgblAlt」(1945~2003年) |
seite | number | ページ番号 |
limit | number | 1ページあたりの結果数:10、20、50、100(デフォルト:20)。20 を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果サイズを参照) |
response_format | string | 「markdown」または「json」 |
ris_landesgesetzblatt — 州官報
州官報(LGBl)を検索します。州法令の公式な公示が掲載されています。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
lgblnummer | string | 官報番号(例:「50」) |
jahrgang | string | 年(例:「2023」) |
bundesland | string | 州名 |
suchworte | string | 全文検索 |
titel | string | タイトルを検索 |
applikation | string | 「LgblAuth」(真正版、デフォルト)、「Lgbl」(一般)、「LgblNO」(ニーダーエスターライヒ州) |
seite | number | ページ番号 |
limit | number | ページあたりの結果数:10、20、50、100(デフォルト:20)。20 を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果のサイズを参照) |
response_format | string | 「markdown」または「json」 |
ris_regierungsvorlagen — 政府法案
政府法案、つまり議会に提出された法律の草案を検索します。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
suchworte | string | 全文検索 |
titel | string | タイトルを検索 |
beschlussdatum_von | string | 承認日(開始)(YYYY-MM-DD) |
beschlussdatum_bis | string | 承認日(終了)(YYYY-MM-DD) |
einbringende_stelle | string | 提出省庁(例:BKA、BMF、BMJ、BMK) |
im_ris_seit | string | 最近追加された期間:EinerWoche、ZweiWochen、EinemMonat、DreiMonaten、SechsMonaten、EinemJahr |
sortierung_richtung | string | 昇順または降順 |
sortierung_spalte | string | Kurztitel、EinbringendeStelle、Beschlussdatum |
seite | number | ページ番号 |
limit | number | ページあたりの結果数:10、20、50、100(デフォルト:20)。20 を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果のサイズを参照) |
response_format | string | 「markdown」または「json」 |
ris_dokument — 文書全文の取得
ID または URL を指定して、法律文書の全文を取得します。2 段階の方法を使用し、まず URL に直接アクセスし、次に検索 API にフォールバックします。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
dokumentnummer | string | RIS 文書番号(例:「NOR40052761」) |
url | string | 文書の内容への直接 URL |
response_format | string | 「markdown」(デフォルト)または「json」 |
dokumentnummer または url の少なくとも一方が必要です。長い文書は 25,000 文字で切り詰められます。
対応する文書プレフィックス:
| プレフィックス | 種類 |
|---|---|
| NOR | 連邦法令 |
| LBG, LKT, LNO, LOO, LSB, LST, LTI, LVB, LWI | 州法(9 州) |
| JWR, JWT | 最高行政裁判所(VwGH) |
| JFR, JFT | 憲法裁判所(VfGH) |
| JJR, JJT | 通常裁判所(Justiz) |
| BVWG, LVWG | 連邦/州行政裁判所 |
| DSB, PDK, GBK, PVAB, DKT, NL, ASYLGH | データ保護、均等待遇、人事、懲戒、法令一覧、難民認定 |
| VERG, JUR, JUT, UBAS, UMSE, BKS | 旧管轄機関(2014 年廃止) |
| BGBLA, BGBL, BGBLPDF | 連邦官報(真正版/1945~2003 年/PDF) |
| REGV | 政府法案 |
| BVB | 地区当局 |
| VBL | 規則官報 |
| MRP, ERL, PRUEF, AVSV, SPG, KMGER | 閣議議事録、通達、商工試験、社会保険、医療計画、裁判所公告 |
ルーティングレジストリ全体は
DOCUMENT_ROUTES(src/client.ts)にあります。不明なプレフィックスは Justiz 検索にフォールバックします。
ris_dokument_abschnitt — 文書のセクション
RIS 文書ビューアーですでに開いている文書から、1 つのセクションを返します。ビューアーウィジェット向けであり、直接使用することを想定していません。文書の全文を取得する場合は ris_dokument を使用してください。
このツールはアプリ専用(_meta.ui.visibility: ["app"])として宣言されています。このフラグに対応するホストでは、モデルから非表示になり、ビューアーウィジェットのみが呼び出せます。可能な場合は文書キャッシュから、ris_dokument が生成したものと同じテキストを返すため、ビューアーが保持するオフセットは同じ文書を参照します。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
dokumentnummer | string | 開いている文書のRIS文書番号。文書を開いたris_dokumentの呼び出しから取得します |
url | string | 番号ではなくURLで開いた文書の直接URL |
offset | number | 文書テキスト内の文字オフセット。0を指定すると、最初のセクションとアウトラインが返されます(デフォルト:0) |
dokumentnummerまたはurlのいずれかが必須です。各セクションの長さは25,000文字です。
出力(structuredContent):
| フィールド | 型 | 説明 |
|---|---|---|
text | string | 要求した文書テキストのセクション |
total_length | number | 文書テキスト全体の長さ。呼び出し間で比較し、文書が再取得されてオフセットがずれていないか確認します |
next_offset | number | null | 次のセクションを要求するオフセット。文書の末尾ではnullです |
outline | array | 文書内のジャンプ先。offsetが0の場合のみ返されます。見出しがない文書では空です |
dokumentnummer | string | このセクションが属する文書のRIS文書番号(URLで開いた文書にはありません) |
source_url | string | 文書テキストのレンダリング元となったRISのURL |
ris_bezirke — 地区行政機関の公告
地区行政機関の公告を検索します。
注: 以下でのみ利用できます:Niederoesterreich、Oberoesterreich、Tirol、Vorarlberg、Burgenland、Steiermark。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
suchworte | string | 全文検索 |
titel | string | タイトルを検索 |
bundesland | string | 州名 |
bezirksverwaltungsbehoerde | string | 地区行政機関名 |
kundmachungsnummer | string | 公告番号 |
kundmachungsdatum_von | string | 開始日(YYYY-MM-DD) |
kundmachungsdatum_bis | string | 終了日(YYYY-MM-DD) |
im_ris_seit | string | 最近追加された期間:EinerWoche、ZweiWochen、EinemMonat、DreiMonaten、SechsMonaten、EinemJahr |
seite | number | ページ番号 |
limit | number | 1ページあたりの結果数:10、20、50、100(デフォルト:20)。20を推奨します。構造化ペイロードの予算を超えるページは、次に小さいサイズで返されます(結果サイズを参照) |
response_format | string | "markdown"または"json" |
ris_gemeinden — 市町村法
市町村法(地域の条例および規則)を検索します。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
suchworte | string | 全文検索 |
titel | string | タイトルを検索 |
bundesland | string | 州名 |
gemeinde | string | 市町村名(例:"Graz") |
applikation | string | "Gr"(市町村法、デフォルト)または"GrA"(官報) |
im_ris_seit | string | 最近追加された期間 |
seite | number | ページ番号 |
limit | number | 1ページあたりの結果数:10、20、50、100(デフォルト:20)。20を推奨します。構造化ペイロードの予算を超えるページは、次に小さいサイズで返されます(結果サイズを参照) |
response_format | string | "markdown"または"json" |
追加のパラメーターは、選択したアプリケーションによって異なります。ソースコードでGr(市町村法)およびGrA(官報)固有のパラメーターを確認してください。
ris_sonstige — その他のコレクション
その他の法律コレクションおよび専門データベースを検索します。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
applikation | 文字列 | 必須。 検索対象のコレクション(下記参照) |
suchworte | 文字列 | 全文検索 |
titel | 文字列 | タイトルを検索 |
datum_von | 文字列 | 開始日(YYYY-MM-DD) |
datum_bis | 文字列 | 終了日(YYYY-MM-DD) |
im_ris_seit | 文字列 | 最近追加されたもの |
seite | 数値 | ページ番号 |
limit | 数値 | 1ページあたりの結果数:10、20、50、100(デフォルト:20)。20を推奨します。構造化ペイロードの予算を超えるページは、次に小さいサイズで返されます(結果サイズを参照) |
response_format | 文字列 | "markdown" または "json" |
利用可能なコレクション:
| 値 | 説明 |
|---|---|
Mrp | 閣議議事録(Ministerratsprotokolle) |
Erlaesse | 省令 |
Upts | 政党の透明性報告書 |
KmGer | 裁判所のお知らせ |
Avsv | 社会保険規則 |
Avn | 獣医関連のお知らせ |
Spg | 医療構造計画 |
PruefGewO | 営業許可試験 |
各コレクションには、追加の固有パラメーターがあります。詳細はツールの説明を参照してください。
ris_history — 文書の変更履歴
RIS データベース全体で、文書の作成、変更、削除を追跡します。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
applikation | 文字列 | 必須。 アプリケーションの種類(36 種類。下記参照) |
aenderungen_von | 文字列 | 変更開始日(YYYY-MM-DD) |
aenderungen_bis | 文字列 | 変更終了日(YYYY-MM-DD) |
include_deleted | 真偽値 | 削除済みの文書を含める(デフォルト:false) |
seite | 数値 | ページ番号 |
limit | 数値 | 1ページあたりの結果数:10、20、50、100(デフォルト:20)。20を推奨します。構造化ペイロードの予算を超えるページは、次に小さいサイズで返されます(結果サイズを参照) |
response_format | 文字列 | "markdown" または "json" |
利用可能なアプリケーション(36 種類):
連邦法:Bundesnormen、BgblAuth、BgblAlt、BgblPdf、RegV
州法:Landesnormen、LgblAuth、Lgbl、LgblNO、Vbl、Gemeinderecht、GemeinderechtAuth
判例法:Justiz、Vfgh、Vwgh、Bvwg、Lvwg、Dsk、Gbk、Pvak、AsylGH
その他:Bvb、Mrp、Erlaesse、PruefGewO、Avsv、Spg、KmGer、Dok、Normenliste
歴史的なもの(2014-01-01 に管轄が廃止されましたが、変更履歴の追跡は継続):Verg、Upts、Uvs、Ubas、Umse、Bks
ris_verordnungen — 州条例公報
州条例公報(Verordnungsblätter)を検索します。
注: 現在利用できるのは、Tirol のデータのみです(2022年1月以降)。
入力:
| パラメーター | 型 | 説明 |
|---|---|---|
suchworte | 文字列 | 全文検索 |
titel | 文字列 | タイトルを検索 |
bundesland | 文字列 | 州名 |
kundmachungsnummer | 文字列 | 公示番号 |
kundmachungsdatum_von | 文字列 | 開始日(YYYY-MM-DD) |
kundmachungsdatum_bis | 文字列 | 終了日(YYYY-MM-DD) |
seite | 数値 | ページ番号 |
limit | 数値 | 1ページあたりの結果数:10、20、50、100(デフォルト:20)。20を推奨します。構造化ペイロードの予算を超えるページは、次に小さいサイズで返されます(結果サイズを参照) |
response_format | 文字列 | "markdown" または "json" |
各ツールのテキストブロックは、25,000 文字に制限されています。検索ツールの
structuredContent にもシリアライズ後の上限があり、45,000 文字です。これを超えるページは、次に小さい RIS ページサイズ(100 → 50 → 20 → 10)で配信され、page、page_size、has_more と、そのサイズに書き換えられた query のエコー、およびテキストとペイロードの両方にドイツ語の notice が含まれます。
エコーされた query.limit と query.seite を使ってページを指定してください。limit: 20 を推奨します。幅広く調査する場合は 50 が適しており、100 で配信されるのは、ヒット件数が少ない場合に限られます。
デフォルト値は Claude Code に合わせて調整されています。Claude Code は、構造化ペイロードが 25,000 トークンを超える結果を拒否するためです(実測値:58,659 文字で拒否、46,311 文字で受け入れ。これより少ない上限は、トークン化の効率が悪いコンテンツを考慮した余裕分です)。claude.ai ははるかに大きなペイロードを表示できるため、上限は不要です。
より大きな結果を受け入れるクライアントを使うセルフホストユーザーは、RIS_STRUCTURED_CONTENT_BUDGET 環境変数に正の整数を設定して上限を引き上げられます。
開発
前提条件
- Node.js >= 20.19.0(Vite 7 のウィジェットビルドに必要)
セットアップ
git clone https://github.com/Honeyfield-Org/ris-mcp-ts.git
cd ris-mcp-ts
pnpm install
pnpm run build
スクリプト
| スクリプト | 説明 |
|---|---|
pnpm run dev | ホットリロード(tsx)で起動します |
pnpm run build | TypeScript をコンパイルします |
pnpm start | コンパイル済みのバージョンを実行します |
pnpm test | サーバーのテストを実行します |
pnpm run test:ui | ウィジェットのテストを実行します(jsdom) |
pnpm run gen:ui | ウィジェットのバンドルを src/generated/ にビルドします(dev/test/typecheck の前に自動実行されます) |
pnpm run check | 型チェック + リント + フォーマットチェック + 両方のテストスイートを実行します |
pnpm run inspect | 手動テスト用に MCP Inspector を起動します |
プロジェクト構成
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.md を参照してください。
ライセンス
オーストリア連邦首相府(Bundeskanzleramt)が提供するオープンガバメントデータ APIを基盤としています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

