mcpField
R
ris

ris

ローカル
github.com/philrox法務・行政201 日前に更新

ris について

ris は、オーストリアの公式法令情報システム Rechtsinformationssystem(RIS)から文書を検索・取得する MCP サーバーです。法令、裁判所の判決、公報などを扱い、文書 ID または URL で全文を取得できます。

主な機能

  1. 01連邦法と州法の検索
  2. 0216 種類の裁判機関の判決検索
  3. 03連邦・州の法律公報の検索
  4. 04ID または URL による全文取得
  5. 05文書の変更履歴の追跡

活用シーン

  1. 01オーストリア民法典の条文を探す
  2. 02法律問題に関する裁判例を検索
  3. 03特定年に公布された法令を確認
  4. 04RIS ID から文書を取得

MCP 対応

RIS Open Government Data API への構造化リクエストに変換する 13 個の専用ツールを MCP クライアントに公開します。結果は Markdown または JSON で取得でき、対応ホストではインタラクティブな検索結果一覧と文書ビューアーを表示できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"philrox-ris": {
"command": "npx",
"args": [
"-y",
"ris-mcp-ts"
]
}
}
}
起動コマンドnpx -y ris-mcp-ts

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmris-mcp-ts1.0.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

RIS MCP サーバー

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

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_dokumentID または 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 内で動作する RIS ウィジェット。「ris-mcp / ris_bundesrecht」と表示されたコネクターの行の下に、「Verbrauchergewährleistungsgesetz」の検索結果が40件表示され、最初の項目が並んでいます。それぞれに「Bundesrecht」タグが付いています。ChatGPT 内で動作する同じ RIS ウィジェット。ChatGPT 独自の入力欄(プレースホルダーは「ChatGPT fragen」)の上に、「Verbrauchergewährleistungsgesetz」の検索結果が40件表示され、最初の項目が並んでいます。
Claude 内ChatGPT 内

ライトテーマで「Verjährung」を検索した判例検索結果。7,466件が表示され、展開された検索結果には裁判所、判決日、事件番号が表示されています。「Im RIS öffnen」、「PDF」、「Volltext in den Chat」の各操作と、画面下部のページ送りコントロールも確認できます。
ライトテーマでの詳細表示 — メタデータ、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 などのオーストリア連邦法を検索します。

入力:

パラメーター型説明
suchwortestring全文検索(例:「Mietrecht」、「Schadenersatz」)
titelstring法律のタイトルを検索(例:「ABGB」、「Strafgesetzbuch」)
paragraphstring条項番号(§1295の場合は「1295」、Art 7の場合は「7」など)
abschnitt_typstringparagraph が指す条項の種類:「Paragraph」(既定値)、「Artikel」(B-VGなど、条文で構成される法律)、「Anlage」(附属書)
applikationstring「BrKons」(統合版、既定値)、「Begut」(草案)、「BgblAuth」(官報)、「Erv」(英訳)
fassung_vomstring過去の版の日付(YYYY-MM-DD)
seitenumberページ番号(既定値:1)
limitnumber1ページあたりの結果数:10、20、50、100(既定値:20)。20を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果サイズを参照)
response_formatstring「markdown」(既定値)または「json」

すべてのパラメーターは任意です。少なくとも1つの検索パラメーター(suchworte、titel、またはparagraph)を指定してください。

注: applikation="Erv"(英訳)では内部的に異なるパラメーター名(SearchTerms/Title)が使用され、paragraph/abschnitt_typおよびfassung_vomには対応していません。

ris_landesrecht — 州法

オーストリアの9つの州の州法を検索します。

入力:

