formbro-mcp-server 1.0.1 → 1.0.2

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 (52) hide show
  1. package/README.md +42 -24
  2. package/dist/index.js +58 -14
  3. package/dist/index.js.map +1 -1
  4. package/dist/services/api-client.d.ts +7 -0
  5. package/dist/services/api-client.d.ts.map +1 -1
  6. package/dist/services/api-client.js +113 -2
  7. package/dist/services/api-client.js.map +1 -1
  8. package/dist/services/idempotency.d.ts +6 -0
  9. package/dist/services/idempotency.d.ts.map +1 -0
  10. package/dist/services/idempotency.js +9 -0
  11. package/dist/services/idempotency.js.map +1 -0
  12. package/dist/tools/applications-extra.d.ts +3 -0
  13. package/dist/tools/applications-extra.d.ts.map +1 -0
  14. package/dist/tools/applications-extra.js +62 -0
  15. package/dist/tools/applications-extra.js.map +1 -0
  16. package/dist/tools/audit.d.ts +3 -0
  17. package/dist/tools/audit.d.ts.map +1 -0
  18. package/dist/tools/audit.js +34 -0
  19. package/dist/tools/audit.js.map +1 -0
  20. package/dist/tools/employers.d.ts.map +1 -1
  21. package/dist/tools/employers.js +17 -29
  22. package/dist/tools/employers.js.map +1 -1
  23. package/dist/tools/export.d.ts +3 -0
  24. package/dist/tools/export.d.ts.map +1 -0
  25. package/dist/tools/export.js +247 -0
  26. package/dist/tools/export.js.map +1 -0
  27. package/dist/tools/extract.d.ts +3 -0
  28. package/dist/tools/extract.d.ts.map +1 -0
  29. package/dist/tools/extract.js +208 -0
  30. package/dist/tools/extract.js.map +1 -0
  31. package/dist/tools/patch.d.ts +10 -0
  32. package/dist/tools/patch.d.ts.map +1 -0
  33. package/dist/tools/patch.js +276 -0
  34. package/dist/tools/patch.js.map +1 -0
  35. package/dist/tools/program-keys.d.ts +3 -0
  36. package/dist/tools/program-keys.d.ts.map +1 -0
  37. package/dist/tools/program-keys.js +13 -0
  38. package/dist/tools/program-keys.js.map +1 -0
  39. package/dist/tools/system.d.ts +3 -0
  40. package/dist/tools/system.d.ts.map +1 -0
  41. package/dist/tools/system.js +84 -0
  42. package/dist/tools/system.js.map +1 -0
  43. package/dist/tools/validate.d.ts +3 -0
  44. package/dist/tools/validate.d.ts.map +1 -0
  45. package/dist/tools/validate.js +68 -0
  46. package/dist/tools/validate.js.map +1 -0
  47. package/dist/tools/write.d.ts +4 -0
  48. package/dist/tools/write.d.ts.map +1 -0
  49. package/dist/tools/write.js +786 -0
  50. package/dist/tools/write.js.map +1 -0
  51. package/package.json +7 -3
  52. package/server.json +67 -0
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ import { makeApiRequest, handleApiError } from "../services/api-client.js";
3
+ const GetMyAuditLogSchema = z.object({
4
+ from: z.string().optional().describe("Start datetime (ISO 8601, e.g. '2025-01-01T00:00:00Z'). Filter entries after this time."),
5
+ to: z.string().optional().describe("End datetime (ISO 8601). Filter entries before this time."),
6
+ action_filter: z.string().optional().describe("Filter by action prefix, e.g. 'agent.write', 'agent.read'."),
7
+ limit: z.number().min(1).max(200).default(50).describe("Max entries to return (1–200, default 50)."),
8
+ }).strict();
9
+ export function registerAuditTools(server) {
10
+ server.registerTool("get_my_audit_log", {
11
+ title: "Get My Audit Log",
12
+ description: "Retrieve audit log entries for the current API token. " +
13
+ "Filter by date range or action prefix (e.g. 'agent.write'). " +
14
+ "Useful for reviewing recent agent activity or debugging unexpected changes.",
15
+ inputSchema: GetMyAuditLogSchema.shape,
16
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
17
+ }, async ({ from, to, action_filter, limit }) => {
18
+ try {
19
+ const params = { limit: limit ?? 50 };
20
+ if (from)
21
+ params["from"] = from;
22
+ if (to)
23
+ params["to"] = to;
24
+ if (action_filter)
25
+ params["action_filter"] = action_filter;
26
+ const data = await makeApiRequest("/api/audit/my", "GET", undefined, params);
27
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
28
+ }
29
+ catch (error) {
30
+ return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
31
+ }
32
+ });
33
+ }
34
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yFAAyF,CAAC;IAC/H,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC/F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC3G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CACrG,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,wDAAwD;YACxD,8DAA8D;YAC9D,6EAA6E;QAC/E,WAAW,EAAE,mBAAmB,CAAC,KAAK;QACtC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAA4B,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/D,IAAI,IAAI;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YAChC,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,aAAa;gBAAE,MAAM,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;YAE3D,MAAM,IAAI,GAAG,MAAM,cAAc,CAAU,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"employers.d.ts","sourceRoot":"","sources":["../../src/tools/employers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8DpE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkN7D"}
1
+ {"version":3,"file":"employers.d.ts","sourceRoot":"","sources":["../../src/tools/employers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2CpE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiN7D"}
@@ -1,7 +1,11 @@
1
1
  // Employer Tools for FormBro MCP Server
2
+ import { z } from "zod";
2
3
  import { makeApiRequest, handleApiError } from "../services/api-client.js";
3
4
  import { ListWithSearchSchema, IdWithFormatSchema } from "../schemas/common.js";
4
5
  import { ResponseFormat, CHARACTER_LIMIT } from "../constants.js";
6
+ const ListEmployersSchema = ListWithSearchSchema.extend({
7
+ stream: z.enum(["hws", "lws", "ee"]).default("hws").describe("LMIA stream: 'hws' (High-Wage), 'lws' (Low-Wage), 'ee' (Express Entry). Employers are shared across streams."),
8
+ });
5
9
  /**
6
10
  * Format employer data as Markdown
7
11
  */
@@ -29,23 +33,6 @@ function formatEmployerMarkdown(employer) {
29
33
  }
30
34
  return lines.join("\n");
31
35
  }
32
- /**
33
- * Format employers list as Markdown
34
- */
35
- function formatEmployersListMarkdown(employers, total, offset) {
36
- const lines = [
37
- "# Employers List",
38
- "",
39
- `Found ${total} employers (showing ${employers.length} from offset ${offset})`,
40
- ""
41
- ];
42
- for (const employer of employers) {
43
- lines.push(formatEmployerMarkdown(employer));
44
- lines.push("---");
45
- lines.push("");
46
- }
47
- return lines.join("\n");
48
- }
49
36
  /**
50
37
  * Register employer tools with the MCP server
51
38
  */
@@ -71,7 +58,7 @@ Examples:
71
58
  - "List all employers" -> params: {}
72
59
  - "Find employer Tech Corp" -> params: { search: "Tech Corp" }
73
60
  - "Get employers page 2" -> params: { offset: 20, limit: 20 }`,
74
- inputSchema: ListWithSearchSchema,
61
+ inputSchema: ListEmployersSchema,
75
62
  annotations: {
76
63
  readOnlyHint: true,
77
64
  destructiveHint: false,
@@ -86,9 +73,9 @@ Examples:
86
73
  };
87
74
  if (params.search)
88
75
  queryParams.search = params.search;
89
- const response = await makeApiRequest("/api/lmia/employers", "GET", undefined, queryParams);
90
- const employers = response.items || [];
91
- const total = response.total || 0;
76
+ // Use stream-specific URL (same as frontend: /lmia/${stream}/employers)
77
+ const employers = await makeApiRequest(`/api/lmia/${params.stream}/employers`, "GET", undefined, queryParams);
78
+ const total = employers.length;
92
79
  if (!employers.length) {
93
80
  return {
94
81
  content: [{
@@ -103,14 +90,15 @@ Examples:
103
90
  total,
104
91
  count: employers.length,
105
92
  offset: params.offset,
106
- items: employers.map(e => ({
93
+ items: employers.map((e) => ({
107
94
  id: e.id,
108
- legal_name: e.general?.legal_name,
109
- operating_name: e.general?.operating_name,
110
- business_number: e.general?.business_number,
111
- industry: e.general?.industry,
112
- website: e.general?.website,
113
- created_date: e.created_date
95
+ display_name: e.display_name,
96
+ legal_name: e.legal_name,
97
+ operating_name: e.operating_name,
98
+ cra_number: e.cra_number,
99
+ address: e.address,
100
+ contact_name: e.contact_name,
101
+ contact_phone: e.contact_phone,
114
102
  })),
115
103
  has_more: total > params.offset + employers.length,
116
104
  ...(total > params.offset + employers.length ? {
@@ -119,7 +107,7 @@ Examples:
119
107
  };
120
108
  let textContent;
121
109
  if (params.response_format === ResponseFormat.MARKDOWN) {
122
- textContent = formatEmployersListMarkdown(employers, total, params.offset);
110
+ textContent = JSON.stringify(output, null, 2);
123
111
  }
124
112
  else {
125
113
  textContent = JSON.stringify(output, null, 2);
@@ -1 +1 @@
1
- {"version":3,"file":"employers.js","sourceRoot":"","sources":["../../src/tools/employers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"employers.js","sourceRoot":"","sources":["../../src/tools/employers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerExportTools(server: McpServer): void;
3
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgHpE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiO3D"}
@@ -0,0 +1,247 @@
1
+ import { z } from "zod";
2
+ import { makeApiRequest, makeApiBinaryRequest, handleApiError } from "../services/api-client.js";
3
+ // ============================================================================
4
+ // Input Schemas
5
+ // ============================================================================
6
+ const ExportEntityExcelSchema = z.object({
7
+ entity_type: z.enum([
8
+ "tr_applicant",
9
+ "pr_applicant",
10
+ "sponsored_applicant",
11
+ "pr_applicant_renewal",
12
+ "sponsor_sps",
13
+ "sponsor_pgp",
14
+ "co_signer",
15
+ "lmia_employer",
16
+ "lmia_applicant",
17
+ "lmia_position",
18
+ ]).describe("Entity type to export. " +
19
+ "TR: tr_applicant (requires program param). " +
20
+ "PR: pr_applicant | sponsored_applicant | pr_applicant_renewal | sponsor_sps | sponsor_pgp | co_signer. " +
21
+ "LMIA: lmia_employer | lmia_applicant | lmia_position."),
22
+ entity_id: z.string().describe("MongoDB ObjectId of the entity (person/applicant/employer record, NOT application_id)."),
23
+ program: z.string().optional().describe("TR program key — required when entity_type=tr_applicant. Values: sp-out | sp-in | wp-out | wp-in | visa-out | visa-in."),
24
+ language: z.enum(["en", "zh"]).default("en").describe("Export language: 'en' (default) or 'zh'."),
25
+ blank: z.boolean().default(false).describe("If true, returns a blank template for the entity type. Default false."),
26
+ }).strict();
27
+ const GetFormTemplateExcelSchema = z.object({
28
+ form_id: z.string().describe("Form config ID to fetch the blank template for (e.g. 'tr-visa-out-applicant', 'lmia-employer', 'pr-general-applicant'). Use list_programs to find valid form_ids."),
29
+ language: z.enum(["en", "zh"]).default("en").describe("Template language: 'en' (default) or 'zh'."),
30
+ }).strict();
31
+ const FillTrApplicationPdfSchema = z.object({
32
+ program: z.string().describe("TR program key (e.g. sp-out, wp-out, visa-out). Used to route to the correct PDF fill endpoint."),
33
+ application_id: z.string().describe("Application MongoDB ObjectId."),
34
+ forms: z.array(z.string()).describe("List of form numbers to fill. " +
35
+ "sp-out: ['0104','1294','5476','5645']. wp-out: ['1295','5476','5645']. " +
36
+ "visa-out: ['5257','5645']. visitor-record: ['1102']. sp-in: ['5709','5645']. wp-in: ['5710','5645']."),
37
+ }).strict();
38
+ const FillTrApplicationPdfAsyncSchema = z.object({
39
+ program: z.string().describe("TR program key (e.g. sp-out, wp-out, visa-out)."),
40
+ application_id: z.string().describe("Application MongoDB ObjectId."),
41
+ forms: z.array(z.string()).describe("List of form numbers to fill. " +
42
+ "sp-out: ['0104','1294','5476','5645']. wp-out: ['1295','5476','5645']. " +
43
+ "visa-out: ['5257','5645']. visitor-record: ['1102']. sp-in: ['5709','5645']. wp-in: ['5710','5645']."),
44
+ }).strict();
45
+ const GetPdfTaskStatusSchema = z.object({
46
+ task_id: z.string().describe("Task ID returned by fill_tr_application_pdf_async."),
47
+ }).strict();
48
+ const GetPdfTaskResultSchema = z.object({
49
+ task_id: z.string().describe("Task ID of a completed PDF fill task."),
50
+ }).strict();
51
+ const CheckTrPdfPreflightSchema = z.object({
52
+ program: z.string().describe("TR program key (e.g. sp-out, wp-out, visa-out)."),
53
+ application_id: z.string().describe("Application MongoDB ObjectId."),
54
+ forms: z.array(z.string()).describe("List of form numbers to preflight check. " +
55
+ "sp-out: ['0104','1294','5476','5645']. wp-out: ['1295','5476','5645']. " +
56
+ "visa-out: ['5257','5645']. visitor-record: ['1102']. sp-in: ['5709','5645']. wp-in: ['5710','5645']."),
57
+ }).strict();
58
+ const ExportApplicationForExtensionSchema = z.object({
59
+ program: z.enum(["tr", "pr", "lmia"]).describe("Program category: 'tr' for all TR programs (sp-out/wp-out/visa-out etc.), 'pr' for PR programs, 'lmia' for LMIA programs."),
60
+ application_id: z.string().describe("Application MongoDB ObjectId."),
61
+ }).strict();
62
+ // ============================================================================
63
+ // Helpers
64
+ // ============================================================================
65
+ function safeFilename(filename) {
66
+ return filename.replace(/[^\w.\-]+/g, "_");
67
+ }
68
+ function fileResourceResponse(file, fallbackFilename) {
69
+ const filename = safeFilename(file.filename ?? fallbackFilename);
70
+ return {
71
+ content: [
72
+ {
73
+ type: "resource",
74
+ resource: {
75
+ uri: `formbro://exports/${encodeURIComponent(filename)}`,
76
+ mimeType: file.contentType,
77
+ blob: file.data.toString("base64"),
78
+ },
79
+ },
80
+ ],
81
+ structuredContent: {
82
+ filename,
83
+ content_type: file.contentType,
84
+ size_bytes: file.data.byteLength,
85
+ },
86
+ };
87
+ }
88
+ // ============================================================================
89
+ // Tool Registration
90
+ // ============================================================================
91
+ export function registerExportTools(server) {
92
+ // 1. export_entity_excel
93
+ server.registerTool("export_entity_excel", {
94
+ title: "Export Entity to Excel",
95
+ description: "Export a person/employer entity as a filled Excel file. " +
96
+ "entity_type must be one of: tr_applicant, pr_applicant, sponsored_applicant, pr_applicant_renewal, " +
97
+ "sponsor_sps, sponsor_pgp, co_signer, lmia_employer, lmia_applicant, lmia_position. " +
98
+ "entity_id is the MongoDB ObjectId of the person/employer record itself — NOT the application_id. " +
99
+ "For tr_applicant, also pass program (e.g. sp-out, wp-out). " +
100
+ "To find entity_id, use get_application_persons first. " +
101
+ "Set blank=true to get an empty template without entity data.",
102
+ inputSchema: ExportEntityExcelSchema.shape,
103
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
104
+ }, async ({ entity_type, entity_id, language, blank, program }) => {
105
+ try {
106
+ const params = {
107
+ language: language ?? "en",
108
+ blank: blank ?? false,
109
+ };
110
+ if (program)
111
+ params.program = program;
112
+ const file = await makeApiBinaryRequest(`/api/exports/entity/${encodeURIComponent(entity_type)}/${encodeURIComponent(entity_id)}`, "GET", undefined, params);
113
+ return fileResourceResponse(file, `${entity_type}_${entity_id}.xlsx`);
114
+ }
115
+ catch (error) {
116
+ return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
117
+ }
118
+ });
119
+ // 2. get_form_template_excel
120
+ server.registerTool("get_form_template_excel", {
121
+ title: "Get Blank Form Template Excel",
122
+ description: "Download a blank Excel template for a specific form config (e.g. 'tr-visa-out-applicant', 'lmia-employer'). " +
123
+ "form_id is the form config ID from list_programs (e.g. form_ids.applicant), not the IMM number. " +
124
+ "Use to provide a pre-formatted blank template for manual data entry.",
125
+ inputSchema: GetFormTemplateExcelSchema.shape,
126
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
127
+ }, async ({ form_id, language }) => {
128
+ try {
129
+ const file = await makeApiBinaryRequest(`/api/exports/template/${encodeURIComponent(form_id)}`, "GET", undefined, { language: language ?? "en" });
130
+ return fileResourceResponse(file, `${form_id}_template.xlsx`);
131
+ }
132
+ catch (error) {
133
+ return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
134
+ }
135
+ });
136
+ // 3. fill_tr_application_pdf
137
+ server.registerTool("fill_tr_application_pdf", {
138
+ title: "Fill TR Application PDF (Sync)",
139
+ description: "Synchronously fill TR immigration PDF forms for an application. " +
140
+ "Pass forms as list of IMM numbers (e.g. ['1294','5476']). " +
141
+ "Returns the generated PDF file, or a ZIP file when multiple forms are requested. " +
142
+ "For long-running fills, use fill_tr_application_pdf_async instead. " +
143
+ "Call check_tr_pdf_preflight first to verify the application is ready.",
144
+ inputSchema: FillTrApplicationPdfSchema.shape,
145
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
146
+ }, async ({ program, application_id, forms }) => {
147
+ try {
148
+ const file = await makeApiBinaryRequest(`/api/form-filling/tr/${encodeURIComponent(program)}/applications/${encodeURIComponent(application_id)}/fill-pdf`, "POST", { forms });
149
+ return fileResourceResponse(file, forms.length === 1 ? `IMM${forms[0]}.pdf` : `TR_Forms_${application_id}.zip`);
150
+ }
151
+ catch (error) {
152
+ return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
153
+ }
154
+ });
155
+ // 4. fill_tr_application_pdf_async
156
+ server.registerTool("fill_tr_application_pdf_async", {
157
+ title: "Fill TR Application PDF (Async)",
158
+ description: "Start an asynchronous TR PDF fill job for an application. " +
159
+ "Returns a task_id immediately without waiting for completion. " +
160
+ "Poll get_pdf_task_status until status is 'completed' or 'failed', " +
161
+ "then call get_pdf_task_result to retrieve the download information. " +
162
+ "Prefer this over fill_tr_application_pdf for large or complex forms.",
163
+ inputSchema: FillTrApplicationPdfAsyncSchema.shape,
164
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
165
+ }, async ({ program, application_id, forms }) => {
166
+ try {
167
+ const data = await makeApiRequest(`/api/form-filling/tr/${encodeURIComponent(program)}/applications/${encodeURIComponent(application_id)}/fill-pdf-async`, "POST", { forms });
168
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
169
+ }
170
+ catch (error) {
171
+ return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
172
+ }
173
+ });
174
+ // 5. get_pdf_task_status
175
+ server.registerTool("get_pdf_task_status", {
176
+ title: "Get PDF Fill Task Status",
177
+ description: "Poll the status of an async TR PDF fill task started by fill_tr_application_pdf_async. " +
178
+ "Returns status (pending|running|completed|failed) and progress information. " +
179
+ "Call repeatedly until status is 'completed' or 'failed', " +
180
+ "then call get_pdf_task_result to retrieve the download link.",
181
+ inputSchema: GetPdfTaskStatusSchema.shape,
182
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
183
+ }, async ({ task_id }) => {
184
+ try {
185
+ const data = await makeApiRequest(`/api/form-filling/tr/pdf-status/${encodeURIComponent(task_id)}`, "GET");
186
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
187
+ }
188
+ catch (error) {
189
+ return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
190
+ }
191
+ });
192
+ // 6. get_pdf_task_result
193
+ server.registerTool("get_pdf_task_result", {
194
+ title: "Get PDF Fill Task Result",
195
+ description: "Retrieve the result of a completed async TR PDF fill task. " +
196
+ "Returns the generated PDF file, or a ZIP file when multiple forms were requested. " +
197
+ "Only call after get_pdf_task_status returns status 'completed'. " +
198
+ "If status is 'failed', check get_pdf_task_status for the error details.",
199
+ inputSchema: GetPdfTaskResultSchema.shape,
200
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
201
+ }, async ({ task_id }) => {
202
+ try {
203
+ const file = await makeApiBinaryRequest(`/api/form-filling/tr/pdf-result/${encodeURIComponent(task_id)}`, "GET");
204
+ return fileResourceResponse(file, `tr-pdf-task-${task_id}.zip`);
205
+ }
206
+ catch (error) {
207
+ return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
208
+ }
209
+ });
210
+ // 7. check_tr_pdf_preflight
211
+ server.registerTool("check_tr_pdf_preflight", {
212
+ title: "Check TR PDF Preflight",
213
+ description: "Run a preflight check before filling a TR PDF form for an application. " +
214
+ "Returns a list of missing or invalid fields that would block PDF generation. " +
215
+ "Use before fill_tr_application_pdf or fill_tr_application_pdf_async " +
216
+ "to avoid fill failures and identify required data gaps.",
217
+ inputSchema: CheckTrPdfPreflightSchema.shape,
218
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
219
+ }, async ({ program, application_id, forms }) => {
220
+ try {
221
+ const data = await makeApiRequest(`/api/form-filling/tr/${encodeURIComponent(program)}/applications/${encodeURIComponent(application_id)}/fill-pdf-check`, "POST", { forms });
222
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
223
+ }
224
+ catch (error) {
225
+ return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
226
+ }
227
+ });
228
+ // 8. export_application_for_extension
229
+ server.registerTool("export_application_for_extension", {
230
+ title: "Export Application for Chrome Extension",
231
+ description: "Export an application's data payload for the FormBro Chrome Extension filler. " +
232
+ "Contains encrypted RCIC credentials — sensitive field redaction middleware applies automatically for fb_xxx tokens. " +
233
+ "Use when preparing an application package to be consumed by the browser extension for portal auto-fill. " +
234
+ "Do NOT expose the raw output to end users; treat the response as confidential.",
235
+ inputSchema: ExportApplicationForExtensionSchema.shape,
236
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
237
+ }, async ({ program, application_id }) => {
238
+ try {
239
+ const data = await makeApiRequest(`/api/extension/export/${encodeURIComponent(program)}/${encodeURIComponent(application_id)}`, "GET");
240
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
241
+ }
242
+ catch (error) {
243
+ return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
244
+ }
245
+ });
246
+ }
247
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerExtractTools(server: McpServer): void;
3
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/tools/extract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyDpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmN5D"}