@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.
Files changed (33) hide show
  1. package/build/prompts/index.js +5 -5
  2. package/build/prompts/index.js.map +1 -1
  3. package/build/tools/__tests__/agent-payload.test.d.ts +2 -0
  4. package/build/tools/__tests__/agent-payload.test.d.ts.map +1 -0
  5. package/build/tools/__tests__/agent-payload.test.js +76 -0
  6. package/build/tools/__tests__/agent-payload.test.js.map +1 -0
  7. package/build/tools/__tests__/email-images.test.d.ts +2 -0
  8. package/build/tools/__tests__/email-images.test.d.ts.map +1 -0
  9. package/build/tools/__tests__/email-images.test.js +94 -0
  10. package/build/tools/__tests__/email-images.test.js.map +1 -0
  11. package/build/tools/agent-payload.d.ts +9 -0
  12. package/build/tools/agent-payload.d.ts.map +1 -0
  13. package/build/tools/agent-payload.js +146 -0
  14. package/build/tools/agent-payload.js.map +1 -0
  15. package/build/tools/capabilities.js +12 -12
  16. package/build/tools/capabilities.js.map +1 -1
  17. package/build/tools/email-images.d.ts +30 -0
  18. package/build/tools/email-images.d.ts.map +1 -0
  19. package/build/tools/email-images.js +165 -0
  20. package/build/tools/email-images.js.map +1 -0
  21. package/build/tools/export.d.ts.map +1 -1
  22. package/build/tools/export.js +7 -6
  23. package/build/tools/export.js.map +1 -1
  24. package/build/tools/generate.d.ts.map +1 -1
  25. package/build/tools/generate.js +45 -11
  26. package/build/tools/generate.js.map +1 -1
  27. package/build/tools/projects.d.ts.map +1 -1
  28. package/build/tools/projects.js +12 -13
  29. package/build/tools/projects.js.map +1 -1
  30. package/build/tools/validate.d.ts.map +1 -1
  31. package/build/tools/validate.js +63 -23
  32. package/build/tools/validate.js.map +1 -1
  33. package/package.json +1 -1
@@ -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 across 30+ clients, broken links, spelling/grammar, and spam score. Returns a comprehensive report.",
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 { data, error } = await client.validation.all({
15
- html: args.html,
16
- subject: args.subject,
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 email rendering compatibility across 30+ email clients (Gmail, Outlook, Apple Mail, etc.). Returns a score out of 100.",
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: args.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 email for spam triggers and predict inbox placement. Returns a spam score and recommendations.",
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 { data, error } = await client.validation.deliverability({
51
- html: args.html,
52
- subject: args.subject,
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":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@migma/mcp",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "description": "Migma MCP server — generate, send, validate, and export AI-powered emails from any MCP-compatible client",
5
5
  "type": "module",
6
6
  "bin": {