パラメーター型説明
suchwortestring全文検索
titelstring法律のタイトルを検索
bundeslandstring州:Wien、Niederoesterreich、Oberoesterreich、Salzburg、Tirol、Vorarlberg、Kaernten、Steiermark、Burgenland
paragraphstring条項番号(§1の場合は「1」、Art 7の場合は「7」など)
abschnitt_typstringparagraph が指す条項の種類:「Paragraph」(既定値)、「Artikel」、「Anlage」
fassung_vomstring過去の版の日付(YYYY-MM-DD)
gesetzesnummerstring特定の州法の正確な法律番号(Gesetzesnummer)
applikationstring「LrKons」(統合版、既定値)
seitenumberページ番号
limitnumber1ページあたりの結果数:10、20、50、100(既定値:20)。20を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果サイズを参照)
response_formatstring「markdown」または「json」
ris_judikatur — 裁判所の判決

オーストリアの裁判所の判決を検索します。

入力:

パラメーター型説明
suchwortestring判決の全文検索
gerichtsbarkeitstring検索対象の裁判所システム/データコレクション — RIS の「Applikation」(下記参照。デフォルトは「Justiz」)
dokumenttypstring「rechtssatz」(判旨のみ)、「entscheidungstext」(全文のみ)、または「beide」(両方、デフォルト)
gerichtstring管轄内の実際の裁判所(例:「OGH」、「OLG Wien」)。gerichtsbarkeit="Justiz" の場合に適用されます
rechtsgebietstring大まかな法分野:「Zivilrecht」または「Strafrecht」(Justiz)
fachgebietstringOGH の専門分野(例:「Arbeitsrecht」)。Justiz で、dokumenttyp が「entscheidungstext」または「beide」の場合に必要です
entscheidungsartstring決定の種類(例:「Erkenntnis」、「Beschluss」)。指定できる値は管轄によって異なります
sammlungsnummerstring集録番号:VfSlg(Vfgh)または VwSlg(Vwgh)
normstring法規範(例:「1319a ABGB」)
geschaeftszahlstring事件番号(例:「5Ob234/20b」)
entscheidungsdatum_vonstring決定日の開始(YYYY-MM-DD)
entscheidungsdatum_bisstring決定日の終了(YYYY-MM-DD)
sortierungstring決定日順で並べ替え:「datum_auf」(古い順)または「datum_ab」(新しい順)
seitenumberページ番号
limitnumber1ページあたりの結果数:10、20、50、100(デフォルト:20)。20 を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果サイズを参照)
response_formatstring「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)を検索します。連邦法令の公式な公示が掲載されています。

入力:

パラメーター型説明
bgblnummerstring官報番号(例:「120」)
teilstring「1」(I=法律)、「2」(II=規則)、「3」(III=条約)
jahrgangstring年(例:「2023」)
suchwortestring全文検索
titelstringタイトルを検索
applikationstring「BgblAuth」(2004年以降の真正版、デフォルト)、「BgblPdf」(PDF)、「BgblAlt」(1945~2003年)
seitenumberページ番号
limitnumber1ページあたりの結果数:10、20、50、100(デフォルト:20)。20 を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果サイズを参照)
response_formatstring「markdown」または「json」
ris_landesgesetzblatt — 州官報

州官報(LGBl)を検索します。州法令の公式な公示が掲載されています。

入力:

パラメーター型説明
lgblnummerstring官報番号(例:「50」)
jahrgangstring年(例:「2023」)
bundeslandstring州名
suchwortestring全文検索
titelstringタイトルを検索
applikationstring「LgblAuth」(真正版、デフォルト)、「Lgbl」(一般)、「LgblNO」(ニーダーエスターライヒ州)
seitenumberページ番号
limitnumberページあたりの結果数:10、20、50、100(デフォルト:20)。20 を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果のサイズを参照)
response_formatstring「markdown」または「json」
ris_regierungsvorlagen — 政府法案

政府法案、つまり議会に提出された法律の草案を検索します。

入力:

