@iterable/mcp 1.4.1 → 1.5.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/README.md +7 -8
- package/TOOLS.md +4 -3
- package/dist/tool-filter.d.ts.map +1 -1
- package/dist/tool-filter.js +4 -3
- package/dist/tool-filter.js.map +1 -1
- package/dist/tools/campaigns.d.ts.map +1 -1
- package/dist/tools/campaigns.js +11 -5
- package/dist/tools/campaigns.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -45,16 +45,15 @@ npx @iterable/mcp setup --advanced
|
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
What you’ll choose (optional):
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
48
|
+
- **User PII** (`ITERABLE_USER_PII`): access user profile data, including email addresses, phone numbers, and custom data fields.
|
|
49
|
+
- **Writes** (`ITERABLE_ENABLE_WRITES`): create, update, and delete resources such as templates, lists, catalogs, campaigns, snippets, and user profiles.
|
|
50
|
+
- **Sends** (`ITERABLE_ENABLE_SENDS`): send messages (email, SMS, push, in-app, WhatsApp), trigger campaigns and journeys, schedule and abort campaigns, and track events. Requires writes to be enabled. *Note: creating a blast campaign will schedule it for delivery, matching the behavior of the underlying Iterable API; there is no way to create a draft campaign. If you only need to draft content, you can do so with sends disabled by working with templates instead.*
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
- Enabling sends requires writes to be enabled.
|
|
54
|
-
- Permission settings are saved per key (see key management section below).
|
|
55
|
-
- Prompts are generated from read‑only tools for extra safety.
|
|
52
|
+
**IMPORTANT: Enabling writes and sends allows the AI agent to take real, potentially irreversible actions against your Iterable project, including sending messages to real users and deleting data. If you do not have the technical knowledge to properly review the agent's tool calls before they are executed, you should avoid enabling these flags, especially in production environments. It is entirely your choice to accept this risk. If you enable these capabilities, it is your responsibility to carefully review each action before allowing the agent to proceed.**
|
|
56
53
|
|
|
57
|
-
|
|
54
|
+
Note that permission settings are saved per key (see key management section below), allowing you to enable different permissions for different projects, e.g. only enable writes and sends for a sandbox project and disable them in production.
|
|
55
|
+
|
|
56
|
+
### Prefer a global install?
|
|
58
57
|
|
|
59
58
|
```bash
|
|
60
59
|
pnpm add -g @iterable/mcp
|
package/TOOLS.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Available Iterable MCP Tools (
|
|
1
|
+
# Available Iterable MCP Tools (105 tools)
|
|
2
2
|
|
|
3
3
|
**Legend:**
|
|
4
4
|
- 🔒 = Requires enabling user PII access
|
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
- ✉️ = Requires enabling sends
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
## Campaigns (
|
|
9
|
+
## Campaigns (14 tools)
|
|
10
10
|
- **abort_campaign** ✏️: Abort a campaign that is currently running
|
|
11
11
|
- **activate_triggered_campaign** ✏️✉️: Activate a triggered campaign (requires API triggered campaign activation enabled)
|
|
12
12
|
- **archive_campaigns** ✏️: Archive one or more campaigns. Scheduled/recurring campaigns will be cancelled, running campaigns will be aborted.
|
|
13
13
|
- **cancel_campaign** ✏️: Cancel a scheduled or recurring campaign
|
|
14
|
-
- **
|
|
14
|
+
- **create_and_schedule_campaign** ✏️✉️: Create a new blast campaign from an existing template and schedule it for delivery. The campaign is created in Scheduled state and will be sent to the specified lists at the given sendAt time.
|
|
15
|
+
- **create_triggered_campaign** ✏️: Create a new triggered campaign from an existing template. The campaign is created in Ready state and must be activated before it can send.
|
|
15
16
|
- **deactivate_triggered_campaign** ✏️: Deactivate a triggered campaign (requires API triggered campaign deactivation enabled)
|
|
16
17
|
- **get_campaign**: Get detailed information about a specific campaign
|
|
17
18
|
- **get_campaign_metrics**: Get campaign performance metrics
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-filter.d.ts","sourceRoot":"","sources":["../src/tool-filter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"tool-filter.d.ts","sourceRoot":"","sources":["../src/tool-filter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,CA4DpC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,GAAG,CAAC,MAAM,CAsCtC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,MAAM,CA0BjC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,CAO1E"}
|
package/dist/tool-filter.js
CHANGED
|
@@ -8,7 +8,8 @@ export const NON_PII_TOOLS = new Set([
|
|
|
8
8
|
"archive_campaigns",
|
|
9
9
|
"bulk_delete_catalog_items",
|
|
10
10
|
"cancel_campaign",
|
|
11
|
-
"
|
|
11
|
+
"create_and_schedule_campaign",
|
|
12
|
+
"create_triggered_campaign",
|
|
12
13
|
"create_catalog",
|
|
13
14
|
"create_list",
|
|
14
15
|
"create_snippet",
|
|
@@ -110,8 +111,8 @@ export const SEND_TOOLS = new Set([
|
|
|
110
111
|
"send_campaign",
|
|
111
112
|
"trigger_campaign",
|
|
112
113
|
"schedule_campaign",
|
|
113
|
-
// Creating a blast campaign schedules a send
|
|
114
|
-
"
|
|
114
|
+
// Creating a blast campaign schedules a send
|
|
115
|
+
"create_and_schedule_campaign",
|
|
115
116
|
// Triggered campaigns can cause sends upon activation; block unless explicitly allowed
|
|
116
117
|
"activate_triggered_campaign",
|
|
117
118
|
// Journey triggers enqueue users which may send
|
package/dist/tool-filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-filter.js","sourceRoot":"","sources":["../src/tool-filter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,CAAC,MAAM,aAAa,GAAgB,IAAI,GAAG,CAAC;IAChD,gBAAgB;IAChB,6BAA6B;IAC7B,mBAAmB;IACnB,2BAA2B;IAC3B,iBAAiB;IACjB,
|
|
1
|
+
{"version":3,"file":"tool-filter.js","sourceRoot":"","sources":["../src/tool-filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaigns.d.ts","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"campaigns.d.ts","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAiBpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,CA+FlE"}
|
package/dist/tools/campaigns.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP tools for Iterable campaign operations
|
|
3
3
|
*/
|
|
4
|
-
import { AbortCampaignParamsSchema, ActivateTriggeredCampaignParamsSchema, ArchiveCampaignsParamsSchema, CancelCampaignParamsSchema,
|
|
4
|
+
import { AbortCampaignParamsSchema, ActivateTriggeredCampaignParamsSchema, ArchiveCampaignsParamsSchema, CancelCampaignParamsSchema, CreateAndScheduleCampaignParamsSchema, CreateTriggeredCampaignParamsSchema, DeactivateTriggeredCampaignParamsSchema, GetCampaignMetricsParamsSchema, GetCampaignParamsSchema, GetCampaignsParamsSchema, GetChildCampaignsParamsSchema, ScheduleCampaignParamsSchema, SendCampaignParamsSchema, TriggerCampaignParamsSchema, } from "@iterable/api";
|
|
5
5
|
import { createTool } from "../schema-utils.js";
|
|
6
6
|
export function createCampaignTools(client) {
|
|
7
7
|
return [
|
|
@@ -24,10 +24,16 @@ export function createCampaignTools(client) {
|
|
|
24
24
|
execute: (params) => client.getCampaignMetrics(params),
|
|
25
25
|
}),
|
|
26
26
|
createTool({
|
|
27
|
-
name: "
|
|
28
|
-
description: "Create a new blast
|
|
29
|
-
schema:
|
|
30
|
-
execute: (params) => client.
|
|
27
|
+
name: "create_and_schedule_campaign",
|
|
28
|
+
description: "Create a new blast campaign from an existing template and schedule it for delivery. The campaign is created in Scheduled state and will be sent to the specified lists at the given sendAt time.",
|
|
29
|
+
schema: CreateAndScheduleCampaignParamsSchema,
|
|
30
|
+
execute: (params) => client.createAndScheduleCampaign(params),
|
|
31
|
+
}),
|
|
32
|
+
createTool({
|
|
33
|
+
name: "create_triggered_campaign",
|
|
34
|
+
description: "Create a new triggered campaign from an existing template. The campaign is created in Ready state and must be activated before it can send.",
|
|
35
|
+
schema: CreateTriggeredCampaignParamsSchema,
|
|
36
|
+
execute: (params) => client.createTriggeredCampaign(params),
|
|
31
37
|
}),
|
|
32
38
|
createTool({
|
|
33
39
|
name: "get_child_campaigns",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,4BAA4B,EAC5B,0BAA0B,EAC1B,
|
|
1
|
+
{"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iterable/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Model Context Protocol server for Iterable API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"@alcyone-labs/zod-to-json-schema": "4.0.10",
|
|
78
|
-
"@iterable/api": "0.
|
|
78
|
+
"@iterable/api": "0.7.0",
|
|
79
79
|
"@modelcontextprotocol/sdk": "1.18.1",
|
|
80
80
|
"@primno/dpapi": "2.0.1",
|
|
81
81
|
"@types/json-schema": "7.0.15",
|