ris-mcp-ts 1.7.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -13
- package/dist/generated/trefferliste-html.d.ts.map +1 -1
- package/dist/generated/trefferliste-html.js +1 -1
- package/dist/generated/trefferliste-html.js.map +1 -1
- package/dist/helpers.d.ts +11 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +17 -6
- package/dist/helpers.js.map +1 -1
- package/dist/structured-search.d.ts +72 -0
- package/dist/structured-search.d.ts.map +1 -0
- package/dist/structured-search.js +138 -0
- package/dist/structured-search.js.map +1 -0
- package/dist/tools/bezirke.js +1 -1
- package/dist/tools/bezirke.js.map +1 -1
- package/dist/tools/bundesgesetzblatt.js +1 -1
- package/dist/tools/bundesgesetzblatt.js.map +1 -1
- package/dist/tools/bundesrecht.js +1 -1
- package/dist/tools/bundesrecht.js.map +1 -1
- package/dist/tools/gemeinden.js +1 -1
- package/dist/tools/gemeinden.js.map +1 -1
- package/dist/tools/history.js +1 -1
- package/dist/tools/history.js.map +1 -1
- package/dist/tools/judikatur.js +1 -1
- package/dist/tools/judikatur.js.map +1 -1
- package/dist/tools/landesgesetzblatt.js +1 -1
- package/dist/tools/landesgesetzblatt.js.map +1 -1
- package/dist/tools/landesrecht.js +1 -1
- package/dist/tools/landesrecht.js.map +1 -1
- package/dist/tools/regierungsvorlagen.js +1 -1
- package/dist/tools/regierungsvorlagen.js.map +1 -1
- package/dist/tools/sonstige.js +1 -1
- package/dist/tools/sonstige.js.map +1 -1
- package/dist/tools/verordnungen.js +1 -1
- package/dist/tools/verordnungen.js.map +1 -1
- package/dist/types.d.ts +48 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +26 -2
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
[](https://nodejs.org/)
|
|
7
7
|
[](https://modelcontextprotocol.io/)
|
|
8
|
-
[](https://registry.modelcontextprotocol.io)
|
|
9
9
|
|
|
10
10
|
An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that gives AI assistants access to Austria's official legal database — the **Rechtsinformationssystem (RIS)**.
|
|
11
11
|
|
|
@@ -31,7 +31,7 @@ The server translates these natural language requests into structured API calls
|
|
|
31
31
|
|
|
32
32
|
## Features
|
|
33
33
|
|
|
34
|
-
- **
|
|
34
|
+
- **13 specialized tools** covering all major RIS collections
|
|
35
35
|
- **Federal law** (ABGB, StGB, UGB, ...) and **state law** for all 9 provinces
|
|
36
36
|
- **Court decisions** from 16 court types (Supreme Court, Constitutional Court, Administrative Court, ...)
|
|
37
37
|
- **Law gazettes** — Federal (BGBl) and state (LGBl)
|
|
@@ -154,6 +154,7 @@ npx -y ris-mcp-ts
|
|
|
154
154
|
| `ris_landesgesetzblatt` | Search State Law Gazettes (LGBl) |
|
|
155
155
|
| `ris_regierungsvorlagen` | Search government bills |
|
|
156
156
|
| `ris_dokument` | Retrieve full document text by ID or URL |
|
|
157
|
+
| `ris_dokument_abschnitt` | Return one section of an open document by character offset (feeds the document viewer widget) |
|
|
157
158
|
| `ris_bezirke` | Search district authority announcements |
|
|
158
159
|
| `ris_gemeinden` | Search municipal law and regulations |
|
|
159
160
|
| `ris_sonstige` | Search miscellaneous collections (8 sub-apps) |
|
|
@@ -225,7 +226,7 @@ Search Austrian federal laws such as ABGB, StGB, UGB, and more.
|
|
|
225
226
|
| `applikation` | string | "BrKons" (consolidated, default), "Begut" (drafts), "BgblAuth" (gazette), "Erv" (English translations) |
|
|
226
227
|
| `fassung_vom` | string | Date for historical version (YYYY-MM-DD) |
|
|
227
228
|
| `seite` | number | Page number (default: 1) |
|
|
228
|
-
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20) |
|
|
229
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
229
230
|
| `response_format` | string | "markdown" (default) or "json" |
|
|
230
231
|
|
|
231
232
|
All parameters are optional. At least one search parameter (`suchworte`, `titel`, or `paragraph`) should be provided.
|
|
@@ -252,7 +253,7 @@ Search state laws of the nine Austrian provinces.
|
|
|
252
253
|
| `gesetzesnummer` | string | Exact law number (Gesetzesnummer) of a specific state law |
|
|
253
254
|
| `applikation` | string | "LrKons" (consolidated, default) |
|
|
254
255
|
| `seite` | number | Page number |
|
|
255
|
-
| `limit` | number | Results per page |
|
|
256
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
256
257
|
| `response_format` | string | "markdown" or "json" |
|
|
257
258
|
|
|
258
259
|
</details>
|
|
@@ -280,7 +281,7 @@ Search court decisions from Austrian courts.
|
|
|
280
281
|
| `entscheidungsdatum_bis` | string | Decision date to (YYYY-MM-DD) |
|
|
281
282
|
| `sortierung` | string | Sort by decision date: "datum_auf" (oldest first) or "datum_ab" (newest first) |
|
|
282
283
|
| `seite` | number | Page number |
|
|
283
|
-
| `limit` | number | Results per page |
|
|
284
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
284
285
|
| `response_format` | string | "markdown" or "json" |
|
|
285
286
|
|
|
286
287
|
**Available `gerichtsbarkeit` values (16):**
|
|
@@ -322,7 +323,7 @@ Search the Federal Law Gazette (BGBl) — official publications of federal legis
|
|
|
322
323
|
| `titel` | string | Search in titles |
|
|
323
324
|
| `applikation` | string | "BgblAuth" (authentic from 2004, default), "BgblPdf" (PDF), "BgblAlt" (1945–2003) |
|
|
324
325
|
| `seite` | number | Page number |
|
|
325
|
-
| `limit` | number | Results per page |
|
|
326
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
326
327
|
| `response_format` | string | "markdown" or "json" |
|
|
327
328
|
|
|
328
329
|
</details>
|
|
@@ -343,7 +344,7 @@ Search State Law Gazettes (LGBl) — official publications of state legislation.
|
|
|
343
344
|
| `titel` | string | Search in titles |
|
|
344
345
|
| `applikation` | string | "LgblAuth" (authentic, default), "Lgbl" (general), "LgblNO" (Niederoesterreich) |
|
|
345
346
|
| `seite` | number | Page number |
|
|
346
|
-
| `limit` | number | Results per page |
|
|
347
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
347
348
|
| `response_format` | string | "markdown" or "json" |
|
|
348
349
|
|
|
349
350
|
</details>
|
|
@@ -366,7 +367,7 @@ Search government bills — draft legislation submitted to parliament.
|
|
|
366
367
|
| `sortierung_richtung` | string | Ascending or Descending |
|
|
367
368
|
| `sortierung_spalte` | string | Kurztitel, EinbringendeStelle, Beschlussdatum |
|
|
368
369
|
| `seite` | number | Page number |
|
|
369
|
-
| `limit` | number | Results per page |
|
|
370
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
370
371
|
| `response_format` | string | "markdown" or "json" |
|
|
371
372
|
|
|
372
373
|
</details>
|
|
@@ -408,6 +409,36 @@ At least one of `dokumentnummer` or `url` is required. Long documents are trunca
|
|
|
408
409
|
|
|
409
410
|
</details>
|
|
410
411
|
|
|
412
|
+
<details>
|
|
413
|
+
<summary><strong>ris_dokument_abschnitt</strong> — Document Section</summary>
|
|
414
|
+
|
|
415
|
+
Return one section of a document already open in the RIS document viewer. Intended for the viewer widget, not for direct use — for the full text of a document use `ris_dokument`.
|
|
416
|
+
|
|
417
|
+
The tool is declared app-only (`_meta.ui.visibility: ["app"]`): hosts that honour the flag hide it from the model and let only the viewer widget call it. It serves the same text `ris_dokument` produced, from the document cache where possible, so the offsets the viewer holds address the same document.
|
|
418
|
+
|
|
419
|
+
**Inputs:**
|
|
420
|
+
|
|
421
|
+
| Parameter | Type | Description |
|
|
422
|
+
|-----------|------|-------------|
|
|
423
|
+
| `dokumentnummer` | string | RIS document number of the open document - from the ris_dokument call that opened it |
|
|
424
|
+
| `url` | string | Direct URL of the open document, for documents opened by URL rather than by number |
|
|
425
|
+
| `offset` | number | Character offset into the document text; 0 returns the first section and the outline (default: 0) |
|
|
426
|
+
|
|
427
|
+
At least one of `dokumentnummer` or `url` is required. Each section is 25,000 characters long.
|
|
428
|
+
|
|
429
|
+
**Output (`structuredContent`):**
|
|
430
|
+
|
|
431
|
+
| Field | Type | Description |
|
|
432
|
+
|-------|------|-------------|
|
|
433
|
+
| `text` | string | The requested section of the document text |
|
|
434
|
+
| `total_length` | number | Length of the complete document text — compare across calls to detect that the document was re-fetched and offsets shifted |
|
|
435
|
+
| `next_offset` | number \| null | Offset to request for the following section, or null at the end of the document |
|
|
436
|
+
| `outline` | array | Jump targets of the document. Only returned for offset 0; empty when the document has no headings |
|
|
437
|
+
| `dokumentnummer` | string | RIS document number of the document this section belongs to (absent for documents opened by URL) |
|
|
438
|
+
| `source_url` | string | RIS URL the document text was rendered from |
|
|
439
|
+
|
|
440
|
+
</details>
|
|
441
|
+
|
|
411
442
|
<details>
|
|
412
443
|
<summary><strong>ris_bezirke</strong> — District Authority Announcements</summary>
|
|
413
444
|
|
|
@@ -428,7 +459,7 @@ Search announcements from district administrative authorities.
|
|
|
428
459
|
| `kundmachungsdatum_bis` | string | Date to (YYYY-MM-DD) |
|
|
429
460
|
| `im_ris_seit` | string | Added recently: EinerWoche, ZweiWochen, EinemMonat, DreiMonaten, SechsMonaten, EinemJahr |
|
|
430
461
|
| `seite` | number | Page number |
|
|
431
|
-
| `limit` | number | Results per page |
|
|
462
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
432
463
|
| `response_format` | string | "markdown" or "json" |
|
|
433
464
|
|
|
434
465
|
</details>
|
|
@@ -449,7 +480,7 @@ Search municipal law — local ordinances and regulations.
|
|
|
449
480
|
| `applikation` | string | "Gr" (municipal law, default) or "GrA" (official gazettes) |
|
|
450
481
|
| `im_ris_seit` | string | Added recently |
|
|
451
482
|
| `seite` | number | Page number |
|
|
452
|
-
| `limit` | number | Results per page |
|
|
483
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
453
484
|
| `response_format` | string | "markdown" or "json" |
|
|
454
485
|
|
|
455
486
|
Additional parameters depend on the selected application. See `Gr` (municipal law) and `GrA` (official gazettes) specific parameters in the source code.
|
|
@@ -472,7 +503,7 @@ Search miscellaneous legal collections and specialized databases.
|
|
|
472
503
|
| `datum_bis` | string | Date to (YYYY-MM-DD) |
|
|
473
504
|
| `im_ris_seit` | string | Added recently |
|
|
474
505
|
| `seite` | number | Page number |
|
|
475
|
-
| `limit` | number | Results per page |
|
|
506
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
476
507
|
| `response_format` | string | "markdown" or "json" |
|
|
477
508
|
|
|
478
509
|
**Available collections:**
|
|
@@ -506,7 +537,7 @@ Track document creation, modification, and deletion across the RIS database.
|
|
|
506
537
|
| `aenderungen_bis` | string | Changes to date (YYYY-MM-DD) |
|
|
507
538
|
| `include_deleted` | boolean | Include deleted documents (default: false) |
|
|
508
539
|
| `seite` | number | Page number |
|
|
509
|
-
| `limit` | number | Results per page |
|
|
540
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
510
541
|
| `response_format` | string | "markdown" or "json" |
|
|
511
542
|
|
|
512
543
|
**Available applications (36):**
|
|
@@ -537,11 +568,23 @@ Search state ordinance gazettes (Verordnungsblätter).
|
|
|
537
568
|
| `kundmachungsdatum_von` | string | Date from (YYYY-MM-DD) |
|
|
538
569
|
| `kundmachungsdatum_bis` | string | Date to (YYYY-MM-DD) |
|
|
539
570
|
| `seite` | number | Page number |
|
|
540
|
-
| `limit` | number | Results per page |
|
|
571
|
+
| `limit` | number | Results per page: 10, 20, 50, 100 (default: 20). Prefer 20; a page over the structured-payload budget is delivered at the next smaller size (see [Result size](#result-size)) |
|
|
541
572
|
| `response_format` | string | "markdown" or "json" |
|
|
542
573
|
|
|
543
574
|
</details>
|
|
544
575
|
|
|
576
|
+
### Result size
|
|
577
|
+
|
|
578
|
+
The text block of every tool is capped at 25,000 characters. The search tools'
|
|
579
|
+
`structuredContent` has its own budget of 60,000 characters (serialized); a
|
|
580
|
+
page that would exceed it is delivered at the next smaller RIS page size
|
|
581
|
+
(100 → 50 → 20 → 10) with `page`, `page_size`, `has_more` and the `query` echo
|
|
582
|
+
rewritten to that size and a German `notice` in both the text and the payload.
|
|
583
|
+
Page with `query.limit` and `query.seite` as echoed. Prefer `limit: 20`; 50
|
|
584
|
+
suits a broad survey; 100 is only ever delivered when the hits are small.
|
|
585
|
+
Self-hosters whose client accepts larger results can raise the budget with the
|
|
586
|
+
`RIS_STRUCTURED_CONTENT_BUDGET` environment variable (a positive integer).
|
|
587
|
+
|
|
545
588
|
## Development
|
|
546
589
|
|
|
547
590
|
### Prerequisites
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trefferliste-html.d.ts","sourceRoot":"","sources":["../../src/generated/trefferliste-html.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"trefferliste-html.d.ts","sourceRoot":"","sources":["../../src/generated/trefferliste-html.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,EAAE,MAAyt6U,CAAC"}
|