ris-mcp-ts 1.1.2 → 1.2.4
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 +39 -13
- package/dist/client.d.ts +22 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +124 -57
- package/dist/client.js.map +1 -1
- package/dist/constants.d.ts +12 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +57 -0
- package/dist/constants.js.map +1 -1
- package/dist/formatting.d.ts.map +1 -1
- package/dist/formatting.js +33 -2
- package/dist/formatting.js.map +1 -1
- package/dist/http.d.ts +20 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +106 -11
- package/dist/http.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +41 -4
- package/dist/parser.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/bezirke.d.ts.map +1 -1
- package/dist/tools/bezirke.js +26 -21
- package/dist/tools/bezirke.js.map +1 -1
- package/dist/tools/bundesgesetzblatt.d.ts.map +1 -1
- package/dist/tools/bundesgesetzblatt.js +26 -20
- package/dist/tools/bundesgesetzblatt.js.map +1 -1
- package/dist/tools/bundesrecht.d.ts +20 -0
- package/dist/tools/bundesrecht.d.ts.map +1 -1
- package/dist/tools/bundesrecht.js +77 -39
- package/dist/tools/bundesrecht.js.map +1 -1
- package/dist/tools/dokument.d.ts.map +1 -1
- package/dist/tools/dokument.js +52 -123
- package/dist/tools/dokument.js.map +1 -1
- package/dist/tools/gemeinden.d.ts.map +1 -1
- package/dist/tools/gemeinden.js +68 -51
- package/dist/tools/gemeinden.js.map +1 -1
- package/dist/tools/history.d.ts.map +1 -1
- package/dist/tools/history.js +26 -21
- package/dist/tools/history.js.map +1 -1
- package/dist/tools/judikatur.d.ts +27 -0
- package/dist/tools/judikatur.d.ts.map +1 -1
- package/dist/tools/judikatur.js +108 -25
- package/dist/tools/judikatur.js.map +1 -1
- package/dist/tools/landesgesetzblatt.d.ts.map +1 -1
- package/dist/tools/landesgesetzblatt.js +23 -18
- package/dist/tools/landesgesetzblatt.js.map +1 -1
- package/dist/tools/landesrecht.d.ts +20 -0
- package/dist/tools/landesrecht.d.ts.map +1 -1
- package/dist/tools/landesrecht.js +80 -29
- package/dist/tools/landesrecht.js.map +1 -1
- package/dist/tools/regierungsvorlagen.d.ts.map +1 -1
- package/dist/tools/regierungsvorlagen.js +56 -51
- package/dist/tools/regierungsvorlagen.js.map +1 -1
- package/dist/tools/sonstige.d.ts.map +1 -1
- package/dist/tools/sonstige.js +94 -89
- package/dist/tools/sonstige.js.map +1 -1
- package/dist/tools/verordnungen.d.ts.map +1 -1
- package/dist/tools/verordnungen.js +23 -18
- package/dist/tools/verordnungen.js.map +1 -1
- package/dist/types.d.ts +104 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +45 -1
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +13 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +15 -0
- package/dist/version.js.map +1 -0
- package/package.json +41 -25
package/dist/tools/gemeinden.js
CHANGED
|
@@ -5,9 +5,11 @@ import { z } from 'zod';
|
|
|
5
5
|
import { searchGemeinden } from '../client.js';
|
|
6
6
|
import { GEMEINDEN_INDEX_VALUES, IM_RIS_SEIT_VALUES } from '../constants.js';
|
|
7
7
|
import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
|
|
8
|
-
import { DateSchema } from '../types.js';
|
|
8
|
+
import { DateSchema, LimitSchema, SeiteSchema } from '../types.js';
|
|
9
9
|
export function registerGemeindenTool(server) {
|
|
10
|
-
server.
|
|
10
|
+
server.registerTool('ris_gemeinden', {
|
|
11
|
+
title: 'Gemeinderecht durchsuchen',
|
|
12
|
+
description: `Search Austrian municipal law (Gemeinderecht).
|
|
11
13
|
|
|
12
14
|
Use this tool to find municipal regulations and local ordinances.
|
|
13
15
|
|
|
@@ -19,55 +21,70 @@ Example queries:
|
|
|
19
21
|
- gemeinde="Graz", suchworte="Parkgebuehren"
|
|
20
22
|
- bundesland="Tirol", titel="Gebuehrenordnung"
|
|
21
23
|
- applikation="Gr", index="Baurecht"
|
|
22
|
-
- applikation="GrA", bezirk="Bregenz"`,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
.optional()
|
|
64
|
-
.describe('
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
24
|
+
- applikation="GrA", bezirk="Bregenz"`,
|
|
25
|
+
inputSchema: {
|
|
26
|
+
suchworte: z.string().max(1000).optional().describe('Full-text search terms'),
|
|
27
|
+
titel: z.string().max(500).optional().describe('Search in titles'),
|
|
28
|
+
bundesland: z
|
|
29
|
+
.string()
|
|
30
|
+
.max(200)
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('Filter by state - Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien'),
|
|
33
|
+
gemeinde: z.string().max(200).optional().describe('Municipality name (e.g., "Graz")'),
|
|
34
|
+
applikation: z
|
|
35
|
+
.enum(['Gr', 'GrA'])
|
|
36
|
+
.default('Gr')
|
|
37
|
+
.describe('"Gr" (municipal law, default) or "GrA" (cross-border/Amtsblätter)'),
|
|
38
|
+
// Parameters for Gr application
|
|
39
|
+
geschaeftszahl: z
|
|
40
|
+
.string()
|
|
41
|
+
.max(200)
|
|
42
|
+
.optional()
|
|
43
|
+
.describe('File number/Aktenzeichen (Gr only)'),
|
|
44
|
+
index: z
|
|
45
|
+
.enum(GEMEINDEN_INDEX_VALUES)
|
|
46
|
+
.optional()
|
|
47
|
+
.describe('Subject area index (Gr only) - VertretungskoerperUndAllgemeineVerwaltung, OeffentlicheOrdnungUndSicherheit, UnterrichtErziehungSportUndWissenschaft, KunstKulturUndKultus, SozialeWohlfahrtUndWohnbaufoerderung, Gesundheit, StraßenUndWasserbauVerkehr, Wirtschaftsfoerderung, Dienstleistungen, Finanzwirtschaft'),
|
|
48
|
+
fassung_vom: DateSchema.optional().describe('Historical version date (YYYY-MM-DD, Gr only)'),
|
|
49
|
+
// Parameters for GrA application
|
|
50
|
+
bezirk: z
|
|
51
|
+
.string()
|
|
52
|
+
.max(200)
|
|
53
|
+
.optional()
|
|
54
|
+
.describe('District name (GrA only, e.g., "Bregenz")'),
|
|
55
|
+
gemeindeverband: z
|
|
56
|
+
.string()
|
|
57
|
+
.max(200)
|
|
58
|
+
.optional()
|
|
59
|
+
.describe('Municipal association name (GrA only)'),
|
|
60
|
+
kundmachungsnummer: z
|
|
61
|
+
.string()
|
|
62
|
+
.max(100)
|
|
63
|
+
.optional()
|
|
64
|
+
.describe('Announcement number (GrA only)'),
|
|
65
|
+
kundmachungsdatum_von: DateSchema.optional().describe('Announcement date from (YYYY-MM-DD, GrA only)'),
|
|
66
|
+
kundmachungsdatum_bis: DateSchema.optional().describe('Announcement date to (YYYY-MM-DD, GrA only)'),
|
|
67
|
+
// Common parameters
|
|
68
|
+
im_ris_seit: z
|
|
69
|
+
.enum(IM_RIS_SEIT_VALUES)
|
|
70
|
+
.optional()
|
|
71
|
+
.describe('Filter by time in RIS - EinerWoche, ZweiWochen, EinemMonat, DreiMonaten, SechsMonaten, EinemJahr'),
|
|
72
|
+
sortierung_richtung: z
|
|
73
|
+
.enum(['Ascending', 'Descending'])
|
|
74
|
+
.optional()
|
|
75
|
+
.describe('Sort direction'),
|
|
76
|
+
sortierung_spalte_gr: z
|
|
77
|
+
.enum(['Geschaeftszahl', 'Bundesland', 'Gemeinde'])
|
|
78
|
+
.optional()
|
|
79
|
+
.describe('Sort column (Gr only)'),
|
|
80
|
+
seite: SeiteSchema.describe('Page number (default: 1)'),
|
|
81
|
+
limit: LimitSchema.describe('Results per page: 10, 20, 50, or 100 (default: 20)'),
|
|
82
|
+
response_format: z
|
|
83
|
+
.enum(['markdown', 'json'])
|
|
84
|
+
.default('markdown')
|
|
85
|
+
.describe('"markdown" (default) or "json"'),
|
|
86
|
+
},
|
|
87
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
71
88
|
}, async (args) => {
|
|
72
89
|
const { suchworte, titel, bundesland, gemeinde, applikation, geschaeftszahl, index, fassung_vom, bezirk, gemeindeverband, kundmachungsnummer, kundmachungsdatum_von, kundmachungsdatum_bis, im_ris_seit, sortierung_richtung, sortierung_spalte_gr, seite, limit, response_format, } = args;
|
|
73
90
|
if (!hasAnyParam(args, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemeinden.js","sourceRoot":"","sources":["../../src/tools/gemeinden.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,6BAA6B,EAC7B,iBAAiB,EACjB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"gemeinden.js","sourceRoot":"","sources":["../../src/tools/gemeinden.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/tools/history.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/tools/history.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6E3D"}
|
package/dist/tools/history.js
CHANGED
|
@@ -5,9 +5,11 @@ import { z } from 'zod';
|
|
|
5
5
|
import { searchHistory } from '../client.js';
|
|
6
6
|
import { VALID_HISTORY_APPLICATIONS } from '../constants.js';
|
|
7
7
|
import { addOptionalParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
|
|
8
|
-
import { DateSchema, limitToDokumenteProSeite } from '../types.js';
|
|
8
|
+
import { DateSchema, LimitSchema, limitToDokumenteProSeite, SeiteSchema } from '../types.js';
|
|
9
9
|
export function registerHistoryTool(server) {
|
|
10
|
-
server.
|
|
10
|
+
server.registerTool('ris_history', {
|
|
11
|
+
title: 'Änderungshistorie durchsuchen',
|
|
12
|
+
description: `Search document change history (Aenderungshistorie).
|
|
11
13
|
|
|
12
14
|
Use this tool to track changes to legal documents over time.
|
|
13
15
|
Shows when documents were created, modified, or deleted.
|
|
@@ -20,25 +22,28 @@ Available applications (30 total):
|
|
|
20
22
|
|
|
21
23
|
Example queries:
|
|
22
24
|
- applikation="Bundesnormen", aenderungen_von="2024-01-01", aenderungen_bis="2024-01-31"
|
|
23
|
-
- applikation="Justiz", aenderungen_von="2024-06-01"`,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
- applikation="Justiz", aenderungen_von="2024-06-01"`,
|
|
26
|
+
inputSchema: {
|
|
27
|
+
applikation: z
|
|
28
|
+
.enum(VALID_HISTORY_APPLICATIONS)
|
|
29
|
+
.describe('Application to search history for - categories: Bundesrecht (Bundesnormen, BgblAuth, BgblAlt, BgblPdf, RegV), ' +
|
|
30
|
+
'Landesrecht (Landesnormen, LgblAuth, Lgbl, LgblNO, Vbl, Gemeinderecht), ' +
|
|
31
|
+
'Judikatur (Justiz, Vfgh, Vwgh, Bvwg, Lvwg, Dsk, Gbk, Pvak, AsylGH), ' +
|
|
32
|
+
'Sonstige (Bvb, Mrp, Erlaesse, PruefGewO, Avsv, Spg, KmGer, Dok, Normenliste)'),
|
|
33
|
+
aenderungen_von: DateSchema.optional().describe('Changes from date (YYYY-MM-DD)'),
|
|
34
|
+
aenderungen_bis: DateSchema.optional().describe('Changes to date (YYYY-MM-DD)'),
|
|
35
|
+
include_deleted: z
|
|
36
|
+
.boolean()
|
|
37
|
+
.default(false)
|
|
38
|
+
.describe('Include deleted documents in results (default: false)'),
|
|
39
|
+
seite: SeiteSchema.describe('Page number (default: 1)'),
|
|
40
|
+
limit: LimitSchema.describe('Results per page: 10, 20, 50, or 100 (default: 20)'),
|
|
41
|
+
response_format: z
|
|
42
|
+
.enum(['markdown', 'json'])
|
|
43
|
+
.default('markdown')
|
|
44
|
+
.describe('"markdown" (default) or "json"'),
|
|
45
|
+
},
|
|
46
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
42
47
|
}, async (args) => {
|
|
43
48
|
const { applikation, aenderungen_von, aenderungen_bis, include_deleted, seite, limit, response_format, } = args;
|
|
44
49
|
if (!hasAnyParam(args, ['aenderungen_von', 'aenderungen_bis'])) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/tools/history.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,iBAAiB,EACjB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/tools/history.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,iBAAiB,EACjB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7F,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE;;;;;;;;;;;;;uDAaoC;QACjD,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,IAAI,CAAC,0BAA0B,CAAC;iBAChC,QAAQ,CACP,gHAAgH;gBAC9G,0EAA0E;gBAC1E,sEAAsE;gBACtE,8EAA8E,CACjF;YACH,eAAe,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACjF,eAAe,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC/E,eAAe,EAAE,CAAC;iBACf,OAAO,EAAE;iBACT,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,uDAAuD,CAAC;YACpE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACvD,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YACjF,eAAe,EAAE,CAAC;iBACf,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;iBAC1B,OAAO,CAAC,UAAU,CAAC;iBACnB,QAAQ,CAAC,gCAAgC,CAAC;SAC9C;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACzD,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EACJ,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EACf,KAAK,EACL,KAAK,EACL,eAAe,GAChB,GAAG,IAAI,CAAC;QAET,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,6BAA6B,CAAC;gBACnC,4CAA4C;gBAC5C,6CAA6C;aAC9C,CAAC,CAAC;QACL,CAAC;QAED,4DAA4D;QAC5D,MAAM,MAAM,GAA4B;YACtC,SAAS,EAAE,WAAW;YACtB,iBAAiB,EAAE,wBAAwB,CAAC,KAAK,CAAC;YAClD,YAAY,EAAE,KAAK;SACpB,CAAC;QAEF,iBAAiB,CAAC,MAAM,EAAE;YACxB,CAAC,eAAe,EAAE,gBAAgB,CAAC;YACnC,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,eAAe;YAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC;QAEhE,OAAO,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACnE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -2,5 +2,32 @@
|
|
|
2
2
|
* Tool: ris_judikatur — Search Austrian court decisions (Judikatur).
|
|
3
3
|
*/
|
|
4
4
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
/** Resolved arguments for building Judikatur API params (after Zod defaults). */
|
|
6
|
+
export interface JudikaturParamsArgs {
|
|
7
|
+
gerichtsbarkeit: string;
|
|
8
|
+
dokumenttyp: 'rechtssatz' | 'entscheidungstext' | 'beide';
|
|
9
|
+
suchworte?: string;
|
|
10
|
+
norm?: string;
|
|
11
|
+
geschaeftszahl?: string;
|
|
12
|
+
gericht?: string;
|
|
13
|
+
rechtsgebiet?: string;
|
|
14
|
+
fachgebiet?: string;
|
|
15
|
+
entscheidungsart?: string;
|
|
16
|
+
sammlungsnummer?: string;
|
|
17
|
+
sortierung?: 'datum_auf' | 'datum_ab';
|
|
18
|
+
entscheidungsdatum_von?: string;
|
|
19
|
+
entscheidungsdatum_bis?: string;
|
|
20
|
+
seite: number;
|
|
21
|
+
limit: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build the RIS API parameter object for a Judikatur search.
|
|
25
|
+
*
|
|
26
|
+
* Note: filters that only apply to certain jurisdictions (e.g. Gericht,
|
|
27
|
+
* Rechtsgebiet, Fachgebiet for Justiz; Sammlungsnummer for Vfgh/Vwgh) are
|
|
28
|
+
* passed through as-is — the API silently ignores inapplicable ones rather
|
|
29
|
+
* than erroring, so no per-jurisdiction gating is needed.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildJudikaturParams(args: JudikaturParamsArgs): Record<string, unknown>;
|
|
5
32
|
export declare function registerJudikaturTool(server: McpServer): void;
|
|
6
33
|
//# sourceMappingURL=judikatur.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"judikatur.d.ts","sourceRoot":"","sources":["../../src/tools/judikatur.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"judikatur.d.ts","sourceRoot":"","sources":["../../src/tools/judikatur.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,YAAY,GAAG,mBAAmB,GAAG,OAAO,CAAC;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgDvF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2H7D"}
|
package/dist/tools/judikatur.js
CHANGED
|
@@ -3,28 +3,102 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { searchJudikatur } from '../client.js';
|
|
6
|
+
import { JUDIKATUR_FACHGEBIETE } from '../constants.js';
|
|
6
7
|
import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
|
|
7
|
-
import { DateSchema, JudikaturGerichtSchema } from '../types.js';
|
|
8
|
+
import { DateSchema, JudikaturDokumenttypSchema, JudikaturGerichtSchema, JudikaturRechtsgebietSchema, JudikaturSortierungSchema, LimitSchema, SeiteSchema, } from '../types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Build the RIS API parameter object for a Judikatur search.
|
|
11
|
+
*
|
|
12
|
+
* Note: filters that only apply to certain jurisdictions (e.g. Gericht,
|
|
13
|
+
* Rechtsgebiet, Fachgebiet for Justiz; Sammlungsnummer for Vfgh/Vwgh) are
|
|
14
|
+
* passed through as-is — the API silently ignores inapplicable ones rather
|
|
15
|
+
* than erroring, so no per-jurisdiction gating is needed.
|
|
16
|
+
*/
|
|
17
|
+
export function buildJudikaturParams(args) {
|
|
18
|
+
const { gerichtsbarkeit, dokumenttyp, suchworte, norm, geschaeftszahl, gericht, rechtsgebiet, fachgebiet, entscheidungsart, sammlungsnummer, sortierung, entscheidungsdatum_von, entscheidungsdatum_bis, seite, limit, } = args;
|
|
19
|
+
const params = buildBaseParams(gerichtsbarkeit, limit, seite);
|
|
20
|
+
addOptionalParams(params, [
|
|
21
|
+
[suchworte, 'Suchworte'],
|
|
22
|
+
[norm, 'Norm'],
|
|
23
|
+
[geschaeftszahl, 'Geschaeftszahl'],
|
|
24
|
+
[gericht, 'Gericht'],
|
|
25
|
+
[rechtsgebiet, 'Rechtsgebiet'],
|
|
26
|
+
[fachgebiet, 'Fachgebiet'],
|
|
27
|
+
[entscheidungsart, 'Entscheidungsart'],
|
|
28
|
+
[sammlungsnummer, 'Sammlungsnummer'],
|
|
29
|
+
[entscheidungsdatum_von, 'EntscheidungsdatumVon'],
|
|
30
|
+
[entscheidungsdatum_bis, 'EntscheidungsdatumBis'],
|
|
31
|
+
]);
|
|
32
|
+
// The API searches only Rechtssätze by default; enable the requested corpora.
|
|
33
|
+
if (dokumenttyp === 'rechtssatz' || dokumenttyp === 'beide') {
|
|
34
|
+
params['Dokumenttyp.SucheInRechtssaetzen'] = 'true';
|
|
35
|
+
}
|
|
36
|
+
if (dokumenttyp === 'entscheidungstext' || dokumenttyp === 'beide') {
|
|
37
|
+
params['Dokumenttyp.SucheInEntscheidungstexten'] = 'true';
|
|
38
|
+
}
|
|
39
|
+
if (sortierung) {
|
|
40
|
+
params['Sortierung.SortDirection'] = sortierung === 'datum_auf' ? 'Ascending' : 'Descending';
|
|
41
|
+
params['Sortierung.SortedByColumn'] = 'Datum';
|
|
42
|
+
}
|
|
43
|
+
return params;
|
|
44
|
+
}
|
|
8
45
|
export function registerJudikaturTool(server) {
|
|
9
|
-
server.
|
|
46
|
+
server.registerTool('ris_judikatur', {
|
|
47
|
+
title: 'Judikatur durchsuchen',
|
|
48
|
+
description: `Search Austrian court decisions (Judikatur).
|
|
49
|
+
|
|
50
|
+
Use this tool to find court decisions from Austrian courts. Choose the
|
|
51
|
+
jurisdiction via "gerichtsbarkeit" (which court system to search).
|
|
10
52
|
|
|
11
|
-
|
|
53
|
+
RIS distinguishes two document kinds, controlled by "dokumenttyp":
|
|
54
|
+
- Rechtssatz: abstract legal principle / headnote (Leitsatz) distilled from a decision
|
|
55
|
+
- Entscheidungstext: the full decision text including reasoning (Begruendung)
|
|
56
|
+
The default "beide" searches both for the most complete results.
|
|
12
57
|
|
|
13
|
-
Example:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
58
|
+
Example queries:
|
|
59
|
+
- gerichtsbarkeit="Vfgh", suchworte="Grundrecht" -> Constitutional Court decisions
|
|
60
|
+
- suchworte="Schadenersatz", gericht="OGH" -> Only Supreme Court (OGH) decisions
|
|
61
|
+
- norm="1295 ABGB" -> Which decisions cite §1295 ABGB?
|
|
62
|
+
- gerichtsbarkeit="Justiz", fachgebiet="Arbeitsrecht", sortierung="datum_ab" -> Newest labor-law decisions`,
|
|
63
|
+
inputSchema: {
|
|
64
|
+
suchworte: z.string().max(1000).optional().describe('Full-text search in decisions'),
|
|
65
|
+
gerichtsbarkeit: JudikaturGerichtSchema.default('Justiz').describe('Court system / data collection to search (maps to the RIS "Applikation"): "Justiz" (OGH/OLG/LG/BG, default), "Vfgh" (Constitutional), "Vwgh" (Administrative), "Bvwg", "Lvwg", "Dsk" (Data Protection), "AsylGH", "Normenliste", "Pvak", "Gbk", "Dok", plus historical (dissolved 2014, stock still searchable): "Verg", "Uvs", "Ubas", "Umse", "Bks"'),
|
|
66
|
+
dokumenttyp: JudikaturDokumenttypSchema.default('beide').describe('Which document kind to search: "rechtssatz" (abstract headnotes only), "entscheidungstext" (full decision texts only), or "beide" (both, default). The RIS API otherwise searches only Rechtssätze.'),
|
|
67
|
+
gericht: z
|
|
68
|
+
.string()
|
|
69
|
+
.max(100)
|
|
70
|
+
.optional()
|
|
71
|
+
.describe('Filter by the actual court within the jurisdiction (e.g., "OGH", "OLG Wien"). Applies to gerichtsbarkeit="Justiz".'),
|
|
72
|
+
rechtsgebiet: JudikaturRechtsgebietSchema.optional().describe('Broad legal area: "Zivilrecht" or "Strafrecht". Applies to gerichtsbarkeit="Justiz".'),
|
|
73
|
+
fachgebiet: z
|
|
74
|
+
.enum(JUDIKATUR_FACHGEBIETE)
|
|
75
|
+
.optional()
|
|
76
|
+
.describe('Subject area of OGH case law (e.g., "Arbeitsrecht", "Insolvenzrecht"). Applies to gerichtsbarkeit="Justiz" and only matches full decision texts (requires dokumenttyp "entscheidungstext" or "beide").'),
|
|
77
|
+
entscheidungsart: z
|
|
78
|
+
.string()
|
|
79
|
+
.max(100)
|
|
80
|
+
.optional()
|
|
81
|
+
.describe('Type of decision. Allowed values differ by jurisdiction, e.g. Vfgh/Vwgh/Bvwg: "Beschluss", "Erkenntnis"; Lvwg also "Bescheid"; Justiz: "Verstärkter Senat", "Ordentliche Erledigung (Sachentscheidung)".'),
|
|
82
|
+
norm: z.string().max(500).optional().describe('Search by legal norm (e.g., "1319a ABGB")'),
|
|
83
|
+
sammlungsnummer: z
|
|
84
|
+
.string()
|
|
85
|
+
.max(100)
|
|
86
|
+
.optional()
|
|
87
|
+
.describe('Collection number: VfSlg (gerichtsbarkeit="Vfgh") or VwSlg (gerichtsbarkeit="Vwgh").'),
|
|
88
|
+
geschaeftszahl: z.string().max(200).optional().describe('Case number (e.g., "5Ob234/20b")'),
|
|
89
|
+
entscheidungsdatum_von: DateSchema.optional().describe('Decision date from (YYYY-MM-DD)'),
|
|
90
|
+
entscheidungsdatum_bis: DateSchema.optional().describe('Decision date to (YYYY-MM-DD)'),
|
|
91
|
+
sortierung: JudikaturSortierungSchema.optional().describe('Sort by decision date: "datum_auf" (oldest first) or "datum_ab" (newest first).'),
|
|
92
|
+
seite: SeiteSchema.describe('Page number'),
|
|
93
|
+
limit: LimitSchema.describe('Results per page: 10, 20, 50, or 100 (default: 20)'),
|
|
94
|
+
response_format: z
|
|
95
|
+
.enum(['markdown', 'json'])
|
|
96
|
+
.default('markdown')
|
|
97
|
+
.describe('"markdown" or "json"'),
|
|
98
|
+
},
|
|
99
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
26
100
|
}, async (args) => {
|
|
27
|
-
const { suchworte, gericht, norm, geschaeftszahl, entscheidungsdatum_von, entscheidungsdatum_bis, seite, limit, response_format, } = args;
|
|
101
|
+
const { suchworte, gerichtsbarkeit, dokumenttyp, gericht, rechtsgebiet, fachgebiet, entscheidungsart, norm, sammlungsnummer, geschaeftszahl, entscheidungsdatum_von, entscheidungsdatum_bis, sortierung, seite, limit, response_format, } = args;
|
|
28
102
|
if (!hasAnyParam(args, ['suchworte', 'norm', 'geschaeftszahl'])) {
|
|
29
103
|
return createValidationErrorResponse([
|
|
30
104
|
'suchworte` fuer Volltextsuche',
|
|
@@ -32,14 +106,23 @@ Example: gericht="Vfgh", suchworte="Grundrecht"`, {
|
|
|
32
106
|
'geschaeftszahl` fuer Suche nach Geschaeftszahl',
|
|
33
107
|
]);
|
|
34
108
|
}
|
|
35
|
-
const params =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
109
|
+
const params = buildJudikaturParams({
|
|
110
|
+
gerichtsbarkeit,
|
|
111
|
+
dokumenttyp,
|
|
112
|
+
suchworte,
|
|
113
|
+
norm,
|
|
114
|
+
geschaeftszahl,
|
|
115
|
+
gericht,
|
|
116
|
+
rechtsgebiet,
|
|
117
|
+
fachgebiet,
|
|
118
|
+
entscheidungsart,
|
|
119
|
+
sammlungsnummer,
|
|
120
|
+
sortierung,
|
|
121
|
+
entscheidungsdatum_von,
|
|
122
|
+
entscheidungsdatum_bis,
|
|
123
|
+
seite,
|
|
124
|
+
limit,
|
|
125
|
+
});
|
|
43
126
|
return executeSearchTool(searchJudikatur, params, response_format);
|
|
44
127
|
});
|
|
45
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"judikatur.js","sourceRoot":"","sources":["../../src/tools/judikatur.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,6BAA6B,EAC7B,iBAAiB,EACjB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"judikatur.js","sourceRoot":"","sources":["../../src/tools/judikatur.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"landesgesetzblatt.d.ts","sourceRoot":"","sources":["../../src/tools/landesgesetzblatt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"landesgesetzblatt.d.ts","sourceRoot":"","sources":["../../src/tools/landesgesetzblatt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2ErE"}
|
|
@@ -5,31 +5,36 @@ import { z } from 'zod';
|
|
|
5
5
|
import { searchLandesrecht } from '../client.js';
|
|
6
6
|
import { BUNDESLAND_MAPPING } from '../constants.js';
|
|
7
7
|
import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
|
|
8
|
-
import { LandesrechtBundeslandSchema } from '../types.js';
|
|
8
|
+
import { LandesrechtBundeslandSchema, LimitSchema, SeiteSchema } from '../types.js';
|
|
9
9
|
export function registerLandesgesetzblattTool(server) {
|
|
10
|
-
server.
|
|
10
|
+
server.registerTool('ris_landesgesetzblatt', {
|
|
11
|
+
title: 'Landesgesetzblatt durchsuchen',
|
|
12
|
+
description: `Search Austrian State Law Gazettes (Landesgesetzblatt).
|
|
11
13
|
|
|
12
14
|
Use this tool to find official publications of state/provincial laws.
|
|
13
15
|
Covers all 9 federal states (Bundeslaender).
|
|
14
16
|
|
|
15
17
|
Example queries:
|
|
16
18
|
- lgblnummer="50", jahrgang="2023", bundesland="Wien"
|
|
17
|
-
- suchworte="Bauordnung", bundesland="Salzburg"`,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
- suchworte="Bauordnung", bundesland="Salzburg"`,
|
|
20
|
+
inputSchema: {
|
|
21
|
+
lgblnummer: z.string().max(100).optional().describe('Gazette number (e.g., "50")'),
|
|
22
|
+
jahrgang: z.string().max(10).optional().describe('Year (e.g., "2023")'),
|
|
23
|
+
bundesland: LandesrechtBundeslandSchema.optional().describe('Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland'),
|
|
24
|
+
suchworte: z.string().max(1000).optional().describe('Full-text search terms'),
|
|
25
|
+
titel: z.string().max(500).optional().describe('Search in gazette titles'),
|
|
26
|
+
applikation: z
|
|
27
|
+
.enum(['LgblAuth', 'Lgbl', 'LgblNO'])
|
|
28
|
+
.default('LgblAuth')
|
|
29
|
+
.describe('"LgblAuth" (authentic, default), "Lgbl" (general), "LgblNO" (Lower Austria)'),
|
|
30
|
+
seite: SeiteSchema.describe('Page number (default: 1)'),
|
|
31
|
+
limit: LimitSchema.describe('Results per page: 10, 20, 50, or 100 (default: 20)'),
|
|
32
|
+
response_format: z
|
|
33
|
+
.enum(['markdown', 'json'])
|
|
34
|
+
.default('markdown')
|
|
35
|
+
.describe('"markdown" (default) or "json"'),
|
|
36
|
+
},
|
|
37
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
33
38
|
}, async (args) => {
|
|
34
39
|
const { lgblnummer, jahrgang, bundesland, suchworte, titel, applikation, seite, limit, response_format, } = args;
|
|
35
40
|
if (!hasAnyParam(args, ['lgblnummer', 'jahrgang', 'bundesland', 'suchworte', 'titel'])) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"landesgesetzblatt.js","sourceRoot":"","sources":["../../src/tools/landesgesetzblatt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,6BAA6B,EAC7B,iBAAiB,EACjB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"landesgesetzblatt.js","sourceRoot":"","sources":["../../src/tools/landesgesetzblatt.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,25 @@
|
|
|
2
2
|
* Tool: ris_landesrecht — Search Austrian state/provincial laws (Landesrecht).
|
|
3
3
|
*/
|
|
4
4
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
/** Resolved arguments for building Landesrecht API params (after Zod defaults). */
|
|
6
|
+
export interface LandesrechtParamsArgs {
|
|
7
|
+
applikation: string;
|
|
8
|
+
suchworte?: string;
|
|
9
|
+
titel?: string;
|
|
10
|
+
bundesland?: string;
|
|
11
|
+
paragraph?: string;
|
|
12
|
+
abschnitt_typ: 'Paragraph' | 'Artikel' | 'Anlage';
|
|
13
|
+
fassung_vom?: string;
|
|
14
|
+
gesetzesnummer?: string;
|
|
15
|
+
seite: number;
|
|
16
|
+
limit: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Build the RIS API parameter object for a Landesrecht (LrKons) search.
|
|
20
|
+
*
|
|
21
|
+
* LrKons accepts the same parameter set as BrKons, so the consolidated state
|
|
22
|
+
* laws support paragraph/section, historical-version and law-number filters.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildLandesrechtParams(args: LandesrechtParamsArgs): Record<string, unknown>;
|
|
5
25
|
export declare function registerLandesrechtTool(server: McpServer): void;
|
|
6
26
|
//# sourceMappingURL=landesrecht.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"landesrecht.d.ts","sourceRoot":"","sources":["../../src/tools/landesrecht.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"landesrecht.d.ts","sourceRoot":"","sources":["../../src/tools/landesrecht.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBzE,mFAAmF;AACnF,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqC3F;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyF/D"}
|