MCP App Store
by KeenEthics
Business & Operations
MailerLite icon

MailerLite

by MailerLite Inc

Overview

Connect Claude with MailerLite to create your very own email assistant. Use it to build email, analyze campaign performance, manage subscribers, and more, all with natural language prompts.

Tools

add_automation_step

ChatGPT
Add a new email or delay step to an EXISTING automation. By default the step is appended at the end of the flow; pass after_step_id to insert it right after a specific step instead (get step ids from dry_run_automation). IMPORTANT: like create_automation, an email step's HTML content cannot be authored via the API — design it in the dashboard, or set the subject/content afterwards with update_automation_email / update_automation_email_content. The automation must be disabled to add steps.

add_subscriber

ChatGPT
Create a MailerLite subscriber, or update an existing subscriber with the same email. It can also change status, group membership, and resubscribe a previously unsubscribed subscriber.

assign_subscriber_to_group

ChatGPT
Add a subscriber to a group. If no subscriber matches the ID/email or no group matches the ID, this returns a normal (non-error) result with found: false rather than failing — a missing subscriber or group is an expected outcome, not a tool error.

batch_requests

ChatGPT
Execute multiple MailerLite API requests in a single call. Requests may create, overwrite, or delete account data depending on their HTTP methods. Maximum 50 requests per batch. Paths must start with "api/". Webhooks are not supported in batch requests.

build_custom_automation

ChatGPT
Validate an automation plan and discover the resources it needs BEFORE creating it. This is a dry validation step and does NOT create anything. Args: - trigger_type (enum): subscriber_joins_group | form_completed | abandoned_cart | subscriber_joins_segment. - steps (array): Planned steps in order; each { type: "email" | "delay", email_subject?, delay_value?, delay_unit? }. - resource_type (enum, optional): group | form | shop | segment. Defaults based on trigger_type. - resource_name (string, optional): Partial-match filter for the resource lookup. Returns: { valid, warnings[], complexity, available_resources[], resource_type }. warnings flag issues (missing subjects, emails too close together, no matching resource); available_resources lists the IDs to wire into create_automation's trigger_config. Examples: - Check a 3-email welcome flow and get the group IDs before calling create_automation. - Resolve any warnings, then call create_automation.

cancel_campaign

ChatGPT
Cancel a scheduled campaign

copy_automation_step

ChatGPT
Duplicate a step, with its configuration, and insert the copy into the workflow. By default the copy becomes the first step; pass parent_id to place it after a specific step instead. The automation must be disabled and under its step limit.

create_automation

ChatGPT
Create a new automation workflow in MailerLite, including its trigger and an ordered list of email and delay steps. IMPORTANT: This creates real resources. Email steps are created without HTML content — use update_automation_email_content to author the HTML body via the API, or design each email in the MailerLite visual editor. The new automation is left inactive. Args: - name (string): Automation name. - trigger_type (enum): What starts the automation (e.g. subscriber_joins_group, form_completed, abandoned_cart, subscriber_joins_segment). - trigger_config (object): Trigger-specific IDs — group_ids for subscriber_joins_group, segment_id for subscriber_joins_segment, form_id (+ form_type) for form_completed, shop_id for abandoned_cart. Look IDs up first with list_resources. - steps (array): Ordered steps; each is { type: "email" | "delay" }. Email steps take email_subject; delay steps take delay_value and delay_unit. Returns: a structured result with automation_id, dashboard_url, steps_created, email_steps_count, and next_steps guidance. Examples: - Welcome series: trigger_type="subscriber_joins_group", trigger_config={ group_ids: ["123"] }, steps=[{ type: "email", email_subject: "Welcome" }, { type: "delay", delay_value: 2, delay_unit: "days" }, { type: "email", email_subject: "Getting started" }]. - Validate the plan with build_custom_automation and confirm IDs with list_resources first.

create_campaign

ChatGPT
Create a new email campaign. The "from" email must be a verified sender on the account — this is verified automatically before the campaign is created; check Settings > Domains in the MailerLite dashboard if you need to add or verify a sender.

create_field

