Tool List¶
Tools are grouped by operational area. The server uses MCP ToolAnnotations:
read-only: does not modify Listmonk.mutating: changes Listmonk state.destructive: deletes, removes, blocklists, stops or performs destructive-like changes.sensitive read: requiresconfirm_read=true.send: sends real email and requiresconfirm_send=true.
LLM-Friendly Helper Tools¶
These tools compose existing Listmonk wrappers into safer primitives for LLM agents. They are generic and do not call external systems or encode business-specific workflows.
| Tool | Class | Notes |
|---|---|---|
upsert_subscriber_profiles |
mutating | Dry-run first bulk profile sync by email. Merges attributes, preserves existing tags, adds list memberships and writes audit logs for non-dry-run executions. |
get_subscriber_context |
read-only | Compact subscriber context by subscriberId or email, including lists, attributes, tags, status, bounce signals and warnings. |
audience_summary |
read-only | Summarizes one or more lists without returning huge subscriber payloads. Includes status counts, attribute coverage, tags and warnings. |
personalization_fields_report |
read-only | Reports available personalization fields, coverage, safe fields, risky fields and minimal examples. |
validate_message_personalization |
read-only | Detects {{variable}} usage in subject/body and reports missing or low-coverage fields. |
campaign_risk_check |
read-only | Checks campaign readiness without sending or changing status. Returns blockers, warnings and recommendations. |
safe_test_campaign |
send | Accepts recipient email addresses as testRecipients, validates input, requires confirmSend=true, sends a Listmonk test campaign and writes audit logs. |
safe_send_campaign |
send | Runs risk checks, validates optional approval evidence, optionally sends a test, requires confirmSend=true, then sends through the existing API wrapper and writes audit logs. |
safe_schedule_campaign |
mutating | Runs risk checks, validates optional approval evidence, requires confirmSchedule=true, schedules through the existing API wrapper and writes audit logs. |
safe_send_transactional_email |
send | Requires confirmSend=true, validates recipient input, supports idempotencyKey, sends through the existing transactional email wrapper and writes audit logs. |
campaign_performance_summary |
read-only | Aggregates available analytics into a compact LLM-friendly summary. Marks unavailable metrics explicitly. |
export_engagement_events |
read-only | Best-effort normalized event export. Returns supported=false for event types where Listmonk exposes only aggregate data. |
export_campaign_markdown |
read-only | Generic campaign Markdown export with optional body and stats. |
export_campaign_postmortem_markdown |
read-only | Generic postmortem Markdown based on campaign_performance_summary. |
export_subscriber_communication_summary |
read-only | Generic subscriber communication summary with structured data and Markdown. |
upsert_subscriber_profiles performs an email lookup before creating or updating
subscribers. In the current implementation this uses Listmonk's subscriber SQL query
capability, so the MCP API key needs subscribers:sql_query. Without that permission,
dry runs and upserts can fail with a Listmonk permission error.
Health, Settings and Admin¶
| Tool | Class | Notes |
|---|---|---|
check_listmonk_health |
read-only | Health check. |
get_server_config |
sensitive read | Requires confirm_read=true. |
get_i18n_language |
read-only | Read an i18n language bundle. |
get_dashboard_charts |
read-only | Dashboard chart data. |
get_dashboard_counts |
read-only | Dashboard counts. |
get_settings |
sensitive read | Requires confirm_read=true. |
update_settings |
mutating | Requires confirm=true. |
test_smtp_settings |
mutating | Tests SMTP settings. |
reload_app |
mutating | Requires confirm=true. |
get_logs |
sensitive read | Requires confirm_read=true. |
Subscribers¶
| Tool | Class | Notes |
|---|---|---|
get_subscribers |
read-only | Search/list subscribers. |
get_subscriber |
read-only | Get one subscriber. |
add_subscriber |
mutating | Create subscriber. |
update_subscriber |
destructive | Partial update; guarded because it can change status/list membership. |
send_subscriber_optin |
send | Requires confirm_send=true. |
get_subscriber_export |
sensitive read | Requires confirm_read=true. |
get_subscriber_bounces |
read-only | Subscriber bounce history. |
delete_subscriber_bounces |
destructive | Requires confirm=true. |
blocklist_subscriber |
destructive | Requires confirm=true. |
manage_subscriber_lists |
destructive | Add/remove/unsubscribe membership; requires confirm=true. |
blocklist_subscribers |
destructive | Bulk blocklist; requires confirm=true. |
delete_subscribers_by_query |
destructive | Query-driven bulk delete; confirmed and rate limited. |
blocklist_subscribers_by_query |
destructive | Query-driven bulk blocklist; confirmed and rate limited. |
manage_subscriber_lists_by_query |
destructive | Query-driven list membership changes; confirmed and rate limited. |
remove_subscriber |
destructive | Requires confirm=true. |
remove_subscribers |
destructive | Bulk remove; requires confirm=true. |
change_subscriber_status |
destructive | Requires confirm=true. |
Bounces¶
| Tool | Class | Notes |
|---|---|---|
get_bounces |
read-only | List bounces. |
get_bounce |
read-only | Get one bounce. |
delete_bounce |
destructive | Requires confirm=true. |
delete_bounces |
destructive | Bulk delete; requires confirm=true. |
Lists¶
| Tool | Class | Notes |
|---|---|---|
get_mailing_lists |
read-only | List mailing lists. |
get_public_mailing_lists |
read-only | List public mailing lists. |
get_mailing_list |
read-only | Get one mailing list. |
create_public_subscription |
mutating | Public subscription flow. |
create_mailing_list |
mutating | Create list. |
update_mailing_list |
mutating | Update list. |
delete_mailing_list |
destructive | Requires confirm=true. |
delete_mailing_lists |
destructive | Bulk delete; requires confirm=true. |
get_list_subscribers_tool |
read-only | List subscribers in a list. |
Imports¶
| Tool | Class | Notes |
|---|---|---|
get_import_subscribers |
read-only | Import status. |
get_import_subscriber_logs |
read-only | Import logs. |
import_subscribers |
mutating | Upload/import subscribers. |
stop_import_subscribers |
destructive | Requires confirm=true. |
Campaigns¶
| Tool | Class | Notes |
|---|---|---|
get_campaigns |
read-only | List campaigns. |
get_campaign |
read-only | Get one campaign. |
create_campaign |
mutating | Create campaign; can auto-convert plain text to HTML. |
update_campaign |
mutating | Update campaign. |
send_campaign |
send | Requires confirm_send=true. |
test_campaign |
send | Requires confirm_send=true; subscribers must be recipient email addresses. The client sends the current campaign payload plus those recipients to match Listmonk's test endpoint requirements. |
safe_test_campaign |
send | Requires confirmSend=true; recommended wrapper for agents because it validates testRecipients and writes audit logs. |
schedule_campaign |
mutating | Schedule send. |
update_campaign_status |
mutating | Change campaign status. |
delete_campaign |
destructive | Requires confirm=true. |
delete_campaigns |
destructive | Bulk delete; requires confirm=true. |
get_campaign_html_preview |
read-only | Read rendered campaign preview. |
preview_campaign_body |
read-only | Preview supplied body. |
preview_campaign_text |
read-only | Preview supplied text. |
get_running_campaign_stats |
read-only | Running campaign stats. |
get_campaign_analytics |
read-only | Campaign analytics. |
archive_campaign |
mutating | Archive/unarchive campaign. |
convert_campaign_content |
mutating | Convert editor/content representation. |
replace_in_campaign_body |
mutating | Replace text in campaign body. |
regex_replace_in_campaign_body |
mutating | Regex replace in campaign body. |
batch_replace_in_campaign_body |
mutating | Batch replace in campaign body. |
Templates and Transactional Email¶
| Tool | Class | Notes |
|---|---|---|
get_templates |
read-only | List templates. |
get_template |
read-only | Get one template. |
create_template |
mutating | Create campaign/visual/transactional template. |
update_template |
mutating | Update template. |
delete_template |
destructive | Requires confirm=true. |
preview_template |
read-only | Preview template with supplied body. |
get_template_html_preview |
read-only | Read rendered template preview. |
set_default_template |
mutating | Set default template. |
send_transactional_email |
send | Requires confirm_send=true. |
Media¶
| Tool | Class | Notes |
|---|---|---|
get_media_list |
read-only | List media. |
get_media_file |
read-only | Get media metadata/file info. |
upload_media_file |
mutating | Upload media. |
rename_media |
mutating | Rename media. |
delete_media_file |
destructive | Requires confirm=true. |
Maintenance¶
| Tool | Class | Notes |
|---|---|---|
delete_gc_subscribers |
destructive | Requires confirm=true. |
delete_campaign_analytics |
destructive | Requires confirm=true. |
delete_unconfirmed_subscriptions |
destructive | Requires confirm=true. |