@iterable/mcp 1.5.0 → 1.6.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.
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Greg Methvin
3
+ Copyright (c) 2025-2026 Iterable, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -44,7 +44,7 @@ By default, the setup wizard configures the server in a safe, read‑only mode (
44
44
  npx @iterable/mcp setup --advanced
45
45
  ```
46
46
 
47
- What you’ll choose (optional):
47
+ What you'll choose (optional):
48
48
  - **User PII** (`ITERABLE_USER_PII`): access user profile data, including email addresses, phone numbers, and custom data fields.
49
49
  - **Writes** (`ITERABLE_ENABLE_WRITES`): create, update, and delete resources such as templates, lists, catalogs, campaigns, snippets, and user profiles.
50
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.*
@@ -53,25 +53,68 @@ What you’ll choose (optional):
53
53
 
54
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
55
 
56
- ### Prefer a global install?
56
+ ## What you can do
57
+
58
+ See the [available tools](TOOLS.md) for all tools with descriptions. All tools map directly to [Iterable API endpoints](https://api.iterable.com/api/docs).
59
+
60
+ Try these prompts:
61
+ - *"Get details on campaign 12345"*
62
+ - *"What email templates are available?"*
63
+ - *"Show me all my product catalogs"*
64
+ - *"What journeys are currently active?"*
65
+ - *"Show me events for user@example.com from the last 30 days"*
66
+ - *"Create a campaign called 'Holiday Sale' using template 456"*
67
+ - *"Export all user data from January 2024"*
68
+ - *"List users in my 'VIP Customers' list"*
69
+
70
+ ## API Key Management
71
+
72
+ **Key Storage:**
73
+
74
+ API keys are stored in the `~/.iterable-mcp/keys.json` file and managed via the `npx @iterable/mcp keys` commands. On macOS the actual API key values are stored in the system Keychain. On Windows, API key values are encrypted using the Windows Data Protection API (DPAPI). On Linux, the API key values are stored directly in the file with restricted permissions (0o600).
75
+
76
+ Each key is tied to its API endpoint (US, EU, or custom) and to its permissions (view PII, write operations, send messages).
77
+
78
+ **How Key Selection Works:**
79
+ - You can store multiple API keys with different names (e.g., "production", "staging", "dev")
80
+ - Only ONE key is marked as **active** at a time
81
+ - The MCP server automatically uses whichever key is currently active
82
+ - Your first key is automatically set as active
83
+ - Switch between keys using the `activate` command
57
84
 
58
85
  ```bash
59
- pnpm add -g @iterable/mcp
60
- iterable-mcp setup
86
+ # List stored keys (shows which one is active with ● ACTIVE badge)
87
+ npx @iterable/mcp keys list
88
+
89
+ # Add a new key (interactive: prompts for name, region/endpoint, and API key)
90
+ # Your first key becomes active automatically
91
+ npx @iterable/mcp keys add
92
+
93
+ # Switch to a different key by name or ID (also switches endpoint)
94
+ npx @iterable/mcp keys activate production
95
+ npx @iterable/mcp keys activate staging
96
+
97
+ # Update an existing key (interactive: prompts for new values)
98
+ npx @iterable/mcp keys update <name-or-id>
99
+
100
+ # Delete a key by ID (requires ID for safety)
101
+ # Note: Cannot delete the currently active key - activate another first
102
+ npx @iterable/mcp keys delete <key-id>
61
103
  ```
62
104
 
63
- **Note:** The setup command automatically configures the correct command path.
105
+ ## Advanced setup
64
106
 
65
- Throughout this guide, commands are shown as `iterable-mcp` for brevity. If not globally installed, use `npx @iterable/mcp` instead (e.g., `npx @iterable/mcp keys list`).
107
+ ### Prefer a global install?
66
108
 
67
- ### Install from source
109
+ If you'd rather not use `npx`, you can install globally. This lets you use `iterable-mcp` as a shorthand for `npx @iterable/mcp`.
68
110
 
69
111
  ```bash
70
- git clone https://github.com/iterable/mcp-server.git
71
- cd mcp-server
72
- pnpm install-dev:cursor # or install-dev:claude-desktop, install-dev:claude-code, or install-dev:gemini-cli
112
+ pnpm add -g @iterable/mcp
113
+ iterable-mcp setup
73
114
  ```
74
115
 
116
+ **Note:** The setup command automatically configures the correct command path.
117
+
75
118
  ### Claude Code
76
119
 
77
120
  The `setup --claude-code` command automatically configures Claude Code by running `claude mcp add` for you.
@@ -79,20 +122,14 @@ The `setup --claude-code` command automatically configures Claude Code by runnin
79
122
  Alternatively, you can configure it manually:
80
123
 
81
124
  ```bash
82
- # Add your API key first (see API Key Management section below)
83
- iterable-mcp keys add
125
+ # Add your API key first (see API Key Management section above)
126
+ npx @iterable/mcp keys add
84
127
 
85
128
  # Then configure Claude Code
86
129
  claude mcp add iterable -- npx -y @iterable/mcp
87
130
 
88
131
  # Verify it was added
89
132
  claude mcp list
90
-
91
- # Optional: Configure privacy settings
92
- claude mcp add iterable \
93
- --env ITERABLE_USER_PII=false \
94
- --env ITERABLE_ENABLE_WRITES=false \
95
- -- npx -y @iterable/mcp
96
133
  ```
97
134
 
98
135
  If you have already configured Claude Desktop successfully, you can run this command to copy your MCP server settings to Claude Code:
@@ -119,7 +156,7 @@ All five use the same configuration format:
119
156
  **Recommended: Using key manager:**
120
157
  ```bash
121
158
  # First, add your API key (interactive prompts)
122
- iterable-mcp keys add
159
+ npx @iterable/mcp keys add
123
160
  ```
124
161
 
125
162
  Then edit your config file:
@@ -180,69 +217,19 @@ Alternatively, you can manually edit your configuration file (after adding your
180
217
 
181
218
  No `env` section is needed if using the key manager.
182
219
 
183
- ## What you can do
184
-
185
- See [TOOLS.md](TOOLS.md) for all available tools with descriptions. All tools map directly to [Iterable API endpoints](https://api.iterable.com/api/docs).
186
-
187
- Try these prompts:
188
- - *"How many campaigns do I have running?"*
189
- - *"Get details on campaign 12345"*
190
- - *"Show me events for user@example.com from the last 30 days"*
191
- - *"Create a campaign called 'Holiday Sale' using template 456"*
192
- - *"What email templates are available?"*
193
- - *"Export all user data from January 2024"*
194
- - *"List users in my 'VIP Customers' list"*
195
- - *"Show me all my product catalogs"*
196
- - *"What journeys are currently active?"*
197
- - *"Send a welcome email to new-user@company.com"*
198
-
199
- ## Configuration & security
200
-
201
- ### API Key Management
202
-
203
- **Key Storage:**
204
-
205
- API keys are stored in the `~/.iterable-mcp/keys.json` file and managed via the `iterable-mcp keys` commands. On macOS the actual API key values are stored in the system Keychain. On Linux, the API key values are stored directly in the file with restricted permissions (0o600). On Windows, the file is protected by default NTFS home directory permissions.
206
-
207
- Each key is tied to its API endpoint (US, EU, or custom) and to its permissions (view PII, write operations, send messages).
208
-
209
- **How Key Selection Works:**
210
- - You can store multiple API keys with different names (e.g., "production", "staging", "dev")
211
- - Only ONE key is marked as **active** at a time
212
- - The MCP server automatically uses whichever key is currently active
213
- - Your first key is automatically set as active
214
- - Switch between keys using the `activate` command
215
-
216
- ```bash
217
- # List stored keys (shows which one is active with ● ACTIVE badge)
218
- iterable-mcp keys list
219
-
220
- # Add a new key (interactive: prompts for name, region/endpoint, and API key)
221
- # Your first key becomes active automatically
222
- iterable-mcp keys add
223
-
224
- # Switch to a different key by name or ID (also switches endpoint)
225
- iterable-mcp keys activate production
226
- iterable-mcp keys activate staging
227
-
228
- # Delete a key by ID (requires ID for safety)
229
- # Note: Cannot delete the currently active key - activate another first
230
- iterable-mcp keys delete <key-id>
231
-
232
- # To update a key: delete the old one and add a new one with the same name
233
- ```
234
-
235
220
  ### Environment variables
236
221
 
237
- | Variable | Required | Description |
238
- |----------|----------|-------------|
239
- | `ITERABLE_API_KEY` | No* | Your Iterable API key (*Optional if using key manager, otherwise required) |
240
- | `ITERABLE_BASE_URL` | No** | Base URL for the Iterable API (**Not needed when using key manager - URL is stored with each key) |
241
- | `ITERABLE_DEBUG` | No | Set to `true` for API request logging |
242
- | `LOG_LEVEL` | No | Set to `debug` for troubleshooting |
243
- | `ITERABLE_USER_PII` | No | Set to `true` to enable tools that access user PII data (default: `false`) |
244
- | `ITERABLE_ENABLE_WRITES` | No | Set to `true` to enable tools that perform write operations (default: `false`) |
245
- | `ITERABLE_ENABLE_SENDS` | No | Set to `true` to enable tools that can send messages (default: `false`). Requires writes to be enabled |
222
+ Variables marked as **managed** are automatically configured by the key manager. They take precedence over environment variables when both are present. Setting environment variables directly is useful for CI/CD pipelines, Docker containers, or other non-interactive environments where the key manager isn't available.
223
+
224
+ | Variable | Managed | Description |
225
+ |----------|-------------|-------------|
226
+ | `ITERABLE_API_KEY` | ✅ | Your Iterable API key. Required if not using key manager |
227
+ | `ITERABLE_BASE_URL` | ✅ | Base URL for the Iterable API (default: `https://api.iterable.com`) |
228
+ | `ITERABLE_USER_PII` | ✅ | Set to `true` to enable tools that access user PII data (default: `false`) |
229
+ | `ITERABLE_ENABLE_WRITES` | ✅ | Set to `true` to enable tools that perform write operations (default: `false`) |
230
+ | `ITERABLE_ENABLE_SENDS` | ✅ | Set to `true` to enable tools that can send messages (default: `false`). Requires writes to be enabled |
231
+ | `ITERABLE_DEBUG` | | Set to `true` for API request logging |
232
+ | `LOG_LEVEL` | | Set to `debug` for troubleshooting |
246
233
 
247
234
  ### Custom endpoints
248
235
 
@@ -252,117 +239,65 @@ iterable-mcp keys delete <key-id>
252
239
  - Not allowed: plain `http://` on non-local hosts (use `https://` instead)
253
240
  - When a non-`*.iterable.com` domain is provided, the CLI will ask for confirmation.
254
241
 
255
- ## Development
256
-
257
- ### Running tests
258
-
259
- The project includes both unit and integration tests:
260
-
261
- ```bash
262
- # Run all tests
263
- pnpm test
264
-
265
- # Run only unit tests (no API key required)
266
- pnpm test:unit
267
-
268
- # Run only integration tests (requires valid API key)
269
- pnpm test:integration
270
- ```
271
-
272
- ### Integration tests
273
-
274
- Integration tests make real API calls to Iterable and require a valid API key.
275
-
276
- **Setup:**
277
-
278
- 1. Set your API key as an environment variable:
279
- ```bash
280
- export ITERABLE_API_KEY=your_actual_api_key
281
- ```
282
-
283
- 2. Or add a key to key manager (interactive):
284
- ```bash
285
- iterable-mcp keys add
286
- ```
287
-
288
- **Note:** The key name can be anything (e.g., "dev", "test", "staging"). The system automatically uses whichever key is marked as **active**. Your first key is automatically set as active. If you have multiple keys, use `iterable-mcp keys activate <name>` to switch between them.
289
-
290
- 3. Run the integration tests:
291
- ```bash
292
- pnpm test:integration
293
- ```
294
-
295
- **Note:** Integration tests require a valid API key (env var or active key manager key). The suite fails fast if none is found.
296
-
297
- ### Development workflow
298
-
299
- ```bash
300
- # Install dependencies
301
- pnpm install
302
-
303
- # Build the project
304
- pnpm build
305
-
306
- # Build and watch for changes
307
- pnpm build:watch
308
-
309
- # Run in development mode
310
- pnpm dev
311
-
312
- # Install locally for testing
313
- pnpm run install-dev
314
- ```
315
-
316
242
  ## Troubleshooting
317
243
 
318
- - Claude CLI missing: install `claude` CLI, then re-run `iterable-mcp setup --claude-code`.
244
+ - Claude CLI missing: install `claude` CLI, then re-run `npx @iterable/mcp setup --claude-code`.
319
245
  - macOS Keychain issues: Ensure Keychain is accessible and re-run setup if needed.
320
246
 
321
247
  ### Client-specific limitations
322
248
 
323
249
  #### Windsurf (Codeium)
324
250
 
325
- **Tool limit:** Windsurf has a [maximum limit of 100 tools](https://docs.windsurf.com/windsurf/cascade/mcp) that Cascade can access at any given time. When all permissions are enabled (`ITERABLE_USER_PII=true`, `ITERABLE_ENABLE_WRITES=true`, `ITERABLE_ENABLE_SENDS=true`), the Iterable MCP server exposes **104 tools**, which exceeds this limit.
251
+ **Tool limit:** Windsurf has a [maximum limit of 100 tools](https://docs.windsurf.com/windsurf/cascade/mcp) that Cascade can access at any given time. When all permissions are enabled (`ITERABLE_USER_PII=true`, `ITERABLE_ENABLE_WRITES=true`, `ITERABLE_ENABLE_SENDS=true`), the Iterable MCP server exposes **105 tools**, which exceeds this limit.
326
252
 
327
253
  **Workaround:** Use restricted permissions to stay under the 100-tool limit:
328
254
  - With default permissions (all disabled): 26 tools ✅
329
255
  - With PII only: 37 tools ✅
330
- - With PII + writes: 86 tools ✅
331
- - With all permissions: 104 tools ❌ (exceeds Windsurf limit)
256
+ - With PII + writes: 87 tools ✅
257
+ - With all permissions: 105 tools ❌ (exceeds Windsurf limit)
332
258
 
333
259
  You can configure permissions when adding a key:
334
260
  ```bash
335
- iterable-mcp keys add --advanced
261
+ npx @iterable/mcp keys add --advanced
336
262
  ```
337
263
 
338
264
  Or update an existing key's permissions:
339
265
  ```bash
340
- iterable-mcp keys update <key-name> --advanced
266
+ npx @iterable/mcp keys update <key-name> --advanced
341
267
  ```
342
268
 
343
269
  **Process persistence:** After switching API keys with `keys activate`, you must **fully restart Windsurf** (quit and reopen the application). Windsurf keeps MCP server processes running in the background, and they don't automatically reload when you switch keys.
344
270
 
345
271
  #### Antigravity
346
272
 
347
- **Tool limit:** Antigravity has a maximum limit of 100 tools per MCP server. When all permissions are enabled (`ITERABLE_USER_PII=true`, `ITERABLE_ENABLE_WRITES=true`, `ITERABLE_ENABLE_SENDS=true`), the Iterable MCP server exposes **104 tools**, which exceeds this limit.
273
+ **Tool limit:** Antigravity has a maximum limit of 100 tools per MCP server. When all permissions are enabled (`ITERABLE_USER_PII=true`, `ITERABLE_ENABLE_WRITES=true`, `ITERABLE_ENABLE_SENDS=true`), the Iterable MCP server exposes **105 tools**, which exceeds this limit.
348
274
 
349
275
  **Workaround:** Use restricted permissions to stay under the 100-tool limit:
350
276
  - With default permissions (all disabled): 26 tools ✅
351
277
  - With PII only: 37 tools ✅
352
- - With PII + writes: 86 tools ✅
353
- - With all permissions: 104 tools ❌ (exceeds Antigravity limit)
278
+ - With PII + writes: 87 tools ✅
279
+ - With all permissions: 105 tools ❌ (exceeds Antigravity limit)
354
280
 
355
281
  You can configure permissions when adding a key:
356
282
  ```bash
357
- iterable-mcp keys add --advanced
283
+ npx @iterable/mcp keys add --advanced
358
284
  ```
359
285
 
360
286
  Or update an existing key's permissions:
361
287
  ```bash
362
- iterable-mcp keys update <key-name> --advanced
288
+ npx @iterable/mcp keys update <key-name> --advanced
363
289
  ```
364
290
 
291
+ ## Contributing
292
+
293
+ See the [contributing guidelines](CONTRIBUTING.md) for development setup, building from source, and running tests.
294
+
295
+ ## Security
296
+
297
+ See the [security policy](SECURITY.md) for reporting vulnerabilities.
298
+
365
299
  ## Beta Feature Reminder
300
+
366
301
  Iterable's MCP server is currently in beta. MCP functionality may change, be
367
302
  suspended, or be discontinued at any time without notice. This software is
368
303
  provided "as is" and is open source and ready for you to experiment with. For
@@ -370,4 +305,4 @@ more information, refer to [Iterable Beta Terms](https://iterable.com/trust/beta
370
305
 
371
306
  ## License
372
307
 
373
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
308
+ This project is licensed under the MIT License. See the [license](LICENSE.md) for details.
package/TOOLS.md CHANGED
@@ -1,4 +1,4 @@
1
- # Available Iterable MCP Tools (105 tools)
1
+ # Available Iterable MCP Tools (108 tools)
2
2
 
3
3
  **Legend:**
4
4
  - 🔒 = Requires enabling user PII access
@@ -11,7 +11,7 @@
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
- - **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.
14
+ - **create_blast_campaign** ✏️✉️: Create a new blast campaign from an existing template. By default, the campaign is created without being scheduled. Set scheduleSend to true to immediately schedule it for delivery at the given sendAt time.
15
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.
16
16
  - **deactivate_triggered_campaign** ✏️: Deactivate a triggered campaign (requires API triggered campaign deactivation enabled)
17
17
  - **get_campaign**: Get detailed information about a specific campaign
@@ -49,8 +49,11 @@
49
49
  - **track_bulk_events** 🔒✏️✉️: Track multiple events in a single request for better performance
50
50
  - **track_event** 🔒✏️✉️: Track a custom event for a user
51
51
 
52
- ## Experiments (1 tools)
52
+ ## Experiments (4 tools)
53
+ - **get_experiment**: Get detailed information about a specific experiment by ID, including variants summary and constraints
53
54
  - **get_experiment_metrics**: Get experiment metrics for A/B testing analysis (currently supports email experiments only)
55
+ - **get_experiment_variants**: Get variant content for an experiment, including subject lines, preheaders, HTML source, and plain text
56
+ - **list_experiments**: List experiments with optional filtering by campaign, status, and date range. Supports pagination.
54
57
 
55
58
  ## Journeys (2 tools)
56
59
  - **get_journeys**: Get journeys (workflows) with optional pagination and state filtering
@@ -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,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"}
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,CA+DpC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,GAAG,CAAC,MAAM,CAyCtC,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"}
@@ -8,7 +8,7 @@ export const NON_PII_TOOLS = new Set([
8
8
  "archive_campaigns",
9
9
  "bulk_delete_catalog_items",
10
10
  "cancel_campaign",
11
- "create_and_schedule_campaign",
11
+ "create_blast_campaign",
12
12
  "create_triggered_campaign",
13
13
  "create_catalog",
14
14
  "create_list",
@@ -29,7 +29,9 @@ export const NON_PII_TOOLS = new Set([
29
29
  "get_channels",
30
30
  "get_child_campaigns",
31
31
  "get_email_template",
32
+ "get_experiment",
32
33
  "get_experiment_metrics",
34
+ "get_experiment_variants",
33
35
  "get_inapp_template",
34
36
  "get_journeys",
35
37
  "get_list_size",
@@ -43,6 +45,7 @@ export const NON_PII_TOOLS = new Set([
43
45
  "get_templates",
44
46
  "get_user_fields",
45
47
  "get_webhooks",
48
+ "list_experiments",
46
49
  "partial_update_catalog_item",
47
50
  "preview_email_template",
48
51
  "preview_inapp_template",
@@ -75,7 +78,9 @@ export const READ_ONLY_TOOLS = new Set([
75
78
  "get_child_campaigns",
76
79
  "get_email_template",
77
80
  "get_embedded_messages",
81
+ "get_experiment",
78
82
  "get_experiment_metrics",
83
+ "get_experiment_variants",
79
84
  "get_export_files",
80
85
  "get_export_jobs",
81
86
  "get_in_app_messages",
@@ -99,6 +104,7 @@ export const READ_ONLY_TOOLS = new Set([
99
104
  "get_user_events_by_user_id",
100
105
  "get_user_fields",
101
106
  "get_webhooks",
107
+ "list_experiments",
102
108
  "preview_email_template",
103
109
  "preview_inapp_template",
104
110
  ]);
@@ -112,7 +118,7 @@ export const SEND_TOOLS = new Set([
112
118
  "trigger_campaign",
113
119
  "schedule_campaign",
114
120
  // Creating a blast campaign schedules a send
115
- "create_and_schedule_campaign",
121
+ "create_blast_campaign",
116
122
  // Triggered campaigns can cause sends upon activation; block unless explicitly allowed
117
123
  "activate_triggered_campaign",
118
124
  // Journey triggers enqueue users which may send
@@ -1 +1 @@
1
- {"version":3,"file":"tool-filter.js","sourceRoot":"","sources":["../src/tool-filter.ts"],"names":[],"mappings":"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"}
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,uBAAuB;IACvB,2BAA2B;IAC3B,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,+BAA+B;IAC/B,gBAAgB;IAChB,qBAAqB;IACrB,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,sBAAsB;IACtB,eAAe;IACf,4BAA4B;IAC5B,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,wBAAwB;IACxB,yBAAyB;IACzB,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,WAAW;IACX,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,2BAA2B;IAC3B,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,kBAAkB;IAClB,6BAA6B;IAC7B,wBAAwB;IACxB,wBAAwB;IACxB,sBAAsB;IACtB,mBAAmB;IACnB,eAAe;IACf,kBAAkB;IAClB,+BAA+B;IAC/B,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,qBAAqB;IACrB,gBAAgB;IAChB,gBAAgB;IAChB,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAgB,IAAI,GAAG,CAAC;IAClD,cAAc;IACd,sBAAsB;IACtB,eAAe;IACf,4BAA4B;IAC5B,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,qBAAqB;IACrB,oBAAoB;IACpB,uBAAuB;IACvB,gBAAgB;IAChB,wBAAwB;IACxB,yBAAyB;IACzB,kBAAkB;IAClB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB;IACpB,cAAc;IACd,wBAAwB;IACxB,eAAe;IACf,gBAAgB;IAChB,WAAW;IACX,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,2BAA2B;IAC3B,eAAe;IACf,mBAAmB;IACnB,qBAAqB;IACrB,0BAA0B;IAC1B,4BAA4B;IAC5B,iBAAiB;IACjB,cAAc;IACd,kBAAkB;IAClB,wBAAwB;IACxB,wBAAwB;CACzB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB,IAAI,GAAG,CAAC;IAC7C,8BAA8B;IAC9B,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,6CAA6C;IAC7C,uBAAuB;IACvB,uFAAuF;IACvF,6BAA6B;IAC7B,gDAAgD;IAChD,iBAAiB;IACjB,+CAA+C;IAC/C,aAAa;IACb,mBAAmB;IACnB,kCAAkC;IAClC,YAAY;IACZ,UAAU;IACV,eAAe;IACf,eAAe;IACf,WAAW;IACX,aAAa;IACb,yDAAyD;IACzD,2BAA2B;IAC3B,yBAAyB;IACzB,0BAA0B;IAC1B,2BAA2B;CAC5B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,MAAuB;IAChE,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,MAAM,CAAC,YAAY,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,MAAM,CAAC,WAAW,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACpD,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MCP tools for Iterable campaign operations
3
3
  */
4
- import { AbortCampaignParamsSchema, ActivateTriggeredCampaignParamsSchema, ArchiveCampaignsParamsSchema, CancelCampaignParamsSchema, CreateAndScheduleCampaignParamsSchema, CreateTriggeredCampaignParamsSchema, DeactivateTriggeredCampaignParamsSchema, GetCampaignMetricsParamsSchema, GetCampaignParamsSchema, GetCampaignsParamsSchema, GetChildCampaignsParamsSchema, ScheduleCampaignParamsSchema, SendCampaignParamsSchema, TriggerCampaignParamsSchema, } from "@iterable/api";
4
+ import { AbortCampaignParamsSchema, ActivateTriggeredCampaignParamsSchema, ArchiveCampaignsParamsSchema, CancelCampaignParamsSchema, CreateBlastCampaignParamsSchema, 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,10 @@ export function createCampaignTools(client) {
24
24
  execute: (params) => client.getCampaignMetrics(params),
25
25
  }),
26
26
  createTool({
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),
27
+ name: "create_blast_campaign",
28
+ description: "Create a new blast campaign from an existing template. By default, the campaign is created without being scheduled. Set scheduleSend to true to immediately schedule it for delivery at the given sendAt time.",
29
+ schema: CreateBlastCampaignParamsSchema,
30
+ execute: (params) => client.createBlastCampaign(params),
31
31
  }),
32
32
  createTool({
33
33
  name: "create_triggered_campaign",
@@ -1 +1 @@
1
- {"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"experiments.d.ts","sourceRoot":"","sources":["../../src/tools/experiments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,CAUpE"}
1
+ {"version":3,"file":"experiments.d.ts","sourceRoot":"","sources":["../../src/tools/experiments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAOpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,CA+BpE"}
@@ -1,10 +1,28 @@
1
1
  /**
2
2
  * MCP tools for Iterable experiment operations
3
3
  */
4
- import { GetExperimentMetricsParamsSchema } from "@iterable/api";
4
+ import { GetExperimentMetricsParamsSchema, GetExperimentParamsSchema, GetExperimentVariantsParamsSchema, ListExperimentsParamsSchema, } from "@iterable/api";
5
5
  import { createTool } from "../schema-utils.js";
6
6
  export function createExperimentTools(client) {
7
7
  return [
8
+ createTool({
9
+ name: "list_experiments",
10
+ description: "List experiments with optional filtering by campaign, status, and date range. Supports pagination.",
11
+ schema: ListExperimentsParamsSchema,
12
+ execute: (params) => client.listExperiments(params),
13
+ }),
14
+ createTool({
15
+ name: "get_experiment",
16
+ description: "Get detailed information about a specific experiment by ID, including variants summary and constraints",
17
+ schema: GetExperimentParamsSchema,
18
+ execute: (params) => client.getExperiment(params),
19
+ }),
20
+ createTool({
21
+ name: "get_experiment_variants",
22
+ description: "Get variant content for an experiment, including subject lines, preheaders, HTML source, and plain text",
23
+ schema: GetExperimentVariantsParamsSchema,
24
+ execute: (params) => client.getExperimentVariants(params),
25
+ }),
8
26
  createTool({
9
27
  name: "get_experiment_metrics",
10
28
  description: "Get experiment metrics for A/B testing analysis (currently supports email experiments only)",
@@ -1 +1 @@
1
- {"version":3,"file":"experiments.js","sourceRoot":"","sources":["../../src/tools/experiments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IAC1D,OAAO;QACL,UAAU,CAAC;YACT,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EACT,6FAA6F;YAC/F,MAAM,EAAE,gCAAgC;YACxC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC;SACzD,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"experiments.js","sourceRoot":"","sources":["../../src/tools/experiments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IAC1D,OAAO;QACL,UAAU,CAAC;YACT,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,oGAAoG;YACtG,MAAM,EAAE,2BAA2B;YACnC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC;SACpD,CAAC;QACF,UAAU,CAAC;YACT,IAAI,EAAE,gBAAgB;YACtB,WAAW,EACT,wGAAwG;YAC1G,MAAM,EAAE,yBAAyB;YACjC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;SAClD,CAAC;QACF,UAAU,CAAC;YACT,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EACT,yGAAyG;YAC3G,MAAM,EAAE,iCAAiC;YACzC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC;SAC1D,CAAC;QACF,UAAU,CAAC;YACT,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EACT,6FAA6F;YAC/F,MAAM,EAAE,gCAAgC;YACxC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC;SACzD,CAAC;KACH,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iterable/mcp",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "Model Context Protocol server for Iterable API",
5
5
  "keywords": [
6
6
  "mcp",
@@ -38,7 +38,8 @@
38
38
  "minimumReleaseAge": 4320,
39
39
  "minimumReleaseAgeExclude": [
40
40
  "@iterable/*"
41
- ]
41
+ ],
42
+ "overrides": {}
42
43
  },
43
44
  "scripts": {
44
45
  "build": "pnpm lint:fix && tsc --project tsconfig.build.json && pnpm update-tools && chmod +x dist/index.js",
@@ -75,7 +76,7 @@
75
76
  },
76
77
  "dependencies": {
77
78
  "@alcyone-labs/zod-to-json-schema": "4.0.10",
78
- "@iterable/api": "0.7.0",
79
+ "@iterable/api": "0.8.1",
79
80
  "@modelcontextprotocol/sdk": "1.18.1",
80
81
  "@primno/dpapi": "2.0.1",
81
82
  "@types/json-schema": "7.0.15",