mailerlite
Read subscribers, groups, campaigns, fields, segments, automations, webhooks; safe additive writes.
Should I use this
Quality & Safety
Findings (2)
- LOWin mailerlite_list_group_subscribers
- LOWin mailerlite_assign_subscriber_to_group
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mailerlite": {
"url": "https://mailerlite.usefulapi.io/mcp"
}
}
}Remote endpoints
https://mailerlite.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (13)
🟢mailerlite_list_subscribers(limit, cursor, status)
List subscribers, optionally filtered by status. Cursor-paginated. MailerLite API: GET /subscribers.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max subscribers to return per page (default 25, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"cursor": {
"description": "Pagination cursor from a previous response's meta.next_cursor.",
"type": "string"
},
"status": {
"description": "Filter by status (→ filter[status]): active | unsubscribed | unconfirmed | bounced | junk.",
"type": "string",
"enum": [
"active",
"unsubscribed",
"unconfirmed",
"bounced",
"junk"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mailerlite_get_subscriber(id)
Fetch a single subscriber by id or email address. MailerLite API: GET /subscribers/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Subscriber id OR email address."
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mailerlite_list_groups(limit, page, name, sort)
List subscriber groups/lists, optionally filtered by name. Page-paginated. MailerLite API: GET /groups.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max groups per page (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number (page-based pagination).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"name": {
"description": "Filter by name (→ filter[name]).",
"type": "string"
},
"sort": {
"description": "Sort field, e.g. name, total, -total, created_at.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mailerlite_list_group_subscribers(group_id, limit, cursor, status)
List the subscribers belonging to a group, optionally filtered by status. Cursor-paginated. MailerLite API: GET /groups/{group_id}/subscribers.
Input Schema
{
"type": "object",
"properties": {
"group_id": {
"type": "string",
"description": "Group id."
},
"limit": {
"description": "Max subscribers per page (default 25, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"cursor": {
"description": "Pagination cursor from a previous response's meta.next_cursor.",
"type": "string"
},
"status": {
"description": "Filter by status (→ filter[status]).",
"type": "string",
"enum": [
"active",
"unsubscribed",
"unconfirmed",
"bounced",
"junk"
]
}
},
"required": [
"group_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mailerlite_list_campaigns(limit, page, status)
List campaigns, optionally filtered by status. Page-paginated. Read-only — this server does NOT send campaigns. MailerLite API: GET /campaigns.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max campaigns per page (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number (page-based pagination).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"status": {
"description": "Filter by status (→ filter[status]): sent | draft | ready.",
"type": "string",
"enum": [
"sent",
"draft",
"ready"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mailerlite_get_campaign(campaign_id)
Fetch a single campaign by id. Read-only. MailerLite API: GET /campaigns/{campaign_id}.
Input Schema
{
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"description": "Campaign id."
}
},
"required": [
"campaign_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mailerlite_list_fields(limit, page, type, keyword)
List custom/default subscriber fields, optionally filtered by type or keyword. Page-paginated. MailerLite API: GET /fields.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max fields per page (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number (page-based pagination).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"type": {
"description": "Filter by field type (→ filter[type]): text | number | date.",
"type": "string"
},
"keyword": {
"description": "Filter by keyword (→ filter[keyword]).",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mailerlite_list_segments(limit, page)
List segments. Page-paginated. MailerLite API: GET /segments.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max segments per page (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number (page-based pagination).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mailerlite_list_automations(limit, page, filter_enabled)
List automations (workflows), optionally filtered by enabled state. Page-paginated. MailerLite API: GET /automations.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max automations per page (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number (page-based pagination).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"filter_enabled": {
"description": "Filter by enabled state (→ filter[enabled]).",
"type": "boolean"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢mailerlite_list_webhooks(limit, page)
List configured webhooks. Page-paginated. MailerLite API: GET /webhooks.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max webhooks per page (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number (page-based pagination).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴mailerlite_upsert_subscriber(email, fields, groups, status)
Creates or updates a subscriber (upsert by email). Additive — does NOT send any email. MailerLite API: POST /subscribers.
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Subscriber email address (upsert key)."
},
"fields": {
"description": "Custom/default field values keyed by field key, e.g. { name, last_name, company }.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"groups": {
"description": "Group id strings to add the subscriber to.",
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"description": "Subscriber status: active | unsubscribed | unconfirmed | bounced | junk.",
"type": "string",
"enum": [
"active",
"unsubscribed",
"unconfirmed",
"bounced",
"junk"
]
}
},
"required": [
"email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴mailerlite_create_group(name)
Creates a subscriber group/list (additive). MailerLite API: POST /groups.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the new group."
}
},
"required": [
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴mailerlite_assign_subscriber_to_group(subscriber_id, group_id)
Adds a subscriber to a group (additive membership). MailerLite API: POST /subscribers/{subscriber_id}/groups/{group_id}.
Input Schema
{
"type": "object",
"properties": {
"subscriber_id": {
"type": "string",
"description": "Subscriber id."
},
"group_id": {
"type": "string",
"description": "Group id."
}
},
"required": [
"subscriber_id",
"group_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence