Enginemailer MCP by usefulapi

Read Enginemailer subscribers, lists and campaigns; add subscribers, create and send campaigns.

我該用這個嗎

品質與安全性

B
說明品質
100%
結構描述完整度
85%
命名品質
67%
汙染風險
0%
權限相符程度
100%
協定合規性
100%

發現項目(27)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded string在 enginemailer_get_subscriber 中
  • MEDIUMTool description contains suspicious base64-like encoded string在 enginemailer_list_subscriber_categories 中
  • MEDIUMTool description contains suspicious base64-like encoded string在 enginemailer_list_custom_fields 中
  • MEDIUMTool description contains suspicious base64-like encoded string在 enginemailer_add_subscriber 中
  • MEDIUMTool description contains suspicious base64-like encoded string在 enginemailer_update_subscriber 中
  • MEDIUMTool description contains suspicious base64-like encoded string在 enginemailer_unsubscribe_subscriber 中
  • MEDIUMTool description contains suspicious base64-like encoded string在 enginemailer_save_subscriber_category 中
  • MEDIUMTool description contains suspicious base64-like encoded string在 enginemailer_list_campaigns 中
  • MEDIUMTool description contains suspicious base64-like encoded string在 enginemailer_get_campaign_stats 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~4,604Token(工具定義)
~1.7 KB典型回應大小
顯著的注意力影響(128k 上下文的 3.60%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "enginemailer": {
      "url": "https://enginemailer.usefulapi.io/mcp"
    }
  }
}

遠端端點

https://enginemailer.usefulapi.io/mcpstreamable-http

它能做什麼

工具清單

工具(17)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢enginemailer_get_subscriber(email)

One subscriber by email: id, status and all custom field values. GET /restapi/subscriber/emsubscriber/getSubscriber.

