@migma/mcp 1.3.1 → 1.3.3
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/build/prompts/index.js +5 -5
- package/build/prompts/index.js.map +1 -1
- package/build/tools/__tests__/agent-payload.test.d.ts +2 -0
- package/build/tools/__tests__/agent-payload.test.d.ts.map +1 -0
- package/build/tools/__tests__/agent-payload.test.js +76 -0
- package/build/tools/__tests__/agent-payload.test.js.map +1 -0
- package/build/tools/__tests__/email-images.test.d.ts +2 -0
- package/build/tools/__tests__/email-images.test.d.ts.map +1 -0
- package/build/tools/__tests__/email-images.test.js +94 -0
- package/build/tools/__tests__/email-images.test.js.map +1 -0
- package/build/tools/agent-payload.d.ts +9 -0
- package/build/tools/agent-payload.d.ts.map +1 -0
- package/build/tools/agent-payload.js +146 -0
- package/build/tools/agent-payload.js.map +1 -0
- package/build/tools/capabilities.js +12 -12
- package/build/tools/capabilities.js.map +1 -1
- package/build/tools/email-images.d.ts +30 -0
- package/build/tools/email-images.d.ts.map +1 -0
- package/build/tools/email-images.js +165 -0
- package/build/tools/email-images.js.map +1 -0
- package/build/tools/export.d.ts.map +1 -1
- package/build/tools/export.js +7 -6
- package/build/tools/export.js.map +1 -1
- package/build/tools/generate.d.ts.map +1 -1
- package/build/tools/generate.js +45 -11
- package/build/tools/generate.js.map +1 -1
- package/build/tools/projects.d.ts.map +1 -1
- package/build/tools/projects.js +12 -13
- package/build/tools/projects.js.map +1 -1
- package/build/tools/validate.d.ts.map +1 -1
- package/build/tools/validate.js +63 -23
- package/build/tools/validate.js.map +1 -1
- package/package.json +1 -1
package/build/tools/validate.js
CHANGED
|
@@ -1,20 +1,62 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { canUse } from "../permissions.js";
|
|
3
|
+
const validateTarget = {
|
|
4
|
+
emailId: z
|
|
5
|
+
.string()
|
|
6
|
+
.optional()
|
|
7
|
+
.describe("Generated email ID. Preferred — the server loads HTML so you do not hold it."),
|
|
8
|
+
conversationId: z
|
|
9
|
+
.string()
|
|
10
|
+
.optional()
|
|
11
|
+
.describe("Conversation ID. Uses the first ready email when the conversation has one."),
|
|
12
|
+
html: z
|
|
13
|
+
.string()
|
|
14
|
+
.optional()
|
|
15
|
+
.describe("Raw HTML. Avoid this — pass emailId instead."),
|
|
16
|
+
subject: z.string().optional().describe("Email subject line"),
|
|
17
|
+
};
|
|
18
|
+
async function resolveValidationTarget(client, args) {
|
|
19
|
+
if (args.emailId) {
|
|
20
|
+
const { data, error } = await client.emails.get(args.emailId);
|
|
21
|
+
if (error)
|
|
22
|
+
return { error: error.message };
|
|
23
|
+
const html = data && typeof data === "object" ? data.html : undefined;
|
|
24
|
+
const subject = args.subject ||
|
|
25
|
+
(data && typeof data === "object" ? data.subject : undefined);
|
|
26
|
+
if (!html)
|
|
27
|
+
return { error: "That email has no HTML yet." };
|
|
28
|
+
return { html, subject };
|
|
29
|
+
}
|
|
30
|
+
if (args.conversationId) {
|
|
31
|
+
const { data, error } = await client.emails.getGenerationStatus(args.conversationId);
|
|
32
|
+
if (error)
|
|
33
|
+
return { error: error.message };
|
|
34
|
+
const result = data && typeof data === "object"
|
|
35
|
+
? data.result
|
|
36
|
+
: undefined;
|
|
37
|
+
const first = result?.emails?.find((row) => row.html) ?? result?.emails?.[0];
|
|
38
|
+
const html = first?.html || result?.html;
|
|
39
|
+
const subject = args.subject || first?.subject || result?.subject;
|
|
40
|
+
if (!html)
|
|
41
|
+
return { error: "That conversation has no HTML yet. Poll migma_get_generation_status first." };
|
|
42
|
+
return { html, subject };
|
|
43
|
+
}
|
|
44
|
+
if (args.html)
|
|
45
|
+
return { html: args.html, subject: args.subject };
|
|
46
|
+
return { error: "emailId, conversationId, or html is required. Prefer emailId." };
|
|
47
|
+
}
|
|
3
48
|
export function registerValidateTools(server, client, grantedPermissions) {
|
|
4
49
|
if (canUse(grantedPermissions, ["email:validate"])) {
|
|
5
50
|
server.registerTool("migma_validate_email", {
|
|
6
51
|
title: "Validate Email",
|
|
7
|
-
description: "Run all email validations: compatibility
|
|
52
|
+
description: "Run all email validations: compatibility, links, spelling, and spam score. Pass emailId (preferred) so you do not hold HTML in context.",
|
|
8
53
|
annotations: { readOnlyHint: true },
|
|
9
|
-
inputSchema: z.object(
|
|
10
|
-
html: z.string().describe("Email HTML to validate"),
|
|
11
|
-
subject: z.string().optional().describe("Email subject line"),
|
|
12
|
-
}),
|
|
54
|
+
inputSchema: z.object(validateTarget),
|
|
13
55
|
}, async (args) => {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
});
|
|
56
|
+
const target = await resolveValidationTarget(client, args);
|
|
57
|
+
if ("error" in target)
|
|
58
|
+
return toolError(target.error);
|
|
59
|
+
const { data, error } = await client.validation.all(target);
|
|
18
60
|
if (error)
|
|
19
61
|
return toolError(error.message);
|
|
20
62
|
return toolResult(data);
|
|
@@ -23,14 +65,15 @@ export function registerValidateTools(server, client, grantedPermissions) {
|
|
|
23
65
|
if (canUse(grantedPermissions, ["email:validate"])) {
|
|
24
66
|
server.registerTool("migma_validate_compatibility", {
|
|
25
67
|
title: "Validate Compatibility",
|
|
26
|
-
description: "Check
|
|
68
|
+
description: "Check rendering compatibility across 30+ email clients. Pass emailId (preferred) instead of raw HTML.",
|
|
27
69
|
annotations: { readOnlyHint: true },
|
|
28
|
-
inputSchema: z.object(
|
|
29
|
-
html: z.string().describe("Email HTML to check"),
|
|
30
|
-
}),
|
|
70
|
+
inputSchema: z.object(validateTarget),
|
|
31
71
|
}, async (args) => {
|
|
72
|
+
const target = await resolveValidationTarget(client, args);
|
|
73
|
+
if ("error" in target)
|
|
74
|
+
return toolError(target.error);
|
|
32
75
|
const { data, error } = await client.validation.compatibility({
|
|
33
|
-
html:
|
|
76
|
+
html: target.html,
|
|
34
77
|
});
|
|
35
78
|
if (error)
|
|
36
79
|
return toolError(error.message);
|
|
@@ -40,17 +83,14 @@ export function registerValidateTools(server, client, grantedPermissions) {
|
|
|
40
83
|
if (canUse(grantedPermissions, ["email:validate"])) {
|
|
41
84
|
server.registerTool("migma_validate_deliverability", {
|
|
42
85
|
title: "Validate Deliverability",
|
|
43
|
-
description: "Analyze
|
|
86
|
+
description: "Analyze spam triggers and inbox placement. Pass emailId (preferred) instead of raw HTML.",
|
|
44
87
|
annotations: { readOnlyHint: true },
|
|
45
|
-
inputSchema: z.object(
|
|
46
|
-
html: z.string().describe("Email HTML to analyze"),
|
|
47
|
-
subject: z.string().optional().describe("Email subject line"),
|
|
48
|
-
}),
|
|
88
|
+
inputSchema: z.object(validateTarget),
|
|
49
89
|
}, async (args) => {
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
});
|
|
90
|
+
const target = await resolveValidationTarget(client, args);
|
|
91
|
+
if ("error" in target)
|
|
92
|
+
return toolError(target.error);
|
|
93
|
+
const { data, error } = await client.validation.deliverability(target);
|
|
54
94
|
if (error)
|
|
55
95
|
return toolError(error.message);
|
|
56
96
|
return toolResult(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"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"}
|