ris-mcp-ts 1.2.4 → 1.3.1
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/dist/client.d.ts +11 -9
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +67 -29
- package/dist/client.js.map +1 -1
- package/dist/helpers.d.ts +45 -10
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +27 -5
- package/dist/helpers.js.map +1 -1
- package/dist/http.d.ts +13 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +63 -8
- package/dist/http.js.map +1 -1
- package/dist/tools/bezirke.d.ts.map +1 -1
- package/dist/tools/bezirke.js +4 -3
- package/dist/tools/bezirke.js.map +1 -1
- package/dist/tools/bundesgesetzblatt.d.ts.map +1 -1
- package/dist/tools/bundesgesetzblatt.js +4 -3
- package/dist/tools/bundesgesetzblatt.js.map +1 -1
- package/dist/tools/bundesrecht.d.ts.map +1 -1
- package/dist/tools/bundesrecht.js +4 -3
- package/dist/tools/bundesrecht.js.map +1 -1
- package/dist/tools/dokument.d.ts.map +1 -1
- package/dist/tools/dokument.js +40 -18
- package/dist/tools/dokument.js.map +1 -1
- package/dist/tools/gemeinden.d.ts.map +1 -1
- package/dist/tools/gemeinden.js +4 -3
- package/dist/tools/gemeinden.js.map +1 -1
- package/dist/tools/history.d.ts.map +1 -1
- package/dist/tools/history.js +4 -3
- package/dist/tools/history.js.map +1 -1
- package/dist/tools/judikatur.d.ts.map +1 -1
- package/dist/tools/judikatur.js +4 -3
- package/dist/tools/judikatur.js.map +1 -1
- package/dist/tools/landesgesetzblatt.d.ts.map +1 -1
- package/dist/tools/landesgesetzblatt.js +4 -3
- package/dist/tools/landesgesetzblatt.js.map +1 -1
- package/dist/tools/landesrecht.d.ts.map +1 -1
- package/dist/tools/landesrecht.js +4 -3
- package/dist/tools/landesrecht.js.map +1 -1
- package/dist/tools/regierungsvorlagen.d.ts.map +1 -1
- package/dist/tools/regierungsvorlagen.js +4 -3
- package/dist/tools/regierungsvorlagen.js.map +1 -1
- package/dist/tools/sonstige.d.ts.map +1 -1
- package/dist/tools/sonstige.js +4 -3
- package/dist/tools/sonstige.js.map +1 -1
- package/dist/tools/verordnungen.d.ts.map +1 -1
- package/dist/tools/verordnungen.js +4 -3
- package/dist/tools/verordnungen.js.map +1 -1
- package/dist/types.d.ts +38 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/dist/client.d.ts
CHANGED
|
@@ -35,35 +35,35 @@ export declare function isAllowedUrl(url: string): boolean;
|
|
|
35
35
|
/**
|
|
36
36
|
* Search federal law (Bundesrecht).
|
|
37
37
|
*/
|
|
38
|
-
export declare function searchBundesrecht(params: Record<string, unknown>, timeout?: number): Promise<NormalizedSearchResults>;
|
|
38
|
+
export declare function searchBundesrecht(params: Record<string, unknown>, timeout?: number, signal?: AbortSignal): Promise<NormalizedSearchResults>;
|
|
39
39
|
/**
|
|
40
40
|
* Search state/provincial law (Landesrecht).
|
|
41
41
|
*/
|
|
42
|
-
export declare function searchLandesrecht(params: Record<string, unknown>, timeout?: number): Promise<NormalizedSearchResults>;
|
|
42
|
+
export declare function searchLandesrecht(params: Record<string, unknown>, timeout?: number, signal?: AbortSignal): Promise<NormalizedSearchResults>;
|
|
43
43
|
/**
|
|
44
44
|
* Search case law/jurisprudence (Judikatur).
|
|
45
45
|
*/
|
|
46
|
-
export declare function searchJudikatur(params: Record<string, unknown>, timeout?: number): Promise<NormalizedSearchResults>;
|
|
46
|
+
export declare function searchJudikatur(params: Record<string, unknown>, timeout?: number, signal?: AbortSignal): Promise<NormalizedSearchResults>;
|
|
47
47
|
/**
|
|
48
48
|
* Search district administrative authorities (Bezirke).
|
|
49
49
|
*/
|
|
50
|
-
export declare function searchBezirke(params: Record<string, unknown>, timeout?: number): Promise<NormalizedSearchResults>;
|
|
50
|
+
export declare function searchBezirke(params: Record<string, unknown>, timeout?: number, signal?: AbortSignal): Promise<NormalizedSearchResults>;
|
|
51
51
|
/**
|
|
52
52
|
* Search municipal law (Gemeinden).
|
|
53
53
|
*/
|
|
54
|
-
export declare function searchGemeinden(params: Record<string, unknown>, timeout?: number): Promise<NormalizedSearchResults>;
|
|
54
|
+
export declare function searchGemeinden(params: Record<string, unknown>, timeout?: number, signal?: AbortSignal): Promise<NormalizedSearchResults>;
|
|
55
55
|
/**
|
|
56
56
|
* Search miscellaneous legal collections (Sonstige).
|
|
57
57
|
*/
|
|
58
|
-
export declare function searchSonstige(params: Record<string, unknown>, timeout?: number): Promise<NormalizedSearchResults>;
|
|
58
|
+
export declare function searchSonstige(params: Record<string, unknown>, timeout?: number, signal?: AbortSignal): Promise<NormalizedSearchResults>;
|
|
59
59
|
/**
|
|
60
60
|
* Search document change history (History).
|
|
61
61
|
*/
|
|
62
|
-
export declare function searchHistory(params: Record<string, unknown>, timeout?: number): Promise<NormalizedSearchResults>;
|
|
62
|
+
export declare function searchHistory(params: Record<string, unknown>, timeout?: number, signal?: AbortSignal): Promise<NormalizedSearchResults>;
|
|
63
63
|
/**
|
|
64
64
|
* Fetch HTML content from a document URL.
|
|
65
65
|
*/
|
|
66
|
-
export declare function getDocumentContent(url: string, timeout?: number): Promise<string>;
|
|
66
|
+
export declare function getDocumentContent(url: string, timeout?: number, signal?: AbortSignal): Promise<string>;
|
|
67
67
|
/**
|
|
68
68
|
* Validate dokumentnummer contains only safe characters.
|
|
69
69
|
* Defense-in-depth check in addition to Zod schema.
|
|
@@ -125,7 +125,9 @@ export type DirectDocumentResult = {
|
|
|
125
125
|
*
|
|
126
126
|
* @param dokumentnummer - The RIS document number (e.g., "NOR12019037")
|
|
127
127
|
* @param timeout - Request timeout in milliseconds
|
|
128
|
+
* @param signal - Caller's cancellation signal; a cancellation is thrown rather
|
|
129
|
+
* than reported as an unsuccessful fetch, so callers do not fall back to a search
|
|
128
130
|
* @returns Result object with HTML content on success, or error details on failure
|
|
129
131
|
*/
|
|
130
|
-
export declare function getDocumentByNumber(dokumentnummer: string, timeout?: number): Promise<DirectDocumentResult>;
|
|
132
|
+
export declare function getDocumentByNumber(dokumentnummer: string, timeout?: number, signal?: AbortSignal): Promise<DirectDocumentResult>;
|
|
131
133
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,uBAAuB,EAIxB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAExB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAKjD;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,SAAiC;CAIrD;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,SAAgB,aAAa,CAAC,EAAE,KAAK,CAAC;gBAE1B,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK;CAKnD;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -51,10 +51,28 @@ const TRANSIENT_STATUS_CODES = new Set([502, 503, 504]);
|
|
|
51
51
|
/** Delay before the single retry of a transient failure. */
|
|
52
52
|
const RETRY_DELAY_MS = 500;
|
|
53
53
|
/**
|
|
54
|
-
* Resolve after the given number of milliseconds
|
|
54
|
+
* Resolve after the given number of milliseconds, or reject as soon as the
|
|
55
|
+
* caller cancels — a cancelled request should not sit out the retry backoff.
|
|
55
56
|
*/
|
|
56
|
-
function delay(ms) {
|
|
57
|
-
return new Promise((resolve) =>
|
|
57
|
+
function delay(ms, signal) {
|
|
58
|
+
return new Promise((resolve, reject) => {
|
|
59
|
+
if (signal?.aborted) {
|
|
60
|
+
reject(signal.reason);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const timeoutId = setTimeout(resolve, ms);
|
|
64
|
+
signal?.addEventListener('abort', () => {
|
|
65
|
+
clearTimeout(timeoutId);
|
|
66
|
+
reject(signal.reason);
|
|
67
|
+
}, { once: true });
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Combine the per-request timeout with the caller's cancellation signal so the
|
|
72
|
+
* fetch aborts on whichever fires first.
|
|
73
|
+
*/
|
|
74
|
+
function withTimeoutSignal(timeoutSignal, callerSignal) {
|
|
75
|
+
return callerSignal ? AbortSignal.any([timeoutSignal, callerSignal]) : timeoutSignal;
|
|
58
76
|
}
|
|
59
77
|
/**
|
|
60
78
|
* Determine whether an error is transient (a gateway error or timeout) and
|
|
@@ -148,7 +166,7 @@ function extractSearchResults(parsedResponse) {
|
|
|
148
166
|
/**
|
|
149
167
|
* Perform a single request attempt against the RIS API.
|
|
150
168
|
*/
|
|
151
|
-
async function requestOnce(url, endpoint, timeout) {
|
|
169
|
+
async function requestOnce(url, endpoint, timeout, signal) {
|
|
152
170
|
const controller = new AbortController();
|
|
153
171
|
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
154
172
|
try {
|
|
@@ -157,7 +175,7 @@ async function requestOnce(url, endpoint, timeout) {
|
|
|
157
175
|
headers: {
|
|
158
176
|
Accept: 'application/json',
|
|
159
177
|
},
|
|
160
|
-
signal: controller.signal,
|
|
178
|
+
signal: withTimeoutSignal(controller.signal, signal),
|
|
161
179
|
});
|
|
162
180
|
clearTimeout(timeoutId);
|
|
163
181
|
if (!response.ok) {
|
|
@@ -170,6 +188,12 @@ async function requestOnce(url, endpoint, timeout) {
|
|
|
170
188
|
}
|
|
171
189
|
catch (e) {
|
|
172
190
|
clearTimeout(timeoutId);
|
|
191
|
+
// The combined signal makes a timeout and a caller cancellation look alike
|
|
192
|
+
// to fetch, so the signals decide: a cancelled request is not an upstream
|
|
193
|
+
// failure and must not be dressed up as one.
|
|
194
|
+
if (signal?.aborted) {
|
|
195
|
+
throw e;
|
|
196
|
+
}
|
|
173
197
|
if (e instanceof RISAPIError || e instanceof RISParsingError) {
|
|
174
198
|
throw e;
|
|
175
199
|
}
|
|
@@ -186,73 +210,76 @@ async function requestOnce(url, endpoint, timeout) {
|
|
|
186
210
|
* Make a request to the RIS API, retrying once on transient failures
|
|
187
211
|
* (HTTP 502/503/504 and timeouts) after a short delay.
|
|
188
212
|
*/
|
|
189
|
-
async function request(endpoint, params, timeout = DEFAULT_TIMEOUT) {
|
|
213
|
+
async function request(endpoint, params, timeout = DEFAULT_TIMEOUT, signal) {
|
|
190
214
|
const url = new URL(endpoint, BASE_URL);
|
|
191
215
|
url.search = buildParams(params).toString();
|
|
192
216
|
const urlString = url.toString();
|
|
193
217
|
try {
|
|
194
|
-
return await requestOnce(urlString, endpoint, timeout);
|
|
218
|
+
return await requestOnce(urlString, endpoint, timeout, signal);
|
|
195
219
|
}
|
|
196
220
|
catch (e) {
|
|
197
|
-
if (isTransientError(e)) {
|
|
198
|
-
|
|
199
|
-
return requestOnce(urlString, endpoint, timeout);
|
|
221
|
+
if (!isTransientError(e)) {
|
|
222
|
+
throw e;
|
|
200
223
|
}
|
|
201
|
-
|
|
224
|
+
// A cancelled request is not a transient upstream error: `delay` rejects
|
|
225
|
+
// straight away if the caller has cancelled, or as soon as it does, so the
|
|
226
|
+
// second attempt never starts.
|
|
227
|
+
await delay(RETRY_DELAY_MS, signal);
|
|
228
|
+
return requestOnce(urlString, endpoint, timeout, signal);
|
|
202
229
|
}
|
|
203
230
|
}
|
|
204
231
|
/**
|
|
205
232
|
* Search federal law (Bundesrecht).
|
|
206
233
|
*/
|
|
207
|
-
export async function searchBundesrecht(params, timeout = DEFAULT_TIMEOUT) {
|
|
208
|
-
return request('Bundesrecht', params, timeout);
|
|
234
|
+
export async function searchBundesrecht(params, timeout = DEFAULT_TIMEOUT, signal) {
|
|
235
|
+
return request('Bundesrecht', params, timeout, signal);
|
|
209
236
|
}
|
|
210
237
|
/**
|
|
211
238
|
* Search state/provincial law (Landesrecht).
|
|
212
239
|
*/
|
|
213
|
-
export async function searchLandesrecht(params, timeout = DEFAULT_TIMEOUT) {
|
|
214
|
-
return request('Landesrecht', params, timeout);
|
|
240
|
+
export async function searchLandesrecht(params, timeout = DEFAULT_TIMEOUT, signal) {
|
|
241
|
+
return request('Landesrecht', params, timeout, signal);
|
|
215
242
|
}
|
|
216
243
|
/**
|
|
217
244
|
* Search case law/jurisprudence (Judikatur).
|
|
218
245
|
*/
|
|
219
|
-
export async function searchJudikatur(params, timeout = DEFAULT_TIMEOUT) {
|
|
220
|
-
return request('Judikatur', params, timeout);
|
|
246
|
+
export async function searchJudikatur(params, timeout = DEFAULT_TIMEOUT, signal) {
|
|
247
|
+
return request('Judikatur', params, timeout, signal);
|
|
221
248
|
}
|
|
222
249
|
/**
|
|
223
250
|
* Search district administrative authorities (Bezirke).
|
|
224
251
|
*/
|
|
225
|
-
export async function searchBezirke(params, timeout = DEFAULT_TIMEOUT) {
|
|
226
|
-
return request('Bezirke', params, timeout);
|
|
252
|
+
export async function searchBezirke(params, timeout = DEFAULT_TIMEOUT, signal) {
|
|
253
|
+
return request('Bezirke', params, timeout, signal);
|
|
227
254
|
}
|
|
228
255
|
/**
|
|
229
256
|
* Search municipal law (Gemeinden).
|
|
230
257
|
*/
|
|
231
|
-
export async function searchGemeinden(params, timeout = DEFAULT_TIMEOUT) {
|
|
232
|
-
return request('Gemeinden', params, timeout);
|
|
258
|
+
export async function searchGemeinden(params, timeout = DEFAULT_TIMEOUT, signal) {
|
|
259
|
+
return request('Gemeinden', params, timeout, signal);
|
|
233
260
|
}
|
|
234
261
|
/**
|
|
235
262
|
* Search miscellaneous legal collections (Sonstige).
|
|
236
263
|
*/
|
|
237
|
-
export async function searchSonstige(params, timeout = DEFAULT_TIMEOUT) {
|
|
238
|
-
return request('Sonstige', params, timeout);
|
|
264
|
+
export async function searchSonstige(params, timeout = DEFAULT_TIMEOUT, signal) {
|
|
265
|
+
return request('Sonstige', params, timeout, signal);
|
|
239
266
|
}
|
|
240
267
|
/**
|
|
241
268
|
* Search document change history (History).
|
|
242
269
|
*/
|
|
243
|
-
export async function searchHistory(params, timeout = DEFAULT_TIMEOUT) {
|
|
244
|
-
return request('History', params, timeout);
|
|
270
|
+
export async function searchHistory(params, timeout = DEFAULT_TIMEOUT, signal) {
|
|
271
|
+
return request('History', params, timeout, signal);
|
|
245
272
|
}
|
|
246
273
|
/**
|
|
247
274
|
* Fetch HTML content from a document URL.
|
|
248
275
|
*/
|
|
249
|
-
export async function getDocumentContent(url, timeout = DEFAULT_TIMEOUT) {
|
|
276
|
+
export async function getDocumentContent(url, timeout = DEFAULT_TIMEOUT, signal) {
|
|
250
277
|
const controller = new AbortController();
|
|
251
278
|
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
252
279
|
try {
|
|
253
280
|
const response = await fetch(url, {
|
|
254
281
|
method: 'GET',
|
|
255
|
-
signal: controller.signal,
|
|
282
|
+
signal: withTimeoutSignal(controller.signal, signal),
|
|
256
283
|
});
|
|
257
284
|
clearTimeout(timeoutId);
|
|
258
285
|
if (!response.ok) {
|
|
@@ -263,6 +290,10 @@ export async function getDocumentContent(url, timeout = DEFAULT_TIMEOUT) {
|
|
|
263
290
|
}
|
|
264
291
|
catch (e) {
|
|
265
292
|
clearTimeout(timeoutId);
|
|
293
|
+
// See requestOnce: only the signals distinguish a cancellation from a timeout.
|
|
294
|
+
if (signal?.aborted) {
|
|
295
|
+
throw e;
|
|
296
|
+
}
|
|
266
297
|
if (e instanceof RISAPIError) {
|
|
267
298
|
throw e;
|
|
268
299
|
}
|
|
@@ -400,9 +431,11 @@ export function constructDocumentUrl(dokumentnummer) {
|
|
|
400
431
|
*
|
|
401
432
|
* @param dokumentnummer - The RIS document number (e.g., "NOR12019037")
|
|
402
433
|
* @param timeout - Request timeout in milliseconds
|
|
434
|
+
* @param signal - Caller's cancellation signal; a cancellation is thrown rather
|
|
435
|
+
* than reported as an unsuccessful fetch, so callers do not fall back to a search
|
|
403
436
|
* @returns Result object with HTML content on success, or error details on failure
|
|
404
437
|
*/
|
|
405
|
-
export async function getDocumentByNumber(dokumentnummer, timeout = DEFAULT_TIMEOUT) {
|
|
438
|
+
export async function getDocumentByNumber(dokumentnummer, timeout = DEFAULT_TIMEOUT, signal) {
|
|
406
439
|
// Validate dokumentnummer before any URL operations
|
|
407
440
|
if (!isValidDokumentnummer(dokumentnummer)) {
|
|
408
441
|
return {
|
|
@@ -418,10 +451,15 @@ export async function getDocumentByNumber(dokumentnummer, timeout = DEFAULT_TIME
|
|
|
418
451
|
};
|
|
419
452
|
}
|
|
420
453
|
try {
|
|
421
|
-
const html = await getDocumentContent(url, timeout);
|
|
454
|
+
const html = await getDocumentContent(url, timeout, signal);
|
|
422
455
|
return { success: true, html, url };
|
|
423
456
|
}
|
|
424
457
|
catch (e) {
|
|
458
|
+
// Reporting a cancellation as a failed direct fetch would send the caller
|
|
459
|
+
// into its fallback search — a second round-trip nobody is waiting for.
|
|
460
|
+
if (signal?.aborted) {
|
|
461
|
+
throw e;
|
|
462
|
+
}
|
|
425
463
|
if (e instanceof RISAPIError) {
|
|
426
464
|
return {
|
|
427
465
|
success: false,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -7,22 +7,48 @@
|
|
|
7
7
|
* Format an error response in German.
|
|
8
8
|
*/
|
|
9
9
|
export declare function formatErrorResponse(error: unknown): string;
|
|
10
|
-
/**
|
|
11
|
-
export
|
|
10
|
+
/** A plain text content block. */
|
|
11
|
+
export interface TextContent {
|
|
12
|
+
type: 'text';
|
|
13
|
+
text: string;
|
|
14
|
+
}
|
|
15
|
+
/** A pointer to a resource the client can fetch itself instead of re-parsing text. */
|
|
16
|
+
export interface ResourceLinkContent {
|
|
17
|
+
type: 'resource_link';
|
|
18
|
+
uri: string;
|
|
19
|
+
name: string;
|
|
20
|
+
mimeType?: string;
|
|
21
|
+
}
|
|
22
|
+
export type McpContent = TextContent | ResourceLinkContent;
|
|
23
|
+
/**
|
|
24
|
+
* MCP tool response type with index signature for SDK compatibility.
|
|
25
|
+
*
|
|
26
|
+
* The content type is a parameter so the text-only helpers keep returning a
|
|
27
|
+
* single-element tuple — callers can still reach `content[0].text` without
|
|
28
|
+
* narrowing — while handlers that add further blocks use the default.
|
|
29
|
+
*/
|
|
30
|
+
export type McpToolResponse<C extends McpContent[] = McpContent[]> = {
|
|
12
31
|
[x: string]: unknown;
|
|
13
|
-
content:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}];
|
|
32
|
+
content: C;
|
|
33
|
+
structuredContent?: Record<string, unknown>;
|
|
34
|
+
isError?: boolean;
|
|
17
35
|
};
|
|
18
36
|
/**
|
|
19
37
|
* Create a standard MCP text response.
|
|
20
38
|
*/
|
|
21
|
-
export declare function createMcpResponse(text: string): McpToolResponse
|
|
39
|
+
export declare function createMcpResponse(text: string): McpToolResponse<[TextContent]>;
|
|
40
|
+
/**
|
|
41
|
+
* Create an MCP error response.
|
|
42
|
+
*
|
|
43
|
+
* Per the MCP spec, errors during tool execution are reported inside the result
|
|
44
|
+
* with `isError: true` (not as JSON-RPC protocol errors), so the model sees the
|
|
45
|
+
* message and can self-correct. A search without hits is not an error.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createErrorResponse(text: string): McpToolResponse<[TextContent]>;
|
|
22
48
|
/**
|
|
23
49
|
* Create a validation error response listing required parameters.
|
|
24
50
|
*/
|
|
25
|
-
export declare function createValidationErrorResponse(requiredParams: string[]): McpToolResponse
|
|
51
|
+
export declare function createValidationErrorResponse(requiredParams: string[]): McpToolResponse<[TextContent]>;
|
|
26
52
|
/**
|
|
27
53
|
* Check if any of the specified parameters has a truthy value.
|
|
28
54
|
*/
|
|
@@ -37,10 +63,19 @@ export declare function buildBaseParams(applikation: string, limit: number, seit
|
|
|
37
63
|
*/
|
|
38
64
|
export declare function addOptionalParams(params: Record<string, unknown>, mappings: [value: unknown, key: string][]): void;
|
|
39
65
|
/** Search function type for API calls */
|
|
40
|
-
export type SearchFunction = (params: Record<string, unknown
|
|
66
|
+
export type SearchFunction = (params: Record<string, unknown>, timeout?: number, signal?: AbortSignal) => Promise<unknown>;
|
|
41
67
|
/**
|
|
42
68
|
* Execute a search tool and return formatted results.
|
|
43
69
|
* Handles the common try-catch, parsing, formatting, and truncation logic.
|
|
70
|
+
*
|
|
71
|
+
* The formatted text stays the primary payload; the parsed result is attached as
|
|
72
|
+
* `structuredContent` so clients can consume the hits without re-parsing prose.
|
|
73
|
+
* Error results carry no structured payload — there is no result to describe.
|
|
74
|
+
*
|
|
75
|
+
* `signal` is the MCP request's cancellation signal (`extra.signal`). It reaches
|
|
76
|
+
* the outbound RIS request so an abandoned call stops upstream too; a cancelled
|
|
77
|
+
* request then propagates the abort instead of being reported as a tool error,
|
|
78
|
+
* since nobody is waiting to read it.
|
|
44
79
|
*/
|
|
45
|
-
export declare function executeSearchTool(searchFn: SearchFunction, params: Record<string, unknown>, responseFormat: 'markdown' | 'json'): Promise<McpToolResponse
|
|
80
|
+
export declare function executeSearchTool(searchFn: SearchFunction, params: Record<string, unknown>, responseFormat: 'markdown' | 'json', signal?: AbortSignal): Promise<McpToolResponse<[TextContent]>>;
|
|
46
81
|
//# sourceMappingURL=helpers.d.ts.map
|
package/dist/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA2B1D;AAMD,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA2B1D;AAMD,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,sFAAsF;AACtF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAE3D;;;;;;GAMG;AAEH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,IAAI;IACnE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC;IACX,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,CAEhF;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EAAE,GACvB,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,CAKhC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAKlF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GACxC,IAAI,CAMN;AAED,yCAAyC;AACzC,MAAM,MAAM,cAAc,GAAG,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,cAAc,EAAE,UAAU,GAAG,MAAM,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAazC"}
|
package/dist/helpers.js
CHANGED
|
@@ -36,12 +36,22 @@ export function formatErrorResponse(error) {
|
|
|
36
36
|
export function createMcpResponse(text) {
|
|
37
37
|
return { content: [{ type: 'text', text }] };
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Create an MCP error response.
|
|
41
|
+
*
|
|
42
|
+
* Per the MCP spec, errors during tool execution are reported inside the result
|
|
43
|
+
* with `isError: true` (not as JSON-RPC protocol errors), so the model sees the
|
|
44
|
+
* message and can self-correct. A search without hits is not an error.
|
|
45
|
+
*/
|
|
46
|
+
export function createErrorResponse(text) {
|
|
47
|
+
return { content: [{ type: 'text', text }], isError: true };
|
|
48
|
+
}
|
|
39
49
|
/**
|
|
40
50
|
* Create a validation error response listing required parameters.
|
|
41
51
|
*/
|
|
42
52
|
export function createValidationErrorResponse(requiredParams) {
|
|
43
53
|
const paramList = requiredParams.map((p) => `- \`${p}\``).join('\n');
|
|
44
|
-
return
|
|
54
|
+
return createErrorResponse('**Fehler:** Bitte gib mindestens einen Suchparameter an:\n' + paramList);
|
|
45
55
|
}
|
|
46
56
|
/**
|
|
47
57
|
* Check if any of the specified parameters has a truthy value.
|
|
@@ -76,17 +86,29 @@ export function addOptionalParams(params, mappings) {
|
|
|
76
86
|
/**
|
|
77
87
|
* Execute a search tool and return formatted results.
|
|
78
88
|
* Handles the common try-catch, parsing, formatting, and truncation logic.
|
|
89
|
+
*
|
|
90
|
+
* The formatted text stays the primary payload; the parsed result is attached as
|
|
91
|
+
* `structuredContent` so clients can consume the hits without re-parsing prose.
|
|
92
|
+
* Error results carry no structured payload — there is no result to describe.
|
|
93
|
+
*
|
|
94
|
+
* `signal` is the MCP request's cancellation signal (`extra.signal`). It reaches
|
|
95
|
+
* the outbound RIS request so an abandoned call stops upstream too; a cancelled
|
|
96
|
+
* request then propagates the abort instead of being reported as a tool error,
|
|
97
|
+
* since nobody is waiting to read it.
|
|
79
98
|
*/
|
|
80
|
-
export async function executeSearchTool(searchFn, params, responseFormat) {
|
|
99
|
+
export async function executeSearchTool(searchFn, params, responseFormat, signal) {
|
|
81
100
|
try {
|
|
82
|
-
const apiResponse = await searchFn(params);
|
|
101
|
+
const apiResponse = await searchFn(params, undefined, signal);
|
|
83
102
|
const searchResult = parseSearchResults(apiResponse);
|
|
84
103
|
const formatted = formatSearchResults(searchResult, responseFormat);
|
|
85
104
|
const result = truncateResponse(formatted);
|
|
86
|
-
return createMcpResponse(result);
|
|
105
|
+
return { ...createMcpResponse(result), structuredContent: searchResult };
|
|
87
106
|
}
|
|
88
107
|
catch (e) {
|
|
89
|
-
|
|
108
|
+
if (signal?.aborted) {
|
|
109
|
+
throw e;
|
|
110
|
+
}
|
|
111
|
+
return createErrorResponse(formatErrorResponse(e));
|
|
90
112
|
}
|
|
91
113
|
}
|
|
92
114
|
//# sourceMappingURL=helpers.js.map
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAgC,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEpF,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,CACL,+DAA+D;YAC/D,qEAAqE,CACtE,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,CACL,sEAAsE;YACtE,uBAAuB,KAAK,CAAC,OAAO,EAAE,CACvC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,CACL,sDAAsD,UAAU,OAAO;YACvE,YAAY,KAAK,CAAC,OAAO,EAAE,CAC5B,CAAC;IACJ,CAAC;IAED,OAAO,CACL,0DAA0D;QAC1D,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrE,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* for deployment on cloud platforms (e.g., AWS Lightsail).
|
|
6
6
|
*/
|
|
7
7
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
8
|
-
import type { Express } from 'express';
|
|
8
|
+
import type { Express, NextFunction, Request, Response } from 'express';
|
|
9
9
|
import { VERSION } from './version.js';
|
|
10
10
|
export { VERSION };
|
|
11
11
|
export declare const SESSION_IDLE_TIMEOUT_MS: number;
|
|
@@ -17,6 +17,18 @@ interface SessionEntry {
|
|
|
17
17
|
}
|
|
18
18
|
export declare const app: Express;
|
|
19
19
|
export declare const sessions: Map<string, SessionEntry>;
|
|
20
|
+
/**
|
|
21
|
+
* Origin validation — protects the unauthenticated /mcp endpoint against
|
|
22
|
+
* cross-site requests and DNS rebinding. The SDK's own `allowedOrigins` /
|
|
23
|
+
* `enableDnsRebindingProtection` transport options are deprecated in favour of
|
|
24
|
+
* exactly this: external middleware.
|
|
25
|
+
*
|
|
26
|
+
* A missing Origin header passes: only browsers send one, and every non-browser
|
|
27
|
+
* MCP client (stdio bridge, curl, server-to-server) would otherwise break. This
|
|
28
|
+
* is not a hole — an attacker's page cannot suppress the header, the browser
|
|
29
|
+
* sets it. A present Origin must match the allowlist exactly.
|
|
30
|
+
*/
|
|
31
|
+
export declare function validateOrigin(req: Request, res: Response, next: NextFunction): void;
|
|
20
32
|
export declare const mcpLimiter: import("express-rate-limit").RateLimitRequestHandler;
|
|
21
33
|
/**
|
|
22
34
|
* Store a session, enforcing the MAX_SESSIONS cap. If the map is full and the
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +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;AACnG,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAKvC,OAAO,EAAE,OAAO,EAAE,CAAC;AAGnB,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AACtD,eAAO,MAAM,yBAAyB,QAAgB,CAAC;AACvD,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC,UAAU,YAAY;IACpB,SAAS,EAAE,6BAA6B,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,GAAG,EAAE,OAAmB,CAAC;AACtC,eAAO,MAAM,QAAQ,2BAAkC,CAAC;AAoBxD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CASpF;AAQD,eAAO,MAAM,UAAU,sDAiBrB,CAAC;AAkCH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,6BAA6B,GAAG,IAAI,CAKjG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAmB,GAAG,MAAM,CASlE"}
|