ChatGPT
Create a new custom subscriber field

create_form

ChatGPT
Create a new signup form. Requires at least one group ID — use list_resources with resource_type "group" to find available groups first. Do not guess or invent group IDs.

create_group

ChatGPT
Create a new subscriber group

create_segment

ChatGPT
Create a new subscriber segment, with or without filter rules. Filter format: [[{"operator": "...", "args": [...]}]] — an array of AND groups; groups are OR'd together. Do NOT wrap it in a {"rules": [...]} object. Reference for common operators (args[0] is always the field): - in_last / not_in_last — args: [field, N, unit]; unit is one of y,M,w,d,h,m,s. field: subscribed_at, last_sent_at, last_activity_at, last_open_at, last_click_at, created_at. Example — opened in the last 90 days: ["last_open_at", 90, "d"] - less / greater — args: [field, value]. field: opens_count, clicks_count, sent, open_rate, click_rate. Example — click rate under 20%: ["click_rate", 20] - equals — args: [field, value]. field: source, opens_count, clicks_count, sent, timezone_id, open_rate, click_rate, location.country_code - doesnt_equal — args: [field, value]. field: source, timezone_id, location.country_code - in_any / not_in_any — args: [field, value | [values]]. field: groups, campaigns.sent/opened/clicked/delivered, automations.active/completed (not_in_any also allows automations.all), ecommerce.purchased_products.product_id/variant_id, location.country_code - in_all / not_in_all — args: [field, [values]]. field: groups only - is_set — args: [field] (no value). field: campaigns.sent/opened/clicked/delivered, timezone_id, location.country_code, automations.active/completed - is_not_set — args: [field] (no value). field: groups, campaigns.sent/opened/clicked/delivered, timezone_id, location.country_code, automations.active/completed/all, ecommerce.purchased_products.product_id - before / after — args: [field, date]. field: subscribed_at, created_at - matches / doesnt_match / contains / doesnt_contain — args: [field, value]. field: email only - text_field_contains/doesnt_contain/equals/doesnt_equal, numeric_field_less/less_or_equal/greater/greater_or_equal/equals/doesnt_equal, date_field_less/less_or_equal/greater/greater_or_equal/equals/doesnt_equal/in_last/after_interval, field_is_set/field_is_not_set — for CUSTOM fields only; args[0] is the field's ID from list_fields, as a STRING (e.g. "5", not 5) Example — opened in the last 90 days AND click rate under 20%: [[{"operator": "in_last", "args": ["last_open_at", 90, "d"]}, {"operator": "less", "args": ["click_rate", 20]}]] An invalid operator/field pairing is rejected locally with the valid options before the API is called. Omit filter to create a name-only segment and configure rules later in the dashboard.

create_webhook

ChatGPT
Create a new webhook. Events requiring batchable=true: campaign.open, campaign.click, subscriber.deleted

delete_automation

ChatGPT
Delete an automation

delete_automation_step

ChatGPT
Delete a step from an automation's workflow. For condition or A/B test steps, branch_to_delete says what happens to the branches below it: "all" removes every branch, or "yes"/"no"/"a_path"/"b_path"/"c_path" keeps that one branch and reattaches it in the step's place. A step that another step depends on — the target of a "go to step" action, of a condition, or of a delay's "continue from chosen step" — cannot be deleted until that reference is removed. The automation must be disabled.

delete_campaign

ChatGPT
Delete a campaign

delete_field

ChatGPT
Delete a custom subscriber field

delete_form

ChatGPT
Delete a form

delete_group

ChatGPT
Delete a subscriber group

delete_segment

ChatGPT
Delete a segment.

delete_subscriber

ChatGPT
Delete a subscriber from the account. If no subscriber matches the ID, this returns a normal (non-error) result with success: false rather than failing — a missing subscriber is an expected outcome, not a tool error.

delete_webhook

ChatGPT
Delete a webhook

discover_automation_templates