パラメーター型説明
suchwortestring全文検索
titelstringタイトルを検索
beschlussdatum_vonstring承認日(開始)(YYYY-MM-DD)
beschlussdatum_bisstring承認日(終了)(YYYY-MM-DD)
einbringende_stellestring提出省庁(例:BKA、BMF、BMJ、BMK)
im_ris_seitstring最近追加された期間:EinerWoche、ZweiWochen、EinemMonat、DreiMonaten、SechsMonaten、EinemJahr
sortierung_richtungstring昇順または降順
sortierung_spaltestringKurztitel、EinbringendeStelle、Beschlussdatum
seitenumberページ番号
limitnumberページあたりの結果数:10、20、50、100(デフォルト:20)。20 を推奨します。構造化ペイロードの上限を超えるページは、次に小さいサイズで返されます(結果のサイズを参照)
response_formatstring「markdown」または「json」
ris_dokument — 文書全文の取得

ID または URL を指定して、法律文書の全文を取得します。2 段階の方法を使用し、まず URL に直接アクセスし、次に検索 API にフォールバックします。

入力:

パラメーター型説明
dokumentnummerstringRIS 文書番号(例:「NOR40052761」)
urlstring文書の内容への直接 URL
response_formatstring「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 が生成したものと同じテキストを返すため、ビューアーが保持するオフセットは同じ文書を参照します。

入力:

パラメーター型説明
dokumentnummerstring開いている文書のRIS文書番号。文書を開いたris_dokumentの呼び出しから取得します
urlstring番号ではなくURLで開いた文書の直接URL
offsetnumber文書テキスト内の文字オフセット。0を指定すると、最初のセクションとアウトラインが返されます(デフォルト:0)

dokumentnummerまたはurlのいずれかが必須です。各セクションの長さは25,000文字です。

出力(structuredContent):

フィールド型説明
textstring要求した文書テキストのセクション
total_lengthnumber文書テキスト全体の長さ。呼び出し間で比較し、文書が再取得されてオフセットがずれていないか確認します
next_offsetnumber | null次のセクションを要求するオフセット。文書の末尾ではnullです
outlinearray文書内のジャンプ先。offsetが0の場合のみ返されます。見出しがない文書では空です
dokumentnummerstringこのセクションが属する文書のRIS文書番号(URLで開いた文書にはありません)
source_urlstring文書テキストのレンダリング元となったRISのURL
ris_bezirke — 地区行政機関の公告

地区行政機関の公告を検索します。

注: 以下でのみ利用できます:Niederoesterreich、Oberoesterreich、Tirol、Vorarlberg、Burgenland、Steiermark。

入力:

パラメーター型説明
suchwortestring全文検索
titelstringタイトルを検索
bundeslandstring州名
bezirksverwaltungsbehoerdestring地区行政機関名
kundmachungsnummerstring公告番号
kundmachungsdatum_vonstring開始日(YYYY-MM-DD)
kundmachungsdatum_bisstring終了日(YYYY-MM-DD)
im_ris_seitstring最近追加された期間:EinerWoche、ZweiWochen、EinemMonat、DreiMonaten、SechsMonaten、EinemJahr
seitenumberページ番号
limitnumber1ページあたりの結果数:10、20、50、100(デフォルト:20)。20を推奨します。構造化ペイロードの予算を超えるページは、次に小さいサイズで返されます(結果サイズを参照)
response_formatstring"markdown"または"json"
ris_gemeinden — 市町村法

市町村法(地域の条例および規則)を検索します。

入力:

パラメーター型説明
suchwortestring全文検索
titelstringタイトルを検索
bundeslandstring州名
gemeindestring市町村名(例:"Graz")
applikationstring"Gr"(市町村法、デフォルト)または"GrA"(官報)
im_ris_seitstring最近追加された期間
seitenumberページ番号
limitnumber1ページあたりの結果数:10、20、50、100(デフォルト:20)。20を推奨します。構造化ペイロードの予算を超えるページは、次に小さいサイズで返されます(結果サイズを参照)
response_formatstring"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 buildTypeScript をコンパイルします
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 を参照してください。

ライセンス

MIT


オーストリア連邦首相府(Bundeskanzleramt)が提供するオープンガバメントデータ APIを基盤としています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。