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.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +490 -0
  3. package/dist/client.d.ts +109 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +371 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/constants.d.ts +67 -0
  8. package/dist/constants.d.ts.map +1 -0
  9. package/dist/constants.js +168 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/formatting.d.ts +70 -0
  12. package/dist/formatting.d.ts.map +1 -0
  13. package/dist/formatting.js +366 -0
  14. package/dist/formatting.js.map +1 -0
  15. package/dist/helpers.d.ts +46 -0
  16. package/dist/helpers.d.ts.map +1 -0
  17. package/dist/helpers.js +92 -0
  18. package/dist/helpers.js.map +1 -0
  19. package/dist/index.d.ts +9 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +21 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/parser.d.ts +48 -0
  24. package/dist/parser.d.ts.map +1 -0
  25. package/dist/parser.js +240 -0
  26. package/dist/parser.js.map +1 -0
  27. package/dist/server.d.ts +11 -0
  28. package/dist/server.d.ts.map +1 -0
  29. package/dist/server.js +16 -0
  30. package/dist/server.js.map +1 -0
  31. package/dist/tools/bezirke.d.ts +6 -0
  32. package/dist/tools/bezirke.d.ts.map +1 -0
  33. package/dist/tools/bezirke.js +68 -0
  34. package/dist/tools/bezirke.js.map +1 -0
  35. package/dist/tools/bundesgesetzblatt.d.ts +6 -0
  36. package/dist/tools/bundesgesetzblatt.d.ts.map +1 -0
  37. package/dist/tools/bundesgesetzblatt.js +55 -0
  38. package/dist/tools/bundesgesetzblatt.js.map +1 -0
  39. package/dist/tools/bundesrecht.d.ts +6 -0
  40. package/dist/tools/bundesrecht.d.ts.map +1 -0
  41. package/dist/tools/bundesrecht.js +63 -0
  42. package/dist/tools/bundesrecht.js.map +1 -0
  43. package/dist/tools/dokument.d.ts +6 -0
  44. package/dist/tools/dokument.d.ts.map +1 -0
  45. package/dist/tools/dokument.js +244 -0
  46. package/dist/tools/dokument.js.map +1 -0
  47. package/dist/tools/gemeinden.d.ts +6 -0
  48. package/dist/tools/gemeinden.d.ts.map +1 -0
  49. package/dist/tools/gemeinden.js +125 -0
  50. package/dist/tools/gemeinden.js.map +1 -0
  51. package/dist/tools/history.d.ts +6 -0
  52. package/dist/tools/history.d.ts.map +1 -0
  53. package/dist/tools/history.js +65 -0
  54. package/dist/tools/history.js.map +1 -0
  55. package/dist/tools/index.d.ts +12 -0
  56. package/dist/tools/index.d.ts.map +1 -0
  57. package/dist/tools/index.js +36 -0
  58. package/dist/tools/index.js.map +1 -0
  59. package/dist/tools/judikatur.d.ts +6 -0
  60. package/dist/tools/judikatur.d.ts.map +1 -0
  61. package/dist/tools/judikatur.js +46 -0
  62. package/dist/tools/judikatur.js.map +1 -0
  63. package/dist/tools/landesgesetzblatt.d.ts +6 -0
  64. package/dist/tools/landesgesetzblatt.d.ts.map +1 -0
  65. package/dist/tools/landesgesetzblatt.js +60 -0
  66. package/dist/tools/landesgesetzblatt.js.map +1 -0
  67. package/dist/tools/landesrecht.d.ts +6 -0
  68. package/dist/tools/landesrecht.d.ts.map +1 -0
  69. package/dist/tools/landesrecht.js +51 -0
  70. package/dist/tools/landesrecht.js.map +1 -0
  71. package/dist/tools/regierungsvorlagen.d.ts +6 -0
  72. package/dist/tools/regierungsvorlagen.d.ts.map +1 -0
  73. package/dist/tools/regierungsvorlagen.js +97 -0
  74. package/dist/tools/regierungsvorlagen.js.map +1 -0
  75. package/dist/tools/sonstige.d.ts +6 -0
  76. package/dist/tools/sonstige.d.ts.map +1 -0
  77. package/dist/tools/sonstige.js +271 -0
  78. package/dist/tools/sonstige.js.map +1 -0
  79. package/dist/tools/verordnungen.d.ts +6 -0
  80. package/dist/tools/verordnungen.d.ts.map +1 -0
  81. package/dist/tools/verordnungen.js +68 -0
  82. package/dist/tools/verordnungen.js.map +1 -0
  83. package/dist/types.d.ts +471 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +151 -0
  86. package/dist/types.js.map +1 -0
  87. package/package.json +87 -0
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Tool: ris_landesgesetzblatt — Search Austrian State Law Gazettes (Landesgesetzblatt).
3
+ */
4
+ import { z } from 'zod';
5
+ import { searchLandesrecht } from '../client.js';
6
+ import { BUNDESLAND_MAPPING } from '../constants.js';
7
+ import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
8
+ import { LandesrechtBundeslandSchema } from '../types.js';
9
+ export function registerLandesgesetzblattTool(server) {
10
+ server.tool('ris_landesgesetzblatt', `Search Austrian State Law Gazettes (Landesgesetzblatt).
11
+
12
+ Use this tool to find official publications of state/provincial laws.
13
+ Covers all 9 federal states (Bundeslaender).
14
+
15
+ Example queries:
16
+ - 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"'),
33
+ }, async (args) => {
34
+ const { lgblnummer, jahrgang, bundesland, suchworte, titel, applikation, seite, limit, response_format, } = args;
35
+ if (!hasAnyParam(args, ['lgblnummer', 'jahrgang', 'bundesland', 'suchworte', 'titel'])) {
36
+ return createValidationErrorResponse([
37
+ 'lgblnummer` fuer Gesetzblatt-Nummer',
38
+ 'jahrgang` fuer Jahr',
39
+ 'bundesland` fuer Bundesland',
40
+ 'suchworte` fuer Volltextsuche',
41
+ 'titel` fuer Suche in Titeln',
42
+ ]);
43
+ }
44
+ const params = buildBaseParams(applikation, limit, seite);
45
+ addOptionalParams(params, [
46
+ [lgblnummer, 'Lgblnummer'],
47
+ [jahrgang, 'Jahrgang'],
48
+ [suchworte, 'Suchworte'],
49
+ [titel, 'Titel'],
50
+ ]);
51
+ if (bundesland) {
52
+ const apiKey = BUNDESLAND_MAPPING[bundesland];
53
+ if (apiKey) {
54
+ params[`Bundesland.${apiKey}`] = 'true';
55
+ }
56
+ }
57
+ return executeSearchTool(searchLandesrecht, params, response_format);
58
+ });
59
+ }
60
+ //# sourceMappingURL=landesgesetzblatt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landesgesetzblatt.js","sourceRoot":"","sources":["../../src/tools/landesgesetzblatt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tool: ris_landesrecht — Search Austrian state/provincial laws (Landesrecht).
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerLandesrechtTool(server: McpServer): void;
6
+ //# sourceMappingURL=landesrecht.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Tool: ris_landesrecht — Search Austrian state/provincial laws (Landesrecht).
3
+ */
4
+ import { z } from 'zod';
5
+ import { searchLandesrecht } from '../client.js';
6
+ import { BUNDESLAND_MAPPING } from '../constants.js';
7
+ import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
8
+ import { LandesrechtBundeslandSchema } from '../types.js';
9
+ export function registerLandesrechtTool(server) {
10
+ server.tool('ris_landesrecht', `Search Austrian state/provincial laws (Landesrecht).
11
+
12
+ Use this tool to find laws enacted by Austrian federal states (Bundeslaender).
13
+
14
+ Example: suchworte="Bauordnung", bundesland="Salzburg"`, {
15
+ suchworte: z.string().max(1000).optional().describe('Full-text search terms'),
16
+ titel: z.string().max(500).optional().describe('Search in law titles'),
17
+ bundesland: LandesrechtBundeslandSchema.optional().describe('Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland'),
18
+ applikation: z
19
+ .enum(['LrKons'])
20
+ .default('LrKons')
21
+ .describe('"LrKons" (consolidated, default)'),
22
+ seite: z.number().default(1).describe('Page number'),
23
+ limit: z.number().default(20).describe('Results per page'),
24
+ response_format: z
25
+ .enum(['markdown', 'json'])
26
+ .default('markdown')
27
+ .describe('"markdown" or "json"'),
28
+ }, async (args) => {
29
+ const { suchworte, titel, bundesland, applikation, seite, limit, response_format } = args;
30
+ if (!hasAnyParam(args, ['suchworte', 'titel', 'bundesland'])) {
31
+ return createValidationErrorResponse([
32
+ 'suchworte` fuer Volltextsuche',
33
+ 'titel` fuer Suche in Gesetzesnamen',
34
+ 'bundesland` fuer Suche nach Bundesland',
35
+ ]);
36
+ }
37
+ const params = buildBaseParams(applikation, limit, seite);
38
+ addOptionalParams(params, [
39
+ [suchworte, 'Suchworte'],
40
+ [titel, 'Titel'],
41
+ ]);
42
+ if (bundesland) {
43
+ const apiKey = BUNDESLAND_MAPPING[bundesland];
44
+ if (apiKey) {
45
+ params[`Bundesland.${apiKey}`] = 'true';
46
+ }
47
+ }
48
+ return executeSearchTool(searchLandesrecht, params, response_format);
49
+ });
50
+ }
51
+ //# sourceMappingURL=landesrecht.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landesrecht.js","sourceRoot":"","sources":["../../src/tools/landesrecht.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;AAE1D,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB;;;;uDAImD,EACnD;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC7E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACtE,UAAU,EAAE,2BAA2B,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACzD,2HAA2H,CAC5H;QACD,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;aAChB,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,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,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QAE1F,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,6BAA6B,CAAC;gBACnC,+BAA+B;gBAC/B,oCAAoC;gBACpC,wCAAwC;aACzC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,iBAAiB,CAAC,MAAM,EAAE;YACxB,CAAC,SAAS,EAAE,WAAW,CAAC;YACxB,CAAC,KAAK,EAAE,OAAO,CAAC;SACjB,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,cAAc,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACvE,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tool: ris_regierungsvorlagen — Search Austrian Government Bills (Regierungsvorlagen).
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerRegierungsvorlagenTool(server: McpServer): void;
6
+ //# sourceMappingURL=regierungsvorlagen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regierungsvorlagen.d.ts","sourceRoot":"","sources":["../../src/tools/regierungsvorlagen.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8GtE"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Tool: ris_regierungsvorlagen — Search Austrian Government Bills (Regierungsvorlagen).
3
+ */
4
+ import { z } from 'zod';
5
+ import { searchBundesrecht } from '../client.js';
6
+ import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
7
+ import { DateSchema } from '../types.js';
8
+ export function registerRegierungsvorlagenTool(server) {
9
+ server.tool('ris_regierungsvorlagen', `Search Austrian Government Bills (Regierungsvorlagen).
10
+
11
+ Use this tool for legislative history and parliamentary materials.
12
+ Contains government proposals submitted to parliament.
13
+
14
+ Example queries:
15
+ - suchworte="Klimaschutz" -> Full-text search in bills
16
+ - einbringende_stelle="BMF (Bundesministerium für Finanzen)" -> Bills from Finance Ministry
17
+ - beschlussdatum_von="2024-01-01", beschlussdatum_bis="2024-12-31" -> Bills from 2024`, {
18
+ suchworte: z.string().max(1000).optional().describe('Full-text search terms'),
19
+ titel: z.string().max(500).optional().describe('Search in bill titles'),
20
+ beschlussdatum_von: DateSchema.optional().describe('Decision date from (YYYY-MM-DD)'),
21
+ beschlussdatum_bis: DateSchema.optional().describe('Decision date to (YYYY-MM-DD)'),
22
+ einbringende_stelle: z
23
+ .enum([
24
+ 'BKA (Bundeskanzleramt)',
25
+ 'BMFFIM (Bundesministerin für Frauen, Familie, Integration und Medien im Bundeskanzleramt)',
26
+ 'BMEUV (Bundesministerin für EU und Verfassung im Bundeskanzleramt)',
27
+ 'BMKOES (Bundesministerium für Kunst, Kultur, öffentlichen Dienst und Sport)',
28
+ 'BMEIA (Bundesministerium für europäische und internationale Angelegenheiten)',
29
+ 'BMAW (Bundesministerium für Arbeit und Wirtschaft)',
30
+ 'BMBWF (Bundesministerium für Bildung, Wissenschaft und Forschung)',
31
+ 'BMF (Bundesministerium für Finanzen)',
32
+ 'BMI (Bundesministerium für Inneres)',
33
+ 'BMJ (Bundesministerium für Justiz)',
34
+ 'BMK (Bundesministerium für Klimaschutz, Umwelt, Energie, Mobilität, Innovation und Technologie)',
35
+ 'BMLV (Bundesministerium für Landesverteidigung)',
36
+ 'BML (Bundesministerium für Land- und Forstwirtschaft, Regionen und Wasserwirtschaft)',
37
+ 'BMSGPK (Bundesministerium für Soziales, Gesundheit, Pflege und Konsumentenschutz)',
38
+ ])
39
+ .optional()
40
+ .describe('Filter by submitting ministry'),
41
+ im_ris_seit: z
42
+ .enum([
43
+ 'EinerWoche',
44
+ 'ZweiWochen',
45
+ 'EinemMonat',
46
+ 'DreiMonaten',
47
+ 'SechsMonaten',
48
+ 'EinemJahr',
49
+ ])
50
+ .optional()
51
+ .describe('Filter by time in RIS'),
52
+ sortierung_richtung: z
53
+ .enum(['Ascending', 'Descending'])
54
+ .optional()
55
+ .describe('Sort direction'),
56
+ sortierung_spalte: z
57
+ .enum(['Kurztitel', 'EinbringendeStelle', 'Beschlussdatum'])
58
+ .optional()
59
+ .describe('Sort by column'),
60
+ seite: z.number().default(1).describe('Page number (default: 1)'),
61
+ limit: z.number().default(20).describe('Results per page 10/20/50/100 (default: 20)'),
62
+ response_format: z
63
+ .enum(['markdown', 'json'])
64
+ .default('markdown')
65
+ .describe('"markdown" (default) or "json"'),
66
+ }, async (args) => {
67
+ const { suchworte, titel, beschlussdatum_von, beschlussdatum_bis, einbringende_stelle, im_ris_seit, sortierung_richtung, sortierung_spalte, seite, limit, response_format, } = args;
68
+ if (!hasAnyParam(args, [
69
+ 'suchworte',
70
+ 'titel',
71
+ 'beschlussdatum_von',
72
+ 'einbringende_stelle',
73
+ 'im_ris_seit',
74
+ ])) {
75
+ return createValidationErrorResponse([
76
+ 'suchworte` für Volltextsuche',
77
+ 'titel` für Suche in Titeln',
78
+ 'beschlussdatum_von/bis` für Datumsfilter',
79
+ 'einbringende_stelle` für Ministerium',
80
+ 'im_ris_seit` für Zeitfilter',
81
+ ]);
82
+ }
83
+ const params = buildBaseParams('RegV', limit, seite);
84
+ addOptionalParams(params, [
85
+ [suchworte, 'Suchworte'],
86
+ [titel, 'Titel'],
87
+ [beschlussdatum_von, 'BeschlussdatumVon'],
88
+ [beschlussdatum_bis, 'BeschlussdatumBis'],
89
+ [einbringende_stelle, 'EinbringendeStelle'],
90
+ [im_ris_seit, 'ImRisSeit'],
91
+ [sortierung_richtung, 'Sortierung.SortDirection'],
92
+ [sortierung_spalte, 'Sortierung.SortedByColumn'],
93
+ ]);
94
+ return executeSearchTool(searchBundesrecht, params, response_format);
95
+ });
96
+ }
97
+ //# sourceMappingURL=regierungsvorlagen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regierungsvorlagen.js","sourceRoot":"","sources":["../../src/tools/regierungsvorlagen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tool 10: ris_sonstige — Search miscellaneous Austrian legal collections.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerSonstigeTool(server: McpServer): void;
6
+ //# sourceMappingURL=sonstige.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonstige.d.ts","sourceRoot":"","sources":["../../src/tools/sonstige.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsR5D"}
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Tool 10: ris_sonstige — Search miscellaneous Austrian legal collections.
3
+ */
4
+ import { z } from 'zod';
5
+ import { searchSonstige } from '../client.js';
6
+ import { AVSV_URHEBER_VALUES, AVN_TYP_VALUES, BUNDESMINISTERIEN, IM_RIS_SEIT_VALUES, KMGER_TYP_VALUES, PRUEFGEWO_TYP_VALUES, SPG_OSG_TYP_VALUES, SPG_RSG_TYP_VALUES, UPTS_PARTEIEN, } from '../constants.js';
7
+ import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
8
+ import { DateSchema } from '../types.js';
9
+ export function registerSonstigeTool(server) {
10
+ server.tool('ris_sonstige', `Search miscellaneous Austrian legal collections (Sonstige).
11
+
12
+ Use this tool for specialized legal documents and historical materials.
13
+
14
+ Available applications:
15
+ - PruefGewO: Trade licensing examinations (Gewerbeordnung)
16
+ - Avsv: Social insurance announcements (Sozialversicherung)
17
+ - Spg: Health structure plans (Strukturpläne Gesundheit)
18
+ - Avn: Official veterinary notices (Amtliche Veterinärnachrichten)
19
+ - KmGer: Court announcements (Kundmachungen der Gerichte)
20
+ - Upts: Party transparency decisions (Parteien-Transparenz-Senat)
21
+ - Mrp: Council of Ministers protocols (Ministerratsprotokolle)
22
+ - Erlaesse: Ministerial decrees (Erlässe der Bundesministerien)
23
+
24
+ Example queries:
25
+ - applikation="Mrp", suchworte="Budget", einbringer="BMF..."
26
+ - applikation="Erlaesse", bundesministerium="Bundesministerium für Finanzen"
27
+ - applikation="Upts", partei="SPÖ - Sozialdemokratische Partei Österreichs"
28
+ - applikation="KmGer", kmger_typ="Geschaeftsordnung"
29
+ - applikation="Avsv", dokumentart="Richtlinie"`, {
30
+ applikation: z
31
+ .enum(['PruefGewO', 'Avsv', 'Spg', 'Avn', 'KmGer', 'Upts', 'Mrp', 'Erlaesse'])
32
+ .describe('Collection to search - "PruefGewO" (trade exams), "Avsv" (social insurance), "Spg" (health plans), "Avn" (veterinary notices), "KmGer" (court announcements), "Upts" (party transparency), "Mrp" (cabinet protocols), "Erlaesse" (decrees)'),
33
+ suchworte: z.string().max(1000).optional().describe('Full-text search terms'),
34
+ titel: z.string().max(500).optional().describe('Search in titles'),
35
+ datum_von: DateSchema.optional().describe('Date from (YYYY-MM-DD)'),
36
+ datum_bis: DateSchema.optional().describe('Date to (YYYY-MM-DD)'),
37
+ // Common parameters
38
+ im_ris_seit: z
39
+ .enum(IM_RIS_SEIT_VALUES)
40
+ .optional()
41
+ .describe('Filter by time in RIS - EinerWoche, ZweiWochen, EinemMonat, DreiMonaten, SechsMonaten, EinemJahr'),
42
+ sortierung_richtung: z
43
+ .enum(['Ascending', 'Descending'])
44
+ .optional()
45
+ .describe('Sort direction'),
46
+ geschaeftszahl: z
47
+ .string()
48
+ .max(200)
49
+ .optional()
50
+ .describe('File number/Aktenzeichen (for Mrp, Upts, KmGer)'),
51
+ norm: z.string().max(500).optional().describe('Legal norm reference (for Erlaesse, Upts)'),
52
+ fassung_vom: DateSchema.optional().describe('Historical version date (YYYY-MM-DD, for Erlaesse)'),
53
+ // Mrp-specific parameters
54
+ einbringer: z
55
+ .string()
56
+ .max(200)
57
+ .optional()
58
+ .describe('Submitter (Mrp only, e.g., ministry abbreviation)'),
59
+ sitzungsnummer: z.string().max(50).optional().describe('Session number (Mrp only)'),
60
+ gesetzgebungsperiode: z
61
+ .string()
62
+ .max(10)
63
+ .optional()
64
+ .describe("Legislative period (Mrp only, e.g., '27')"),
65
+ // Erlaesse-specific parameters
66
+ bundesministerium: z
67
+ .enum(BUNDESMINISTERIEN)
68
+ .optional()
69
+ .describe('Federal ministry (Erlaesse only)'),
70
+ abteilung: z.string().max(200).optional().describe('Department/division (Erlaesse only)'),
71
+ fundstelle: z.string().max(200).optional().describe('Source reference (Erlaesse only)'),
72
+ // Upts-specific parameters
73
+ partei: z.enum(UPTS_PARTEIEN).optional().describe('Political party (Upts only)'),
74
+ // KmGer-specific parameters
75
+ kmger_typ: z
76
+ .enum(KMGER_TYP_VALUES)
77
+ .optional()
78
+ .describe('Announcement type (KmGer only) - Geschaeftsordnung, Geschaeftsverteilung'),
79
+ gericht: z.string().max(200).optional().describe('Court name (KmGer only)'),
80
+ // Avsv-specific parameters
81
+ dokumentart: z
82
+ .string()
83
+ .max(200)
84
+ .optional()
85
+ .describe('Document type search (Avsv only) - free text search expression'),
86
+ urheber: z.enum(AVSV_URHEBER_VALUES).optional().describe('Author/institution (Avsv only)'),
87
+ avsvnummer: z.string().max(100).optional().describe('AVSV number (Avsv only)'),
88
+ // Avn-specific parameters
89
+ avnnummer: z.string().max(100).optional().describe('AVN number (Avn only)'),
90
+ avn_typ: z
91
+ .enum(AVN_TYP_VALUES)
92
+ .optional()
93
+ .describe('Notice type (Avn only) - Kundmachung, Verordnung, Erlass'),
94
+ // Spg-specific parameters
95
+ spgnummer: z.string().max(100).optional().describe('SPG number (Spg only)'),
96
+ osg_typ: z
97
+ .enum(SPG_OSG_TYP_VALUES)
98
+ .optional()
99
+ .describe('Austrian health structure plan type (Spg only) - ÖSG, ÖSG - Großgeräteplan'),
100
+ rsg_typ: z
101
+ .enum(SPG_RSG_TYP_VALUES)
102
+ .optional()
103
+ .describe('Regional health structure plan type (Spg only) - RSG, RSG - Großgeräteplan'),
104
+ rsg_land: z.string().max(100).optional().describe('Federal state for RSG (Spg only)'),
105
+ // PruefGewO-specific parameters
106
+ pruefgewo_typ: z
107
+ .enum(PRUEFGEWO_TYP_VALUES)
108
+ .optional()
109
+ .describe('Examination type (PruefGewO only) - Befähigungsprüfung, Eignungsprüfung, Meisterprüfung'),
110
+ seite: z.number().default(1).describe('Page number (default: 1)'),
111
+ limit: z.number().default(20).describe('Results per page 10/20/50/100 (default: 20)'),
112
+ response_format: z
113
+ .enum(['markdown', 'json'])
114
+ .default('markdown')
115
+ .describe('"markdown" (default) or "json"'),
116
+ }, async (args) => {
117
+ const { applikation, suchworte, titel, datum_von, datum_bis, im_ris_seit, sortierung_richtung, geschaeftszahl, norm, fassung_vom, einbringer, sitzungsnummer, gesetzgebungsperiode, bundesministerium, abteilung, fundstelle, partei, kmger_typ, gericht, dokumentart, urheber, avsvnummer, avnnummer, avn_typ, spgnummer, osg_typ, rsg_typ, rsg_land, pruefgewo_typ, seite, limit, response_format, } = args;
118
+ // Validate at least one search parameter beyond applikation
119
+ const searchParamKeys = [
120
+ 'suchworte',
121
+ 'titel',
122
+ 'geschaeftszahl',
123
+ 'norm',
124
+ 'einbringer',
125
+ 'sitzungsnummer',
126
+ 'gesetzgebungsperiode',
127
+ 'bundesministerium',
128
+ 'abteilung',
129
+ 'fundstelle',
130
+ 'partei',
131
+ 'kmger_typ',
132
+ 'gericht',
133
+ 'dokumentart',
134
+ 'urheber',
135
+ 'avsvnummer',
136
+ 'avnnummer',
137
+ 'avn_typ',
138
+ 'spgnummer',
139
+ 'osg_typ',
140
+ 'rsg_typ',
141
+ 'rsg_land',
142
+ 'pruefgewo_typ',
143
+ 'im_ris_seit',
144
+ 'datum_von',
145
+ 'datum_bis',
146
+ ];
147
+ if (!hasAnyParam(args, searchParamKeys)) {
148
+ return createValidationErrorResponse([
149
+ 'suchworte` fuer Volltextsuche',
150
+ 'titel` fuer Suche in Titeln',
151
+ 'oder applikationsspezifische Parameter (siehe Tool-Beschreibung)',
152
+ ]);
153
+ }
154
+ const params = buildBaseParams(applikation, limit, seite);
155
+ addOptionalParams(params, [
156
+ [suchworte, 'Suchworte'],
157
+ [titel, 'Titel'],
158
+ [im_ris_seit, 'ImRisSeit'],
159
+ [sortierung_richtung, 'Sortierung.SortDirection'],
160
+ ]);
161
+ // Build date parameters based on application type
162
+ if (datum_von || datum_bis) {
163
+ switch (applikation) {
164
+ case 'Mrp':
165
+ if (datum_von)
166
+ params['Sitzungsdatum.Von'] = datum_von;
167
+ if (datum_bis)
168
+ params['Sitzungsdatum.Bis'] = datum_bis;
169
+ break;
170
+ case 'Upts':
171
+ if (datum_von)
172
+ params['Entscheidungsdatum.Von'] = datum_von;
173
+ if (datum_bis)
174
+ params['Entscheidungsdatum.Bis'] = datum_bis;
175
+ break;
176
+ case 'Erlaesse':
177
+ if (datum_von)
178
+ params['VonInkrafttretensdatum'] = datum_von;
179
+ if (datum_bis)
180
+ params['BisInkrafttretensdatum'] = datum_bis;
181
+ break;
182
+ case 'PruefGewO':
183
+ case 'Spg':
184
+ case 'KmGer':
185
+ if (datum_von)
186
+ params['Kundmachungsdatum.Von'] = datum_von;
187
+ if (datum_bis)
188
+ params['Kundmachungsdatum.Bis'] = datum_bis;
189
+ break;
190
+ case 'Avsv':
191
+ case 'Avn':
192
+ if (datum_von)
193
+ params['Kundmachung.Von'] = datum_von;
194
+ if (datum_bis)
195
+ params['Kundmachung.Bis'] = datum_bis;
196
+ break;
197
+ }
198
+ }
199
+ // Application-specific parameters
200
+ switch (applikation) {
201
+ case 'Mrp':
202
+ if (geschaeftszahl)
203
+ params['Geschaeftszahl'] = geschaeftszahl;
204
+ if (einbringer)
205
+ params['Einbringer'] = einbringer;
206
+ if (sitzungsnummer)
207
+ params['Sitzungsnummer'] = sitzungsnummer;
208
+ if (gesetzgebungsperiode)
209
+ params['Gesetzgebungsperiode'] = gesetzgebungsperiode;
210
+ break;
211
+ case 'Erlaesse':
212
+ if (norm)
213
+ params['Norm'] = norm;
214
+ if (fassung_vom)
215
+ params['FassungVom'] = fassung_vom;
216
+ if (bundesministerium)
217
+ params['Bundesministerium'] = bundesministerium;
218
+ if (abteilung)
219
+ params['Abteilung'] = abteilung;
220
+ if (fundstelle)
221
+ params['Fundstelle'] = fundstelle;
222
+ break;
223
+ case 'Upts':
224
+ if (geschaeftszahl)
225
+ params['Geschaeftszahl'] = geschaeftszahl;
226
+ if (norm)
227
+ params['Norm'] = norm;
228
+ if (partei)
229
+ params['Partei'] = partei;
230
+ break;
231
+ case 'KmGer':
232
+ if (geschaeftszahl)
233
+ params['Geschaeftszahl'] = geschaeftszahl;
234
+ if (kmger_typ)
235
+ params['Typ'] = kmger_typ;
236
+ if (gericht)
237
+ params['Gericht'] = gericht;
238
+ break;
239
+ case 'Avsv':
240
+ if (dokumentart)
241
+ params['Dokumentart'] = dokumentart;
242
+ if (urheber)
243
+ params['Urheber'] = urheber;
244
+ if (avsvnummer)
245
+ params['Avsvnummer'] = avsvnummer;
246
+ break;
247
+ case 'Avn':
248
+ if (avnnummer)
249
+ params['Avnnummer'] = avnnummer;
250
+ if (avn_typ)
251
+ params['Typ'] = avn_typ;
252
+ break;
253
+ case 'Spg':
254
+ if (spgnummer)
255
+ params['Spgnummer'] = spgnummer;
256
+ if (osg_typ)
257
+ params['OsgTyp'] = osg_typ;
258
+ if (rsg_typ)
259
+ params['RsgTyp'] = rsg_typ;
260
+ if (rsg_land)
261
+ params['RsgLand'] = rsg_land;
262
+ break;
263
+ case 'PruefGewO':
264
+ if (pruefgewo_typ)
265
+ params['Typ'] = pruefgewo_typ;
266
+ break;
267
+ }
268
+ return executeSearchTool(searchSonstige, params, response_format);
269
+ });
270
+ }
271
+ //# sourceMappingURL=sonstige.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonstige.js","sourceRoot":"","sources":["../../src/tools/sonstige.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tool 12: ris_verordnungen — Search Austrian state ordinance gazettes.
3
+ */
4
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ export declare function registerVerordnungenTool(server: McpServer): void;
6
+ //# sourceMappingURL=verordnungen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verordnungen.d.ts","sourceRoot":"","sources":["../../src/tools/verordnungen.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8EhE"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Tool 12: ris_verordnungen — Search Austrian state ordinance gazettes.
3
+ */
4
+ import { z } from 'zod';
5
+ import { searchLandesrecht } from '../client.js';
6
+ import { VALID_VBL_BUNDESLAENDER } from '../constants.js';
7
+ import { addOptionalParams, buildBaseParams, createValidationErrorResponse, executeSearchTool, hasAnyParam, } from '../helpers.js';
8
+ import { DateSchema } from '../types.js';
9
+ export function registerVerordnungenTool(server) {
10
+ server.tool('ris_verordnungen', `Search Austrian state ordinance gazettes (Verordnungsblaetter der Laender).
11
+
12
+ Use this tool to find official publications of state/provincial ordinances.
13
+ NOTE: Currently only Tirol data is available (since January 1, 2022).
14
+ Other federal states have not yet published their ordinance gazettes in RIS.
15
+
16
+ Example queries:
17
+ - suchworte="Wolf" -> Full-text search
18
+ - titel="Verordnung" -> Search in title
19
+ - bundesland="Tirol" -> Filter by state (currently only Tirol has data)
20
+ - kundmachungsnummer="25" -> Search by publication number
21
+ - kundmachungsdatum_von="2024-01-01", kundmachungsdatum_bis="2024-12-31" -> Date range`, {
22
+ suchworte: z.string().max(1000).optional().describe('Full-text search terms'),
23
+ titel: z.string().max(500).optional().describe('Search in title'),
24
+ bundesland: z
25
+ .enum(VALID_VBL_BUNDESLAENDER)
26
+ .optional()
27
+ .describe('Filter by state (currently only Tirol has data)'),
28
+ kundmachungsnummer: z.string().max(100).optional().describe('Publication number'),
29
+ kundmachungsdatum_von: DateSchema.optional().describe('Publication date from (YYYY-MM-DD)'),
30
+ kundmachungsdatum_bis: DateSchema.optional().describe('Publication date to (YYYY-MM-DD)'),
31
+ seite: z.number().default(1).describe('Page number (default: 1)'),
32
+ limit: z.number().default(20).describe('Results per page 10/20/50/100 (default: 20)'),
33
+ response_format: z
34
+ .enum(['markdown', 'json'])
35
+ .default('markdown')
36
+ .describe('"markdown" (default) or "json"'),
37
+ }, async (args) => {
38
+ const { suchworte, titel, bundesland, kundmachungsnummer, kundmachungsdatum_von, kundmachungsdatum_bis, seite, limit, response_format, } = args;
39
+ if (!hasAnyParam(args, [
40
+ 'suchworte',
41
+ 'titel',
42
+ 'bundesland',
43
+ 'kundmachungsnummer',
44
+ 'kundmachungsdatum_von',
45
+ ])) {
46
+ return createValidationErrorResponse([
47
+ 'suchworte` fuer Volltextsuche',
48
+ 'titel` fuer Titelsuche',
49
+ 'bundesland` fuer Bundesland-Filter',
50
+ 'kundmachungsnummer` fuer Verordnungsnummer',
51
+ 'kundmachungsdatum_von` fuer Datum ab',
52
+ ]);
53
+ }
54
+ // Uses Landesrecht endpoint with Applikation="Vbl"
55
+ // Note: Vbl uses direct Bundesland values, NOT the SucheIn format used by Lgbl
56
+ const params = buildBaseParams('Vbl', limit, seite);
57
+ addOptionalParams(params, [
58
+ [suchworte, 'Suchworte'],
59
+ [titel, 'Titel'],
60
+ [bundesland, 'Bundesland'],
61
+ [kundmachungsnummer, 'Kundmachungsnummer'],
62
+ [kundmachungsdatum_von, 'Kundmachungsdatum.Von'],
63
+ [kundmachungsdatum_bis, 'Kundmachungsdatum.Bis'],
64
+ ]);
65
+ return executeSearchTool(searchLandesrecht, params, response_format);
66
+ });
67
+ }
68
+ //# sourceMappingURL=verordnungen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verordnungen.js","sourceRoot":"","sources":["../../src/tools/verordnungen.ts"],"names":[],"mappings":"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"}