ChatGPT
Browse pre-built automation workflow templates, optionally matched to a user's goal. Returns each template's id, name, trigger, and step flow. Args: - type (enum): all | welcome | promotion | reminder | event | feedback | date. - user_intent (string, optional): The user's goal (e.g. "abandoned cart") used for keyword matching against template names/descriptions. Returns: { templates: [{ id, name, trigger_label, complexity, email_count, total_duration, steps[], steps_are_sample }], matched, match_method }. When a template has no real step data from the API, "steps" is filled with an illustrative sample flow and "steps_are_sample" is set to true. Examples: - "show me welcome templates" -> type="welcome". - To create an automation from a result, pass its numeric id to install_template.

dry_run_automation

ChatGPT
Simulate automation flow without sending real emails.

fetch

ChatGPT
Fetch the full record for a single MailerLite resource using an identifier returned by the search tool. Always call search first to obtain this id — never guess or fabricate one. Args: - id (string, required): A prefixed identifier from search results formatted "<kind>:<id>" where kind is campaign, group, form, automation, or segment (e.g. "campaign:123"). Alternatively, a bare id (no prefix) if "type" is also given. - type (string, optional): One of campaign, group, form, automation, segment. Required only when "id" is a bare id without a "<kind>:" prefix. Returns: { "id": string, "title": string, "text": string, "url": string, "metadata": object }. "text" is the full resource serialized as JSON; "metadata" carries kind-specific summary fields (e.g. status/type for campaigns, active_count for groups). Examples: - After search returns "automation:012" -> fetch with id="automation:012". - If you already have a bare numeric id and know its kind -> fetch with id="123", type="group". - An id without a "<kind>:" prefix and no "type" argument, an unsupported kind, or an id that matches nothing returns an actionable error telling you to call search first.

get_auth_status

ChatGPT
Get current authentication status for this MailerLite connection.

get_automation_activity

ChatGPT
Get activity log for an automation. Filter by status (completed, active, canceled, failed), date range, and subscriber email.

get_campaign

ChatGPT
Get details of a specific campaign. If no campaign matches the ID, this returns a normal (non-error) result with found: false rather than failing — a missing campaign is an expected outcome, not a tool error.

get_campaign_subscribers

ChatGPT
Get subscriber activity for a sent campaign (opens, clicks, etc.). Results are page-paginated — increment the page number to fetch more results.

get_form

ChatGPT
Get details of a specific form

get_form_subscribers

ChatGPT
Get subscribers who signed up via a specific form. Results are page-paginated — increment the page number to fetch more results.

get_group_subscribers

ChatGPT
Get subscribers in a specific group. Results are cursor-paginated — pass the cursor from the previous response to fetch the next page. If no group matches the ID, this returns a normal (non-error) result with found: false rather than failing — a missing group is an expected outcome, not a tool error.

get_more_tools

ChatGPT
Check for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.

get_segment

ChatGPT
Get details of a specific segment

get_segment_subscribers

ChatGPT
Get subscribers belonging to a specific segment. Results are cursor-paginated — pass the cursor from the previous response to fetch the next page.

get_subscriber

ChatGPT
Get subscriber information by ID or email. Requires an ID or email — MailerLite has no way to look subscribers up by name. If you only have a name, ask the user for the subscriber's email or ID rather than calling list_subscribers to search for them. If no subscriber matches, this returns a normal (non-error) result with found: false rather than failing — a missing subscriber is an expected outcome, not a tool error.

get_subscriber_activity

ChatGPT
Get activity history for a subscriber (opens, clicks, etc.). If no subscriber matches the ID or email, this returns a normal (non-error) result with found: false rather than failing — a missing subscriber is an expected outcome, not a tool error.

get_subscriber_count

ChatGPT
Get the count of subscribers in the account. By default returns the total across all statuses; pass status to get the count for just that status (e.g. unsubscribed).

get_webhook

ChatGPT
Get a specific webhook by ID

import_subscribers_to_group

ChatGPT
Import multiple subscribers to a group at once. Existing subscribers may be updated or resubscribed, and enabling autoresponders can send automation emails.

install_template