輸入結構描述

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "maxLength": 128,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "An email address (max 128 characters)."
    }
  },
  "required": [
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢enginemailer_list_subscriber_categories(include_active_subscriber_count)

The subscriber category tree: each category with its subcategories (ids, names). Use the subcategory ids when adding or updating subscribers and when assigning campaign recipients. GET /restapi/subscriber/emsubscriber/getSubCategory.

輸入結構描述

{
  "type": "object",
  "properties": {
    "include_active_subscriber_count": {
      "description": "Also return active subscriber counts (only for accounts the vendor has enabled this for).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢enginemailer_list_custom_fields

The subscriber custom field definitions (key, name, type). Use the keys when adding or updating subscribers. GET /restapi/subscriber/emsubscriber/getCustomField.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡enginemailer_add_subscriber(email, subcategory_ids, custom_fields, source_type)

WRITE: add a subscriber to the account (optionally into subcategories, with custom field values). Only add people who consented to marketing email. Free accounts may insert 50 subscribers a day, paid accounts 10,000. POST /restapi/subscriber/emsubscriber/insertSubscriber.

輸入結構描述

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "maxLength": 128,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "An email address (max 128 characters)."
    },
    "subcategory_ids": {
      "description": "Subcategory (list/segment) ids from enginemailer_list_subscriber_categories.",
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "custom_fields": {
      "description": "Custom field values to set.",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Custom field key from enginemailer_list_custom_fields (customfield_key)."
          },
          "value": {
            "type": "string",
            "maxLength": 512,
            "description": "The value. Dates 'dd MMM yyyy', phones '+<country><number>', checkbox values separated by '|'."
          }
        },
        "required": [
          "key",
          "value"
        ]
      }
    },
    "source_type": {
      "description": "Where the subscriber came from, e.g. 'Signup from website' (max 256).",
      "type": "string",
      "maxLength": 256
    }
  },
  "required": [
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴enginemailer_update_subscriber(email, subcategory_ids, subcategories_mode, custom_fields, custom_fields_mode)

WRITE: change an existing subscriber's subcategories and/or custom fields. subcategories_mode: append (default), remove (drop the given subcategories) or replace (the given list becomes the full list). custom_fields_mode: update_given (change only the given fields) or replace_all (default; fields not given are cleared). POST /restapi/subscriber/emsubscriber/updateSubscriber.

輸入結構描述

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "maxLength": 128,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "An email address (max 128 characters)."
    },
    "subcategory_ids": {
      "description": "Subcategory (list/segment) ids from enginemailer_list_subscriber_categories.",
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "subcategories_mode": {
      "description": "How subcategory_ids apply (default append).",
      "type": "string",
      "enum": [
        "append",
        "remove",
        "replace"
      ]
    },
    "custom_fields": {
      "description": "Custom field values to set.",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Custom field key from enginemailer_list_custom_fields (customfield_key)."
          },
          "value": {
            "type": "string",
            "maxLength": 512,
            "description": "The value. Dates 'dd MMM yyyy', phones '+<country><number>', checkbox values separated by '|'."
          }
        },
        "required": [
          "key",
          "value"
        ]
      }
    },
    "custom_fields_mode": {
      "description": "update_given changes only the listed fields; replace_all (the vendor default) clears the others.",
      "type": "string",
      "enum": [
        "update_given",
        "replace_all"
      ]
    }
  },
  "required": [
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴enginemailer_unsubscribe_subscriber(email)

WRITE: unsubscribe a subscriber so they no longer receive campaigns. Reversing it needs the subscriber to opt in again in Enginemailer. GET /restapi/subscriber/emsubscriber/unSubSubscriber.

輸入結構描述

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "maxLength": 128,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "An email address (max 128 characters)."
    }
  },
  "required": [
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴enginemailer_save_subscriber_category(category_id, name, description, is_visible, subcategories)

WRITE: create a subscriber category (category_id 0) or update one (its id), with subcategories (subcategory_id 0 creates one). Names and descriptions max 128 characters. POST /restapi/subscriber/emsubscriber/updateCategory.

輸入結構描述

{
  "type": "object",
  "properties": {
    "category_id": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "0 to create a new category, else the existing category id."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "description": {
      "type": "string",
      "maxLength": 128
    },
    "is_visible": {
      "description": "Visible to subscribers (default true).",
      "type": "boolean"
    },
    "subcategories": {
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "subcategory_id": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "0 to create, else the existing subcategory id."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "description": {
            "type": "string",
            "maxLength": 128
          }
        },
        "required": [
          "subcategory_id",
          "name"
        ]
      }
    }
  },
  "required": [
    "category_id",
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢enginemailer_list_campaigns

List campaigns that have NOT been delivered yet (drafts and scheduled ones): id, name, subject, sender and schedule. Delivered campaigns are not listed by the API; use enginemailer_get_campaign_stats with a known id. Needs a paid account. GET /restapi/campaign/emcampaign/ListCampaign.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢enginemailer_get_campaign_stats(campaign_id)

Delivery results of a DELIVERED campaign: emails sent, delivered, bounces, opens, unique opens, clicks, unique clicks, unsubscribes, spam complaints. Needs a paid account. GET /restapi/campaign/emcampaign/getcampaigndeliverystatus.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Campaign id."
    }
  },
  "required": [
    "campaign_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢enginemailer_list_campaign_categories

The categories that campaign recipients can be filtered by (id, name, description). Needs a paid account. GET /restapi/campaign/emcampaign/GetCategoryList.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢enginemailer_list_campaign_subcategories(category_id)

The subcategories of one campaign category (id, name, description); use these ids in enginemailer_assign_campaign_recipients. Needs a paid account. GET /restapi/campaign/emcampaign/GetSubCategoryList.

輸入結構描述

{
  "type": "object",
  "properties": {
    "category_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Category id from enginemailer_list_campaign_categories."
    }
  },
  "required": [
    "category_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡enginemailer_create_campaign(name, sender_name, sender_email, reply_to, subject, ...)

WRITE: create a campaign DRAFT. Nothing is sent: assign recipients with enginemailer_assign_campaign_recipients, then send with enginemailer_send_campaign. The sender domain must be verified in Enginemailer; max 200 campaigns per account. Needs a paid account. POST /restapi/Campaign/EMCampaign/CreateCampaign.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Internal campaign name."
    },
    "sender_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "sender_email": {
      "type": "string",
      "maxLength": 128,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Sender address on a verified domain."
    },
    "reply_to": {
      "type": "string",
      "maxLength": 128,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "An email address (max 128 characters)."
    },
    "subject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "content_html": {
      "type": "string",
      "minLength": 1,
      "maxLength": 262144,
      "description": "The email body, HTML (max 256 KB)."
    }
  },
  "required": [
    "name",
    "sender_name",
    "sender_email",
    "subject",
    "content_html"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴enginemailer_assign_campaign_recipients(campaign_id, audience, subcategory_ids, match_type)

WRITE: set who a campaign will go to: all subscribers, or the subscribers in the given subcategory ids (match_type any = OR, all = AND). Does not send anything. Needs a paid account. POST /restapi/campaign/emcampaign/AssignRecipientList.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Campaign id."
    },
    "audience": {
      "type": "string",
      "enum": [
        "all_subscribers",
        "subcategories"
      ]
    },
    "subcategory_ids": {
      "description": "Required when audience is subcategories.",
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "match_type": {
      "description": "any = subscribers in at least one subcategory (OR, default); all = in every one (AND).",
      "type": "string",
      "enum": [
        "any",
        "all"
      ]
    }
  },
  "required": [
    "campaign_id",
    "audience"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴enginemailer_send_campaign(campaign_id, confirm)

WRITE, SENDS EMAIL TO CUSTOMERS NOW and cannot be undone: delivers the campaign to its assigned recipients immediately. The campaign needs at least one recipient and must not be scheduled or already delivered. Show the user the campaign and its audience and get their go-ahead first; set confirm to true only then. Needs a paid account. GET /restapi/campaign/emcampaign/SendCampaign.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Campaign id."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: the user has approved sending this campaign to its recipients now."
    }
  },
  "required": [
    "campaign_id",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴enginemailer_send_transactional_email(to_email, sender_email, sender_name, subject, content_html, ...)

WRITE, SENDS ONE EMAIL NOW and cannot be undone: submits a transactional email to one recipient (plus optional CC/BCC). Needs a sender address on a verified domain; give either subject + content_html, or a template_id from the Enginemailer portal (the template supplies subject and sender name). Total message incl. attachments max 5 MB. Confirm the recipient and text with the user first; set confirm to true only then. POST /RESTAPI/V2/Submission/SendEmail.

輸入結構描述

{
  "type": "object",
  "properties": {
    "to_email": {
      "type": "string",
      "maxLength": 128,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "An email address (max 128 characters)."
    },
    "sender_email": {
      "type": "string",
      "maxLength": 128,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Sender address on a verified domain (must match the template's sender when template_id is used)."
    },
    "sender_name": {
      "type": "string",
      "maxLength": 128
    },
    "subject": {
      "type": "string",
      "maxLength": 256
    },
    "content_html": {
      "description": "Email body (HTML). Not needed with template_id.",
      "type": "string",
      "maxLength": 1048576
    },
    "template_id": {
      "description": "Stored template id from the Enginemailer portal.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "campaign_name": {
      "description": "Label for reports.",
      "type": "string",
      "maxLength": 128
    },
    "substitution_tags": {
      "description": "Merge tags. Values must not contain { } [ ].",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "value": {
            "type": "string",
            "maxLength": 2000
          }
        },
        "required": [
          "key",
          "value"
        ]
      }
    },
    "cc": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 128,
        "format": "email",
        "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
        "description": "An email address (max 128 characters)."
      }
    },
    "bcc": {
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 128,
        "format": "email",
        "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
        "description": "An email address (max 128 characters)."
      }
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: the user has approved sending this email now."
    }
  },
  "required": [
    "to_email",
    "sender_email",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡enginemailer_start_transactional_report_export(period, email_to_filter, domain_filter)

Start a CSV export of the transactional email delivery report for a period (start date at most 60 days back). Returns an export id; poll it with enginemailer_check_transactional_report_export. Creates a report file only; nothing is sent. POST /RESTAPI/V2/Submission/Report/Export.

輸入結構描述

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "pattern": "^\\d{1,2} [A-Za-z]{3} \\d{4} - \\d{1,2} [A-Za-z]{3} \\d{4}$",
      "description": "Date range exactly like '1 Sep 2026 - 16 Sep 2026'."
    },
    "email_to_filter": {
      "description": "Only emails sent to this recipient.",
      "type": "string",
      "maxLength": 128,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "domain_filter": {
      "description": "Domain filter, sent as the vendor's DomainFilter (the sender domain in the vendor's report), e.g. example.com.",
      "type": "string",
      "maxLength": 255
    }
  },
  "required": [
    "period"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢enginemailer_check_transactional_report_export(export_id)

Status of a report export (Processing or Complete); when complete it includes the CSV download URL. POST /RESTAPI/V2/Submission/Report/CheckExport (read-only).

輸入結構描述

{
  "type": "object",
  "properties": {
    "export_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "ExportID from enginemailer_start_transactional_report_export."
    }
  },
  "required": [
    "export_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本17 個工具