generated: '2026-08-13' method: searched status: published source: https://github.com/Iterable/mcp-server — README.md and TOOLS.md read verbatim 2026-08-13; package metadata from registry.npmjs.org/@iterable/mcp description: >- Iterable publishes a first-party MCP server as the npm package @iterable/mcp (repo github.com/Iterable/mcp-server). It is a LOCAL STDIO server: a developer installs and runs it with npx, and it calls the Iterable REST API with an API key stored on that machine (macOS Keychain, Windows DPAPI, or a 0600 file on Linux). There is no hosted/remote MCP endpoint — mcp.iterable.com does not resolve (NXDOMAIN, probed 2026-08-13) and api.iterable.com/mcp returns 404. The server defaults to read-only: PII, writes and sends are each opt-in per stored key. deployment: mode: local-stdio install: npx -y @iterable/mcp setup package: https://www.npmjs.com/package/@iterable/mcp auth: api-key verified: searched server: name: iterable transport: stdio package: "@iterable/mcp" version: 1.8.1 published: '2026-07-09' repository: https://github.com/Iterable/mcp-server license: MIT requires_node: ">=20" endpoints: [https://api.iterable.com, https://api.eu.iterable.com] permission_model: default: read-only — no PII tools, no writes, no sends flags: - name: ITERABLE_USER_PII grants: access to user profile data including email addresses, phone numbers and custom fields - name: ITERABLE_ENABLE_WRITES grants: create, update and delete templates, lists, catalogs, campaigns, snippets and user profiles - name: ITERABLE_ENABLE_SENDS grants: send messages, trigger campaigns and journeys, schedule and abort campaigns, track events (requires writes) scope: Permissions are stored per API key, so a sandbox project key and a production key can differ. clients: [Cursor, Claude Desktop, Claude Code, Gemini CLI, Windsurf, Antigravity] probes: - url: https://mcp.iterable.com/mcp result: NXDOMAIN — no hosted MCP endpoint checked: '2026-08-13' - url: https://api.iterable.com/mcp http_status: 404 checked: '2026-08-13' tool_count: 109 tools: - name: abort_campaign category: Campaigns description: Abort a campaign that is currently running permissions: [writes] source_operation: "POST /api/campaigns/abort" operation_id: abort campaign - name: activate_triggered_campaign category: Campaigns description: Activate a triggered campaign (requires API triggered campaign activation enabled) permissions: [writes, sends] source_operation: "POST /api/campaigns/activateTriggered" operation_id: activate triggered campaign - name: archive_campaigns category: Campaigns description: Archive one or more campaigns. Scheduled/recurring campaigns will be cancelled, running campaigns will be aborted. permissions: [writes] source_operation: "POST /api/campaigns/archive" operation_id: archive campaigns - name: cancel_campaign category: Campaigns description: Cancel a scheduled or recurring campaign permissions: [writes] source_operation: "POST /api/campaigns/cancel" operation_id: cancel campaign - name: create_blast_campaign category: Campaigns description: Create a new blast campaign from an existing template. The campaign is created without being scheduled. Use schedule_campaign to schedule it for delivery. permissions: [writes] source_operation: "POST /api/campaigns/create" operation_id: create campaign - name: create_triggered_campaign category: Campaigns 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. permissions: [writes] source_operation: "POST /api/campaigns/create" operation_id: create campaign - name: deactivate_triggered_campaign category: Campaigns description: Deactivate a triggered campaign (requires API triggered campaign deactivation enabled) permissions: [writes] source_operation: "POST /api/campaigns/deactivateTriggered" operation_id: Deactivate triggered campaign - name: get_campaign category: Campaigns description: Get detailed information about a specific campaign source_operation: "GET /api/campaigns/{id}" operation_id: getCampaign - name: get_campaign_metrics category: Campaigns description: Get campaign performance metrics. Requires a date range. Always use the narrowest window possible for performance. source_operation: "GET /api/campaigns/metrics" operation_id: metrics - name: get_campaigns category: Campaigns description: Retrieve campaigns source_operation: "GET /api/campaigns" operation_id: campaigns - name: get_child_campaigns category: Campaigns description: Get child campaigns generated by a recurring campaign source_operation: "GET /api/campaigns/recurring/{id}/childCampaigns" operation_id: child campaigns - name: schedule_campaign category: Campaigns description: Schedule an existing campaign to be sent at a specific time permissions: [writes, sends] source_operation: "POST /api/campaigns/{campaignId}/schedule" operation_id: schedule campaign - name: send_campaign category: Campaigns description: Send an existing scheduled campaign immediately permissions: [writes, sends] source_operation: "POST /api/campaigns/{campaignId}/send" operation_id: send campaign - name: trigger_campaign category: Campaigns description: Trigger a campaign to send to specified lists permissions: [writes, sends] source_operation: "POST /api/campaigns/trigger" operation_id: trigger campaign - name: bulk_delete_catalog_items category: Catalogs description: Bulk delete catalog items by their IDs permissions: [writes] source_operation: "DELETE /api/catalogs/{catalogName}/items" operation_id: bulkDeleteCatalogItems - name: create_catalog category: Catalogs description: Create a new catalog permissions: [writes] source_operation: "POST /api/catalogs/{catalogName}" operation_id: createCatalog - name: delete_catalog category: Catalogs description: Delete a catalog permissions: [writes] source_operation: "DELETE /api/catalogs/{catalogName}" operation_id: deleteCatalog - name: delete_catalog_item category: Catalogs description: Delete a specific catalog item by ID permissions: [writes] source_operation: "DELETE /api/catalogs/{catalogName}/items/{itemId}" operation_id: deleteCatalogItem - name: get_catalog_field_mappings category: Catalogs description: Get field mappings and data types for a catalog source_operation: "GET /api/catalogs/{catalogName}/fieldMappings" operation_id: getFieldMappings - name: get_catalog_item category: Catalogs description: Get a specific catalog item by ID source_operation: "GET /api/catalogs/{catalogName}/items/{itemId}" operation_id: getCatalogItem - name: get_catalog_items category: Catalogs description: Get items from a catalog with optional pagination and sorting source_operation: "GET /api/catalogs/{catalogName}/items" operation_id: listCatalogItems - name: get_catalogs category: Catalogs description: Get list of all catalogs with optional pagination source_operation: "GET /api/catalogs" operation_id: listCatalogs - name: partial_update_catalog_item category: Catalogs description: Partial update (PATCH) a catalog item - updates only specified fields permissions: [writes] source_operation: "PATCH /api/catalogs/{catalogName}/items/{itemId}" operation_id: partialUpdateCatalogItem - name: partial_update_catalog_items category: Catalogs description: Bulk partial update catalog items (up to 1000). Merges document fields per item ID. permissions: [writes] source_operation: "POST /api/catalogs/{catalogName}/items" operation_id: bulkUpdateCatalogItems - name: replace_catalog_item category: Catalogs description: Replace (PUT) a catalog item - replaces the entire item with new value permissions: [writes] source_operation: "PUT /api/catalogs/{catalogName}/items/{itemId}" operation_id: indexCatalogItem - name: replace_catalog_items category: Catalogs description: Bulk replace catalog items (up to 1000). Each item becomes only the document fields provided. permissions: [writes] source_operation: "POST /api/catalogs/{catalogName}/items" operation_id: bulkUpdateCatalogItems - name: update_catalog_field_mappings category: Catalogs description: "Update catalog field mappings (data types). Valid types: boolean, date, geo_location, long, double, object, and string" permissions: [writes] source_operation: "PUT /api/catalogs/{catalogName}/fieldMappings" operation_id: updateFieldTypes - name: cancel_export_job category: Data Export description: Cancel a queued or running export job created with 'start_export_job'. Use the jobId returned from the start export endpoint. permissions: [user-pii, writes] source_operation: "DELETE /api/export/{jobId}" operation_id: cancelExport - name: get_available_export_data_types category: Data Export description: Get the list of all available export data types that can be used with start_export_job. Returns an array of data type names that are supported by the Iterable API. permissions: [user-pii, writes] - name: get_export_files category: Data Export description: Get the job status and download URLs for files from a completed export job. Files are added to the list as the export job runs. Use 'startAfter' parameter to paginate through files. Each file is up to 10MB, with exports limited to 100GB total size. permissions: [user-pii] source_operation: "GET /api/export/{jobId}/files" operation_id: getExportFiles - name: get_export_jobs category: Data Export description: Get a list of recent export jobs for the current project. Jobs can be filtered by state (enqueued, queued, running, completed, failed, cancelled, cancelling). permissions: [user-pii] source_operation: "GET /api/export/jobs" operation_id: getExportJobs - name: start_export_job category: Data Export description: "Start a data export job that processes as a background job. Use 'get_export_files' to check status and obtain download links. Supports many data types including: email events (emailSend, emailOpen, emailClick, emailBounce, etc.), push events (pushSend, pushOpen, etc.), SMS events (smsSend, smsBounce, etc.), WhatsApp events, in-app message events, user data, purchase events, and more. Additional requests are queued if concurrent limit is reached." permissions: [user-pii, writes] source_operation: "POST /api/export/start" operation_id: startExport - name: get_user_events_by_email category: Events description: Get event history for a user by email address permissions: [user-pii] source_operation: "GET /api/events/{email}" operation_id: User events - name: get_user_events_by_user_id category: Events description: Get event history for a user by user ID permissions: [user-pii] source_operation: "GET /api/events/byUserId/{userId}" operation_id: User events by userId - name: track_bulk_events category: Events description: Track multiple events in a single request for better performance permissions: [user-pii, writes, sends] source_operation: "POST /api/events/trackBulk" operation_id: trackBulk - name: track_event category: Events description: Track a custom event for a user permissions: [user-pii, writes, sends] source_operation: "POST /api/events/track" operation_id: track - name: get_experiment category: Experiments description: Get detailed information about a specific experiment by ID, including variants summary and constraints source_operation: "GET /api/experiments/{experimentId}" operation_id: get - name: get_experiment_metrics category: Experiments description: Get experiment metrics for A/B testing analysis (currently supports email experiments only) source_operation: "GET /api/experiments/metrics" operation_id: metrics - name: get_experiment_variants category: Experiments description: Get variant content for an experiment, including subject lines, preheaders, HTML source, and plain text source_operation: "GET /api/experiments/{experimentId}/variants" operation_id: variants - name: list_experiments category: Experiments description: List experiments with optional filtering by campaign, status, and date range. Supports pagination. source_operation: "GET /api/experiments" operation_id: list - name: get_journeys category: Journeys description: Get journeys (workflows) with optional pagination and state filtering source_operation: "GET /api/journeys" operation_id: getJourneys - name: trigger_journey category: Journeys description: Trigger a journey (workflow) for a user permissions: [user-pii, writes, sends] source_operation: "POST /api/workflows/triggerWorkflow" operation_id: triggerWorkflow - name: create_list category: Lists description: Create a new user list permissions: [writes] source_operation: "POST /api/lists" operation_id: create - name: delete_list category: Lists description: Delete a user list permissions: [writes] source_operation: "DELETE /api/lists/{listId}" operation_id: delete - name: get_list_preview_users category: Lists description: Preview users in a list (up to 5000 users) permissions: [user-pii] source_operation: "GET /api/lists/previewUsers" operation_id: getUsersPreview - name: get_list_size category: Lists description: Get the count of users in a specific list source_operation: "GET /api/lists/{listId}/size" operation_id: getListCount - name: get_list_users category: Lists description: Get users in a specific list permissions: [user-pii] source_operation: "GET /api/lists/getUsers" operation_id: getUsers - name: get_lists category: Lists description: Retrieve user lists source_operation: "GET /api/lists" operation_id: getLists - name: subscribe_to_list category: Lists description: Subscribe users to a specific list permissions: [user-pii, writes] source_operation: "POST /api/lists/subscribe" operation_id: subscribe - name: unsubscribe_from_list category: Lists description: Unsubscribe users from a specific list permissions: [user-pii, writes] source_operation: "POST /api/lists/unsubscribe" operation_id: unsubscribe - name: cancel_email category: Messaging description: Cancel scheduled email for specific user permissions: [user-pii, writes] source_operation: "POST /api/email/cancel" operation_id: cancel - name: cancel_in_app category: Messaging description: Cancel scheduled in-app message for specific user permissions: [user-pii, writes] source_operation: "POST /api/inApp/cancel" operation_id: cancel - name: cancel_push category: Messaging description: Cancel scheduled push notification for specific user permissions: [user-pii, writes] source_operation: "POST /api/push/cancel" operation_id: cancel - name: cancel_sms category: Messaging description: Cancel scheduled SMS message for specific user permissions: [user-pii, writes] source_operation: "POST /api/sms/cancel" operation_id: cancel - name: cancel_web_push category: Messaging description: Cancel scheduled web push notification for specific user permissions: [user-pii, writes] source_operation: "POST /api/webPush/cancel" operation_id: cancel - name: cancel_whatsapp category: Messaging description: Cancel scheduled WhatsApp message for specific user permissions: [user-pii, writes] source_operation: "POST /api/whatsApp/cancel" operation_id: cancel - name: get_channels category: Messaging description: Get all available communication channels (email, SMS, push, etc.) source_operation: "GET /api/channels" operation_id: channels - name: get_embedded_messages category: Messaging description: Get embedded messages for a user, grouped by placement ID permissions: [user-pii] source_operation: "GET /api/embedded-messaging/messages" operation_id: messages - name: get_in_app_messages category: Messaging description: Get in-app messages for a user permissions: [user-pii] source_operation: "GET /api/inApp/getMessages" operation_id: getMessages - name: get_message_types category: Messaging description: Get all message types within the project for use in templates source_operation: "GET /api/messageTypes" operation_id: messageTypes - name: send_email category: Messaging description: Send email to user permissions: [user-pii, writes, sends] source_operation: "POST /api/email/target" operation_id: target - name: send_in_app category: Messaging description: Send in-app message to user permissions: [user-pii, writes, sends] source_operation: "POST /api/inApp/target" operation_id: target - name: send_push category: Messaging description: Send push notification to user permissions: [user-pii, writes, sends] source_operation: "POST /api/push/target" operation_id: target - name: send_sms category: Messaging description: Send SMS message to user permissions: [user-pii, writes, sends] source_operation: "POST /api/sms/target" operation_id: target - name: send_web_push category: Messaging description: Send web push notification to user permissions: [user-pii, writes, sends] source_operation: "POST /api/webPush/target" operation_id: target - name: send_whatsapp category: Messaging description: Send WhatsApp message to user permissions: [user-pii, writes, sends] source_operation: "POST /api/whatsApp/target" operation_id: target - name: create_snippet category: Snippets description: Create a new snippet with Handlebars templating support permissions: [writes] source_operation: "POST /api/snippets" operation_id: createSnippet - name: delete_snippet category: Snippets description: Delete a snippet by ID (numeric) or name (string) permissions: [writes] source_operation: "DELETE /api/snippets/{identifier}" operation_id: deleteSnippet - name: get_snippet category: Snippets description: Get a snippet by ID (numeric) or name (string) source_operation: "GET /api/snippets/{identifier}" operation_id: getSnippet - name: get_snippets category: Snippets description: Get all snippets for the current project source_operation: "GET /api/snippets" operation_id: getSnippets - name: update_snippet category: Snippets description: Update a snippet by ID (numeric) or name (string) permissions: [writes] source_operation: "PUT /api/snippets/{identifier}" operation_id: updateSnippet - name: bulk_update_subscriptions category: Subscriptions description: Subscribe or unsubscribe multiple users to/from a subscription group permissions: [user-pii, writes] source_operation: "PUT /api/subscriptions/{subscriptionGroup}/{subscriptionGroupId}" operation_id: Bulk subscription action - name: subscribe_user_by_email category: Subscriptions description: Subscribe a user to a subscription group by email permissions: [user-pii, writes] source_operation: "PATCH /api/subscriptions/{subscriptionGroup}/{subscriptionGroupId}/user/{userEmail}" operation_id: subscribeSingleUser - name: subscribe_user_by_userid category: Subscriptions description: Subscribe a user to a subscription group by userId permissions: [user-pii, writes] source_operation: "PATCH /api/subscriptions/{subscriptionGroup}/{subscriptionGroupId}/byUserId/{userId}" operation_id: subscribeSingleUserByUserId - name: unsubscribe_user_by_email category: Subscriptions description: Unsubscribe a user from a subscription group by email permissions: [user-pii, writes] source_operation: "DELETE /api/subscriptions/{subscriptionGroup}/{subscriptionGroupId}/user/{userEmail}" operation_id: unsubscribeSingleUser - name: unsubscribe_user_by_userid category: Subscriptions description: Unsubscribe a user from a subscription group by userId permissions: [user-pii, writes] source_operation: "DELETE /api/subscriptions/{subscriptionGroup}/{subscriptionGroupId}/byUserId/{userId}" operation_id: unsubscribeSingleUserByUserId - name: delete_templates category: Templates description: Delete one or more templates by ID permissions: [writes] source_operation: "POST /api/templates/bulkDelete" operation_id: bulk delete templates - name: get_email_template category: Templates description: Get details for specific email template by ID source_operation: "GET /api/templates/email/get" operation_id: getEmailTemplate - name: get_inapp_template category: Templates description: Get details for specific in-app message template by ID source_operation: "GET /api/templates/inapp/get" operation_id: getInAppTemplate - name: get_push_template category: Templates description: Get details for specific push notification template by ID source_operation: "GET /api/templates/push/get" operation_id: getPushTemplate - name: get_sms_template category: Templates description: Get details for specific SMS template by ID source_operation: "GET /api/templates/sms/get" operation_id: getSMSTemplate - name: get_template_by_client_id category: Templates description: Get template by client template ID source_operation: "GET /api/templates/getByClientTemplateId" operation_id: getByClientTemplateId - name: get_templates category: Templates description: Retrieve templates source_operation: "GET /api/templates" operation_id: getTemplates - name: preview_email_template category: Templates description: Preview email template with custom data. Returns fully rendered HTML with user, event, and/or data feed data substituted. source_operation: "POST /api/templates/email/preview" operation_id: previewEmailTemplate - name: preview_inapp_template category: Templates description: Preview in-app message template with custom data. Returns fully rendered HTML with user, event, and/or data feed data substituted. source_operation: "POST /api/templates/inapp/preview" operation_id: previewInAppTemplate - name: send_email_template_proof category: Templates description: Send a proof of a email template to a specific user permissions: [user-pii, writes, sends] source_operation: "POST /api/templates/email/proof" operation_id: emailProof - name: send_inapp_template_proof category: Templates description: Send a proof of a in-app message template to a specific user permissions: [user-pii, writes, sends] source_operation: "POST /api/templates/inapp/proof" operation_id: inappProof - name: send_push_template_proof category: Templates description: Send a proof of a push notification template to a specific user permissions: [user-pii, writes, sends] source_operation: "POST /api/templates/push/proof" operation_id: pushProof - name: send_sms_template_proof category: Templates description: Send a proof of a SMS template to a specific user permissions: [user-pii, writes, sends] source_operation: "POST /api/templates/sms/proof" operation_id: smsProof - name: update_email_template category: Templates description: Update existing email template by templateId permissions: [writes] source_operation: "POST /api/templates/email/update" operation_id: updateEmailTemplate - name: update_inapp_template category: Templates description: Update existing in-app message template by templateId permissions: [writes] source_operation: "POST /api/templates/inapp/update" operation_id: updateInAppTemplate - name: update_push_template category: Templates description: Update existing push notification template by templateId permissions: [writes] source_operation: "POST /api/templates/push/update" operation_id: updatePushTemplate - name: update_sms_template category: Templates description: Update existing SMS template by templateId permissions: [writes] source_operation: "POST /api/templates/sms/update" operation_id: updateSMSTemplate - name: upsert_email_template category: Templates description: Create or update email template. If a template with the specified clientTemplateId exists, it will be updated; otherwise, a new template will be created. permissions: [writes] source_operation: "POST /api/templates/email/upsert" operation_id: upsertEmailTemplate - name: upsert_inapp_template category: Templates description: Create or update in-app message template. If a template with the specified clientTemplateId exists, it will be updated; otherwise, a new template will be created. permissions: [writes] source_operation: "POST /api/templates/inapp/upsert" operation_id: upsertInAppTemplate - name: upsert_push_template category: Templates description: Create or update push notification template. If a template with the specified clientTemplateId exists, it will be updated; otherwise, a new template will be created. permissions: [writes] source_operation: "POST /api/templates/push/upsert" operation_id: upsertPushTemplate - name: upsert_sms_template category: Templates description: Create or update SMS template. If a template with the specified clientTemplateId exists, it will be updated; otherwise, a new template will be created. permissions: [writes] source_operation: "POST /api/templates/sms/upsert" operation_id: upsertSMSTemplate - name: bulk_update_users category: Users description: Update multiple users at once permissions: [user-pii, writes] source_operation: "POST /api/users/bulkUpdate" operation_id: bulkUpdateUser - name: delete_user_by_email category: Users description: Delete a user by email address (asynchronous - does not prevent future data collection) permissions: [user-pii, writes] source_operation: "DELETE /api/users/{email}" operation_id: delete - name: delete_user_by_user_id category: Users description: Delete a user by user ID (asynchronous - does not prevent future data collection, deletes all users with same userId) permissions: [user-pii, writes] source_operation: "DELETE /api/users/byUserId/{userId}" operation_id: delete - name: get_sent_messages category: Users description: Get messages sent to a specific user with optional filtering permissions: [user-pii] source_operation: "GET /api/users/getSentMessages" operation_id: getSentMessages - name: get_user_by_email category: Users description: Get user profile information by email address permissions: [user-pii] source_operation: "GET /api/users/getByEmail" operation_id: getUser - name: get_user_by_user_id category: Users description: Get user profile information by user ID permissions: [user-pii] source_operation: "GET /api/users/byUserId" operation_id: getUserById - name: get_user_fields category: Users description: Get all user profile field definitions and their types source_operation: "GET /api/users/getFields" operation_id: getUserFields - name: update_email category: Users description: Update a user's email address (only use with email-based projects; for userId/hybrid projects, use update_user instead) permissions: [user-pii, writes] source_operation: "POST /api/users/updateEmail" operation_id: updateEmail - name: update_user category: Users description: Update user profile information (accepts email OR userId in params) permissions: [user-pii, writes] source_operation: "POST /api/users/update" operation_id: updateUser - name: update_user_subscriptions category: Users description: "Update user subscriptions (IMPORTANT: overwrites existing data for any non-null fields specified)" permissions: [user-pii, writes] source_operation: "POST /api/users/updateSubscriptions" operation_id: updateSubscriptions - name: get_webhooks category: Webhooks description: Get all webhooks for the project source_operation: "GET /api/webhooks" operation_id: getWebhooks - name: update_webhook category: Webhooks description: Update a webhook configuration permissions: [writes] source_operation: "POST /api/webhooks" operation_id: updateWebhook