ChatGPT
Install a pre-built automation template, creating a new (inactive) automation in the account. You MUST obtain template_id from discover_automation_templates first — template IDs are long numeric strings (e.g. "178927102220830454"); a non-numeric value is rejected. Args: - template_id (string): Numeric template ID from discover_automation_templates results. Returns: { success, automation_id, automation_name, dashboard_url, next_steps }. Examples: - After discover returns a "Welcome series" template with id "178...", call install_template with that exact id. - Emails still need to be designed in the dashboard after installing.

list_automations

ChatGPT
List automations in the account. Each automation's status (active, inactive, broken, or draft) is derived from its enabled/complete/broken flags, since the API has no native status field. Results are page-paginated — increment the page number to fetch more results.

list_campaign_languages

ChatGPT
List languages available for campaign localization, with their numeric IDs, for use as language_id on create_campaign or update_campaign.

list_campaigns

ChatGPT
List campaigns with optional status and type filters. Results are cursor-paginated — pass the cursor from the previous response to fetch the next page.

list_email_templates

ChatGPT
List email templates (visual designs) with optional search filter.

list_fields

ChatGPT
List all custom subscriber fields

list_form_templates

ChatGPT
List form design templates by type (popup, promotion, or embedded).

list_forms

ChatGPT
List forms by type (popup, embedded, or promotion). Results are page-paginated — increment the page number to fetch more results.

list_resources

ChatGPT
List resources by type: "group", "form", "shop", or "segment" (plurals like "groups" are also accepted).

list_segments

ChatGPT
List subscriber segments. Results are page-paginated — increment the page number to fetch more results.

list_subscribers

ChatGPT
List subscribers in the account. Results are cursor-paginated (default 25 per page) — pass the cursor from the previous response to fetch the next page. This tool cannot filter by name — MailerLite's API only supports filtering by status. Do not use this to search for or look up one specific subscriber; use get_subscriber with an ID/email instead, or ask the user for one.

list_timezones

ChatGPT
List timezones and their numeric IDs, for use as schedule.timezone_id when scheduling a campaign. Pass search (e.g. "Vilnius", "+02:00") to filter instead of listing all ~400 rows.

list_webhooks

ChatGPT
List all webhooks

manage_ecommerce_cart_items

ChatGPT
List, fetch, create, update or delete the line items of a cart. Requires shop_id and cart_id.

manage_ecommerce_carts

ChatGPT
Update a shopping cart within a shop (carts cannot be created or deleted via the API). Requires shop_id.

manage_ecommerce_categories

ChatGPT
List, fetch, create, update, delete or bulk-import product categories within a shop. Requires shop_id.

manage_ecommerce_category_products

ChatGPT
List the products in a category, or attach/detach a product to/from a category. Requires shop_id and category_id; attach/detach also require product_id.

manage_ecommerce_customers

ChatGPT
List, fetch, create, update or delete customers within a shop. Requires shop_id.

manage_ecommerce_orders

ChatGPT
List, fetch, create, update, delete or bulk-import orders within a shop. Requires shop_id.

manage_ecommerce_products

ChatGPT
List, fetch, create, update, delete or bulk-import products within a shop. Requires shop_id.

manage_ecommerce_shops

ChatGPT
List, fetch, create, update or delete MailerLite e-commerce shops. Use id as the shop id for get/update/delete.

reorder_automation_step

ChatGPT
Move a step — and everything below it — to a new position in an automation's workflow. Pass new_parent_step_id to place it after another step, or omit it to make it the first step. The automation must be disabled.

replace_automation_trigger

ChatGPT
Change an automation trigger's TYPE (e.g. from subscriber_joins_group to subscriber_joins_segment). This clears the trigger's configuration — follow up with update_automation_trigger to set the new type's data. The automation must be disabled to edit its trigger.

schedule_campaign

ChatGPT
Schedule a campaign to be sent. Requires a verified sender on the account. Use delivery "instant" to send immediately, or "scheduled" with a schedule object to send at a specific time.

select_resource

ChatGPT
Confirms a user-selected resource (group, form, shop, or segment).

send_test_automation

ChatGPT
Send test emails from an automation.

start_automation_conversation

