@migma/mcp 1.7.2 → 1.7.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.
Files changed (79) hide show
  1. package/README.md +71 -0
  2. package/build/index.d.ts +4 -0
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +15 -8
  5. package/build/index.js.map +1 -1
  6. package/build/profiles.d.ts +3 -0
  7. package/build/profiles.d.ts.map +1 -0
  8. package/build/profiles.js +10 -0
  9. package/build/profiles.js.map +1 -0
  10. package/build/prompts/index.d.ts.map +1 -1
  11. package/build/prompts/index.js +22 -9
  12. package/build/prompts/index.js.map +1 -1
  13. package/build/tools/__tests__/brand.test.d.ts +2 -0
  14. package/build/tools/__tests__/brand.test.d.ts.map +1 -0
  15. package/build/tools/__tests__/brand.test.js +36 -0
  16. package/build/tools/__tests__/brand.test.js.map +1 -0
  17. package/build/tools/__tests__/campaign-recipients.test.d.ts +2 -0
  18. package/build/tools/__tests__/campaign-recipients.test.d.ts.map +1 -0
  19. package/build/tools/__tests__/campaign-recipients.test.js +61 -0
  20. package/build/tools/__tests__/campaign-recipients.test.js.map +1 -0
  21. package/build/tools/__tests__/catalog.test.js +40 -4
  22. package/build/tools/__tests__/catalog.test.js.map +1 -1
  23. package/build/tools/__tests__/context.test.d.ts +2 -0
  24. package/build/tools/__tests__/context.test.d.ts.map +1 -0
  25. package/build/tools/__tests__/context.test.js +98 -0
  26. package/build/tools/__tests__/context.test.js.map +1 -0
  27. package/build/tools/__tests__/email-edit.test.d.ts +2 -0
  28. package/build/tools/__tests__/email-edit.test.d.ts.map +1 -0
  29. package/build/tools/__tests__/email-edit.test.js +82 -0
  30. package/build/tools/__tests__/email-edit.test.js.map +1 -0
  31. package/build/tools/__tests__/openai-profile.test.d.ts +2 -0
  32. package/build/tools/__tests__/openai-profile.test.d.ts.map +1 -0
  33. package/build/tools/__tests__/openai-profile.test.js +56 -0
  34. package/build/tools/__tests__/openai-profile.test.js.map +1 -0
  35. package/build/tools/__tests__/segments.test.d.ts +2 -0
  36. package/build/tools/__tests__/segments.test.d.ts.map +1 -0
  37. package/build/tools/__tests__/segments.test.js +149 -0
  38. package/build/tools/__tests__/segments.test.js.map +1 -0
  39. package/build/tools/annotations.d.ts +7 -0
  40. package/build/tools/annotations.d.ts.map +1 -1
  41. package/build/tools/annotations.js +2 -2
  42. package/build/tools/annotations.js.map +1 -1
  43. package/build/tools/billing.d.ts +2 -1
  44. package/build/tools/billing.d.ts.map +1 -1
  45. package/build/tools/billing.js +4 -3
  46. package/build/tools/billing.js.map +1 -1
  47. package/build/tools/brand.d.ts.map +1 -1
  48. package/build/tools/brand.js +12 -7
  49. package/build/tools/brand.js.map +1 -1
  50. package/build/tools/campaigns.d.ts.map +1 -1
  51. package/build/tools/campaigns.js +13 -1
  52. package/build/tools/campaigns.js.map +1 -1
  53. package/build/tools/capabilities.d.ts +5 -2
  54. package/build/tools/capabilities.d.ts.map +1 -1
  55. package/build/tools/capabilities.js +31 -16
  56. package/build/tools/capabilities.js.map +1 -1
  57. package/build/tools/contacts.js +5 -5
  58. package/build/tools/contacts.js.map +1 -1
  59. package/build/tools/context.d.ts +2 -1
  60. package/build/tools/context.d.ts.map +1 -1
  61. package/build/tools/context.js +57 -33
  62. package/build/tools/context.js.map +1 -1
  63. package/build/tools/domains.d.ts +2 -1
  64. package/build/tools/domains.d.ts.map +1 -1
  65. package/build/tools/domains.js +14 -11
  66. package/build/tools/domains.js.map +1 -1
  67. package/build/tools/email-edit-client.d.ts +15 -0
  68. package/build/tools/email-edit-client.d.ts.map +1 -0
  69. package/build/tools/email-edit-client.js +38 -0
  70. package/build/tools/email-edit-client.js.map +1 -0
  71. package/build/tools/generate.d.ts.map +1 -1
  72. package/build/tools/generate.js +36 -12
  73. package/build/tools/generate.js.map +1 -1
  74. package/build/tools/projects.js +6 -6
  75. package/build/tools/projects.js.map +1 -1
  76. package/build/tools/segments.d.ts.map +1 -1
  77. package/build/tools/segments.js +34 -2
  78. package/build/tools/segments.js.map +1 -1
  79. package/package.json +7 -3
