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.
Files changed (71) hide show
  1. package/README.md +39 -13
  2. package/dist/client.d.ts +22 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +124 -57
  5. package/dist/client.js.map +1 -1
  6. package/dist/constants.d.ts +12 -1
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +57 -0
  9. package/dist/constants.js.map +1 -1
  10. package/dist/formatting.d.ts.map +1 -1
  11. package/dist/formatting.js +33 -2
  12. package/dist/formatting.js.map +1 -1
  13. package/dist/http.d.ts +20 -1
  14. package/dist/http.d.ts.map +1 -1
  15. package/dist/http.js +106 -11
  16. package/dist/http.js.map +1 -1
  17. package/dist/index.js +0 -0
  18. package/dist/parser.d.ts.map +1 -1
  19. package/dist/parser.js +41 -4
  20. package/dist/parser.js.map +1 -1
  21. package/dist/server.d.ts.map +1 -1
  22. package/dist/server.js +2 -1
  23. package/dist/server.js.map +1 -1
  24. package/dist/tools/bezirke.d.ts.map +1 -1
  25. package/dist/tools/bezirke.js +26 -21
  26. package/dist/tools/bezirke.js.map +1 -1
  27. package/dist/tools/bundesgesetzblatt.d.ts.map +1 -1
  28. package/dist/tools/bundesgesetzblatt.js +26 -20
  29. package/dist/tools/bundesgesetzblatt.js.map +1 -1
  30. package/dist/tools/bundesrecht.d.ts +20 -0
  31. package/dist/tools/bundesrecht.d.ts.map +1 -1
  32. package/dist/tools/bundesrecht.js +77 -39
  33. package/dist/tools/bundesrecht.js.map +1 -1
  34. package/dist/tools/dokument.d.ts.map +1 -1
  35. package/dist/tools/dokument.js +52 -123
  36. package/dist/tools/dokument.js.map +1 -1
  37. package/dist/tools/gemeinden.d.ts.map +1 -1
  38. package/dist/tools/gemeinden.js +68 -51
  39. package/dist/tools/gemeinden.js.map +1 -1
  40. package/dist/tools/history.d.ts.map +1 -1
  41. package/dist/tools/history.js +26 -21
  42. package/dist/tools/history.js.map +1 -1
  43. package/dist/tools/judikatur.d.ts +27 -0
  44. package/dist/tools/judikatur.d.ts.map +1 -1
  45. package/dist/tools/judikatur.js +108 -25
  46. package/dist/tools/judikatur.js.map +1 -1
  47. package/dist/tools/landesgesetzblatt.d.ts.map +1 -1
  48. package/dist/tools/landesgesetzblatt.js +23 -18
  49. package/dist/tools/landesgesetzblatt.js.map +1 -1
  50. package/dist/tools/landesrecht.d.ts +20 -0
  51. package/dist/tools/landesrecht.d.ts.map +1 -1
  52. package/dist/tools/landesrecht.js +80 -29
  53. package/dist/tools/landesrecht.js.map +1 -1
  54. package/dist/tools/regierungsvorlagen.d.ts.map +1 -1
  55. package/dist/tools/regierungsvorlagen.js +56 -51
  56. package/dist/tools/regierungsvorlagen.js.map +1 -1
  57. package/dist/tools/sonstige.d.ts.map +1 -1
  58. package/dist/tools/sonstige.js +94 -89
  59. package/dist/tools/sonstige.js.map +1 -1
  60. package/dist/tools/verordnungen.d.ts.map +1 -1
  61. package/dist/tools/verordnungen.js +23 -18
  62. package/dist/tools/verordnungen.js.map +1 -1
  63. package/dist/types.d.ts +104 -19
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/types.js +45 -1
  66. package/dist/types.js.map +1 -1
  67. package/dist/version.d.ts +13 -0
  68. package/dist/version.d.ts.map +1 -0
  69. package/dist/version.js +15 -0
  70. package/dist/version.js.map +1 -0
  71. package/package.json +41 -25
@@ -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.tool('ris_gemeinden', `Search Austrian municipal law (Gemeinderecht).
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
- 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"'),
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":"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"}
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,CAyE3D"}
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"}
@@ -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.tool('ris_history', `Search document change history (Aenderungshistorie).
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
- 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"'),
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;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"}
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;AAazE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyD7D"}
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"}
@@ -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.tool('ris_judikatur', `Search Austrian court decisions (Judikatur).
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
- Use this tool to find court decisions from Austrian courts.
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: 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"'),
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 = 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
- ]);
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,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"}
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,CAuErE"}
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.tool('ris_landesgesetzblatt', `Search Austrian State Law Gazettes (Landesgesetzblatt).
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
- lgblnummer: z.string().max(100).optional().describe('Gazette number (e.g., "50")'),
19
- jahrgang: z.string().max(10).optional().describe('Year (e.g., "2023")'),
20
- bundesland: LandesrechtBundeslandSchema.optional().describe('Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland'),
21
- suchworte: z.string().max(1000).optional().describe('Full-text search terms'),
22
- titel: z.string().max(500).optional().describe('Search in gazette titles'),
23
- applikation: z
24
- .enum(['LgblAuth', 'Lgbl', 'LgblNO'])
25
- .default('LgblAuth')
26
- .describe('"LgblAuth" (authentic, default), "Lgbl" (general), "LgblNO" (Lower Austria)'),
27
- seite: z.number().default(1).describe('Page number (default: 1)'),
28
- limit: z.number().default(20).describe('Results per page 10/20/50/100 (default: 20)'),
29
- response_format: z
30
- .enum(['markdown', 'json'])
31
- .default('markdown')
32
- .describe('"markdown" (default) or "json"'),
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":"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"}
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;AAczE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoD/D"}
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"}