ChatGPT
Analyze a user's automation request and return the clarifying questions needed before building it. Use this FIRST when a user wants to create an automation but has not specified the trigger, the target resource, and the timing. It returns the questions to ask; it does NOT create anything or call the API. Args: - user_request (string): The user's verbatim automation request. Returns: a conversation guide with detected.{ has_trigger_type, has_resource_name, has_timing_info }, questions_to_ask[], and instructions for how to proceed. Examples: - "I want to set up a welcome email" -> returns questions about trigger, resource, and timing. - Once you already have trigger + resource + timing, skip this and go to build_custom_automation / create_automation.

unassign_subscriber_from_group

ChatGPT
Remove a subscriber from a group

update_automation_delay

ChatGPT
Update the duration of a delay step in an automation.

update_automation_email

ChatGPT
Update the subject line and plain text content of an email step in an automation.

update_automation_email_content

ChatGPT
Replace the HTML body of an automation email. This overwrites the existing email design — any content previously created in the dashboard editor is lost. Use update_automation_email to change the subject or plain text instead.

update_automation_trigger

ChatGPT
Update the configuration of an automation's existing trigger — for example the group_ids for subscriber_joins_group, or the segment_id for subscriber_joins_segment. Send the COMPLETE config in data: fields you leave out are cleared, not kept. This cannot change the trigger's TYPE — use replace_automation_trigger for that. The automation must be disabled to edit its trigger. Args: - automation_id (string): The automation to update. - trigger_id (string, optional): Omit it when the automation has exactly one trigger (the common case) — it resolves automatically. - data (object): Complete trigger configuration for the trigger's type, e.g. { group_ids: [...], exclude_group_ids: [] } for subscriber_joins_group, or { segment_id: "..." } for subscriber_joins_segment.

update_campaign

ChatGPT
Update campaign details. name is optional — if omitted, the campaign's existing name is preserved automatically, so subject/content-only edits don't require knowing or inventing a name. Only campaigns with status "draft" can be updated. Omitting groups and segments leaves existing recipients unchanged.

update_field

ChatGPT
Update a custom subscriber field name

update_form

ChatGPT
Update a form name

update_group

ChatGPT
Update a group name

update_segment

ChatGPT
Update a segment name

update_subscriber

ChatGPT
Update subscriber information.

update_webhook

ChatGPT
Update an existing webhook

validate_email_content

ChatGPT
Validate email content (subject and body) against MailerLite best practices. Provide the subject and plain_text you have drafted, and this tool will check for issues like subject length, spam trigger words, missing call-to-action, and body length limits.

validate_subject_lines

ChatGPT
Validate a list of email subject line candidates against MailerLite best practices. Provide subject lines you have drafted, and this tool will check each one for length, spam trigger words, and other issues.

add_subscriber

Claude

assign_subscriber_to_group

Claude

cancel_campaign

Claude

create_automation

Claude

create_campaign

Claude

create_group

Claude

create_webhook

Claude

delete_automation

Claude

delete_campaign

Claude

delete_form

Claude

delete_group

Claude

delete_segment

Claude

delete_subscriber

Claude

delete_webhook

Claude

forget_subscriber

Claude

get_auth_status

Claude

get_automation

Claude

get_automation_activity

Claude

get_campaign

Claude

get_campaign_subscribers

Claude

get_form

Claude

get_form_subscribers

Claude

get_group_subscribers

Claude

get_single_import

Claude

get_subscriber

Claude

get_subscriber_activity

Claude

get_subscriber_count

Claude

get_subscribers_in_segment

Claude

get_webhook

Claude

import_subscribers_to_group

Claude

list_automations

Claude

list_campaigns

Claude

list_forms

Claude

list_groups

Claude

list_segments

Claude

list_subscribers

Claude

list_webhooks

Claude

schedule_campaign

Claude

unassign_subscriber_from_group

Claude

update_campaign

Claude

update_form

Claude

update_group

Claude

update_segment

Claude

update_subscriber

Claude

update_webhook

Claude

Capabilities

InteractiveWrites

App Stats

131

Tools

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily