ris-mcp-ts 1.0.0
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/LICENSE +21 -0
- package/README.md +490 -0
- package/dist/client.d.ts +109 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +371 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +67 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +168 -0
- package/dist/constants.js.map +1 -0
- package/dist/formatting.d.ts +70 -0
- package/dist/formatting.d.ts.map +1 -0
- package/dist/formatting.js +366 -0
- package/dist/formatting.js.map +1 -0
- package/dist/helpers.d.ts +46 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +92 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/parser.d.ts +48 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +240 -0
- package/dist/parser.js.map +1 -0
- package/dist/server.d.ts +11 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +16 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/bezirke.d.ts +6 -0
- package/dist/tools/bezirke.d.ts.map +1 -0
- package/dist/tools/bezirke.js +68 -0
- package/dist/tools/bezirke.js.map +1 -0
- package/dist/tools/bundesgesetzblatt.d.ts +6 -0
- package/dist/tools/bundesgesetzblatt.d.ts.map +1 -0
- package/dist/tools/bundesgesetzblatt.js +55 -0
- package/dist/tools/bundesgesetzblatt.js.map +1 -0
- package/dist/tools/bundesrecht.d.ts +6 -0
- package/dist/tools/bundesrecht.d.ts.map +1 -0
- package/dist/tools/bundesrecht.js +63 -0
- package/dist/tools/bundesrecht.js.map +1 -0
- package/dist/tools/dokument.d.ts +6 -0
- package/dist/tools/dokument.d.ts.map +1 -0
- package/dist/tools/dokument.js +244 -0
- package/dist/tools/dokument.js.map +1 -0
- package/dist/tools/gemeinden.d.ts +6 -0
- package/dist/tools/gemeinden.d.ts.map +1 -0
- package/dist/tools/gemeinden.js +125 -0
- package/dist/tools/gemeinden.js.map +1 -0
- package/dist/tools/history.d.ts +6 -0
- package/dist/tools/history.d.ts.map +1 -0
- package/dist/tools/history.js +65 -0
- package/dist/tools/history.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +36 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/judikatur.d.ts +6 -0
- package/dist/tools/judikatur.d.ts.map +1 -0
- package/dist/tools/judikatur.js +46 -0
- package/dist/tools/judikatur.js.map +1 -0
- package/dist/tools/landesgesetzblatt.d.ts +6 -0
- package/dist/tools/landesgesetzblatt.d.ts.map +1 -0
- package/dist/tools/landesgesetzblatt.js +60 -0
- package/dist/tools/landesgesetzblatt.js.map +1 -0
- package/dist/tools/landesrecht.d.ts +6 -0
- package/dist/tools/landesrecht.d.ts.map +1 -0
- package/dist/tools/landesrecht.js +51 -0
- package/dist/tools/landesrecht.js.map +1 -0
- package/dist/tools/regierungsvorlagen.d.ts +6 -0
- package/dist/tools/regierungsvorlagen.d.ts.map +1 -0
- package/dist/tools/regierungsvorlagen.js +97 -0
- package/dist/tools/regierungsvorlagen.js.map +1 -0
- package/dist/tools/sonstige.d.ts +6 -0
- package/dist/tools/sonstige.d.ts.map +1 -0
- package/dist/tools/sonstige.js +271 -0
- package/dist/tools/sonstige.js.map +1 -0
- package/dist/tools/verordnungen.d.ts +6 -0
- package/dist/tools/verordnungen.d.ts.map +1 -0
- package/dist/tools/verordnungen.js +68 -0
- package/dist/tools/verordnungen.js.map +1 -0
- package/dist/types.d.ts +471 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +151 -0
- package/dist/types.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool 7: ris_dokument — Retrieve full text of a legal document.
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { getDocumentByNumber, getDocumentContent, isAllowedUrl, searchBundesrecht, searchJudikatur, searchLandesrecht, searchSonstige, } from '../client.js';
|
|
6
|
+
import { formatDocument, truncateResponse } from '../formatting.js';
|
|
7
|
+
import { createMcpResponse, formatErrorResponse } from '../helpers.js';
|
|
8
|
+
import { findDocumentByDokumentnummer } from '../parser.js';
|
|
9
|
+
export function registerDokumentTool(server) {
|
|
10
|
+
server.tool('ris_dokument', `Retrieve full text of a legal document.
|
|
11
|
+
|
|
12
|
+
Use this after searching to load the complete text of a specific law or decision.
|
|
13
|
+
|
|
14
|
+
Note: For long documents, content may be truncated. Use specific searches to narrow down.`, {
|
|
15
|
+
dokumentnummer: z
|
|
16
|
+
.string()
|
|
17
|
+
.optional()
|
|
18
|
+
.describe('RIS document number (e.g., "NOR40052761") - from search results'),
|
|
19
|
+
url: z.string().optional().describe('Direct URL to document content'),
|
|
20
|
+
response_format: z
|
|
21
|
+
.enum(['markdown', 'json'])
|
|
22
|
+
.default('markdown')
|
|
23
|
+
.describe('"markdown" (default) or "json"'),
|
|
24
|
+
}, async (args) => {
|
|
25
|
+
const { dokumentnummer, url: inputUrl, response_format } = args;
|
|
26
|
+
if (!dokumentnummer && !inputUrl) {
|
|
27
|
+
return createMcpResponse('**Fehler:** Bitte gib entweder eine `dokumentnummer` oder eine `url` an.\n\n' +
|
|
28
|
+
'Die Dokumentnummer findest du in den Suchergebnissen von `ris_bundesrecht`, ' +
|
|
29
|
+
'`ris_landesrecht` oder `ris_judikatur`.');
|
|
30
|
+
}
|
|
31
|
+
// SSRF protection: validate user-supplied URLs against domain allowlist
|
|
32
|
+
if (inputUrl && !isAllowedUrl(inputUrl)) {
|
|
33
|
+
return createMcpResponse('**Fehler:** Die angegebene URL ist nicht erlaubt.\n\n' +
|
|
34
|
+
'Nur HTTPS-URLs zu offiziellen RIS-Domains sind zulaessig ' +
|
|
35
|
+
'(data.bka.gv.at, www.ris.bka.gv.at, ris.bka.gv.at).');
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
let contentUrl = inputUrl;
|
|
39
|
+
let htmlContent;
|
|
40
|
+
let metadata;
|
|
41
|
+
if (dokumentnummer && !inputUrl) {
|
|
42
|
+
// Strategy: Try direct URL construction first, fallback to search API
|
|
43
|
+
const directResult = await getDocumentByNumber(dokumentnummer);
|
|
44
|
+
if (directResult.success) {
|
|
45
|
+
// Direct fetch succeeded - use minimal metadata
|
|
46
|
+
htmlContent = directResult.html;
|
|
47
|
+
contentUrl = directResult.url;
|
|
48
|
+
metadata = {
|
|
49
|
+
dokumentnummer,
|
|
50
|
+
applikation: 'Unbekannt',
|
|
51
|
+
titel: dokumentnummer,
|
|
52
|
+
kurztitel: null,
|
|
53
|
+
citation: {},
|
|
54
|
+
dokument_url: directResult.url,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Direct fetch failed - fallback to search API
|
|
59
|
+
let apiResponse;
|
|
60
|
+
if (dokumentnummer.startsWith('NOR')) {
|
|
61
|
+
apiResponse = await searchBundesrecht({
|
|
62
|
+
Applikation: 'BrKons',
|
|
63
|
+
Dokumentnummer: dokumentnummer,
|
|
64
|
+
DokumenteProSeite: 'Ten',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
else if (dokumentnummer.startsWith('LBG') ||
|
|
68
|
+
dokumentnummer.startsWith('LNO') ||
|
|
69
|
+
dokumentnummer.startsWith('LST') ||
|
|
70
|
+
dokumentnummer.startsWith('LTI') ||
|
|
71
|
+
dokumentnummer.startsWith('LVO') ||
|
|
72
|
+
dokumentnummer.startsWith('LWI') ||
|
|
73
|
+
dokumentnummer.startsWith('LSB') ||
|
|
74
|
+
dokumentnummer.startsWith('LOO') ||
|
|
75
|
+
dokumentnummer.startsWith('LKT')) {
|
|
76
|
+
apiResponse = await searchLandesrecht({
|
|
77
|
+
Applikation: 'LrKons',
|
|
78
|
+
Dokumentnummer: dokumentnummer,
|
|
79
|
+
DokumenteProSeite: 'Ten',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else if (dokumentnummer.startsWith('JFR') || dokumentnummer.startsWith('JFT')) {
|
|
83
|
+
apiResponse = await searchJudikatur({
|
|
84
|
+
Applikation: 'Vfgh',
|
|
85
|
+
Dokumentnummer: dokumentnummer,
|
|
86
|
+
DokumenteProSeite: 'Ten',
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else if (dokumentnummer.startsWith('JWR') || dokumentnummer.startsWith('JWT')) {
|
|
90
|
+
apiResponse = await searchJudikatur({
|
|
91
|
+
Applikation: 'Vwgh',
|
|
92
|
+
Dokumentnummer: dokumentnummer,
|
|
93
|
+
DokumenteProSeite: 'Ten',
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
else if (dokumentnummer.startsWith('BVWG')) {
|
|
97
|
+
apiResponse = await searchJudikatur({
|
|
98
|
+
Applikation: 'Bvwg',
|
|
99
|
+
Dokumentnummer: dokumentnummer,
|
|
100
|
+
DokumenteProSeite: 'Ten',
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
else if (dokumentnummer.startsWith('LVWG')) {
|
|
104
|
+
apiResponse = await searchJudikatur({
|
|
105
|
+
Applikation: 'Lvwg',
|
|
106
|
+
Dokumentnummer: dokumentnummer,
|
|
107
|
+
DokumenteProSeite: 'Ten',
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else if (dokumentnummer.startsWith('DSB')) {
|
|
111
|
+
apiResponse = await searchJudikatur({
|
|
112
|
+
Applikation: 'Dsk',
|
|
113
|
+
Dokumentnummer: dokumentnummer,
|
|
114
|
+
DokumenteProSeite: 'Ten',
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
else if (dokumentnummer.startsWith('GBK')) {
|
|
118
|
+
apiResponse = await searchJudikatur({
|
|
119
|
+
Applikation: 'Gbk',
|
|
120
|
+
Dokumentnummer: dokumentnummer,
|
|
121
|
+
DokumenteProSeite: 'Ten',
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else if (dokumentnummer.startsWith('PVAK')) {
|
|
125
|
+
apiResponse = await searchJudikatur({
|
|
126
|
+
Applikation: 'Pvak',
|
|
127
|
+
Dokumentnummer: dokumentnummer,
|
|
128
|
+
DokumenteProSeite: 'Ten',
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
else if (dokumentnummer.startsWith('ASYLGH')) {
|
|
132
|
+
apiResponse = await searchJudikatur({
|
|
133
|
+
Applikation: 'AsylGH',
|
|
134
|
+
Dokumentnummer: dokumentnummer,
|
|
135
|
+
DokumenteProSeite: 'Ten',
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
else if (dokumentnummer.startsWith('BGBLA') || dokumentnummer.startsWith('BGBL')) {
|
|
139
|
+
// Bundesgesetzblätter - use Bundesrecht endpoint
|
|
140
|
+
const applikation = dokumentnummer.startsWith('BGBLA') ? 'BgblAuth' : 'BgblAlt';
|
|
141
|
+
apiResponse = await searchBundesrecht({
|
|
142
|
+
Applikation: applikation,
|
|
143
|
+
Dokumentnummer: dokumentnummer,
|
|
144
|
+
DokumenteProSeite: 'Ten',
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
else if (dokumentnummer.startsWith('REGV')) {
|
|
148
|
+
// Regierungsvorlagen - use Bundesrecht endpoint
|
|
149
|
+
apiResponse = await searchBundesrecht({
|
|
150
|
+
Applikation: 'RegV',
|
|
151
|
+
Dokumentnummer: dokumentnummer,
|
|
152
|
+
DokumenteProSeite: 'Ten',
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
else if (dokumentnummer.startsWith('MRP') || dokumentnummer.startsWith('ERL')) {
|
|
156
|
+
// Sonstige Sammlungen - use Sonstige endpoint
|
|
157
|
+
apiResponse = await searchSonstige({
|
|
158
|
+
Applikation: dokumentnummer.startsWith('MRP') ? 'Mrp' : 'Erlaesse',
|
|
159
|
+
Dokumentnummer: dokumentnummer,
|
|
160
|
+
DokumenteProSeite: 'Ten',
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
// Default to Justiz for unknown prefixes
|
|
165
|
+
apiResponse = await searchJudikatur({
|
|
166
|
+
Applikation: 'Justiz',
|
|
167
|
+
Dokumentnummer: dokumentnummer,
|
|
168
|
+
DokumenteProSeite: 'Ten',
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
// Find the document with matching dokumentnummer (don't blindly take first result)
|
|
172
|
+
const findResult = findDocumentByDokumentnummer(apiResponse.documents, dokumentnummer);
|
|
173
|
+
if (!findResult.success) {
|
|
174
|
+
// Both direct fetch and search failed - provide helpful error
|
|
175
|
+
const directError = directResult.error;
|
|
176
|
+
if (findResult.error === 'no_documents') {
|
|
177
|
+
return createMcpResponse(`**Fehler:** Kein Dokument mit der Nummer \`${dokumentnummer}\` gefunden.\n\n` +
|
|
178
|
+
`Direkter Abruf: ${directError}\n` +
|
|
179
|
+
`Suche: Keine Ergebnisse.\n\n` +
|
|
180
|
+
'Bitte pruefe die Dokumentnummer oder verwende eine Suche, ' +
|
|
181
|
+
'um das gewuenschte Dokument zu finden.');
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
return createMcpResponse(`**Fehler:** Dokument \`${dokumentnummer}\` nicht gefunden.\n\n` +
|
|
185
|
+
`Direkter Abruf: ${directError}\n` +
|
|
186
|
+
`Suche: ${findResult.totalResults} Ergebnisse, aber keines mit dieser Dokumentnummer.\n\n` +
|
|
187
|
+
`Bitte verwende eine alternative Suche oder die direkte URL.`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
const doc = findResult.document;
|
|
191
|
+
contentUrl = doc.content_urls.html ?? undefined;
|
|
192
|
+
if (!contentUrl) {
|
|
193
|
+
return createMcpResponse(`**Fehler:** Keine Inhalts-URL fuer Dokument \`${dokumentnummer}\` verfuegbar.\n\n` +
|
|
194
|
+
'Das Dokument hat moeglicherweise keinen abrufbaren Volltext.');
|
|
195
|
+
}
|
|
196
|
+
// Build metadata from search result
|
|
197
|
+
metadata = {
|
|
198
|
+
dokumentnummer: doc.dokumentnummer,
|
|
199
|
+
applikation: doc.applikation,
|
|
200
|
+
titel: doc.titel,
|
|
201
|
+
kurztitel: doc.kurztitel,
|
|
202
|
+
citation: {
|
|
203
|
+
kurztitel: doc.citation.kurztitel,
|
|
204
|
+
langtitel: doc.citation.langtitel,
|
|
205
|
+
kundmachungsorgan: doc.citation.kundmachungsorgan,
|
|
206
|
+
paragraph: doc.citation.paragraph,
|
|
207
|
+
eli: doc.citation.eli,
|
|
208
|
+
inkrafttreten: doc.citation.inkrafttreten,
|
|
209
|
+
ausserkrafttreten: doc.citation.ausserkrafttreten,
|
|
210
|
+
},
|
|
211
|
+
dokument_url: doc.dokument_url,
|
|
212
|
+
gesamte_rechtsvorschrift_url: doc.gesamte_rechtsvorschrift_url,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
// Only URL provided - minimal metadata
|
|
218
|
+
metadata = {
|
|
219
|
+
dokumentnummer: dokumentnummer ?? 'Unbekannt',
|
|
220
|
+
applikation: 'Unbekannt',
|
|
221
|
+
titel: inputUrl ?? '',
|
|
222
|
+
kurztitel: null,
|
|
223
|
+
citation: {},
|
|
224
|
+
dokument_url: inputUrl,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
if (!contentUrl) {
|
|
228
|
+
return createMcpResponse('**Fehler:** Keine gueltige URL zum Abrufen des Dokuments.');
|
|
229
|
+
}
|
|
230
|
+
// Fetch document content if not already fetched via direct URL
|
|
231
|
+
if (!htmlContent) {
|
|
232
|
+
htmlContent = await getDocumentContent(contentUrl);
|
|
233
|
+
}
|
|
234
|
+
// Format the document
|
|
235
|
+
const formatted = formatDocument(htmlContent, metadata, response_format);
|
|
236
|
+
const result = truncateResponse(formatted);
|
|
237
|
+
return createMcpResponse(result);
|
|
238
|
+
}
|
|
239
|
+
catch (e) {
|
|
240
|
+
return createMcpResponse(formatErrorResponse(e));
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=dokument.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dokument.js","sourceRoot":"","sources":["../../src/tools/dokument.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemeinden.d.ts","sourceRoot":"","sources":["../../src/tools/gemeinden.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6J7D"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool 9: ris_gemeinden — Search Austrian municipal law.
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { searchGemeinden } from '../client.js';
|
|
6
|
+
import { GEMEINDEN_INDEX_VALUES, IM_RIS_SEIT_VALUES } from '../constants.js';
|
|
7
|
+
import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
|
|
8
|
+
import { DateSchema } from '../types.js';
|
|
9
|
+
export function registerGemeindenTool(server) {
|
|
10
|
+
server.tool('ris_gemeinden', `Search Austrian municipal law (Gemeinderecht).
|
|
11
|
+
|
|
12
|
+
Use this tool to find municipal regulations and local ordinances.
|
|
13
|
+
|
|
14
|
+
Applications:
|
|
15
|
+
- Gr: Municipal law (Gemeinderecht) - default
|
|
16
|
+
- GrA: Cross-border municipal law (Gemeinderecht Authentisch/Amtsblätter)
|
|
17
|
+
|
|
18
|
+
Example queries:
|
|
19
|
+
- gemeinde="Graz", suchworte="Parkgebuehren"
|
|
20
|
+
- bundesland="Tirol", titel="Gebuehrenordnung"
|
|
21
|
+
- applikation="Gr", index="Baurecht"
|
|
22
|
+
- applikation="GrA", bezirk="Bregenz"`, {
|
|
23
|
+
suchworte: z.string().max(1000).optional().describe('Full-text search terms'),
|
|
24
|
+
titel: z.string().max(500).optional().describe('Search in titles'),
|
|
25
|
+
bundesland: z
|
|
26
|
+
.string()
|
|
27
|
+
.max(200)
|
|
28
|
+
.optional()
|
|
29
|
+
.describe('Filter by state - Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien'),
|
|
30
|
+
gemeinde: z.string().max(200).optional().describe('Municipality name (e.g., "Graz")'),
|
|
31
|
+
applikation: z
|
|
32
|
+
.enum(['Gr', 'GrA'])
|
|
33
|
+
.default('Gr')
|
|
34
|
+
.describe('"Gr" (municipal law, default) or "GrA" (cross-border/Amtsblätter)'),
|
|
35
|
+
// Parameters for Gr application
|
|
36
|
+
geschaeftszahl: z.string().max(200).optional().describe('File number/Aktenzeichen (Gr only)'),
|
|
37
|
+
index: z
|
|
38
|
+
.enum(GEMEINDEN_INDEX_VALUES)
|
|
39
|
+
.optional()
|
|
40
|
+
.describe('Subject area index (Gr only) - VertretungskoerperUndAllgemeineVerwaltung, OeffentlicheOrdnungUndSicherheit, UnterrichtErziehungSportUndWissenschaft, KunstKulturUndKultus, SozialeWohlfahrtUndWohnbaufoerderung, Gesundheit, StraßenUndWasserbauVerkehr, Wirtschaftsfoerderung, Dienstleistungen, Finanzwirtschaft'),
|
|
41
|
+
fassung_vom: DateSchema.optional().describe('Historical version date (YYYY-MM-DD, Gr only)'),
|
|
42
|
+
// Parameters for GrA application
|
|
43
|
+
bezirk: z.string().max(200).optional().describe('District name (GrA only, e.g., "Bregenz")'),
|
|
44
|
+
gemeindeverband: z
|
|
45
|
+
.string()
|
|
46
|
+
.max(200)
|
|
47
|
+
.optional()
|
|
48
|
+
.describe('Municipal association name (GrA only)'),
|
|
49
|
+
kundmachungsnummer: z.string().max(100).optional().describe('Announcement number (GrA only)'),
|
|
50
|
+
kundmachungsdatum_von: DateSchema.optional().describe('Announcement date from (YYYY-MM-DD, GrA only)'),
|
|
51
|
+
kundmachungsdatum_bis: DateSchema.optional().describe('Announcement date to (YYYY-MM-DD, GrA only)'),
|
|
52
|
+
// Common parameters
|
|
53
|
+
im_ris_seit: z
|
|
54
|
+
.enum(IM_RIS_SEIT_VALUES)
|
|
55
|
+
.optional()
|
|
56
|
+
.describe('Filter by time in RIS - EinerWoche, ZweiWochen, EinemMonat, DreiMonaten, SechsMonaten, EinemJahr'),
|
|
57
|
+
sortierung_richtung: z
|
|
58
|
+
.enum(['Ascending', 'Descending'])
|
|
59
|
+
.optional()
|
|
60
|
+
.describe('Sort direction'),
|
|
61
|
+
sortierung_spalte_gr: z
|
|
62
|
+
.enum(['Geschaeftszahl', 'Bundesland', 'Gemeinde'])
|
|
63
|
+
.optional()
|
|
64
|
+
.describe('Sort column (Gr only)'),
|
|
65
|
+
seite: z.number().default(1).describe('Page number (default: 1)'),
|
|
66
|
+
limit: z.number().default(20).describe('Results per page 10/20/50/100 (default: 20)'),
|
|
67
|
+
response_format: z
|
|
68
|
+
.enum(['markdown', 'json'])
|
|
69
|
+
.default('markdown')
|
|
70
|
+
.describe('"markdown" (default) or "json"'),
|
|
71
|
+
}, async (args) => {
|
|
72
|
+
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
|
+
if (!hasAnyParam(args, [
|
|
74
|
+
'suchworte',
|
|
75
|
+
'titel',
|
|
76
|
+
'bundesland',
|
|
77
|
+
'gemeinde',
|
|
78
|
+
'geschaeftszahl',
|
|
79
|
+
'index',
|
|
80
|
+
'bezirk',
|
|
81
|
+
'kundmachungsnummer',
|
|
82
|
+
])) {
|
|
83
|
+
return createValidationErrorResponse([
|
|
84
|
+
'suchworte` fuer Volltextsuche',
|
|
85
|
+
'titel` fuer Suche in Titeln',
|
|
86
|
+
'bundesland` fuer Bundesland',
|
|
87
|
+
'gemeinde` fuer Gemeinde',
|
|
88
|
+
'geschaeftszahl` fuer Aktenzeichen (Gr)',
|
|
89
|
+
'index` fuer Sachgebiet (Gr)',
|
|
90
|
+
'bezirk` fuer Bezirk (GrA)',
|
|
91
|
+
'kundmachungsnummer` fuer Kundmachungsnummer (GrA)',
|
|
92
|
+
]);
|
|
93
|
+
}
|
|
94
|
+
const params = buildBaseParams(applikation, limit, seite);
|
|
95
|
+
addOptionalParams(params, [
|
|
96
|
+
[suchworte, 'Suchworte'],
|
|
97
|
+
[titel, 'Titel'],
|
|
98
|
+
[gemeinde, 'Gemeinde'],
|
|
99
|
+
[bundesland, 'Bundesland'],
|
|
100
|
+
[im_ris_seit, 'ImRisSeit'],
|
|
101
|
+
[sortierung_richtung, 'Sortierung.SortDirection'],
|
|
102
|
+
]);
|
|
103
|
+
// Gr-specific parameters
|
|
104
|
+
if (applikation === 'Gr') {
|
|
105
|
+
addOptionalParams(params, [
|
|
106
|
+
[geschaeftszahl, 'Geschaeftszahl'],
|
|
107
|
+
[index, 'Index'],
|
|
108
|
+
[fassung_vom, 'FassungVom'],
|
|
109
|
+
[sortierung_spalte_gr, 'Sortierung.SortedByColumn'],
|
|
110
|
+
]);
|
|
111
|
+
}
|
|
112
|
+
// GrA-specific parameters
|
|
113
|
+
if (applikation === 'GrA') {
|
|
114
|
+
addOptionalParams(params, [
|
|
115
|
+
[bezirk, 'Bezirk'],
|
|
116
|
+
[gemeindeverband, 'Gemeindeverband'],
|
|
117
|
+
[kundmachungsnummer, 'Kundmachungsnummer'],
|
|
118
|
+
[kundmachungsdatum_von, 'Kundmachungsdatum.Von'],
|
|
119
|
+
[kundmachungsdatum_bis, 'Kundmachungsdatum.Bis'],
|
|
120
|
+
]);
|
|
121
|
+
}
|
|
122
|
+
return executeSearchTool(searchGemeinden, params, response_format);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=gemeinden.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemeinden.js","sourceRoot":"","sources":["../../src/tools/gemeinden.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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,CAyE3D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool 11: ris_history — Search document change history.
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { searchHistory } from '../client.js';
|
|
6
|
+
import { VALID_HISTORY_APPLICATIONS } from '../constants.js';
|
|
7
|
+
import { addOptionalParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
|
|
8
|
+
import { DateSchema, limitToDokumenteProSeite } from '../types.js';
|
|
9
|
+
export function registerHistoryTool(server) {
|
|
10
|
+
server.tool('ris_history', `Search document change history (Aenderungshistorie).
|
|
11
|
+
|
|
12
|
+
Use this tool to track changes to legal documents over time.
|
|
13
|
+
Shows when documents were created, modified, or deleted.
|
|
14
|
+
|
|
15
|
+
Available applications (30 total):
|
|
16
|
+
- Bundesrecht: Bundesnormen, BgblAuth, BgblAlt, BgblPdf, RegV
|
|
17
|
+
- Landesrecht: Landesnormen, LgblAuth, Lgbl, LgblNO, Vbl, Gemeinderecht, GemeinderechtAuth
|
|
18
|
+
- Judikatur: Justiz, Vfgh, Vwgh, Bvwg, Lvwg, Dsk, Gbk, Pvak, AsylGH
|
|
19
|
+
- Sonstige: Bvb, Mrp, Erlaesse, PruefGewO, Avsv, Spg, KmGer, Dok, Normenliste
|
|
20
|
+
|
|
21
|
+
Example queries:
|
|
22
|
+
- applikation="Bundesnormen", aenderungen_von="2024-01-01", aenderungen_bis="2024-01-31"
|
|
23
|
+
- applikation="Justiz", aenderungen_von="2024-06-01"`, {
|
|
24
|
+
applikation: z
|
|
25
|
+
.enum(VALID_HISTORY_APPLICATIONS)
|
|
26
|
+
.describe('Application to search history for - categories: Bundesrecht (Bundesnormen, BgblAuth, BgblAlt, BgblPdf, RegV), ' +
|
|
27
|
+
'Landesrecht (Landesnormen, LgblAuth, Lgbl, LgblNO, Vbl, Gemeinderecht), ' +
|
|
28
|
+
'Judikatur (Justiz, Vfgh, Vwgh, Bvwg, Lvwg, Dsk, Gbk, Pvak, AsylGH), ' +
|
|
29
|
+
'Sonstige (Bvb, Mrp, Erlaesse, PruefGewO, Avsv, Spg, KmGer, Dok, Normenliste)'),
|
|
30
|
+
aenderungen_von: DateSchema.optional().describe('Changes from date (YYYY-MM-DD)'),
|
|
31
|
+
aenderungen_bis: DateSchema.optional().describe('Changes to date (YYYY-MM-DD)'),
|
|
32
|
+
include_deleted: z
|
|
33
|
+
.boolean()
|
|
34
|
+
.default(false)
|
|
35
|
+
.describe('Include deleted documents in results (default: false)'),
|
|
36
|
+
seite: z.number().default(1).describe('Page number (default: 1)'),
|
|
37
|
+
limit: z.number().default(20).describe('Results per page 10/20/50/100 (default: 20)'),
|
|
38
|
+
response_format: z
|
|
39
|
+
.enum(['markdown', 'json'])
|
|
40
|
+
.default('markdown')
|
|
41
|
+
.describe('"markdown" (default) or "json"'),
|
|
42
|
+
}, async (args) => {
|
|
43
|
+
const { applikation, aenderungen_von, aenderungen_bis, include_deleted, seite, limit, response_format, } = args;
|
|
44
|
+
if (!hasAnyParam(args, ['aenderungen_von', 'aenderungen_bis'])) {
|
|
45
|
+
return createValidationErrorResponse([
|
|
46
|
+
'aenderungen_von` fuer Aenderungen ab Datum',
|
|
47
|
+
'aenderungen_bis` fuer Aenderungen bis Datum',
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
// Note: History endpoint uses "Anwendung" not "Applikation"
|
|
51
|
+
const params = {
|
|
52
|
+
Anwendung: applikation,
|
|
53
|
+
DokumenteProSeite: limitToDokumenteProSeite(limit),
|
|
54
|
+
Seitennummer: seite,
|
|
55
|
+
};
|
|
56
|
+
addOptionalParams(params, [
|
|
57
|
+
[aenderungen_von, 'AenderungenVon'],
|
|
58
|
+
[aenderungen_bis, 'AenderungenBis'],
|
|
59
|
+
]);
|
|
60
|
+
if (include_deleted)
|
|
61
|
+
params['IncludeDeletedDocuments'] = 'true';
|
|
62
|
+
return executeSearchTool(searchHistory, params, response_format);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +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;AAEnE,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,IAAI,CACT,aAAa,EACb;;;;;;;;;;;;;uDAamD,EACnD;QACE,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,0BAA0B,CAAC;aAChC,QAAQ,CACP,gHAAgH;YAC9G,0EAA0E;YAC1E,sEAAsE;YACtE,8EAA8E,CACjF;QACH,eAAe,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACjF,eAAe,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC/E,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,uDAAuD,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACrF,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;aAC1B,OAAO,CAAC,UAAU,CAAC;aACnB,QAAQ,CAAC,gCAAgC,CAAC;KAC9C,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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool registration barrel file.
|
|
3
|
+
*
|
|
4
|
+
* Imports all 12 tool registration functions and provides a single
|
|
5
|
+
* entry point to register them all on the MCP server.
|
|
6
|
+
*/
|
|
7
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
|
+
/**
|
|
9
|
+
* Register all 12 RIS tools on the given MCP server.
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerAllTools(server: McpServer): void;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAaxD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool registration barrel file.
|
|
3
|
+
*
|
|
4
|
+
* Imports all 12 tool registration functions and provides a single
|
|
5
|
+
* entry point to register them all on the MCP server.
|
|
6
|
+
*/
|
|
7
|
+
import { registerBezirkeTool } from './bezirke.js';
|
|
8
|
+
import { registerBundesgesetzblattTool } from './bundesgesetzblatt.js';
|
|
9
|
+
import { registerBundesrechtTool } from './bundesrecht.js';
|
|
10
|
+
import { registerDokumentTool } from './dokument.js';
|
|
11
|
+
import { registerGemeindenTool } from './gemeinden.js';
|
|
12
|
+
import { registerHistoryTool } from './history.js';
|
|
13
|
+
import { registerJudikaturTool } from './judikatur.js';
|
|
14
|
+
import { registerLandesgesetzblattTool } from './landesgesetzblatt.js';
|
|
15
|
+
import { registerLandesrechtTool } from './landesrecht.js';
|
|
16
|
+
import { registerRegierungsvorlagenTool } from './regierungsvorlagen.js';
|
|
17
|
+
import { registerSonstigeTool } from './sonstige.js';
|
|
18
|
+
import { registerVerordnungenTool } from './verordnungen.js';
|
|
19
|
+
/**
|
|
20
|
+
* Register all 12 RIS tools on the given MCP server.
|
|
21
|
+
*/
|
|
22
|
+
export function registerAllTools(server) {
|
|
23
|
+
registerBundesrechtTool(server);
|
|
24
|
+
registerLandesrechtTool(server);
|
|
25
|
+
registerJudikaturTool(server);
|
|
26
|
+
registerBundesgesetzblattTool(server);
|
|
27
|
+
registerLandesgesetzblattTool(server);
|
|
28
|
+
registerRegierungsvorlagenTool(server);
|
|
29
|
+
registerDokumentTool(server);
|
|
30
|
+
registerBezirkeTool(server);
|
|
31
|
+
registerGemeindenTool(server);
|
|
32
|
+
registerSonstigeTool(server);
|
|
33
|
+
registerHistoryTool(server);
|
|
34
|
+
registerVerordnungenTool(server);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACvC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool: ris_judikatur — Search Austrian court decisions (Judikatur).
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
export declare function registerJudikaturTool(server: McpServer): void;
|
|
6
|
+
//# sourceMappingURL=judikatur.d.ts.map
|
|
@@ -0,0 +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;AAazE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyD7D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool: ris_judikatur — Search Austrian court decisions (Judikatur).
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { searchJudikatur } from '../client.js';
|
|
6
|
+
import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
|
|
7
|
+
import { DateSchema, JudikaturGerichtSchema } from '../types.js';
|
|
8
|
+
export function registerJudikaturTool(server) {
|
|
9
|
+
server.tool('ris_judikatur', `Search Austrian court decisions (Judikatur).
|
|
10
|
+
|
|
11
|
+
Use this tool to find court decisions from Austrian courts.
|
|
12
|
+
|
|
13
|
+
Example: gericht="Vfgh", suchworte="Grundrecht"`, {
|
|
14
|
+
suchworte: z.string().max(1000).optional().describe('Full-text search in decisions'),
|
|
15
|
+
gericht: JudikaturGerichtSchema.default('Justiz').describe('Court - "Justiz" (OGH/OLG/LG, default), "Vfgh" (Constitutional), "Vwgh" (Administrative), "Bvwg", "Lvwg", "Dsk" (Data Protection), "AsylGH" (historical), "Normenliste", "Pvak", "Gbk", "Dok"'),
|
|
16
|
+
norm: z.string().max(500).optional().describe('Search by legal norm (e.g., "1319a ABGB")'),
|
|
17
|
+
geschaeftszahl: z.string().max(200).optional().describe('Case number (e.g., "5Ob234/20b")'),
|
|
18
|
+
entscheidungsdatum_von: DateSchema.optional().describe('Decision date from (YYYY-MM-DD)'),
|
|
19
|
+
entscheidungsdatum_bis: DateSchema.optional().describe('Decision date to (YYYY-MM-DD)'),
|
|
20
|
+
seite: z.number().default(1).describe('Page number'),
|
|
21
|
+
limit: z.number().default(20).describe('Results per page'),
|
|
22
|
+
response_format: z
|
|
23
|
+
.enum(['markdown', 'json'])
|
|
24
|
+
.default('markdown')
|
|
25
|
+
.describe('"markdown" or "json"'),
|
|
26
|
+
}, async (args) => {
|
|
27
|
+
const { suchworte, gericht, norm, geschaeftszahl, entscheidungsdatum_von, entscheidungsdatum_bis, seite, limit, response_format, } = args;
|
|
28
|
+
if (!hasAnyParam(args, ['suchworte', 'norm', 'geschaeftszahl'])) {
|
|
29
|
+
return createValidationErrorResponse([
|
|
30
|
+
'suchworte` fuer Volltextsuche',
|
|
31
|
+
'norm` fuer Suche nach Rechtsnorm',
|
|
32
|
+
'geschaeftszahl` fuer Suche nach Geschaeftszahl',
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
const params = buildBaseParams(gericht, limit, seite);
|
|
36
|
+
addOptionalParams(params, [
|
|
37
|
+
[suchworte, 'Suchworte'],
|
|
38
|
+
[norm, 'Norm'],
|
|
39
|
+
[geschaeftszahl, 'Geschaeftszahl'],
|
|
40
|
+
[entscheidungsdatum_von, 'EntscheidungsdatumVon'],
|
|
41
|
+
[entscheidungsdatum_bis, 'EntscheidungsdatumBis'],
|
|
42
|
+
]);
|
|
43
|
+
return executeSearchTool(searchJudikatur, params, response_format);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=judikatur.js.map
|
|
@@ -0,0 +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,aAAa,CAAC;AAEjE,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,IAAI,CACT,eAAe,EACf;;;;gDAI4C,EAC5C;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACpF,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CACxD,+LAA+L,CAChM;QACD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAC1F,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC3F,sBAAsB,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACzF,sBAAsB,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QACpD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC1D,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;aAC1B,OAAO,CAAC,UAAU,CAAC;aACnB,QAAQ,CAAC,sBAAsB,CAAC;KACpC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EACJ,SAAS,EACT,OAAO,EACP,IAAI,EACJ,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,EACL,KAAK,EACL,eAAe,GAChB,GAAG,IAAI,CAAC;QAET,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;YAChE,OAAO,6BAA6B,CAAC;gBACnC,+BAA+B;gBAC/B,kCAAkC;gBAClC,gDAAgD;aACjD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,iBAAiB,CAAC,MAAM,EAAE;YACxB,CAAC,SAAS,EAAE,WAAW,CAAC;YACxB,CAAC,IAAI,EAAE,MAAM,CAAC;YACd,CAAC,cAAc,EAAE,gBAAgB,CAAC;YAClC,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;YACjD,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;SAClD,CAAC,CAAC;QAEH,OAAO,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool: ris_landesgesetzblatt — Search Austrian State Law Gazettes (Landesgesetzblatt).
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
export declare function registerLandesgesetzblattTool(server: McpServer): void;
|
|
6
|
+
//# sourceMappingURL=landesgesetzblatt.d.ts.map
|
|
@@ -0,0 +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,CAuErE"}
|