AI-native email marketing
Email Marketing MCP Server for Claude, ChatGPT & Cursor
The IGSendMail MCP server is an open-source connector that lets AI assistants manage your email marketing through the Model Context Protocol. Ask Claude to add a subscriber, pull last week's campaign stats, or draft a newsletter to a list, and it happens in your IGSendMail account with your own API token. It is free on every plan, including the free plan.
Try it in one sentence
- “Add jane@example.com to my Newsletter list with first name Jane.”
- “How did last week's campaign do? Show opens, clicks and the top three links.”
- “Draft a campaign to the Customers list announcing the September release, don't send it yet.”
- “Import these 200 leads into the Webinar list and tag them webinar-sept.”
Connect it in one command
Nothing to install. Get your token at mail.igsendmail.com → Account → API token, then point your client at the hosted endpoint.
Claude Code
claude mcp add --transport http igsendmail https://igsendmail.com/api/mcp \
--header "Authorization: Bearer YOUR_TOKEN"Claude Desktop, claude.ai and ChatGPT
Add a custom connector and paste the URL https://igsendmail.com/api/mcp, with the header Authorization: Bearer YOUR_TOKEN.
Cursor, Windsurf and other clients
Add this to your MCP config:
{
"mcpServers": {
"igsendmail": {
"url": "https://igsendmail.com/api/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}The endpoint is stateless. Your token travels on each request, is used for that request only, and is never stored. Revoke or regenerate it any time from your account.
Every tool, and what it takes
32 tools. Read-only ones are marked, and anything irreversible needs an explicit confirmation before it will run.
get_accountread-onlyWho the token belongs to, the instance version, and dashboard counts including subscriber usage against the plan.
list_listsread-onlyList mailing lists with subscriber counts and open/click rates.
page? · per_page?
get_listread-onlyGet one mailing list by uid, including its custom fields.
list_uid
create_listCreate a mailing list. from_email should sit on a verified sending domain.
name · from_email · from_name · default_subject? · contact_email?
add_list_fieldAdd a custom field (merge tag) to a list, e.g. tag FIRST_NAME of type text.
list_uid · type · label · tag
delete_listneeds confirmationDelete a mailing list and every subscriber on it. Irreversible.
list_uid · confirm
list_subscribersread-onlyList subscribers on a list with their status and custom fields. Use keyword to search.
list_uid · keyword? · page? · per_page?
get_subscriberread-onlyGet one subscriber by numeric id.
id
find_subscriber_by_emailread-onlyFind subscriber records across lists by email address.
add_subscriberAdd or update one subscriber on a list. fields are merge tags such as FIRST_NAME.
list_uid · email · fields? · tags? · status?
bulk_add_subscribersImport up to 1,000 subscribers into a list in one call. Each row needs EMAIL plus optional merge-tag fields.
list_uid · subscribers · mode?
update_subscriberUpdate a subscriber's email, status or custom fields.
id · email? · status? · fields?
subscribe_subscriberSet a subscriber's status to subscribed on a list.
list_uid · id
unsubscribe_subscriberneeds confirmationUnsubscribe a subscriber from a list by id.
list_uid · id · confirm
unsubscribe_by_emailneeds confirmationUnsubscribe an email address from a list.
list_uid · email · confirm
delete_subscriberneeds confirmationPermanently delete a subscriber record. Irreversible.
id · confirm
add_subscriber_tagAdd tags to a subscriber.
id · tags
remove_subscriber_tagRemove tags from a subscriber.
id · tags
list_campaignsread-onlyList campaigns with status, delivery time, and open and click rates.
page? · per_page?
get_campaignread-onlyGet a campaign with full statistics: sends, opens, clicks, bounces, unsubscribes, top links and top subscribers.
campaign_uid
create_campaignCreate a DRAFT campaign from HTML for a list. Nothing is sent until send_campaign is called.
name · subject · from_email · from_name · reply_to · html · mail_list_uid · plain?
update_campaignUpdate a draft campaign's name, subject, sender or HTML.
campaign_uid · name? · subject? · from_email? · from_name? · reply_to? · html? · plain?
send_campaignneeds confirmationLaunch a campaign to its list NOW. Irreversible: mail goes out. Always confirm with the person first.
campaign_uid · confirm
pause_campaignPause a sending campaign.
campaign_uid
resume_campaignResume a paused campaign.
campaign_uid
delete_campaignneeds confirmationDelete a campaign. Irreversible.
campaign_uid · confirm
list_automationsread-onlyList automation workflows with status and email counts.
page? · per_page?
execute_automationneeds confirmationTrigger an automation workflow for its list. Irreversible: it can send mail.
automation_uid · confirm
ai_subject_linesGenerate subject line options for an email. Uses one AI generation credit from the plan.
subject? · context? · count? · instruction?
ai_rewriteRewrite email copy, a preheader, a campaign or list name, or form text. Uses one AI generation credit.
task? · text · action? · instruction? · tone? · context? · count?
ai_send_timeread-onlyBest day and hour to send, computed from this account's own open history over 90 days. Free, uses no credits.
ai_statusread-onlyWhether AI is configured on the server, which model is in use, and AI generation credits remaining this period.
A trailing question mark means the parameter is optional. Email verification tools follow with the verification API.
Frequently Asked Questions
Your AI assistant, now with an email list
Unlimited contacts on every paid plan, 3,000 free emails a month to start, and an MCP server included on all of them.