@@ -1,15 +1,18 @@
1
1
  import { z } from "zod";
2
2
  import { canUse } from "../permissions.js";
3
+ import { isToolInProfile } from "../profiles.js";
3
4
  import { READ_ONLY_TOOL } from "./annotations.js";
4
- export function registerContextTools(server, client, grantedPermissions, preferredProjectId) {
5
+ export function registerContextTools(server, client, grantedPermissions, preferredProjectId, profile = "general") {
5
6
  if (!canUse(grantedPermissions, ["email:read"]))
6
7
  return;
7
8
  server.registerTool("migma_get_context", {
8
9
  title: "Get Account Context",
9
10
  annotations: READ_ONLY_TOOL,
10
- description: "One-call account snapshot: workspaces (each with its brands as id + name), brand count, plan and remaining credits, sending domains with their status, and a setup block for the working brand: brandKit (missing, partial, ready), saved design references, audience size, sending domain state. Also returns suggestions, concrete next actions worth offering the user. Call this after connecting, before the first task, and whenever the user asks what they can do.",
11
- inputSchema: z.object({}),
12
- }, async () => {
11
+ description: "One-call account snapshot: workspaces (each with its brands as id + name), brand count, plan and remaining credits, sending domains with their status, and a setup block for the working brand: brandKit (missing, partial, ready), standing guidelines, saved design references, audience size, and account sending domain state. Null means unknown or unavailable, never missing. Pass projectId for the working brand; multiple brands require a choice. Suggestions are optional context, not a checklist to show the user. Use only what helps their current task. Call this after connecting, before the first task, and whenever the user asks what they can do.",
12
+ inputSchema: z.object({
13
+ projectId: z.string().min(1).optional().describe("Working brand ID. Omit only before a brand is selected."),
14
+ }),
15
+ }, async (args) => {
13
16
  const ws = client.workspaces;
14
17
  const canBilling = canUse(grantedPermissions, ["billing:read"]);
15
18
  const canDomains = canUse(grantedPermissions, ["domain:read"]);
@@ -22,15 +25,15 @@ export function registerContextTools(server, client, grantedPermissions, preferr
22
25
  const workspaceRows = workspaces?.data?.workspaces ?? [];
23
26
  const projectRows = (projects?.data
24
27
  ?.projects) ?? [];
28
+ const brandCount = projects?.data ? projects.data.pagination?.total ?? projectRows.length : null;
25
29
  const creditData = credits?.data ?? null;
26
30
  const domainRows = (domains?.data ?? []);
27
31
  const verifiedDomains = domainRows.filter((d) => d.isVerified);
28
32
  // Second wave, bounded to the working brand: is its kit complete, does
29
33
  // it have references, does it have an audience. One brand, one page.
30
- const brandRow = (preferredProjectId
31
- ? projectRows.find((p) => String(p._id ?? p.id) === preferredProjectId)
32
- : undefined) ?? projectRows[0];
33
- const brandId = brandRow ? String(brandRow._id ?? brandRow.id ?? "") : "";
34
+ const brandId = args.projectId || preferredProjectId ||
35
+ (brandCount === 1 ? String(projectRows[0]?._id ?? projectRows[0]?.id ?? "") : "");
36
+ const brandRow = projectRows.find((p) => String(p._id ?? p.id) === brandId);
34
37
  const setupClient = client;
35
38
  const canAudience = canUse(grantedPermissions, ["audience:read"]);
36
39
  const [brand, references, contacts] = brandId
@@ -44,44 +47,64 @@ export function registerContextTools(server, client, grantedPermissions, preferr
44
47
  : Promise.resolve(null),
45
48
  ])
46
49
  : [null, null, null];
47
- const brandData = (brand?.data ?? null);
48
- const referenceCount = references?.data?.total ?? references?.data?.references?.length ?? 0;
49
- const audienceCount = contacts?.data?.count ?? 0;
50
+ const brandData = brand?.data;
51
+ const colors = brandData?.colors;
52
+ const hasKit = !!(colors?.accent && Array.isArray(brandData?.fonts) &&
53
+ brandData.fonts.length && (brandData.logoUrls?.primary || brandData.logoUrls?.secondary));
50
54
  const setup = {
51
55
  brandId: brandId || null,
52
56
  brandName: brandData?.name ?? brandRow?.name ?? null,
53
- brandKit: !brandId ? "missing" : brandData?.modelInstructions?.trim() ? "ready" : "partial",
54
- references: referenceCount,
55
- audience: canAudience ? audienceCount : null,
56
- sendingDomain: verifiedDomains.length > 0 ? "verified" : domainRows.length > 0 ? "pending" : "none",
57
+ brandKit: brandData ? (hasKit ? "ready" : "partial") : brandCount === 0 && !brandId ? "missing" : null,
58
+ guidelines: brandData ? !!String(brandData.modelInstructions ?? "").trim() : null,
59
+ references: references?.data?.total ?? references?.data?.references?.length ?? null,
60
+ audience: contacts?.data?.count ?? null,
61
+ sendingDomain: !domains?.data ? null : verifiedDomains.length ? "verified" : domainRows.length ? "pending" : "none",
57
62
  };
63
+ const unavailable = [
64
+ ...(!projects?.data ? ["brands"] : []),
65
+ ...(brandId && !brandData ? ["brand kit"] : []),
66
+ ...(brandId && setup.references === null ? ["references"] : []),
67
+ ...(brandId && canAudience && setup.audience === null ? ["audience"] : []),
68
+ ...(canDomains && !domains?.data ? ["sending domains"] : []),
69
+ ];
70
+ const canWriteBrand = canUse(grantedPermissions, ["project:write"]);
71
+ const canWriteAudience = canUse(grantedPermissions, ["audience:write"]);
72
+ const canWriteDomain = canUse(grantedPermissions, ["domain:write"]);
58
73
  const suggestions = [];
59
- if (setup.brandKit === "partial") {
60
- suggestions.push("This brand has no standing guidelines yet. Ask for brand guidelines or an email the user likes; when they state a lasting rule, call migma_update_brand_guidelines with the complete text.");
74
+ if (!brandId && brandCount !== null && brandCount > 1) {
75
+ suggestions.push("Ask which brand to work on, then call migma_get_context with its projectId.");
61
76
  }
62
- if (brandId && setup.references === 0) {
63
- suggestions.push("No design references saved. Ask which past email the user likes and call migma_save_reference with its emailId, or save a pasted design with title + html.");
77
+ if (setup.brandKit === "missing" && canWriteBrand) {
78
+ suggestions.push("No brand kit yet. Ask for the website and use migma_import_brand to collect colors, fonts, and logo.");
64
79
  }
65
- if (brandId && canAudience && setup.audience === 0 && canUse(grantedPermissions, ["audience:write"])) {
66
- suggestions.push("No contacts yet. Offer migma_create_contact_import with a CSV export from their current tool.");
80
+ if (setup.brandKit === "partial" && canWriteBrand) {
81
+ suggestions.push("Some brand kit details are missing. Read migma_get_project and ask only for the missing colors, fonts, or logo; keep the user's task moving.");
67
82
  }
68
- if (canDomains && verifiedDomains.length === 0) {
69
- suggestions.push("No verified sending domain yet. Offer migma_create_managed_domain for an instant address (hello@company.migma.email, no DNS), or migma_setup_domain for a domain the user owns, or migma_search_buyable_domains to buy one.");
83
+ if (setup.guidelines === false && canWriteBrand) {
84
+ suggestions.push("Ask for brand guidelines or lasting email and image preferences. Save them with migma_update_brand_guidelines, preserving existing rules.");
70
85
  }
71
- if (domainRows.some((d) => !d.isVerified)) {
72
- suggestions.push("A domain is waiting on DNS. Offer migma_verify_domain to re-check it.");
86
+ if (setup.references === 0 && canWriteBrand) {
87
+ suggestions.push("Ask for an email the user loves. Use migma_save_reference for a generated emailId or title + html; pass screenshots as structured images when generating.");
73
88
  }
74
- if (creditData && !creditData.hasCredits) {
75
- suggestions.push("Out of credits. Show migma_get_credits detail and offer migma_get_upgrade_link — the user pays in their browser.");
89
+ if (setup.audience === 0 && canWriteAudience) {
90
+ suggestions.push("Ask for their audience CSV. Import it into a named List with migma_create_contact_import, preserving useful custom columns; inspect migma_get_field_catalog before suggesting segments.");
91
+ }
92
+ if (setup.sendingDomain === "none" && canWriteDomain) {
93
+ suggestions.push("Offer migma_create_managed_domain for a ready-to-use address, or migma_setup_domain for a domain the user owns.");
76
94
  }
77
- if (projectRows.length === 0) {
78
- suggestions.push("No brands yet. Offer migma_import_brand with the user's website URL — it extracts colors, fonts, logos, and voice.");
95
+ if (setup.sendingDomain === "pending" && canWriteDomain) {
96
+ suggestions.push("A sending domain is pending. Offer migma_verify_domain to check it.");
97
+ }
98
+ if (creditData && !creditData.hasCredits) {
99
+ suggestions.push(isToolInProfile("migma_get_upgrade_link", profile) && canUse(grantedPermissions, ["billing:write"])
100
+ ? "Out of credits. Offer migma_get_upgrade_link; the user pays in their browser."
101
+ : "Out of credits. Explain that generation needs more credits.");
79
102
  }
80
- if (workspaceRows.length > 1) {
81
- suggestions.push("The user belongs to more than one workspace. Confirm which one to work in, then pass its id as organizationId to migma_list_projects.");
103
+ if (unavailable.length) {
104
+ suggestions.push("Some setup reads are unavailable. Retry the relevant read before describing anything as missing; continue with known context.");
82
105
  }
83
106
  if (suggestions.length === 0) {
84
- suggestions.push("Account is ready. Offer the next useful step: design an email, prepare a campaign, or read recent campaign stats.");
107
+ suggestions.push("Continue the user's task. Reply with the result and relevant returned links; stop when done. Suggest an email only if they have no task in mind.");
85
108
  }
86
109
  return {
87
110
  content: [
@@ -89,7 +112,7 @@ export function registerContextTools(server, client, grantedPermissions, preferr
89
112
  type: "text",
90
113
  text: JSON.stringify({
91
114
  workspaces: workspaceRows,
92
- brandCount: projectRows.length,
115
+ brandCount,
93
116
  plan: creditData
94
117
  ? {
95
118
  currentPlan: creditData.currentPlan,
@@ -104,6 +127,7 @@ export function registerContextTools(server, client, grantedPermissions, preferr
104
127
  isVerified: d.isVerified ?? false,
105
128
  })),
106
129
  setup,
130
+ unavailable,
107
131
  suggestions,
108
132
  }, null, 2),
109
133
  },
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { Migma } from "migma";
3
- export declare function registerDomainTools(server: McpServer, client: Migma, grantedPermissions?: string[]): void;
3
+ import { type MigmaMcpProfile } from "../profiles.js";
4
+ export declare function registerDomainTools(server: McpServer, client: Migma, grantedPermissions?: string[], profile?: MigmaMcpProfile): void;
4
5
  //# sourceMappingURL=domains.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAUnC,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,KAAK,EACb,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAiS9B"}
1
+ {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAQvE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,KAAK,EACb,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,OAAO,GAAE,eAA2B,QAmSrC"}
@@ -1,7 +1,8 @@
1
1
  import { z } from "zod";
2
2
  import { canUse } from "../permissions.js";
3
- import { MUTATING_TOOL, OPEN_WORLD_DESTRUCTIVE_TOOL, OPEN_WORLD_MUTATING_TOOL, READ_ONLY_TOOL, } from "./annotations.js";
4
- export function registerDomainTools(server, client, grantedPermissions) {
3
+ import { isToolInProfile } from "../profiles.js";
4
+ import { OPEN_WORLD_DESTRUCTIVE_TOOL, OPEN_WORLD_MUTATING_TOOL, OPEN_WORLD_READ_ONLY_TOOL, READ_ONLY_TOOL, } from "./annotations.js";
5
+ export function registerDomainTools(server, client, grantedPermissions, profile = "general") {
5
6
  if (canUse(grantedPermissions, ["domain:read"])) {
6
7
  server.registerTool("migma_list_domains", {
7
8
  title: "List Domains",
@@ -53,10 +54,10 @@ export function registerDomainTools(server, client, grantedPermissions) {
53
54
  if (canUse(grantedPermissions, ["domain:write"])) {
54
55
  server.registerTool("migma_verify_domain", {
55
56
  title: "Verify Domain",
56
- annotations: MUTATING_TOOL,
57
- description: "Verify DNS records for a custom sending domain.",
57
+ annotations: OPEN_WORLD_DESTRUCTIVE_TOOL,
58
+ description: "Recheck an existing sending domain in the authenticated Migma account after DNS setup. Reads published DNS and provider verification status, then saves domain and record statuses. May restart failed DKIM verification and replace required DKIM records; publish any newly returned records. Can enable Migma as a sending provider when the domain becomes sendable. Returns status, DNS records, and outstanding issues. Does not publish DNS records or send email.",
58
59
  inputSchema: z.object({
59
- domain: z.string().describe("The domain to verify (e.g. mail.yourbrand.com)"),
60
+ domain: z.string().describe("Existing sending domain from migma_list_domains, e.g. mail.yourbrand.com."),
60
61
  }),
61
62
  }, async (args) => {
62
63
  const { data, error } = await client.domains.verify(args.domain);
@@ -93,11 +94,11 @@ export function registerDomainTools(server, client, grantedPermissions) {
93
94
  return toolResult(data);
94
95
  });
95
96
  }
96
- if (canUse(grantedPermissions, ["domain:read"])) {
97
+ if (isToolInProfile("migma_search_buyable_domains", profile) && canUse(grantedPermissions, ["domain:read"])) {
97
98
  server.registerTool("migma_search_buyable_domains", {
98
99
  title: "Search Buyable Domains",
99
- annotations: READ_ONLY_TOOL,
100
- description: "Search domains the user could buy through Migma: availability and yearly price per name. Use before migma_buy_domain.",
100
+ annotations: OPEN_WORLD_READ_ONLY_TOOL,
101
+ description: "Look up public domain registration availability and annual price quotes through Migma's registrar for a user-supplied name or keyword. Returns up to limit quotes, including availability and supported status. Requires account eligibility to purchase another domain; a free account can hold one purchased domain. Quotes can change before checkout. Does not reserve or register a domain, create checkout, or charge the user.",
101
102
  inputSchema: z.object({
102
103
  q: z.string().describe("Name or keyword, e.g. 'acme' or 'acme.com'"),
103
104
  limit: z.number().int().min(1).max(20).optional().describe("Max quotes to return (default 8)"),
@@ -109,11 +110,11 @@ export function registerDomainTools(server, client, grantedPermissions) {
109
110
  return toolResult(data);
110
111
  });
111
112
  }
112
- if (canUse(grantedPermissions, ["domain:write"])) {
113
+ if (isToolInProfile("migma_buy_domain", profile) && canUse(grantedPermissions, ["domain:write"])) {
113
114
  server.registerTool("migma_buy_domain", {
114
115
  title: "Buy Domain",
115
116
  annotations: OPEN_WORLD_MUTATING_TOOL,
116
- description: "Start buying a domain: returns a Stripe checkout URL the user opens in their browser to pay (annual, auto-renew). Nothing is charged by this call, and the domain registers only after payment clears. Requires an active paid Migma subscription (migma_get_upgrade_link returns the upgrade link). migma_get_domain_purchases reports when the purchase is active; migma_setup_domain then sets up sending.",
117
+ description: "Create a payment-pending domain purchase record and a Stripe checkout link for a domain the user chose. Annual registration renews automatically after the user completes checkout in their browser. This call does not charge or register the domain; registration starts after payment clears. Requires a purchasable domain and account eligibility; a free account can hold one purchased domain. Repeated calls can create new checkout links; check migma_get_domain_purchases after an uncertain result or payment. An optional redirectUrl becomes the bought domain's forwarding destination after registration.",
117
118
  inputSchema: z.object({
118
119
  domain: z.string().describe("Domain to buy, e.g. 'acme.com'"),
119
120
  redirectUrl: z
@@ -135,7 +136,9 @@ export function registerDomainTools(server, client, grantedPermissions) {
135
136
  server.registerTool("migma_get_domain_purchases", {
136
137
  title: "Get Domain Purchases",
137
138
  annotations: READ_ONLY_TOOL,
138
- description: "List domain purchases and their status: payment_pending → registering → active (or failed/refunded, auto-refunded on failure). Poll after the user pays a migma_buy_domain checkout.",
139
+ description: profile === "openai"
140
+ ? "Read existing domain registrations for the authenticated Migma account and their status: payment_pending, registering, active, failed, or refunded. Does not start a purchase or create checkout."
141
+ : "List domain purchases and their status: payment_pending → registering → active (or failed/refunded, auto-refunded on failure). Poll after the user pays a migma_buy_domain checkout.",
139
142
  }, async () => {
140
143
  const { data, error } = await client.domainPurchases.registrations();
141
144
  if (error)
@@ -1 +1 @@
1
- {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Migma } from "migma";
2
+ import type { Config } from "../config.js";
3
+ type Result = {
4
+ data?: unknown;
5
+ error?: {
6
+ message: string;
7
+ } | null;
8
+ };
9
+ export declare function startEmailEdit(client: Migma, config: Config, emailId: string, params: {
10
+ prompt: string;
11
+ label?: string;
12
+ }, idempotencyKey: string): Promise<Result>;
13
+ export declare function getEmailEditStatus(client: Migma, config: Config, emailId: string, editId: string): Promise<Result>;
14
+ export {};
15
+ //# sourceMappingURL=email-edit-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-edit-client.d.ts","sourceRoot":"","sources":["../../src/tools/email-edit-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,KAAK,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAAC;AA6BrE,wBAAsB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIxK;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIxH"}
@@ -0,0 +1,38 @@
1
+ /** Compatibility bridge while hosted installations still use the previous SDK.
2
+ * Both paths use the same authenticated async REST contract, never sync edit. */
3
+ async function request(config, path, body, idempotencyKey) {
4
+ if (!config.apiKey)
5
+ return { error: { message: "This SDK lacks async edits. Upgrade migma or provide MCP API configuration." } };
6
+ try {
7
+ const base = (config.baseUrl || "https://api.migma.ai/v1").replace(/\/+$/, "");
8
+ const response = await fetch(`${base}${path}`, {
9
+ method: body ? "POST" : "GET",
10
+ headers: {
11
+ Authorization: `Bearer ${config.apiKey}`, "Content-Type": "application/json", "User-Agent": "migma-mcp",
12
+ ...(idempotencyKey ? { "Idempotency-Key": idempotencyKey } : {}),
13
+ },
14
+ body: body ? JSON.stringify(body) : undefined,
15
+ signal: AbortSignal.timeout(15_000),
16
+ });
17
+ const payload = await response.json();
18
+ if (!response.ok || !payload.success)
19
+ return { error: { message: payload.error || `Request failed with status ${response.status}` } };
20
+ return { data: payload.data, error: null };
21
+ }
22
+ catch (error) {
23
+ return { error: { message: error instanceof Error ? error.message : "Edit request could not be confirmed" } };
24
+ }
25
+ }
26
+ export async function startEmailEdit(client, config, emailId, params, idempotencyKey) {
27
+ const emails = client.emails;
28
+ if (emails.startEdit)
29
+ return emails.startEdit(emailId, params, { idempotencyKey });
30
+ return request(config, `/emails/${encodeURIComponent(emailId)}/edit`, { ...params, async: true }, idempotencyKey);
31
+ }
32
+ export async function getEmailEditStatus(client, config, emailId, editId) {
33
+ const emails = client.emails;
34
+ if (emails.getEditStatus)
35
+ return emails.getEditStatus(emailId, editId);
36
+ return request(config, `/emails/${encodeURIComponent(emailId)}/edits/${encodeURIComponent(editId)}`);
37
+ }
38
+ //# sourceMappingURL=email-edit-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-edit-client.js","sourceRoot":"","sources":["../../src/tools/email-edit-client.ts"],"names":[],"mappings":"AASA;iFACiF;AACjF,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,IAAY,EAAE,IAAa,EAAE,cAAuB;IACzF,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,6EAA6E,EAAE,EAAE,CAAC;IACjI,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;YAC7C,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YAC7B,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW;gBACvG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE;YACD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA2D,CAAC;QAC/F,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,8BAA8B,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;QACtI,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,EAAE,EAAE,CAAC;IAChH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAa,EAAE,MAAc,EAAE,OAAe,EAAE,MAA0C,EAAE,cAAsB;IACrJ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAoB,CAAC;IAC3C,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;AACpH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAa,EAAE,MAAc,EAAE,OAAe,EAAE,MAAc;IACrG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAoB,CAAC;IAC3C,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,kBAAkB,CAAC,OAAO,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAkB3C,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAgV9B"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAY3C,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,MAAM,EAAE,QA2W9B"}
@@ -1,20 +1,22 @@
1
1
  import { z } from "zod";
2
+ import { randomUUID } from "node:crypto";
2
3
  import { canUse } from "../permissions.js";
3
4
  import { decorateEmailPayload } from "./agent-payload.js";
4
5
  import { toolResultWithImages } from "./email-images.js";
5
- import { DESTRUCTIVE_TOOL, IDEMPOTENT_MUTATING_TOOL, OPEN_WORLD_DESTRUCTIVE_TOOL, READ_ONLY_TOOL, } from "./annotations.js";
6
+ import { startEmailEdit, getEmailEditStatus } from "./email-edit-client.js";
7
+ import { DESTRUCTIVE_TOOL, OPEN_WORLD_MUTATING_TOOL, OPEN_WORLD_DESTRUCTIVE_TOOL, READ_ONLY_TOOL, } from "./annotations.js";
6
8
  export function registerGenerateTools(server, client, config, grantedPermissions) {
7
9
  if (canUse(grantedPermissions, ["email:write", "email:read"])) {
8
10
  server.registerTool("migma_generate_email", {
9
11
  title: "Create / Generate Email or Series",
10
- annotations: IDEMPOTENT_MUTATING_TOOL,
11
- description: "Create, design, write, compose, or draft a new email or email series from a prompt. One call can generate multiple emails: pass count (1–12), e.g. count=3 for a three-email series, and name each email's job in the prompt. Never call this tool once per email. This is the tool for making new emails from a prompt (not converting existing HTML — use migma_import_html for that; not campaigns, contacts, DNS, or domains). Images: pass every image the user attached or pointed at through the images argument — product shots and logos to show in the email, and screenshots of emails or pages to use as design reference (a screenshot URL of an email or site the user names works as reference; say in the prompt which images are content and which are reference). URLs mentioned only in prompt text are not image inputs. Put exact required facts (offers, prices, dates) in the prompt; Migma writes only what it is given or finds on the brand's site. Returns conversationId immediately; migma_get_generation_status reports progress and returns preview images and editor links when done. Charges 1 email credit per finished email.",
12
+ annotations: OPEN_WORLD_MUTATING_TOOL,
13
+ description: "Create, design, write, or compose saved email drafts from a brief for an existing active Migma brand. One call creates an email or series: pass count (1–12) and each email's purpose. Never call this tool once per email. Saves new drafts and consumes 1 email credit per finished email; does not send email or schedule a campaign. May research public websites and fetch supplied image URLs. Returns conversationId immediately; poll migma_get_generation_status for previews and editor links. Reuse the same idempotency_key and identical inputs within 24h after an uncertain submission; without a key, retries can create duplicate drafts and consume more credits. Use migma_import_html to convert existing HTML. Pass user-selected images through images; a screenshot URL of an email or site the user names can be a design reference. URLs mentioned only in prompt text are not image inputs. Specify which images are content or reference, and include exact required offers, prices, and dates in the brief.",
12
14
  inputSchema: z.object({
13
15
  projectId: z
14
16
  .string()
15
17
  .optional()
16
18
  .describe("Project/brand ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
17
- prompt: z.string().min(1).describe("Email generation prompt"),
19
+ prompt: z.string().min(1).describe("Brief for this email or series: purpose, copy, required facts, and design instructions."),
18
20
  languages: z
19
21
  .array(z.string())
20
22
  .max(5)
@@ -35,7 +37,7 @@ export function registerGenerateTools(server, client, config, grantedPermissions
35
37
  referenceId: z
36
38
  .string()
37
39
  .optional()
38
- .describe("Existing email or reference ID to remix from."),
40
+ .describe("Existing conversation ID from the same brand to use as a design reference."),
39
41
  idempotency_key: z
40
42
  .string()
41
43
  .max(100)
@@ -191,11 +193,11 @@ export function registerGenerateTools(server, client, config, grantedPermissions
191
193
  return toolResultWithImages(decorateEmailPayload(data, { includeHtml: args.includeHtml }), "detail");
192
194
  });
193
195
  }
194
- if (canUse(grantedPermissions, ["email:write"])) {
196
+ if (canUse(grantedPermissions, ["email:write", "email:read"])) {
195
197
  server.registerTool("migma_edit_email", {
196
198
  title: "Edit / Change Email",
197
- annotations: DESTRUCTIVE_TOOL,
198
- description: "Edit, change, revise, or rewrite one already-generated email with a natural-language prompt. For a brand-new email or series, use migma_generate_email instead. This tool does not accept structured source images; adding external images requires a new migma_generate_email call and creates a replacement draft. Returns preview image, subject, appUrl, and screenshotStatus. Set includeHtml when markup is needed. Charges 0.5 email credit after save.",
199
+ annotations: { ...DESTRUCTIVE_TOOL, idempotentHint: true },
200
+ description: "Edit, change, revise, or rewrite one already-generated email with a natural-language prompt. Returns editId, emailId, conversationId and status immediately; poll migma_get_email_edit_status with emailId and editId until completed or failed. Never resubmit a pending or processing edit, and reuse the same idempotency_key after an uncertain submission. Conversation generation status can describe an older turn and does not prove this edit finished. For a brand-new email or series, or to add external images, use migma_generate_email instead. The completed status returns the saved preview, subject, appUrl, and screenshotStatus; set includeHtml when markup is needed. Charges 0.5 email credit after save.",
199
201
  inputSchema: z.object({
200
202
  emailId: z.string().describe("Generated email ID from result.emails[].emailId"),
201
203
  prompt: z
@@ -206,14 +208,36 @@ export function registerGenerateTools(server, client, config, grantedPermissions
206
208
  includeHtml: z
207
209
  .boolean()
208
210
  .optional()
209
- .describe("Include full email HTML. Default false."),
211
+ .describe("Request HTML on the subsequent migma_get_email_edit_status call. Start returns a job handle."),
212
+ idempotency_key: z.string().min(1).max(100).optional()
213
+ .describe("Reuse this key with identical edit inputs after an uncertain submission. Same key resumes the same job for at least 24h after completion."),
210
214
  }),
211
215
  }, async (args) => {
212
- const emails = client.emails;
213
- const { data, error } = await emails.edit(args.emailId, {
216
+ const key = args.idempotency_key || randomUUID();
217
+ const { data, error } = await startEmailEdit(client, config, args.emailId, {
214
218
  prompt: args.prompt,
215
219
  label: args.label,
216
- });
220
+ }, key);
221
+ if (error)
222
+ return toolError(JSON.stringify({ error: error.message, emailId: args.emailId,
223
+ idempotency_key: key, nextStep: "If retrying this submission, reuse this idempotency_key and identical prompt/label. Do not start a second edit with a new key." }));
224
+ return toolResult({ ...decorateEmailPayload(data), idempotency_key: key,
225
+ nextStep: "Poll migma_get_email_edit_status with emailId and editId. Do not resubmit while pending or processing. Show the saved preview only after completed.",
226
+ ...(args.includeHtml ? { includeHtml: true } : {}), });
227
+ });
228
+ }
229
+ if (canUse(grantedPermissions, ["email:read"])) {
230
+ server.registerTool("migma_get_email_edit_status", {
231
+ title: "Get Email Edit Status",
232
+ annotations: READ_ONLY_TOOL,
233
+ description: "Poll one queued email edit using its emailId and editId. Pending/processing means keep polling, not retrying the edit. Completed includes the saved email preview; show it immediately. Failed includes error and changesMayHaveBeenSaved; inspect the saved email before starting another edit. Missing/expired status does not prove the edit failed. Set includeHtml to inspect markup.",
234
+ inputSchema: z.object({
235
+ emailId: z.string().describe("Email ID returned by migma_edit_email"),
236
+ editId: z.string().describe("Exact edit job ID returned by migma_edit_email"),
237
+ includeHtml: z.boolean().optional().describe("Include saved email HTML on completion. Default false."),
238
+ }),
239
+ }, async (args) => {
240
+ const { data, error } = await getEmailEditStatus(client, config, args.emailId, args.editId);
217
241
  if (error)
218
242
  return toolError(error.message);
219
243
  return toolResultWithImages(decorateEmailPayload(data, { includeHtml: args.includeHtml }), "detail");
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { canUse } from "../permissions.js";
3
3
  import { brandCard, compactProjectList, slimProject } from "./agent-payload.js";
4
- import { MUTATING_TOOL, READ_ONLY_TOOL } from "./annotations.js";
4
+ import { OPEN_WORLD_MUTATING_TOOL, READ_ONLY_TOOL } from "./annotations.js";
5
5
  export function registerProjectTools(server, client, config, grantedPermissions) {
6
6
  if (canUse(grantedPermissions, ["email:read"])) {
7
7
  server.registerTool("migma_list_projects", {
@@ -60,14 +60,14 @@ export function registerProjectTools(server, client, config, grantedPermissions)
60
60
  if (canUse(grantedPermissions, ["project:write", "email:read"])) {
61
61
  server.registerTool("migma_import_brand", {
62
62
  title: "Import Brand",
63
- annotations: MUTATING_TOOL,
64
- description: "Import a brand from one or more website URLs. Extracts colors, fonts, logos, and tone of voice. Polls until import completes, then returns the saved brand: logo URLs, palette hex codes with roles, heading and body fonts, tone, and social links.",
63
+ annotations: OPEN_WORLD_MUTATING_TOOL,
64
+ description: "Create a new saved Migma brand from one public website URL the user provides and is authorized to import. Fetches website content to extract colors, fonts, logos, and tone of voice. Waits for import completion, then returns projectId, status, and saved brand details when available. Requires permission to create a brand and available brand capacity. Each call starts a new import; retrying after a timeout can create another brand. Check migma_list_projects before retrying an uncertain import.",
65
65
  inputSchema: z.object({
66
66
  urls: z
67
- .array(z.string())
67
+ .array(z.string().url())
68
68
  .min(1)
69
- .max(10)
70
- .describe("Website URLs to import brand from"),
69
+ .max(1)
70
+ .describe("Exactly one public website URL to import. The backend imports only the first URL."),
71
71
  }),
72
72
  }, async (args) => {
73
73
  const { data, error } = await client.projects.importAndWait({