Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 23 additions & 19 deletions TOOLS.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
# Available Iterable MCP Tools (104 tools)

**Legend:** 🔒 = Contains PII, ✏️ = Write operation
**Legend:**
- 🔒 = Requires enabling user PII access
- ✏️ = Requires enabling writes
- ✉️ = Requires enabling sends


## Campaigns (13 tools)
- **abort_campaign** ✏️: Abort a campaign that is currently running
- **activate_triggered_campaign** ✏️: Activate a triggered campaign (requires API triggered campaign activation enabled)
- **activate_triggered_campaign** ✏️✉️: Activate a triggered campaign (requires API triggered campaign activation enabled)
- **archive_campaigns** ✏️: Archive one or more campaigns. Scheduled/recurring campaigns will be cancelled, running campaigns will be aborted.
- **cancel_campaign** ✏️: Cancel a scheduled or recurring campaign
- **create_campaign** ✏️: Create a new blast or triggered campaign from an existing template. If listIds are provided, the campaign will be a blast campaign, otherwise it will be a triggered campaign. Blast campaigns will be sent immediately if sendAt is not provided.
- **create_campaign** ✏️✉️: Create a new blast or triggered campaign from an existing template. If listIds are provided, the campaign will be a blast campaign, otherwise it will be a triggered campaign. Blast campaigns will be sent immediately if sendAt is not provided.
- **deactivate_triggered_campaign** ✏️: Deactivate a triggered campaign (requires API triggered campaign deactivation enabled)
- **get_campaign**: Get detailed information about a specific campaign
- **get_campaign_metrics**: Get campaign performance metrics
- **get_campaigns**: Retrieve campaigns
- **get_child_campaigns**: Get child campaigns generated by a recurring campaign
- **schedule_campaign** ✏️: Schedule an existing campaign to be sent at a specific time
- **send_campaign** ✏️: Send an existing scheduled campaign immediately
- **trigger_campaign** ✏️: Trigger a campaign to send to specified lists
- **schedule_campaign** ✏️✉️: Schedule an existing campaign to be sent at a specific time
- **send_campaign** ✏️✉️: Send an existing scheduled campaign immediately
- **trigger_campaign** ✏️✉️: Trigger a campaign to send to specified lists

## Catalogs (12 tools)
- **bulk_delete_catalog_items** ✏️: Bulk delete catalog items by their IDs
Expand All @@ -41,15 +45,15 @@
## Events (4 tools)
- **get_user_events_by_email** 🔒: Get event history for a user by email address
- **get_user_events_by_user_id** 🔒: Get event history for a user by user ID
- **track_bulk_events** 🔒✏️: Track multiple events in a single request for better performance
- **track_event** 🔒✏️: Track a custom event for a user
- **track_bulk_events** 🔒✏️✉️: Track multiple events in a single request for better performance
- **track_event** 🔒✏️✉️: Track a custom event for a user

## Experiments (1 tools)
- **get_experiment_metrics**: Get experiment metrics for A/B testing analysis (currently supports email experiments only)

## Journeys (2 tools)
- **get_journeys**: Get journeys (workflows) with optional pagination and state filtering
- **trigger_journey** 🔒✏️: Trigger a journey (workflow) for a user
- **trigger_journey** 🔒✏️✉️: Trigger a journey (workflow) for a user

## Lists (8 tools)
- **create_list** ✏️: Create a new user list
Expand All @@ -72,12 +76,12 @@
- **get_embedded_messages** 🔒: Get embedded messages for a user, grouped by placement ID
- **get_in_app_messages** 🔒: Get in-app messages for a user
- **get_message_types**: Get all message types within the project for use in templates
- **send_email** 🔒✏️: Send email to user
- **send_in_app** 🔒✏️: Send in-app message to user
- **send_push** 🔒✏️: Send push notification to user
- **send_sms** 🔒✏️: Send SMS message to user
- **send_web_push** 🔒✏️: Send web push notification to user
- **send_whatsapp** 🔒✏️: Send WhatsApp message to user
- **send_email** 🔒✏️✉️: Send email to user
- **send_in_app** 🔒✏️✉️: Send in-app message to user
- **send_push** 🔒✏️✉️: Send push notification to user
- **send_sms** 🔒✏️✉️: Send SMS message to user
- **send_web_push** 🔒✏️✉️: Send web push notification to user
- **send_whatsapp** 🔒✏️✉️: Send WhatsApp message to user

## Snippets (5 tools)
- **create_snippet** ✏️: Create a new snippet with Handlebars templating support
Expand All @@ -103,10 +107,10 @@
- **get_templates**: Retrieve templates
- **preview_email_template**: Preview email template with custom data. Returns fully rendered HTML with user, event, and/or data feed data substituted.
- **preview_inapp_template**: Preview in-app message template with custom data. Returns fully rendered HTML with user, event, and/or data feed data substituted.
- **send_email_template_proof** 🔒✏️: Send a proof of a email template to a specific user
- **send_inapp_template_proof** 🔒✏️: Send a proof of a in-app message template to a specific user
- **send_push_template_proof** 🔒✏️: Send a proof of a push notification template to a specific user
- **send_sms_template_proof** 🔒✏️: Send a proof of a SMS template to a specific user
- **send_email_template_proof** 🔒✏️✉️: Send a proof of a email template to a specific user
- **send_inapp_template_proof** 🔒✏️✉️: Send a proof of a in-app message template to a specific user
- **send_push_template_proof** 🔒✏️✉️: Send a proof of a push notification template to a specific user
- **send_sms_template_proof** 🔒✏️✉️: Send a proof of a SMS template to a specific user
- **update_email_template** ✏️: Update existing email template by templateId
- **update_inapp_template** ✏️: Update existing in-app message template by templateId
- **update_push_template** ✏️: Update existing push notification template by templateId
Expand Down
13 changes: 11 additions & 2 deletions scripts/update-tools.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import { readFileSync, writeFileSync } from "fs";
import { TOOL_CREATORS_BY_CATEGORY } from "../dist/tools/index.js";
import { NON_PII_TOOLS, READ_ONLY_TOOLS } from "../dist/tool-filter.js";
import {
NON_PII_TOOLS,
READ_ONLY_TOOLS,
SEND_TOOLS,
} from "../dist/tool-filter.js";

const TOOLS_FILE = "TOOLS.md";

Expand All @@ -20,14 +24,19 @@ try {
let icons = "";
if (!NON_PII_TOOLS.has(toolName)) icons += "🔒";
if (!READ_ONLY_TOOLS.has(toolName)) icons += "✏️";
if (SEND_TOOLS.has(toolName)) icons += "✉️";
return icons ? ` ${icons}` : "";
};

const newContent =
[
`# Available Iterable MCP Tools (${totalToolCount} tools)`,
``,
`**Legend:** 🔒 = Contains PII, ✏️ = Write operation`,
`**Legend:**`,
`- 🔒 = Requires enabling user PII access`,
`- ✏️ = Requires enabling writes`,
`- ✉️ = Requires enabling sends`,
``,
...toolsByCategory.flatMap(({ category, tools }) => [
`\n## ${category} (${tools.length} tools)`,
...tools.map(
Expand Down