ris-mcp-ts 1.0.2 → 1.1.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/README.md CHANGED
@@ -5,6 +5,7 @@
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
6
6
  [![Node.js](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen.svg)](https://nodejs.org/)
7
7
  [![MCP](https://img.shields.io/badge/MCP-compatible-blue.svg)](https://modelcontextprotocol.io/)
8
+ [![MCP Registry](https://img.shields.io/badge/MCP_Registry-io.github.philrox%2Fris-green.svg)](https://registry.modelcontextprotocol.io)
8
9
 
9
10
  An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that gives AI assistants access to Austria's official legal database — the **Rechtsinformationssystem (RIS)**.
10
11
 
package/dist/http.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * HTTP transport entry point for the RIS MCP Server.
3
+ *
4
+ * Provides an Express-based HTTP server with Streamable HTTP transport
5
+ * for deployment on cloud platforms (e.g., AWS Lightsail).
6
+ */
7
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
8
+ export declare const app: import("express-serve-static-core").Express;
9
+ export declare const sessions: Map<string, StreamableHTTPServerTransport>;
10
+ export declare const mcpLimiter: import("express-rate-limit").RateLimitRequestHandler;
11
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAOnG,eAAO,MAAM,GAAG,6CAAY,CAAC;AAC7B,eAAO,MAAM,QAAQ,4CAAmD,CAAC;AAKzE,eAAO,MAAM,UAAU,sDAQrB,CAAC"}
package/dist/http.js ADDED
@@ -0,0 +1,94 @@
1
+ /**
2
+ * HTTP transport entry point for the RIS MCP Server.
3
+ *
4
+ * Provides an Express-based HTTP server with Streamable HTTP transport
5
+ * for deployment on cloud platforms (e.g., AWS Lightsail).
6
+ */
7
+ import crypto from 'node:crypto';
8
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
10
+ import express from 'express';
11
+ import rateLimit from 'express-rate-limit';
12
+ import { registerAllTools } from './tools/index.js';
13
+ export const app = express();
14
+ export const sessions = new Map();
15
+ app.use(express.json());
16
+ // Rate limiting: MCP-specific (each request triggers upstream RIS API calls)
17
+ export const mcpLimiter = rateLimit({
18
+ windowMs: 60_000,
19
+ max: 60,
20
+ standardHeaders: 'draft-7',
21
+ legacyHeaders: false,
22
+ keyGenerator: (req) => req.headers['mcp-session-id'] || req.ip || 'unknown',
23
+ message: { error: 'Zu viele Anfragen. Bitte später erneut versuchen.' },
24
+ validate: { keyGeneratorIpFallback: false },
25
+ });
26
+ app.use('/mcp', mcpLimiter);
27
+ // Health check endpoint
28
+ app.get('/health', (_req, res) => {
29
+ res.json({
30
+ status: 'ok',
31
+ service: 'ris-mcp',
32
+ activeSessions: sessions.size,
33
+ });
34
+ });
35
+ // MCP endpoint — POST creates or reuses sessions, GET/DELETE require existing session
36
+ app.post('/mcp', async (req, res) => {
37
+ const sessionId = req.headers['mcp-session-id'];
38
+ // Reuse existing session
39
+ if (sessionId) {
40
+ const existing = sessions.get(sessionId);
41
+ if (existing) {
42
+ await existing.handleRequest(req, res, req.body);
43
+ return;
44
+ }
45
+ }
46
+ // Create new session
47
+ const transport = new StreamableHTTPServerTransport({
48
+ sessionIdGenerator: () => crypto.randomUUID(),
49
+ });
50
+ const server = new McpServer({ name: 'ris-mcp', version: '1.0.0' });
51
+ registerAllTools(server);
52
+ transport.onclose = () => {
53
+ if (transport.sessionId) {
54
+ sessions.delete(transport.sessionId);
55
+ }
56
+ };
57
+ await server.connect(transport);
58
+ await transport.handleRequest(req, res, req.body);
59
+ // Store session AFTER handleRequest so the sessionId is available
60
+ // (the SDK generates the sessionId during initialize handling)
61
+ if (transport.sessionId && !sessions.has(transport.sessionId)) {
62
+ sessions.set(transport.sessionId, transport);
63
+ }
64
+ });
65
+ app.get('/mcp', (req, res) => {
66
+ const sessionId = req.headers['mcp-session-id'];
67
+ if (sessionId) {
68
+ const transport = sessions.get(sessionId);
69
+ if (transport) {
70
+ transport.handleRequest(req, res, req.body);
71
+ return;
72
+ }
73
+ }
74
+ res.status(400).json({ error: 'Keine gültige Session. Starte mit POST /mcp.' });
75
+ });
76
+ app.delete('/mcp', (req, res) => {
77
+ const sessionId = req.headers['mcp-session-id'];
78
+ if (sessionId) {
79
+ const transport = sessions.get(sessionId);
80
+ if (transport) {
81
+ transport.handleRequest(req, res, req.body);
82
+ return;
83
+ }
84
+ }
85
+ res.status(400).json({ error: 'Keine gültige Session. Starte mit POST /mcp.' });
86
+ });
87
+ // Start server only when not in test mode
88
+ const PORT = process.env.PORT ?? 3000;
89
+ if (process.env.NODE_ENV !== 'test') {
90
+ app.listen(PORT, () => {
91
+ console.log(`RIS MCP HTTP server listening on port ${PORT}`);
92
+ });
93
+ }
94
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -9,25 +9,62 @@ import { z } from 'zod';
9
9
  /**
10
10
  * Application types for federal law searches in RIS.
11
11
  */
12
- export declare const BundesrechtApplikationSchema: z.ZodEnum<["BrKons", "Begut", "BgblAuth", "Erv"]>;
12
+ export declare const BundesrechtApplikationSchema: z.ZodEnum<{
13
+ BrKons: "BrKons";
14
+ Begut: "Begut";
15
+ BgblAuth: "BgblAuth";
16
+ Erv: "Erv";
17
+ }>;
13
18
  export type BundesrechtApplikation = z.infer<typeof BundesrechtApplikationSchema>;
14
19
  /**
15
20
  * Court types for case law searches in RIS.
16
21
  */
17
- export declare const JudikaturGerichtSchema: z.ZodEnum<["Justiz", "Vfgh", "Vwgh", "Bvwg", "Lvwg", "Dsk", "AsylGH", "Normenliste", "Pvak", "Gbk", "Dok"]>;
22
+ export declare const JudikaturGerichtSchema: z.ZodEnum<{
23
+ Justiz: "Justiz";
24
+ Vfgh: "Vfgh";
25
+ Vwgh: "Vwgh";
26
+ Bvwg: "Bvwg";
27
+ Lvwg: "Lvwg";
28
+ Dsk: "Dsk";
29
+ AsylGH: "AsylGH";
30
+ Normenliste: "Normenliste";
31
+ Pvak: "Pvak";
32
+ Gbk: "Gbk";
33
+ Dok: "Dok";
34
+ }>;
18
35
  export type JudikaturGericht = z.infer<typeof JudikaturGerichtSchema>;
19
36
  /**
20
37
  * Austrian federal states (Bundesländer).
21
38
  * Note: Uses Umlauts (ö, ä) for display purposes.
22
39
  */
23
- export declare const BundeslandSchema: z.ZodEnum<["Wien", "Niederösterreich", "Oberösterreich", "Steiermark", "Tirol", "Kärnten", "Salzburg", "Vorarlberg", "Burgenland"]>;
40
+ export declare const BundeslandSchema: z.ZodEnum<{
41
+ Wien: "Wien";
42
+ Niederösterreich: "Niederösterreich";
43
+ Oberösterreich: "Oberösterreich";
44
+ Steiermark: "Steiermark";
45
+ Tirol: "Tirol";
46
+ Kärnten: "Kärnten";
47
+ Salzburg: "Salzburg";
48
+ Vorarlberg: "Vorarlberg";
49
+ Burgenland: "Burgenland";
50
+ }>;
24
51
  export type Bundesland = z.infer<typeof BundeslandSchema>;
25
52
  /**
26
53
  * Austrian federal states for Landesrecht API (ASCII versions without Umlauts).
27
54
  * The RIS API uses the SucheIn format (e.g., Bundesland.SucheInWien=true).
28
55
  */
29
56
  export declare const LANDESRECHT_BUNDESLAENDER: readonly ["Wien", "Niederoesterreich", "Oberoesterreich", "Salzburg", "Tirol", "Vorarlberg", "Kaernten", "Steiermark", "Burgenland"];
30
- export declare const LandesrechtBundeslandSchema: z.ZodEnum<["Wien", "Niederoesterreich", "Oberoesterreich", "Salzburg", "Tirol", "Vorarlberg", "Kaernten", "Steiermark", "Burgenland"]>;
57
+ export declare const LandesrechtBundeslandSchema: z.ZodEnum<{
58
+ Wien: "Wien";
59
+ Steiermark: "Steiermark";
60
+ Tirol: "Tirol";
61
+ Salzburg: "Salzburg";
62
+ Vorarlberg: "Vorarlberg";
63
+ Burgenland: "Burgenland";
64
+ Niederoesterreich: "Niederoesterreich";
65
+ Oberoesterreich: "Oberoesterreich";
66
+ Kaernten: "Kaernten";
67
+ }>;
31
68
  export type LandesrechtBundesland = z.infer<typeof LandesrechtBundeslandSchema>;
32
69
  /**
33
70
  * Date format validation schema (YYYY-MM-DD).
@@ -38,12 +75,20 @@ export declare const OptionalDateSchema: z.ZodOptional<z.ZodString>;
38
75
  /**
39
76
  * Number of documents per page for paginated API responses.
40
77
  */
41
- export declare const DokumenteProSeiteSchema: z.ZodEnum<["Ten", "Twenty", "Fifty", "OneHundred"]>;
78
+ export declare const DokumenteProSeiteSchema: z.ZodEnum<{
79
+ Ten: "Ten";
80
+ Twenty: "Twenty";
81
+ Fifty: "Fifty";
82
+ OneHundred: "OneHundred";
83
+ }>;
42
84
  export type DokumenteProSeite = z.infer<typeof DokumenteProSeiteSchema>;
43
85
  /**
44
86
  * Output format for MCP tool responses.
45
87
  */
46
- export declare const ResponseFormatSchema: z.ZodEnum<["markdown", "json"]>;
88
+ export declare const ResponseFormatSchema: z.ZodEnum<{
89
+ markdown: "markdown";
90
+ json: "json";
91
+ }>;
47
92
  export type ResponseFormat = z.infer<typeof ResponseFormatSchema>;
48
93
  /**
49
94
  * URLs for accessing document content in different formats.
@@ -53,17 +98,7 @@ export declare const ContentUrlSchema: z.ZodObject<{
53
98
  html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
99
  rtf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
55
100
  pdf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
- }, "strip", z.ZodTypeAny, {
57
- xml?: string | null | undefined;
58
- html?: string | null | undefined;
59
- rtf?: string | null | undefined;
60
- pdf?: string | null | undefined;
61
- }, {
62
- xml?: string | null | undefined;
63
- html?: string | null | undefined;
64
- rtf?: string | null | undefined;
65
- pdf?: string | null | undefined;
66
- }>;
101
+ }, z.core.$strip>;
67
102
  export type ContentUrl = z.infer<typeof ContentUrlSchema>;
68
103
  /**
69
104
  * Citation information for a legal document.
@@ -76,23 +111,7 @@ export declare const CitationSchema: z.ZodObject<{
76
111
  eli: z.ZodOptional<z.ZodNullable<z.ZodString>>;
77
112
  inkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
78
113
  ausserkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
79
- }, "strip", z.ZodTypeAny, {
80
- kurztitel?: string | null | undefined;
81
- langtitel?: string | null | undefined;
82
- kundmachungsorgan?: string | null | undefined;
83
- paragraph?: string | null | undefined;
84
- eli?: string | null | undefined;
85
- inkrafttreten?: string | null | undefined;
86
- ausserkrafttreten?: string | null | undefined;
87
- }, {
88
- kurztitel?: string | null | undefined;
89
- langtitel?: string | null | undefined;
90
- kundmachungsorgan?: string | null | undefined;
91
- paragraph?: string | null | undefined;
92
- eli?: string | null | undefined;
93
- inkrafttreten?: string | null | undefined;
94
- ausserkrafttreten?: string | null | undefined;
95
- }>;
114
+ }, z.core.$strip>;
96
115
  export type Citation = z.infer<typeof CitationSchema>;
97
116
  /**
98
117
  * A single legal document from the RIS database.
@@ -110,86 +129,16 @@ export declare const DocumentSchema: z.ZodObject<{
110
129
  eli: z.ZodOptional<z.ZodNullable<z.ZodString>>;
111
130
  inkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
112
131
  ausserkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
113
- }, "strip", z.ZodTypeAny, {
114
- kurztitel?: string | null | undefined;
115
- langtitel?: string | null | undefined;
116
- kundmachungsorgan?: string | null | undefined;
117
- paragraph?: string | null | undefined;
118
- eli?: string | null | undefined;
119
- inkrafttreten?: string | null | undefined;
120
- ausserkrafttreten?: string | null | undefined;
121
- }, {
122
- kurztitel?: string | null | undefined;
123
- langtitel?: string | null | undefined;
124
- kundmachungsorgan?: string | null | undefined;
125
- paragraph?: string | null | undefined;
126
- eli?: string | null | undefined;
127
- inkrafttreten?: string | null | undefined;
128
- ausserkrafttreten?: string | null | undefined;
129
- }>;
132
+ }, z.core.$strip>;
130
133
  content_urls: z.ZodObject<{
131
134
  xml: z.ZodOptional<z.ZodNullable<z.ZodString>>;
132
135
  html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
133
136
  rtf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
134
137
  pdf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
135
- }, "strip", z.ZodTypeAny, {
136
- xml?: string | null | undefined;
137
- html?: string | null | undefined;
138
- rtf?: string | null | undefined;
139
- pdf?: string | null | undefined;
140
- }, {
141
- xml?: string | null | undefined;
142
- html?: string | null | undefined;
143
- rtf?: string | null | undefined;
144
- pdf?: string | null | undefined;
145
- }>;
138
+ }, z.core.$strip>;
146
139
  dokument_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
147
140
  gesamte_rechtsvorschrift_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
148
- }, "strip", z.ZodTypeAny, {
149
- dokumentnummer: string;
150
- applikation: string;
151
- titel: string;
152
- citation: {
153
- kurztitel?: string | null | undefined;
154
- langtitel?: string | null | undefined;
155
- kundmachungsorgan?: string | null | undefined;
156
- paragraph?: string | null | undefined;
157
- eli?: string | null | undefined;
158
- inkrafttreten?: string | null | undefined;
159
- ausserkrafttreten?: string | null | undefined;
160
- };
161
- content_urls: {
162
- xml?: string | null | undefined;
163
- html?: string | null | undefined;
164
- rtf?: string | null | undefined;
165
- pdf?: string | null | undefined;
166
- };
167
- kurztitel?: string | null | undefined;
168
- dokument_url?: string | null | undefined;
169
- gesamte_rechtsvorschrift_url?: string | null | undefined;
170
- }, {
171
- dokumentnummer: string;
172
- applikation: string;
173
- titel: string;
174
- citation: {
175
- kurztitel?: string | null | undefined;
176
- langtitel?: string | null | undefined;
177
- kundmachungsorgan?: string | null | undefined;
178
- paragraph?: string | null | undefined;
179
- eli?: string | null | undefined;
180
- inkrafttreten?: string | null | undefined;
181
- ausserkrafttreten?: string | null | undefined;
182
- };
183
- content_urls: {
184
- xml?: string | null | undefined;
185
- html?: string | null | undefined;
186
- rtf?: string | null | undefined;
187
- pdf?: string | null | undefined;
188
- };
189
- kurztitel?: string | null | undefined;
190
- dokument_url?: string | null | undefined;
191
- gesamte_rechtsvorschrift_url?: string | null | undefined;
192
- }>;
141
+ }, z.core.$strip>;
193
142
  export type Document = z.infer<typeof DocumentSchema>;
194
143
  /**
195
144
  * Paginated search results from the RIS API.
@@ -212,143 +161,17 @@ export declare const SearchResultSchema: z.ZodObject<{
212
161
  eli: z.ZodOptional<z.ZodNullable<z.ZodString>>;
213
162
  inkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
214
163
  ausserkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
215
- }, "strip", z.ZodTypeAny, {
216
- kurztitel?: string | null | undefined;
217
- langtitel?: string | null | undefined;
218
- kundmachungsorgan?: string | null | undefined;
219
- paragraph?: string | null | undefined;
220
- eli?: string | null | undefined;
221
- inkrafttreten?: string | null | undefined;
222
- ausserkrafttreten?: string | null | undefined;
223
- }, {
224
- kurztitel?: string | null | undefined;
225
- langtitel?: string | null | undefined;
226
- kundmachungsorgan?: string | null | undefined;
227
- paragraph?: string | null | undefined;
228
- eli?: string | null | undefined;
229
- inkrafttreten?: string | null | undefined;
230
- ausserkrafttreten?: string | null | undefined;
231
- }>;
164
+ }, z.core.$strip>;
232
165
  content_urls: z.ZodObject<{
233
166
  xml: z.ZodOptional<z.ZodNullable<z.ZodString>>;
234
167
  html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
235
168
  rtf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
236
169
  pdf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
237
- }, "strip", z.ZodTypeAny, {
238
- xml?: string | null | undefined;
239
- html?: string | null | undefined;
240
- rtf?: string | null | undefined;
241
- pdf?: string | null | undefined;
242
- }, {
243
- xml?: string | null | undefined;
244
- html?: string | null | undefined;
245
- rtf?: string | null | undefined;
246
- pdf?: string | null | undefined;
247
- }>;
170
+ }, z.core.$strip>;
248
171
  dokument_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
249
172
  gesamte_rechtsvorschrift_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
250
- }, "strip", z.ZodTypeAny, {
251
- dokumentnummer: string;
252
- applikation: string;
253
- titel: string;
254
- citation: {
255
- kurztitel?: string | null | undefined;
256
- langtitel?: string | null | undefined;
257
- kundmachungsorgan?: string | null | undefined;
258
- paragraph?: string | null | undefined;
259
- eli?: string | null | undefined;
260
- inkrafttreten?: string | null | undefined;
261
- ausserkrafttreten?: string | null | undefined;
262
- };
263
- content_urls: {
264
- xml?: string | null | undefined;
265
- html?: string | null | undefined;
266
- rtf?: string | null | undefined;
267
- pdf?: string | null | undefined;
268
- };
269
- kurztitel?: string | null | undefined;
270
- dokument_url?: string | null | undefined;
271
- gesamte_rechtsvorschrift_url?: string | null | undefined;
272
- }, {
273
- dokumentnummer: string;
274
- applikation: string;
275
- titel: string;
276
- citation: {
277
- kurztitel?: string | null | undefined;
278
- langtitel?: string | null | undefined;
279
- kundmachungsorgan?: string | null | undefined;
280
- paragraph?: string | null | undefined;
281
- eli?: string | null | undefined;
282
- inkrafttreten?: string | null | undefined;
283
- ausserkrafttreten?: string | null | undefined;
284
- };
285
- content_urls: {
286
- xml?: string | null | undefined;
287
- html?: string | null | undefined;
288
- rtf?: string | null | undefined;
289
- pdf?: string | null | undefined;
290
- };
291
- kurztitel?: string | null | undefined;
292
- dokument_url?: string | null | undefined;
293
- gesamte_rechtsvorschrift_url?: string | null | undefined;
294
- }>, "many">;
295
- }, "strip", z.ZodTypeAny, {
296
- total_hits: number;
297
- page: number;
298
- page_size: number;
299
- has_more: boolean;
300
- documents: {
301
- dokumentnummer: string;
302
- applikation: string;
303
- titel: string;
304
- citation: {
305
- kurztitel?: string | null | undefined;
306
- langtitel?: string | null | undefined;
307
- kundmachungsorgan?: string | null | undefined;
308
- paragraph?: string | null | undefined;
309
- eli?: string | null | undefined;
310
- inkrafttreten?: string | null | undefined;
311
- ausserkrafttreten?: string | null | undefined;
312
- };
313
- content_urls: {
314
- xml?: string | null | undefined;
315
- html?: string | null | undefined;
316
- rtf?: string | null | undefined;
317
- pdf?: string | null | undefined;
318
- };
319
- kurztitel?: string | null | undefined;
320
- dokument_url?: string | null | undefined;
321
- gesamte_rechtsvorschrift_url?: string | null | undefined;
322
- }[];
323
- }, {
324
- total_hits: number;
325
- page: number;
326
- page_size: number;
327
- has_more: boolean;
328
- documents: {
329
- dokumentnummer: string;
330
- applikation: string;
331
- titel: string;
332
- citation: {
333
- kurztitel?: string | null | undefined;
334
- langtitel?: string | null | undefined;
335
- kundmachungsorgan?: string | null | undefined;
336
- paragraph?: string | null | undefined;
337
- eli?: string | null | undefined;
338
- inkrafttreten?: string | null | undefined;
339
- ausserkrafttreten?: string | null | undefined;
340
- };
341
- content_urls: {
342
- xml?: string | null | undefined;
343
- html?: string | null | undefined;
344
- rtf?: string | null | undefined;
345
- pdf?: string | null | undefined;
346
- };
347
- kurztitel?: string | null | undefined;
348
- dokument_url?: string | null | undefined;
349
- gesamte_rechtsvorschrift_url?: string | null | undefined;
350
- }[];
351
- }>;
173
+ }, z.core.$strip>>;
174
+ }, z.core.$strip>;
352
175
  export type SearchResult = z.infer<typeof SearchResultSchema>;
353
176
  /**
354
177
  * Raw content URL from API response.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ris-mcp-ts",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "mcpName": "io.github.philrox/ris",
5
5
  "description": "MCP Server for Austrian Legal Information System (RIS) - TypeScript",
6
6
  "type": "module",
@@ -12,6 +12,8 @@
12
12
  "build": "tsc",
13
13
  "dev": "tsx src/index.ts",
14
14
  "start": "node dist/index.js",
15
+ "start:http": "node dist/http.js",
16
+ "dev:http": "tsx src/http.ts",
15
17
  "inspect": "npx @modelcontextprotocol/inspector node dist/index.js",
16
18
  "test": "vitest run",
17
19
  "test:coverage": "vitest run --coverage",
@@ -36,27 +38,37 @@
36
38
  "dependencies": {
37
39
  "@modelcontextprotocol/sdk": "^1.0.0",
38
40
  "cheerio": "^1.0.0",
39
- "zod": "^3.23.0"
41
+ "express": "^5.2.1",
42
+ "express-rate-limit": "^8.2.1",
43
+ "zod": "^4.3.6"
40
44
  },
41
45
  "devDependencies": {
42
46
  "@commitlint/cli": "^20.4.1",
43
47
  "@commitlint/config-conventional": "^20.4.1",
44
- "@eslint/js": "^9.39.2",
45
- "@types/node": "^22.0.0",
46
- "@typescript-eslint/eslint-plugin": "^8.54.0",
47
- "@typescript-eslint/parser": "^8.54.0",
48
+ "@eslint/js": "^10.0.1",
49
+ "@types/express": "^5.0.6",
50
+ "@types/node": "^25.3.3",
51
+ "@types/supertest": "^7.2.0",
52
+ "@typescript-eslint/eslint-plugin": "^8.56.1",
53
+ "@typescript-eslint/parser": "^8.56.1",
48
54
  "@vitest/coverage-v8": "^4.0.18",
49
- "eslint": "^9.39.2",
55
+ "eslint": "^10.0.2",
50
56
  "eslint-config-prettier": "^10.1.8",
51
57
  "eslint-plugin-import-x": "^4.16.1",
52
58
  "husky": "^9.1.7",
53
59
  "lint-staged": "^16.2.7",
54
60
  "prettier": "^3.8.1",
61
+ "supertest": "^7.2.2",
55
62
  "tsx": "^4.7.0",
56
63
  "typescript": "^5.4.0",
57
- "typescript-eslint": "^8.54.0",
64
+ "typescript-eslint": "^8.56.1",
58
65
  "vitest": "^4.0.18"
59
66
  },
67
+ "overrides": {
68
+ "eslint-plugin-import-x": {
69
+ "eslint": "$eslint"
70
+ }
71
+ },
60
72
  "engines": {
61
73
  "node": ">=20.0.0"
62
74
  },