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.
- package/README.md +42 -24
- package/dist/index.js +58 -14
- package/dist/index.js.map +1 -1
- package/dist/services/api-client.d.ts +7 -0
- package/dist/services/api-client.d.ts.map +1 -1
- package/dist/services/api-client.js +113 -2
- package/dist/services/api-client.js.map +1 -1
- package/dist/services/idempotency.d.ts +6 -0
- package/dist/services/idempotency.d.ts.map +1 -0
- package/dist/services/idempotency.js +9 -0
- package/dist/services/idempotency.js.map +1 -0
- package/dist/tools/applications-extra.d.ts +3 -0
- package/dist/tools/applications-extra.d.ts.map +1 -0
- package/dist/tools/applications-extra.js +62 -0
- package/dist/tools/applications-extra.js.map +1 -0
- package/dist/tools/audit.d.ts +3 -0
- package/dist/tools/audit.d.ts.map +1 -0
- package/dist/tools/audit.js +34 -0
- package/dist/tools/audit.js.map +1 -0
- package/dist/tools/employers.d.ts.map +1 -1
- package/dist/tools/employers.js +17 -29
- package/dist/tools/employers.js.map +1 -1
- package/dist/tools/export.d.ts +3 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +247 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/extract.d.ts +3 -0
- package/dist/tools/extract.d.ts.map +1 -0
- package/dist/tools/extract.js +208 -0
- package/dist/tools/extract.js.map +1 -0
- package/dist/tools/patch.d.ts +10 -0
- package/dist/tools/patch.d.ts.map +1 -0
- package/dist/tools/patch.js +276 -0
- package/dist/tools/patch.js.map +1 -0
- package/dist/tools/program-keys.d.ts +3 -0
- package/dist/tools/program-keys.d.ts.map +1 -0
- package/dist/tools/program-keys.js +13 -0
- package/dist/tools/program-keys.js.map +1 -0
- package/dist/tools/system.d.ts +3 -0
- package/dist/tools/system.d.ts.map +1 -0
- package/dist/tools/system.js +84 -0
- package/dist/tools/system.js.map +1 -0
- package/dist/tools/validate.d.ts +3 -0
- package/dist/tools/validate.d.ts.map +1 -0
- package/dist/tools/validate.js +68 -0
- package/dist/tools/validate.js.map +1 -0
- package/dist/tools/write.d.ts +4 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +786 -0
- package/dist/tools/write.js.map +1 -0
- package/package.json +7 -3
- package/server.json +67 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { makeApiRequest, handleApiError } from "../services/api-client.js";
|
|
3
|
+
import { normalizeProgramKey } from "./program-keys.js";
|
|
4
|
+
const EmptySchema = z.object({}).strict();
|
|
5
|
+
const ProgramKeySchema = z.object({
|
|
6
|
+
program_key: z.string().describe("Program key e.g. 'spouse-sponsorship', 'sp-out', 'lws'"),
|
|
7
|
+
}).strict();
|
|
8
|
+
const SchemaQuerySchema = z.object({
|
|
9
|
+
program_key: z.string(),
|
|
10
|
+
role: z.enum(["applicant", "spouse", "dependent", "sponsor", "co_signer", "employer"]),
|
|
11
|
+
}).strict();
|
|
12
|
+
export function registerSystemTools(server) {
|
|
13
|
+
server.registerTool("list_programs", {
|
|
14
|
+
title: "List FormBro Programs",
|
|
15
|
+
description: "List all 16 FormBro programs (TR/PR/LMIA). Returns program_key, display_name, category, person_roles, form_ids, api_endpoint. Call first to discover available programs.",
|
|
16
|
+
inputSchema: EmptySchema,
|
|
17
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
18
|
+
}, async () => {
|
|
19
|
+
try {
|
|
20
|
+
const data = await makeApiRequest("/api/programs", "GET");
|
|
21
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
server.registerTool("describe_program", {
|
|
28
|
+
title: "Describe a FormBro Program",
|
|
29
|
+
description: "Get one program's full metadata by program_key. Returns person_roles (which entities are required/optional), form_ids, api_endpoint. Call before quick_create_person to know which roles are needed.",
|
|
30
|
+
inputSchema: ProgramKeySchema,
|
|
31
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
32
|
+
}, async ({ program_key }) => {
|
|
33
|
+
try {
|
|
34
|
+
const data = await makeApiRequest(`/api/programs/${encodeURIComponent(normalizeProgramKey(program_key))}`, "GET");
|
|
35
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
server.registerTool("describe_person_schema", {
|
|
42
|
+
title: "Get JSON Schema for Program Role",
|
|
43
|
+
description: "Get JSON Schema for a (program_key, role) pair — shows exactly which fields are required/optional. Use before quick_create_person.",
|
|
44
|
+
inputSchema: SchemaQuerySchema,
|
|
45
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
46
|
+
}, async ({ program_key, role }) => {
|
|
47
|
+
try {
|
|
48
|
+
const data = await makeApiRequest(`/api/programs/${encodeURIComponent(normalizeProgramKey(program_key))}/schema`, "GET", undefined, { role });
|
|
49
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
server.registerTool("whoami", {
|
|
56
|
+
title: "Who Am I",
|
|
57
|
+
description: "Identify the current authenticated user/token: returns user_id, scopes, plan. Use to verify token works before further operations.",
|
|
58
|
+
inputSchema: EmptySchema,
|
|
59
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
60
|
+
}, async () => {
|
|
61
|
+
try {
|
|
62
|
+
const data = await makeApiRequest("/api/auth/whoami", "GET");
|
|
63
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
server.registerTool("health", {
|
|
70
|
+
title: "FormBro Health Check",
|
|
71
|
+
description: "Check FormBro service health (api_version, db_status, build_sha).",
|
|
72
|
+
inputSchema: EmptySchema,
|
|
73
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
74
|
+
}, async () => {
|
|
75
|
+
try {
|
|
76
|
+
const data = await makeApiRequest("/health", "GET");
|
|
77
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/tools/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2D7D"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { makeApiRequest, handleApiError } from "../services/api-client.js";
|
|
3
|
+
const ValidateDataSchema = z.object({
|
|
4
|
+
entity_type: z.string().describe("Form ID e.g. 'tr-sp-out-applicant', 'pr-spouse-sponsorship-applicant'"),
|
|
5
|
+
data: z.record(z.unknown()).describe("Entity data to validate"),
|
|
6
|
+
tab: z.string().optional().describe("Validate only a specific tab"),
|
|
7
|
+
}).strict();
|
|
8
|
+
const ValidateByIdSchema = z.object({
|
|
9
|
+
entity_type: z.string().describe("Form ID e.g. 'tr-visa-out-applicant', 'pr-general-applicant', 'lmia-employer'. Use list_programs to find the correct form_id."),
|
|
10
|
+
entity_id: z.string().describe("MongoDB ObjectId of the entity"),
|
|
11
|
+
tab: z.string().optional(),
|
|
12
|
+
}).strict();
|
|
13
|
+
const ValidateOperationSchema = z.object({
|
|
14
|
+
operation: z.enum(["fill_webform", "fill_webform_tr", "generate_pdf", "generate_pdf_tr", "make_appendix", "fill_supplementary_pdfs"]),
|
|
15
|
+
entity_type: z.string().describe("Form ID for the entity"),
|
|
16
|
+
entity_id: z.string().optional(),
|
|
17
|
+
entity_data: z.record(z.unknown()).optional(),
|
|
18
|
+
}).strict();
|
|
19
|
+
export function registerValidateTools(server) {
|
|
20
|
+
server.registerTool("validate_entity_data", {
|
|
21
|
+
title: "Validate Entity Data",
|
|
22
|
+
description: "Validate unsaved entity data (no DB lookup). Returns errors with field path, type, and source.",
|
|
23
|
+
inputSchema: ValidateDataSchema,
|
|
24
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
25
|
+
}, async ({ entity_type, data, tab }) => {
|
|
26
|
+
try {
|
|
27
|
+
const url = tab
|
|
28
|
+
? `/api/validate/${encodeURIComponent(entity_type)}?tab=${encodeURIComponent(tab)}`
|
|
29
|
+
: `/api/validate/${encodeURIComponent(entity_type)}`;
|
|
30
|
+
const result = await makeApiRequest(url, "POST", data);
|
|
31
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
server.registerTool("validate_entity_by_id", {
|
|
38
|
+
title: "Validate Entity by ID",
|
|
39
|
+
description: "Validate an entity loaded from DB by ID. Use after PATCH or to check current state.",
|
|
40
|
+
inputSchema: ValidateByIdSchema,
|
|
41
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
42
|
+
}, async ({ entity_type, entity_id, tab }) => {
|
|
43
|
+
try {
|
|
44
|
+
const base = `/api/validate/${encodeURIComponent(entity_type)}/${encodeURIComponent(entity_id)}`;
|
|
45
|
+
const url = tab ? `${base}?tab=${encodeURIComponent(tab)}` : base;
|
|
46
|
+
const result = await makeApiRequest(url, "POST", {});
|
|
47
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
server.registerTool("validate_for_operation", {
|
|
54
|
+
title: "Validate for Operation",
|
|
55
|
+
description: "Check prerequisites for fill_webform, generate_pdf, etc. before triggering the operation. Returns validation errors and missing prerequisites.",
|
|
56
|
+
inputSchema: ValidateOperationSchema,
|
|
57
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
58
|
+
}, async (args) => {
|
|
59
|
+
try {
|
|
60
|
+
const result = await makeApiRequest("/api/validate/operation", "POST", args);
|
|
61
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
return { isError: true, content: [{ type: "text", text: handleApiError(error) }] };
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IACzG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC/D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CACpE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+HAA+H,CAAC;IACjK,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAChE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC;IACrI,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,gGAAgG;QAC7G,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG;gBACb,CAAC,CAAC,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE;gBACnF,CAAC,CAAC,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAU,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAChE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,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;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,qFAAqF;QAClG,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjG,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAU,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,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;IAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,gJAAgJ;QAC7J,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAU,yBAAyB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
export declare function buildStartApplicationBody(applicant_id?: string): Record<string, unknown>;
|
|
3
|
+
export declare function registerWriteTools(server: McpServer): void;
|
|
4
|
+
//# sourceMappingURL=write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/tools/write.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmIpE,wBAAgB,yBAAyB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGxF;AA6RD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgf1D"}
|