@migma/mcp 1.1.2 → 1.3.0
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/client.d.ts.map +1 -1
- package/build/client.js +3 -1
- package/build/client.js.map +1 -1
- package/build/config.d.ts.map +1 -1
- package/build/config.js +22 -4
- package/build/config.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +14 -11
- package/build/index.js.map +1 -1
- package/build/permissions.d.ts +2 -0
- package/build/permissions.d.ts.map +1 -0
- package/build/permissions.js +17 -0
- package/build/permissions.js.map +1 -0
- package/build/tools/__tests__/catalog.test.js +20 -9
- package/build/tools/__tests__/catalog.test.js.map +1 -1
- package/build/tools/campaigns.d.ts +1 -1
- package/build/tools/campaigns.d.ts.map +1 -1
- package/build/tools/campaigns.js +244 -222
- package/build/tools/campaigns.js.map +1 -1
- package/build/tools/capabilities.d.ts.map +1 -1
- package/build/tools/capabilities.js +8 -1
- package/build/tools/capabilities.js.map +1 -1
- package/build/tools/contacts.d.ts +1 -1
- package/build/tools/contacts.d.ts.map +1 -1
- package/build/tools/contacts.js +356 -156
- package/build/tools/contacts.js.map +1 -1
- package/build/tools/domains.d.ts +1 -1
- package/build/tools/domains.d.ts.map +1 -1
- package/build/tools/domains.js +98 -96
- package/build/tools/domains.js.map +1 -1
- package/build/tools/export.d.ts +1 -1
- package/build/tools/export.d.ts.map +1 -1
- package/build/tools/export.js +97 -78
- package/build/tools/export.js.map +1 -1
- package/build/tools/generate.d.ts +1 -1
- package/build/tools/generate.d.ts.map +1 -1
- package/build/tools/generate.js +171 -109
- package/build/tools/generate.js.map +1 -1
- package/build/tools/metrics.d.ts +4 -0
- package/build/tools/metrics.d.ts.map +1 -0
- package/build/tools/metrics.js +39 -0
- package/build/tools/metrics.js.map +1 -0
- package/build/tools/projects.d.ts +1 -1
- package/build/tools/projects.d.ts.map +1 -1
- package/build/tools/projects.js +89 -77
- package/build/tools/projects.js.map +1 -1
- package/build/tools/segments.d.ts +1 -1
- package/build/tools/segments.d.ts.map +1 -1
- package/build/tools/segments.js +91 -67
- package/build/tools/segments.js.map +1 -1
- package/build/tools/send.d.ts +1 -1
- package/build/tools/send.d.ts.map +1 -1
- package/build/tools/send.js +72 -69
- package/build/tools/send.js.map +1 -1
- package/build/tools/tags.d.ts +1 -1
- package/build/tools/tags.d.ts.map +1 -1
- package/build/tools/tags.js +77 -69
- package/build/tools/tags.js.map +1 -1
- package/build/tools/validate.d.ts +1 -1
- package/build/tools/validate.d.ts.map +1 -1
- package/build/tools/validate.js +54 -44
- package/build/tools/validate.js.map +1 -1
- package/build/tools/webhooks.d.ts +1 -1
- package/build/tools/webhooks.d.ts.map +1 -1
- package/build/tools/webhooks.js +67 -57
- package/build/tools/webhooks.js.map +1 -1
- package/package.json +2 -2
package/build/tools/contacts.js
CHANGED
|
@@ -1,162 +1,362 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { basename } from "node:path";
|
|
1
3
|
import { z } from "zod";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
4
|
+
import { canUse } from "../permissions.js";
|
|
5
|
+
// The SDK client is JSON-only, so the CSV import tools talk to the multipart
|
|
6
|
+
// /contacts/imports endpoint directly. Default mirrors the SDK's own base URL.
|
|
7
|
+
const DEFAULT_BASE_URL = "https://api.migma.ai/v1";
|
|
8
|
+
export function registerContactTools(server, client, config, grantedPermissions) {
|
|
9
|
+
if (canUse(grantedPermissions, ["audience:read"])) {
|
|
10
|
+
server.registerTool("migma_list_contacts", {
|
|
11
|
+
title: "List Contacts",
|
|
12
|
+
description: "List contacts with optional filters. Supports pagination via page number.",
|
|
13
|
+
annotations: { readOnlyHint: true },
|
|
14
|
+
inputSchema: z.object({
|
|
15
|
+
projectId: z
|
|
16
|
+
.string()
|
|
17
|
+
.optional()
|
|
18
|
+
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
19
|
+
limit: z
|
|
20
|
+
.number()
|
|
21
|
+
.int()
|
|
22
|
+
.min(1)
|
|
23
|
+
.max(100)
|
|
24
|
+
.optional()
|
|
25
|
+
.describe("Max results (default 20)"),
|
|
26
|
+
page: z.number().int().min(1).optional().describe("Page number"),
|
|
27
|
+
status: z
|
|
28
|
+
.enum(["subscribed", "unsubscribed", "bounced", "non-subscribed"])
|
|
29
|
+
.optional()
|
|
30
|
+
.describe("Filter by status"),
|
|
31
|
+
search: z.string().optional().describe("Search by email or name"),
|
|
32
|
+
tag: z
|
|
33
|
+
.string()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe("Filter by tag"),
|
|
36
|
+
}),
|
|
37
|
+
}, async (args) => {
|
|
38
|
+
const projectId = args.projectId || config.projectId;
|
|
39
|
+
if (!projectId) {
|
|
40
|
+
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
41
|
+
}
|
|
42
|
+
const { data, error } = await client.contacts.list({
|
|
43
|
+
projectId,
|
|
44
|
+
limit: args.limit,
|
|
45
|
+
page: args.page,
|
|
46
|
+
status: args.status,
|
|
47
|
+
search: args.search,
|
|
48
|
+
tags: args.tag,
|
|
49
|
+
});
|
|
50
|
+
if (error)
|
|
51
|
+
return toolError(error.message);
|
|
52
|
+
return toolResult(data);
|
|
41
53
|
});
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return toolError(error.message);
|
|
91
|
-
return toolResult(data);
|
|
92
|
-
});
|
|
93
|
-
server.registerTool("migma_get_contact", {
|
|
94
|
-
title: "Get Contact",
|
|
95
|
-
description: "Get detailed information about a contact by ID.",
|
|
96
|
-
inputSchema: z.object({
|
|
97
|
-
id: z.string().describe("Contact ID"),
|
|
98
|
-
projectId: z
|
|
99
|
-
.string()
|
|
100
|
-
.optional()
|
|
101
|
-
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
102
|
-
}),
|
|
103
|
-
}, async (args) => {
|
|
104
|
-
const projectId = args.projectId || config.projectId;
|
|
105
|
-
if (!projectId) {
|
|
106
|
-
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
107
|
-
}
|
|
108
|
-
const { data, error } = await client.contacts.get(args.id, projectId);
|
|
109
|
-
if (error)
|
|
110
|
-
return toolError(error.message);
|
|
111
|
-
return toolResult(data);
|
|
112
|
-
});
|
|
113
|
-
server.registerTool("migma_remove_contact", {
|
|
114
|
-
title: "Remove Contact",
|
|
115
|
-
description: "Delete a contact by ID.",
|
|
116
|
-
inputSchema: z.object({
|
|
117
|
-
id: z.string().describe("Contact ID"),
|
|
118
|
-
projectId: z
|
|
119
|
-
.string()
|
|
120
|
-
.optional()
|
|
121
|
-
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
122
|
-
}),
|
|
123
|
-
}, async (args) => {
|
|
124
|
-
const projectId = args.projectId || config.projectId;
|
|
125
|
-
if (!projectId) {
|
|
126
|
-
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
127
|
-
}
|
|
128
|
-
const { data, error } = await client.contacts.remove(args.id, projectId);
|
|
129
|
-
if (error)
|
|
130
|
-
return toolError(error.message);
|
|
131
|
-
return toolResult(data);
|
|
132
|
-
});
|
|
133
|
-
server.registerTool("migma_batch_delete_contacts_by_email", {
|
|
134
|
-
title: "Batch Delete Contacts",
|
|
135
|
-
description: "Delete up to 1000 contacts by email in one call. Emails with no matching contact are returned in `notFound`, not treated as errors.",
|
|
136
|
-
inputSchema: z.object({
|
|
137
|
-
emails: z
|
|
138
|
-
.array(z.string().email())
|
|
139
|
-
.min(1)
|
|
140
|
-
.max(1000)
|
|
141
|
-
.describe("Email addresses to delete (1-1000)"),
|
|
142
|
-
projectId: z
|
|
143
|
-
.string()
|
|
144
|
-
.optional()
|
|
145
|
-
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
146
|
-
}),
|
|
147
|
-
}, async (args) => {
|
|
148
|
-
const projectId = args.projectId || config.projectId;
|
|
149
|
-
if (!projectId) {
|
|
150
|
-
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
151
|
-
}
|
|
152
|
-
const { data, error } = await client.contacts.bulkDeleteByEmail({
|
|
153
|
-
emails: args.emails,
|
|
154
|
-
projectId,
|
|
54
|
+
}
|
|
55
|
+
if (canUse(grantedPermissions, ["audience:write"])) {
|
|
56
|
+
server.registerTool("migma_add_contact", {
|
|
57
|
+
title: "Add Contact",
|
|
58
|
+
description: "Create a new contact/subscriber.",
|
|
59
|
+
inputSchema: z.object({
|
|
60
|
+
email: z.string().email().describe("Contact email address"),
|
|
61
|
+
firstName: z.string().optional().describe("First name"),
|
|
62
|
+
lastName: z.string().optional().describe("Last name"),
|
|
63
|
+
phone: z.string().max(30).optional().describe("Phone number"),
|
|
64
|
+
tags: z.array(z.string()).optional().describe("Tags to assign"),
|
|
65
|
+
customFields: z
|
|
66
|
+
.record(z.unknown())
|
|
67
|
+
.optional()
|
|
68
|
+
.describe("Custom field values"),
|
|
69
|
+
status: z
|
|
70
|
+
.enum(["subscribed", "unsubscribed", "bounced", "non-subscribed"])
|
|
71
|
+
.optional()
|
|
72
|
+
.describe("Contact status. Defaults to subscribed."),
|
|
73
|
+
projectId: z
|
|
74
|
+
.string()
|
|
75
|
+
.optional()
|
|
76
|
+
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
77
|
+
idempotency_key: z
|
|
78
|
+
.string()
|
|
79
|
+
.max(100)
|
|
80
|
+
.optional()
|
|
81
|
+
.describe("Optional Idempotency-Key for safe retries; same key+body within 24h replays the original result."),
|
|
82
|
+
}),
|
|
83
|
+
}, async (args) => {
|
|
84
|
+
const projectId = args.projectId || config.projectId;
|
|
85
|
+
if (!projectId) {
|
|
86
|
+
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
87
|
+
}
|
|
88
|
+
const contact = {
|
|
89
|
+
email: args.email,
|
|
90
|
+
firstName: args.firstName,
|
|
91
|
+
lastName: args.lastName,
|
|
92
|
+
phone: args.phone,
|
|
93
|
+
tags: args.tags,
|
|
94
|
+
customFields: args.customFields,
|
|
95
|
+
status: args.status,
|
|
96
|
+
projectId,
|
|
97
|
+
};
|
|
98
|
+
const { data, error } = await client.contacts.create(contact, args.idempotency_key ? { idempotencyKey: args.idempotency_key } : undefined);
|
|
99
|
+
if (error)
|
|
100
|
+
return toolError(error.message);
|
|
101
|
+
return toolResult(data);
|
|
155
102
|
});
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
103
|
+
}
|
|
104
|
+
if (canUse(grantedPermissions, ["audience:write"])) {
|
|
105
|
+
server.registerTool("migma_bulk_import_contacts", {
|
|
106
|
+
title: "Bulk Import Contacts",
|
|
107
|
+
description: "Bulk import contacts from structured data. Use the CLI for large CSV files.",
|
|
108
|
+
inputSchema: z.object({
|
|
109
|
+
subscribers: z
|
|
110
|
+
.array(z.object({
|
|
111
|
+
email: z.string().email().describe("Contact email address"),
|
|
112
|
+
firstName: z.string().optional().describe("First name"),
|
|
113
|
+
lastName: z.string().optional().describe("Last name"),
|
|
114
|
+
phone: z.string().max(30).optional().describe("Phone number"),
|
|
115
|
+
country: z.string().optional().describe("ISO 3166-1 country code"),
|
|
116
|
+
language: z.string().optional().describe("Language code"),
|
|
117
|
+
tags: z.array(z.string()).optional().describe("Tags to assign"),
|
|
118
|
+
customFields: z
|
|
119
|
+
.record(z.unknown())
|
|
120
|
+
.optional()
|
|
121
|
+
.describe("Custom field values"),
|
|
122
|
+
status: z
|
|
123
|
+
.enum(["subscribed", "unsubscribed", "bounced", "non-subscribed"])
|
|
124
|
+
.optional()
|
|
125
|
+
.describe("Contact status. Defaults to subscribed."),
|
|
126
|
+
}))
|
|
127
|
+
.min(1)
|
|
128
|
+
.describe("Contacts to import"),
|
|
129
|
+
projectId: z
|
|
130
|
+
.string()
|
|
131
|
+
.optional()
|
|
132
|
+
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
133
|
+
idempotency_key: z
|
|
134
|
+
.string()
|
|
135
|
+
.max(100)
|
|
136
|
+
.optional()
|
|
137
|
+
.describe("Optional Idempotency-Key for safe retries; same key+body within 24h replays the original result."),
|
|
138
|
+
}),
|
|
139
|
+
}, async (args) => {
|
|
140
|
+
const projectId = args.projectId || config.projectId;
|
|
141
|
+
if (!projectId) {
|
|
142
|
+
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
143
|
+
}
|
|
144
|
+
const subscribers = args.subscribers.map((sub) => ({
|
|
145
|
+
...sub,
|
|
146
|
+
status: sub.status,
|
|
147
|
+
}));
|
|
148
|
+
const { data, error } = await client.contacts.bulkImport({ subscribers, projectId }, args.idempotency_key ? { idempotencyKey: args.idempotency_key } : undefined);
|
|
149
|
+
if (error)
|
|
150
|
+
return toolError(error.message);
|
|
151
|
+
return toolResult(data);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (canUse(grantedPermissions, ["audience:read"])) {
|
|
155
|
+
server.registerTool("migma_get_contact", {
|
|
156
|
+
title: "Get Contact",
|
|
157
|
+
description: "Get detailed information about a contact by ID.",
|
|
158
|
+
annotations: { readOnlyHint: true },
|
|
159
|
+
inputSchema: z.object({
|
|
160
|
+
id: z.string().describe("Contact ID"),
|
|
161
|
+
projectId: z
|
|
162
|
+
.string()
|
|
163
|
+
.optional()
|
|
164
|
+
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
165
|
+
}),
|
|
166
|
+
}, async (args) => {
|
|
167
|
+
const projectId = args.projectId || config.projectId;
|
|
168
|
+
if (!projectId) {
|
|
169
|
+
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
170
|
+
}
|
|
171
|
+
const { data, error } = await client.contacts.get(args.id, projectId);
|
|
172
|
+
if (error)
|
|
173
|
+
return toolError(error.message);
|
|
174
|
+
return toolResult(data);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
if (canUse(grantedPermissions, ["audience:write"])) {
|
|
178
|
+
server.registerTool("migma_remove_contact", {
|
|
179
|
+
title: "Remove Contact",
|
|
180
|
+
description: "Delete a contact by ID.",
|
|
181
|
+
inputSchema: z.object({
|
|
182
|
+
id: z.string().describe("Contact ID"),
|
|
183
|
+
projectId: z
|
|
184
|
+
.string()
|
|
185
|
+
.optional()
|
|
186
|
+
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
187
|
+
}),
|
|
188
|
+
}, async (args) => {
|
|
189
|
+
const projectId = args.projectId || config.projectId;
|
|
190
|
+
if (!projectId) {
|
|
191
|
+
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
192
|
+
}
|
|
193
|
+
const { data, error } = await client.contacts.remove(args.id, projectId);
|
|
194
|
+
if (error)
|
|
195
|
+
return toolError(error.message);
|
|
196
|
+
return toolResult(data);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
if (canUse(grantedPermissions, ["audience:write"])) {
|
|
200
|
+
server.registerTool("migma_batch_delete_contacts_by_email", {
|
|
201
|
+
title: "Batch Delete Contacts",
|
|
202
|
+
description: "Delete up to 1000 contacts by email in one call. Emails with no matching contact are returned in `notFound`, not treated as errors.",
|
|
203
|
+
inputSchema: z.object({
|
|
204
|
+
emails: z
|
|
205
|
+
.array(z.string().email())
|
|
206
|
+
.min(1)
|
|
207
|
+
.max(1000)
|
|
208
|
+
.describe("Email addresses to delete (1-1000)"),
|
|
209
|
+
projectId: z
|
|
210
|
+
.string()
|
|
211
|
+
.optional()
|
|
212
|
+
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
213
|
+
}),
|
|
214
|
+
}, async (args) => {
|
|
215
|
+
const projectId = args.projectId || config.projectId;
|
|
216
|
+
if (!projectId) {
|
|
217
|
+
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
218
|
+
}
|
|
219
|
+
const { data, error } = await client.contacts.bulkDeleteByEmail({
|
|
220
|
+
emails: args.emails,
|
|
221
|
+
projectId,
|
|
222
|
+
});
|
|
223
|
+
if (error)
|
|
224
|
+
return toolError(error.message);
|
|
225
|
+
return toolResult(data);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
if (canUse(grantedPermissions, ["audience:write"])) {
|
|
229
|
+
server.registerTool("migma_create_contact_import", {
|
|
230
|
+
title: "Create Contact Import",
|
|
231
|
+
description: "Import contacts from a CSV file into a project. Provide either csvPath (a local file path) or csvContent (raw CSV text). The import runs in the background; poll migma_get_contact_import for status and counts.",
|
|
232
|
+
inputSchema: z.object({
|
|
233
|
+
projectId: z
|
|
234
|
+
.string()
|
|
235
|
+
.optional()
|
|
236
|
+
.describe("Project ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
237
|
+
csvPath: z
|
|
238
|
+
.string()
|
|
239
|
+
.optional()
|
|
240
|
+
.describe("Path to a local CSV file to import. Provide this or csvContent."),
|
|
241
|
+
csvContent: z
|
|
242
|
+
.string()
|
|
243
|
+
.optional()
|
|
244
|
+
.describe("Raw CSV text to import (including the header row). Provide this or csvPath."),
|
|
245
|
+
columnMap: z
|
|
246
|
+
.object({
|
|
247
|
+
email: z.string().describe("CSV header for the email column (required)."),
|
|
248
|
+
firstName: z.string().optional().describe("CSV header for the first name column."),
|
|
249
|
+
lastName: z.string().optional().describe("CSV header for the last name column."),
|
|
250
|
+
name: z.string().optional().describe("CSV header for a combined name column."),
|
|
251
|
+
phone: z.string().optional().describe("CSV header for the phone column."),
|
|
252
|
+
country: z.string().optional().describe("CSV header for the country column."),
|
|
253
|
+
language: z.string().optional().describe("CSV header for the language column."),
|
|
254
|
+
customFields: z
|
|
255
|
+
.record(z.string())
|
|
256
|
+
.optional()
|
|
257
|
+
.describe("Map of customField key → CSV header."),
|
|
258
|
+
})
|
|
259
|
+
.describe("Maps subscriber fields to CSV header names. Only email is required."),
|
|
260
|
+
onConflict: z
|
|
261
|
+
.enum(["skip", "upsert"])
|
|
262
|
+
.optional()
|
|
263
|
+
.describe("What to do when a contact already exists. Defaults to upsert."),
|
|
264
|
+
delimiter: z
|
|
265
|
+
.string()
|
|
266
|
+
.optional()
|
|
267
|
+
.describe("CSV delimiter. Defaults to ',' ."),
|
|
268
|
+
tags: z
|
|
269
|
+
.array(z.string())
|
|
270
|
+
.optional()
|
|
271
|
+
.describe("Tag names to assign to every imported contact. Created if they don't exist."),
|
|
272
|
+
}),
|
|
273
|
+
}, async (args) => {
|
|
274
|
+
const projectId = args.projectId || config.projectId;
|
|
275
|
+
if (!projectId) {
|
|
276
|
+
return toolError("projectId is required. Provide projectId, or set MIGMA_PROJECT_ID when using local stdio.");
|
|
277
|
+
}
|
|
278
|
+
if (!args.csvPath && !args.csvContent) {
|
|
279
|
+
return toolError("Provide either csvPath (a local file path) or csvContent (raw CSV text).");
|
|
280
|
+
}
|
|
281
|
+
if (args.csvPath && args.csvContent) {
|
|
282
|
+
return toolError("Provide only one of csvPath or csvContent, not both.");
|
|
283
|
+
}
|
|
284
|
+
let csv;
|
|
285
|
+
let fileName;
|
|
286
|
+
if (args.csvPath) {
|
|
287
|
+
try {
|
|
288
|
+
csv = await readFile(args.csvPath, "utf8");
|
|
289
|
+
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
return toolError(`Could not read CSV file at ${args.csvPath}: ${err instanceof Error ? err.message : String(err)}`);
|
|
292
|
+
}
|
|
293
|
+
fileName = basename(args.csvPath);
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
csv = args.csvContent;
|
|
297
|
+
fileName = "contacts.csv";
|
|
298
|
+
}
|
|
299
|
+
const form = new FormData();
|
|
300
|
+
form.append("file", new Blob([csv], { type: "text/csv" }), fileName);
|
|
301
|
+
form.append("projectId", projectId);
|
|
302
|
+
form.append("columnMap", JSON.stringify(args.columnMap));
|
|
303
|
+
if (args.onConflict)
|
|
304
|
+
form.append("onConflict", args.onConflict);
|
|
305
|
+
if (args.delimiter)
|
|
306
|
+
form.append("delimiter", args.delimiter);
|
|
307
|
+
if (args.tags && args.tags.length > 0) {
|
|
308
|
+
form.append("tags", JSON.stringify(args.tags));
|
|
309
|
+
}
|
|
310
|
+
return multipartRequest(config, "/contacts/imports", form);
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
if (canUse(grantedPermissions, ["audience:read"])) {
|
|
314
|
+
server.registerTool("migma_get_contact_import", {
|
|
315
|
+
title: "Get Contact Import",
|
|
316
|
+
description: "Get the status and counts of a CSV contact import created with migma_create_contact_import.",
|
|
317
|
+
annotations: { readOnlyHint: true },
|
|
318
|
+
inputSchema: z.object({
|
|
319
|
+
importId: z.string().describe("The import id returned by migma_create_contact_import."),
|
|
320
|
+
}),
|
|
321
|
+
}, async (args) => {
|
|
322
|
+
return jsonGet(config, `/contacts/imports/${args.importId}`);
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
function resolveBaseUrl(config) {
|
|
327
|
+
return (config.baseUrl || DEFAULT_BASE_URL).replace(/\/$/, "");
|
|
328
|
+
}
|
|
329
|
+
async function multipartRequest(config, path, form) {
|
|
330
|
+
try {
|
|
331
|
+
const response = await fetch(`${resolveBaseUrl(config)}${path}`, {
|
|
332
|
+
method: "POST",
|
|
333
|
+
headers: { Authorization: `Bearer ${config.apiKey}` },
|
|
334
|
+
body: form,
|
|
335
|
+
});
|
|
336
|
+
return handleApiResponse(response);
|
|
337
|
+
}
|
|
338
|
+
catch (err) {
|
|
339
|
+
return toolError(err instanceof Error ? err.message : "Network error");
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
async function jsonGet(config, path) {
|
|
343
|
+
try {
|
|
344
|
+
const response = await fetch(`${resolveBaseUrl(config)}${path}`, {
|
|
345
|
+
method: "GET",
|
|
346
|
+
headers: { Authorization: `Bearer ${config.apiKey}` },
|
|
347
|
+
});
|
|
348
|
+
return handleApiResponse(response);
|
|
349
|
+
}
|
|
350
|
+
catch (err) {
|
|
351
|
+
return toolError(err instanceof Error ? err.message : "Network error");
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
async function handleApiResponse(response) {
|
|
355
|
+
const json = (await response.json().catch(() => null));
|
|
356
|
+
if (!response.ok || !json?.success) {
|
|
357
|
+
return toolError(json?.error || `Request failed with status ${response.status}`);
|
|
358
|
+
}
|
|
359
|
+
return toolResult(json.data);
|
|
160
360
|
}
|
|
161
361
|
function toolResult(data) {
|
|
162
362
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"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"}
|
package/build/tools/domains.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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): void;
|
|
3
|
+
export declare function registerDomainTools(server: McpServer, client: Migma, grantedPermissions?: string[]): void;
|
|
4
4
|
//# 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;
|
|
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;AAInC,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,KAAK,EACb,kBAAkB,CAAC,EAAE,MAAM,EAAE,QA2H9B"}
|