insureforge-mcp 0.1.2 → 0.1.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.
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/services/api-client.d.ts +2 -6
- package/dist/services/api-client.d.ts.map +1 -1
- package/dist/services/api-client.js +3 -43
- package/dist/services/api-client.js.map +1 -1
- package/dist/tools/index.d.ts +3 -52
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +8 -65
- package/dist/tools/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +0 -6
- package/src/services/api-client.ts +3 -50
- package/src/tools/index.ts +9 -78
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
9
9
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
10
10
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
11
11
|
import { InsureForgeApiClient } from './services/api-client.js';
|
|
12
|
-
import { checkStatusInput, createExtractionInput,
|
|
12
|
+
import { checkStatusInput, createExtractionInput, exportDocumentInput, getResultInput, listExportersInput, toolDefinitions, ToolHandlers, uploadFilesInput, } from './tools/index.js';
|
|
13
13
|
// Configuration from environment
|
|
14
14
|
const INSUREFORGE_API_URL = process.env.INSUREFORGE_API_URL;
|
|
15
15
|
const INSUREFORGE_TIMEOUT = parseInt(process.env.INSUREFORGE_TIMEOUT || '60000', 10);
|
|
@@ -61,10 +61,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
61
61
|
const input = getResultInput.parse(args);
|
|
62
62
|
return await handlers.getResult(input);
|
|
63
63
|
}
|
|
64
|
-
case 'download_document': {
|
|
65
|
-
const input = downloadDocumentInput.parse(args);
|
|
66
|
-
return await handlers.downloadDocument(input);
|
|
67
|
-
}
|
|
68
64
|
case 'list_exporters': {
|
|
69
65
|
const input = listExportersInput.parse(args);
|
|
70
66
|
return await handlers.listExporters(input);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,10 +23,6 @@ export declare class InsureForgeApiClient {
|
|
|
23
23
|
* Get extraction result
|
|
24
24
|
*/
|
|
25
25
|
getJobResult(jobId: string): Promise<JobResultResponse>;
|
|
26
|
-
/**
|
|
27
|
-
* Download result file
|
|
28
|
-
*/
|
|
29
|
-
downloadResult(jobId: string, format?: 'json' | 'docx'): Promise<Buffer>;
|
|
30
26
|
/**
|
|
31
27
|
* Health check
|
|
32
28
|
*/
|
|
@@ -39,8 +35,8 @@ export declare class InsureForgeApiClient {
|
|
|
39
35
|
*/
|
|
40
36
|
listExporters(): Promise<ExportersResponse>;
|
|
41
37
|
/**
|
|
42
|
-
*
|
|
38
|
+
* Get export URL for job result
|
|
43
39
|
*/
|
|
44
|
-
|
|
40
|
+
getExportUrl(jobId: string, exporterName: string): string;
|
|
45
41
|
}
|
|
46
42
|
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,iBAAiB;YAKvB,OAAO;IA2CrB;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAkB/D;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAMrF;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI7D;;OAEG;IACG,
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,iBAAiB;YAKvB,OAAO;IA2CrB;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAkB/D;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAMrF;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI7D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIjD;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;CAG1D"}
|
|
@@ -78,29 +78,6 @@ export class InsureForgeApiClient {
|
|
|
78
78
|
async getJobResult(jobId) {
|
|
79
79
|
return this.request('GET', `/api/v1/jobs/${jobId}/result`);
|
|
80
80
|
}
|
|
81
|
-
/**
|
|
82
|
-
* Download result file
|
|
83
|
-
*/
|
|
84
|
-
async downloadResult(jobId, format = 'json') {
|
|
85
|
-
const url = `${this.baseUrl}/api/v1/jobs/${jobId}/download?format=${format}`;
|
|
86
|
-
const controller = new AbortController();
|
|
87
|
-
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
88
|
-
try {
|
|
89
|
-
const response = await fetch(url, {
|
|
90
|
-
method: 'GET',
|
|
91
|
-
signal: controller.signal,
|
|
92
|
-
});
|
|
93
|
-
if (!response.ok) {
|
|
94
|
-
const errorData = (await response.json().catch(() => ({})));
|
|
95
|
-
throw new Error(errorData.error || `HTTP ${response.status}: ${response.statusText}`);
|
|
96
|
-
}
|
|
97
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
98
|
-
return Buffer.from(arrayBuffer);
|
|
99
|
-
}
|
|
100
|
-
finally {
|
|
101
|
-
clearTimeout(timeoutId);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
81
|
/**
|
|
105
82
|
* Health check
|
|
106
83
|
*/
|
|
@@ -114,27 +91,10 @@ export class InsureForgeApiClient {
|
|
|
114
91
|
return this.request('GET', '/api/v1/export/exporters');
|
|
115
92
|
}
|
|
116
93
|
/**
|
|
117
|
-
*
|
|
94
|
+
* Get export URL for job result
|
|
118
95
|
*/
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const controller = new AbortController();
|
|
122
|
-
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
123
|
-
try {
|
|
124
|
-
const response = await fetch(url, {
|
|
125
|
-
method: 'GET',
|
|
126
|
-
signal: controller.signal,
|
|
127
|
-
});
|
|
128
|
-
if (!response.ok) {
|
|
129
|
-
const errorData = (await response.json().catch(() => ({})));
|
|
130
|
-
throw new Error(errorData.error || `HTTP ${response.status}: ${response.statusText}`);
|
|
131
|
-
}
|
|
132
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
133
|
-
return Buffer.from(arrayBuffer);
|
|
134
|
-
}
|
|
135
|
-
finally {
|
|
136
|
-
clearTimeout(timeoutId);
|
|
137
|
-
}
|
|
96
|
+
getExportUrl(jobId, exporterName) {
|
|
97
|
+
return `${this.baseUrl}/api/v1/export/jobs/${jobId}/${exporterName}`;
|
|
138
98
|
}
|
|
139
99
|
}
|
|
140
100
|
//# sourceMappingURL=api-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ export declare const toolDefinitions: {
|
|
|
81
81
|
};
|
|
82
82
|
readonly export_document: {
|
|
83
83
|
readonly name: "export_document";
|
|
84
|
-
readonly description: "
|
|
84
|
+
readonly description: "Get a download link for the extraction result using a specific exporter. Use list_exporters to see available exporters. Returns a download URL that the user can click to download the document.";
|
|
85
85
|
readonly inputSchema: {
|
|
86
86
|
readonly type: "object";
|
|
87
87
|
readonly properties: {
|
|
@@ -91,37 +91,10 @@ export declare const toolDefinitions: {
|
|
|
91
91
|
};
|
|
92
92
|
readonly exporterName: {
|
|
93
93
|
readonly type: "string";
|
|
94
|
-
readonly description: "
|
|
95
|
-
};
|
|
96
|
-
readonly outputPath: {
|
|
97
|
-
readonly type: "string";
|
|
98
|
-
readonly description: "Path to save the exported document";
|
|
94
|
+
readonly description: "Exporter name (use English name from list_exporters, e.g., \"product_liability_quotation\", \"application_report\", \"raw_json\")";
|
|
99
95
|
};
|
|
100
96
|
};
|
|
101
|
-
readonly required: readonly ["jobId", "exporterName"
|
|
102
|
-
};
|
|
103
|
-
};
|
|
104
|
-
readonly download_document: {
|
|
105
|
-
readonly name: "download_document";
|
|
106
|
-
readonly description: "[DEPRECATED] Use export_document instead. Download the extraction result as a JSON file or generated DOCX document.";
|
|
107
|
-
readonly inputSchema: {
|
|
108
|
-
readonly type: "object";
|
|
109
|
-
readonly properties: {
|
|
110
|
-
readonly jobId: {
|
|
111
|
-
readonly type: "string";
|
|
112
|
-
readonly description: "Job ID from create_extraction";
|
|
113
|
-
};
|
|
114
|
-
readonly format: {
|
|
115
|
-
readonly type: "string";
|
|
116
|
-
readonly enum: readonly ["json", "docx"];
|
|
117
|
-
readonly description: "Output format: json for raw data, docx for generated application form";
|
|
118
|
-
};
|
|
119
|
-
readonly outputPath: {
|
|
120
|
-
readonly type: "string";
|
|
121
|
-
readonly description: "Path to save the downloaded file";
|
|
122
|
-
};
|
|
123
|
-
};
|
|
124
|
-
readonly required: readonly ["jobId", "format", "outputPath"];
|
|
97
|
+
readonly required: readonly ["jobId", "exporterName"];
|
|
125
98
|
};
|
|
126
99
|
};
|
|
127
100
|
};
|
|
@@ -160,28 +133,12 @@ export declare const listExportersInput: z.ZodObject<{}, "strip", z.ZodTypeAny,
|
|
|
160
133
|
export declare const exportDocumentInput: z.ZodObject<{
|
|
161
134
|
jobId: z.ZodString;
|
|
162
135
|
exporterName: z.ZodString;
|
|
163
|
-
outputPath: z.ZodString;
|
|
164
136
|
}, "strip", z.ZodTypeAny, {
|
|
165
137
|
jobId: string;
|
|
166
138
|
exporterName: string;
|
|
167
|
-
outputPath: string;
|
|
168
139
|
}, {
|
|
169
140
|
jobId: string;
|
|
170
141
|
exporterName: string;
|
|
171
|
-
outputPath: string;
|
|
172
|
-
}>;
|
|
173
|
-
export declare const downloadDocumentInput: z.ZodObject<{
|
|
174
|
-
jobId: z.ZodString;
|
|
175
|
-
format: z.ZodEnum<["json", "docx"]>;
|
|
176
|
-
outputPath: z.ZodString;
|
|
177
|
-
}, "strip", z.ZodTypeAny, {
|
|
178
|
-
jobId: string;
|
|
179
|
-
outputPath: string;
|
|
180
|
-
format: "json" | "docx";
|
|
181
|
-
}, {
|
|
182
|
-
jobId: string;
|
|
183
|
-
outputPath: string;
|
|
184
|
-
format: "json" | "docx";
|
|
185
142
|
}>;
|
|
186
143
|
export declare class ToolHandlers {
|
|
187
144
|
private client;
|
|
@@ -222,11 +179,5 @@ export declare class ToolHandlers {
|
|
|
222
179
|
text: string;
|
|
223
180
|
}[];
|
|
224
181
|
}>;
|
|
225
|
-
downloadDocument(input: z.infer<typeof downloadDocumentInput>): Promise<{
|
|
226
|
-
content: {
|
|
227
|
-
type: "text";
|
|
228
|
-
text: string;
|
|
229
|
-
}[];
|
|
230
|
-
}>;
|
|
231
182
|
}
|
|
232
183
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGtE,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGtE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqGlB,CAAC;AAGX,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;EAEzB,CAAC;AAEH,eAAO,MAAM,kBAAkB,gDAAe,CAAC;AAE/C,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAGH,qBAAa,YAAY;IACX,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IAE1C,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC;;;;;;IAyBnD,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC;;;;;;IAqB7D,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC;;;;;;IAuBnD,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC;;;;;;IAY/C,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC;;;;;;IAyBxD,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;;;;;;CAqBhE"}
|
package/dist/tools/index.js
CHANGED
|
@@ -77,7 +77,7 @@ export const toolDefinitions = {
|
|
|
77
77
|
},
|
|
78
78
|
export_document: {
|
|
79
79
|
name: 'export_document',
|
|
80
|
-
description: '
|
|
80
|
+
description: 'Get a download link for the extraction result using a specific exporter. Use list_exporters to see available exporters. Returns a download URL that the user can click to download the document.',
|
|
81
81
|
inputSchema: {
|
|
82
82
|
type: 'object',
|
|
83
83
|
properties: {
|
|
@@ -87,37 +87,10 @@ export const toolDefinitions = {
|
|
|
87
87
|
},
|
|
88
88
|
exporterName: {
|
|
89
89
|
type: 'string',
|
|
90
|
-
description: '
|
|
91
|
-
},
|
|
92
|
-
outputPath: {
|
|
93
|
-
type: 'string',
|
|
94
|
-
description: 'Path to save the exported document',
|
|
90
|
+
description: 'Exporter name (use English name from list_exporters, e.g., "product_liability_quotation", "application_report", "raw_json")',
|
|
95
91
|
},
|
|
96
92
|
},
|
|
97
|
-
required: ['jobId', 'exporterName'
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
download_document: {
|
|
101
|
-
name: 'download_document',
|
|
102
|
-
description: '[DEPRECATED] Use export_document instead. Download the extraction result as a JSON file or generated DOCX document.',
|
|
103
|
-
inputSchema: {
|
|
104
|
-
type: 'object',
|
|
105
|
-
properties: {
|
|
106
|
-
jobId: {
|
|
107
|
-
type: 'string',
|
|
108
|
-
description: 'Job ID from create_extraction',
|
|
109
|
-
},
|
|
110
|
-
format: {
|
|
111
|
-
type: 'string',
|
|
112
|
-
enum: ['json', 'docx'],
|
|
113
|
-
description: 'Output format: json for raw data, docx for generated application form',
|
|
114
|
-
},
|
|
115
|
-
outputPath: {
|
|
116
|
-
type: 'string',
|
|
117
|
-
description: 'Path to save the downloaded file',
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
required: ['jobId', 'format', 'outputPath'],
|
|
93
|
+
required: ['jobId', 'exporterName'],
|
|
121
94
|
},
|
|
122
95
|
},
|
|
123
96
|
};
|
|
@@ -139,12 +112,6 @@ export const listExportersInput = z.object({});
|
|
|
139
112
|
export const exportDocumentInput = z.object({
|
|
140
113
|
jobId: z.string(),
|
|
141
114
|
exporterName: z.string(),
|
|
142
|
-
outputPath: z.string(),
|
|
143
|
-
});
|
|
144
|
-
export const downloadDocumentInput = z.object({
|
|
145
|
-
jobId: z.string(),
|
|
146
|
-
format: z.enum(['json', 'docx']),
|
|
147
|
-
outputPath: z.string(),
|
|
148
115
|
});
|
|
149
116
|
// Tool handlers
|
|
150
117
|
export class ToolHandlers {
|
|
@@ -219,6 +186,7 @@ export class ToolHandlers {
|
|
|
219
186
|
}
|
|
220
187
|
async listExporters(_input) {
|
|
221
188
|
const result = await this.client.listExporters();
|
|
189
|
+
const exporterNames = result.exporters.map((e) => e.name).join(', ');
|
|
222
190
|
return {
|
|
223
191
|
content: [
|
|
224
192
|
{
|
|
@@ -230,18 +198,14 @@ export class ToolHandlers {
|
|
|
230
198
|
displayName: e.display_name,
|
|
231
199
|
format: e.format,
|
|
232
200
|
})),
|
|
233
|
-
message: `Found ${result.exporters.length} available exporter(s). Use
|
|
201
|
+
message: `Found ${result.exporters.length} available exporter(s). IMPORTANT: Use the "name" field (not "displayName") with export_document. Available names: ${exporterNames}`,
|
|
234
202
|
}, null, 2),
|
|
235
203
|
},
|
|
236
204
|
],
|
|
237
205
|
};
|
|
238
206
|
}
|
|
239
207
|
async exportDocument(input) {
|
|
240
|
-
const
|
|
241
|
-
const path = await import('path');
|
|
242
|
-
const buffer = await this.client.exportDocument(input.jobId, input.exporterName);
|
|
243
|
-
const outputPath = path.resolve(input.outputPath);
|
|
244
|
-
fs.writeFileSync(outputPath, buffer);
|
|
208
|
+
const downloadUrl = this.client.getExportUrl(input.jobId, input.exporterName);
|
|
245
209
|
return {
|
|
246
210
|
content: [
|
|
247
211
|
{
|
|
@@ -249,29 +213,8 @@ export class ToolHandlers {
|
|
|
249
213
|
text: JSON.stringify({
|
|
250
214
|
success: true,
|
|
251
215
|
exporter: input.exporterName,
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
message: `Successfully exported document using "${input.exporterName}" to ${outputPath}`,
|
|
255
|
-
}, null, 2),
|
|
256
|
-
},
|
|
257
|
-
],
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
async downloadDocument(input) {
|
|
261
|
-
const fs = await import('fs');
|
|
262
|
-
const path = await import('path');
|
|
263
|
-
const buffer = await this.client.downloadResult(input.jobId, input.format);
|
|
264
|
-
const outputPath = path.resolve(input.outputPath);
|
|
265
|
-
fs.writeFileSync(outputPath, buffer);
|
|
266
|
-
return {
|
|
267
|
-
content: [
|
|
268
|
-
{
|
|
269
|
-
type: 'text',
|
|
270
|
-
text: JSON.stringify({
|
|
271
|
-
success: true,
|
|
272
|
-
path: outputPath,
|
|
273
|
-
size: buffer.length,
|
|
274
|
-
message: `Successfully downloaded ${input.format} file to ${outputPath}`,
|
|
216
|
+
downloadUrl,
|
|
217
|
+
message: `Document ready for download. Click the link to download: ${downloadUrl}`,
|
|
275
218
|
}, null, 2),
|
|
276
219
|
},
|
|
277
220
|
],
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,2BAA2B;AAC3B,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,2IAA2I;QAC7I,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,wCAAwC;iBACtD;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IAED,iBAAiB,EAAE;QACjB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,mIAAmI;QACrI,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC;iBACjD;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,+FAA+F;iBAC7G;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;KACF;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IAED,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,kIAAkI;QACpI,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IAED,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,kIAAkI;QACpI,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;IAED,eAAe,EAAE;QACf,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -18,7 +18,6 @@ import { InsureForgeApiClient } from './services/api-client.js';
|
|
|
18
18
|
import {
|
|
19
19
|
checkStatusInput,
|
|
20
20
|
createExtractionInput,
|
|
21
|
-
downloadDocumentInput,
|
|
22
21
|
exportDocumentInput,
|
|
23
22
|
getResultInput,
|
|
24
23
|
listExportersInput,
|
|
@@ -92,11 +91,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
92
91
|
return await handlers.getResult(input);
|
|
93
92
|
}
|
|
94
93
|
|
|
95
|
-
case 'download_document': {
|
|
96
|
-
const input = downloadDocumentInput.parse(args);
|
|
97
|
-
return await handlers.downloadDocument(input);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
94
|
case 'list_exporters': {
|
|
101
95
|
const input = listExportersInput.parse(args);
|
|
102
96
|
return await handlers.listExporters(input);
|
|
@@ -111,33 +111,6 @@ export class InsureForgeApiClient {
|
|
|
111
111
|
return this.request<JobResultResponse>('GET', `/api/v1/jobs/${jobId}/result`);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
/**
|
|
115
|
-
* Download result file
|
|
116
|
-
*/
|
|
117
|
-
async downloadResult(jobId: string, format: 'json' | 'docx' = 'json'): Promise<Buffer> {
|
|
118
|
-
const url = `${this.baseUrl}/api/v1/jobs/${jobId}/download?format=${format}`;
|
|
119
|
-
|
|
120
|
-
const controller = new AbortController();
|
|
121
|
-
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
122
|
-
|
|
123
|
-
try {
|
|
124
|
-
const response = await fetch(url, {
|
|
125
|
-
method: 'GET',
|
|
126
|
-
signal: controller.signal,
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
if (!response.ok) {
|
|
130
|
-
const errorData = (await response.json().catch(() => ({}))) as ApiError;
|
|
131
|
-
throw new Error(errorData.error || `HTTP ${response.status}: ${response.statusText}`);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
135
|
-
return Buffer.from(arrayBuffer);
|
|
136
|
-
} finally {
|
|
137
|
-
clearTimeout(timeoutId);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
114
|
/**
|
|
142
115
|
* Health check
|
|
143
116
|
*/
|
|
@@ -153,29 +126,9 @@ export class InsureForgeApiClient {
|
|
|
153
126
|
}
|
|
154
127
|
|
|
155
128
|
/**
|
|
156
|
-
*
|
|
129
|
+
* Get export URL for job result
|
|
157
130
|
*/
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
const controller = new AbortController();
|
|
162
|
-
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
163
|
-
|
|
164
|
-
try {
|
|
165
|
-
const response = await fetch(url, {
|
|
166
|
-
method: 'GET',
|
|
167
|
-
signal: controller.signal,
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
if (!response.ok) {
|
|
171
|
-
const errorData = (await response.json().catch(() => ({}))) as ApiError;
|
|
172
|
-
throw new Error(errorData.error || `HTTP ${response.status}: ${response.statusText}`);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
176
|
-
return Buffer.from(arrayBuffer);
|
|
177
|
-
} finally {
|
|
178
|
-
clearTimeout(timeoutId);
|
|
179
|
-
}
|
|
131
|
+
getExportUrl(jobId: string, exporterName: string): string {
|
|
132
|
+
return `${this.baseUrl}/api/v1/export/jobs/${jobId}/${exporterName}`;
|
|
180
133
|
}
|
|
181
134
|
}
|
package/src/tools/index.ts
CHANGED
|
@@ -90,7 +90,7 @@ export const toolDefinitions = {
|
|
|
90
90
|
export_document: {
|
|
91
91
|
name: 'export_document',
|
|
92
92
|
description:
|
|
93
|
-
'
|
|
93
|
+
'Get a download link for the extraction result using a specific exporter. Use list_exporters to see available exporters. Returns a download URL that the user can click to download the document.',
|
|
94
94
|
inputSchema: {
|
|
95
95
|
type: 'object',
|
|
96
96
|
properties: {
|
|
@@ -100,39 +100,11 @@ export const toolDefinitions = {
|
|
|
100
100
|
},
|
|
101
101
|
exporterName: {
|
|
102
102
|
type: 'string',
|
|
103
|
-
description:
|
|
104
|
-
|
|
105
|
-
outputPath: {
|
|
106
|
-
type: 'string',
|
|
107
|
-
description: 'Path to save the exported document',
|
|
103
|
+
description:
|
|
104
|
+
'Exporter name (use English name from list_exporters, e.g., "product_liability_quotation", "application_report", "raw_json")',
|
|
108
105
|
},
|
|
109
106
|
},
|
|
110
|
-
required: ['jobId', 'exporterName'
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
download_document: {
|
|
115
|
-
name: 'download_document',
|
|
116
|
-
description:
|
|
117
|
-
'[DEPRECATED] Use export_document instead. Download the extraction result as a JSON file or generated DOCX document.',
|
|
118
|
-
inputSchema: {
|
|
119
|
-
type: 'object',
|
|
120
|
-
properties: {
|
|
121
|
-
jobId: {
|
|
122
|
-
type: 'string',
|
|
123
|
-
description: 'Job ID from create_extraction',
|
|
124
|
-
},
|
|
125
|
-
format: {
|
|
126
|
-
type: 'string',
|
|
127
|
-
enum: ['json', 'docx'],
|
|
128
|
-
description: 'Output format: json for raw data, docx for generated application form',
|
|
129
|
-
},
|
|
130
|
-
outputPath: {
|
|
131
|
-
type: 'string',
|
|
132
|
-
description: 'Path to save the downloaded file',
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
required: ['jobId', 'format', 'outputPath'],
|
|
107
|
+
required: ['jobId', 'exporterName'],
|
|
136
108
|
},
|
|
137
109
|
},
|
|
138
110
|
} as const;
|
|
@@ -160,13 +132,6 @@ export const listExportersInput = z.object({});
|
|
|
160
132
|
export const exportDocumentInput = z.object({
|
|
161
133
|
jobId: z.string(),
|
|
162
134
|
exporterName: z.string(),
|
|
163
|
-
outputPath: z.string(),
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
export const downloadDocumentInput = z.object({
|
|
167
|
-
jobId: z.string(),
|
|
168
|
-
format: z.enum(['json', 'docx']),
|
|
169
|
-
outputPath: z.string(),
|
|
170
135
|
});
|
|
171
136
|
|
|
172
137
|
// Tool handlers
|
|
@@ -256,6 +221,7 @@ export class ToolHandlers {
|
|
|
256
221
|
|
|
257
222
|
async listExporters(_input: z.infer<typeof listExportersInput>) {
|
|
258
223
|
const result = await this.client.listExporters();
|
|
224
|
+
const exporterNames = result.exporters.map((e) => e.name).join(', ');
|
|
259
225
|
return {
|
|
260
226
|
content: [
|
|
261
227
|
{
|
|
@@ -268,7 +234,7 @@ export class ToolHandlers {
|
|
|
268
234
|
displayName: e.display_name,
|
|
269
235
|
format: e.format,
|
|
270
236
|
})),
|
|
271
|
-
message: `Found ${result.exporters.length} available exporter(s). Use
|
|
237
|
+
message: `Found ${result.exporters.length} available exporter(s). IMPORTANT: Use the "name" field (not "displayName") with export_document. Available names: ${exporterNames}`,
|
|
272
238
|
},
|
|
273
239
|
null,
|
|
274
240
|
2
|
|
@@ -279,13 +245,7 @@ export class ToolHandlers {
|
|
|
279
245
|
}
|
|
280
246
|
|
|
281
247
|
async exportDocument(input: z.infer<typeof exportDocumentInput>) {
|
|
282
|
-
const
|
|
283
|
-
const path = await import('path');
|
|
284
|
-
|
|
285
|
-
const buffer = await this.client.exportDocument(input.jobId, input.exporterName);
|
|
286
|
-
const outputPath = path.resolve(input.outputPath);
|
|
287
|
-
|
|
288
|
-
fs.writeFileSync(outputPath, buffer);
|
|
248
|
+
const downloadUrl = this.client.getExportUrl(input.jobId, input.exporterName);
|
|
289
249
|
|
|
290
250
|
return {
|
|
291
251
|
content: [
|
|
@@ -295,37 +255,8 @@ export class ToolHandlers {
|
|
|
295
255
|
{
|
|
296
256
|
success: true,
|
|
297
257
|
exporter: input.exporterName,
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
message: `Successfully exported document using "${input.exporterName}" to ${outputPath}`,
|
|
301
|
-
},
|
|
302
|
-
null,
|
|
303
|
-
2
|
|
304
|
-
),
|
|
305
|
-
},
|
|
306
|
-
],
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
async downloadDocument(input: z.infer<typeof downloadDocumentInput>) {
|
|
311
|
-
const fs = await import('fs');
|
|
312
|
-
const path = await import('path');
|
|
313
|
-
|
|
314
|
-
const buffer = await this.client.downloadResult(input.jobId, input.format);
|
|
315
|
-
const outputPath = path.resolve(input.outputPath);
|
|
316
|
-
|
|
317
|
-
fs.writeFileSync(outputPath, buffer);
|
|
318
|
-
|
|
319
|
-
return {
|
|
320
|
-
content: [
|
|
321
|
-
{
|
|
322
|
-
type: 'text' as const,
|
|
323
|
-
text: JSON.stringify(
|
|
324
|
-
{
|
|
325
|
-
success: true,
|
|
326
|
-
path: outputPath,
|
|
327
|
-
size: buffer.length,
|
|
328
|
-
message: `Successfully downloaded ${input.format} file to ${outputPath}`,
|
|
258
|
+
downloadUrl,
|
|
259
|
+
message: `Document ready for download. Click the link to download: ${downloadUrl}`,
|
|
329
260
|
},
|
|
330
261
|
null,
|
|
331
262
|
2
|