# Mail Blaze MCP

> Mail Blaze handles all your email marketing and subscriber list management via an MCP server connection. Use it to build workflows that let your AI agent create drafts, manage lists, add subscribers, and send full campaigns—all from natural language commands without touching the web dashboard.

## Overview
- **Category:** marketing-automation
- **Price:** Free
- **Tags:** campaign-management, subscriber-lists, email-delivery, audience-segmentation, marketing-analytics

## Description

Look, if you're trying to run email campaigns without clicking through ten different web pages, this server's your ticket. You connect it via Vinkius Marketplace, give up your API key, and suddenly your AI agent handles all the dirty work—building drafts, sorting lists, and hitting send. It’s pure natural language control; you don't touch a dashboard.

### Managing Your Audience Lists

You need to know what lists you got going on? Use `list_subscriber_lists` to pull a complete inventory of every list setup in your account. To see who's actually signed up for any specific segment, just run `list_list_subscribers`, and it’ll give you the full roster for that particular list ID. This lets your agent keep tabs on all your segments without you having to manually check each one.

### Handling Contacts Day-to-Day

When a new lead comes in, don't forget to get 'em into a list. You use `add_subscriber_to_list` to drop a brand-new subscriber record right into the designated list using its unique ID. If somebody changes their name or email, you run `update_list_subscriber`; it modifies key data points for that specific contact in any list. And if someone's inactive and you wanna clean up? You use `delete_list_subscriber` to permanently remove them from a target list. Your agent handles all of this stuff—adding, tweaking, or kicking people out—with simple commands.

### The Campaign Lifecycle

Starting a campaign is straightforward. If you're cooking up something new, you run `create_new_campaign` to get the initial draft and metadata ready for your email marketing effort; it sets up the whole thing without you lifting a finger on the web portal. Need to check what campaigns are already sitting there? Use `list_email_campaigns` to pull a full list of every current campaign in your account. If you wanna drill down into one draft, say, figuring out its status or technical details, `get_campaign_details` grabs all that deep info for the specific campaign ID.

### Sending It Out

Once the content is approved and the metadata is locked down, sending it needs to be instant. You don't wanna waste time waiting around. Just running `send_email_campaign` immediately triggers the delivery process for an existing, approved campaign straight out to all subscribed users.

## Tools

### add_subscriber_to_list
Adds a new subscriber record to a specified list using its unique ID.

### list_email_campaigns
Returns a list of every current email marketing campaign associated with your account.

### create_new_campaign
Generates the initial draft and metadata required for a brand-new email marketing campaign.

### delete_list_subscriber
Permanently removes a single subscriber from any target list.

### get_campaign_details
Retrieves full technical details and status reports for one specific campaign by its ID.

### list_list_subscribers
Pulls a roster of all subscribers currently enrolled in a specific, designated list.

### list_subscriber_lists
Returns a complete inventory of every subscriber list you have set up.

### send_email_campaign
Immediately triggers the delivery process for an existing, approved campaign to all subscribers.

### update_list_subscriber
Modifies key data points—like email or name—for a single subscriber in any list.

## Prompt Examples

**Prompt:** 
```
List all active email campaigns in Mail Blaze.
```

**Response:** 
```
I've retrieved your campaigns. You have 5 campaigns, including 'Summer Sale 2024 (ID: sb123abc)', 'Welcome Series', and 'Monthly Newsletter'. Which one would you like to see details for?
```

**Prompt:** 
```
Add 'user@example.com' to my 'Main Leads' list (UID: 'lz987xyz').
```

**Response:** 
```
Successfully added user@example.com to the list Main Leads. The subscriber UID is 'sub-abc-123' and their status is currently 'confirmed'.
```

**Prompt:** 
```
Send the email campaign with UID 'cp456def'.
```

**Response:** 
```
I've triggered the sending of campaign cp456def. Mail Blaze has queued the delivery to your subscribers.
```

## Capabilities

### List Campaign Metadata
Retrieve a full list of existing email campaigns and pull detailed status information for specific drafts.

### Manage Subscriber Segments
View all available subscriber lists, or check the current members within any given list ID.

### Update Contact Records
Add new subscribers to a target list, remove inactive users, or modify custom fields for existing contacts.

### Draft Campaigns On Demand
Start a new campaign draft directly from your conversation without navigating the web interface.

### Execute Campaign Sends
Trigger an immediate send for any existing, approved campaign to its target list.

## Use Cases

### Emergency Send Rollout
The product team needs to send an urgent announcement. Instead of logging into Mail Blaze and manually selecting the campaign ID, they tell their agent: 'Send campaign cp456def.' The agent uses `send_email_campaign`, queuing the delivery immediately.

### List Cleanup Audit
The Ops team suspects a list is dirty. They ask the agent to run `list_list_subscribers` for the 'VIP Leads' list, get a count, and then cross-reference that data with records flagged by `delete_list_subscriber` to ensure no one was missed.

### Contact Data Correction
A user changes their job title. Instead of emailing the support team for help, they instruct the agent: 'Update subscriber sub-abc-123 with new title.' The tool uses `update_list_subscriber` to fix the data point directly.

### New Campaign Development
The marketer brainstorms a seasonal campaign. They tell their agent: 'Start draft for Summer Sale 2024.' The agent immediately uses `create_new_campaign`, populating the necessary metadata so the writer can start drafting right away.

## Benefits

- Campaigns deploy instantly. Instead of building a multi-step form to trigger sends, you simply ask your agent to 'Send campaign X,' using the `send_email_campaign` tool.
- Stay organized with list data. Use `list_subscriber_lists` and `list_list_subscribers` together to quickly audit who is on which segment without opening a single dashboard tab.
- Clean up your contacts safely. Need to update an address? The `update_list_subscriber` tool handles it, making sure the change sticks instantly for that user's record.
- Build content faster. Use `create_new_campaign` to generate campaign drafts straight from your conversation. You skip the initial setup screens and jump right into writing.
- Audit history easily. If you need to know why a campaign failed or what its status is, run `get_campaign_details` for immediate data retrieval.

## How It Works

The bottom line is: You manage complex marketing tasks using plain language prompts instead of clicking through a dashboard.

1. Subscribe to the Mail Blaze MCP Server and provide your API Public Key (X-MW-PUBLIC-KEY).
2. Instruct your AI agent to perform a task, like 'List all campaigns' or 'Add user X to list Y'.
3. The agent calls the specific tool, receiving confirmation messages and structured data that you use for the next step.

## Frequently Asked Questions

**How do I list all lists with Mail Blaze MCP Server?**
You run the `list_subscriber_lists` tool. This instantly returns an inventory of every single segment or mailing group you have created in your account.

**Can I send a campaign using the `send_email_campaign` tool?**
Yes, that's exactly what it does. The tool triggers delivery for an existing campaign ID. It won't write new content; it just executes the approved draft.

**What is the difference between `add_subscriber_to_list` and `update_list_subscriber`?**
`add_subscriber_to_list` creates a brand-new record for someone. `update_list_subscriber` modifies an existing person's data (like changing their email or job title) within the list.

**Do I need to create a campaign first, then send it?**
Yes. You must use `create_new_campaign` to build the content and metadata first. The `send_email_campaign` tool requires an existing campaign ID to function.

**What credentials do I need before using the `list_email_campaigns` tool?**
You must provide your Mail Blaze API Public Key (X-MW-PUBLIC-KEY) for authentication. The server uses this key to verify your account and connect to your campaigns. Without a valid key, no tools will execute.

**If I use `delete_list_subscriber` but the user isn't found, what happens?**
The tool returns a specific error code indicating the subscriber does not exist in that list. This means you must confirm both the List UID and the subscriber's unique ID before calling it to prevent failures.

**When I run `get_campaign_details`, what metadata fields do I receive?**
You get comprehensive details on a campaign, including its current status (e.g., draft, scheduled, active), the creation date, and the unique Campaign ID. This helps you verify exactly how ready it is to send.

**Are there rate limits when I use `send_email_campaign` repeatedly?**
Yes, the Mail Blaze API enforces usage limits on campaign sends. If you exceed these caps, the tool will return a 429 error code. For high-volume sending, check your account dashboard or consider batch processing.

**How do I find my List UID or Campaign UID?**
You can retrieve all UIDs by using the `list_subscriber_lists` or `list_email_campaigns` tools. They are also visible in the URL when viewing these resources in the Mail Blaze dashboard.

**Can I add custom fields when subscribing a user?**
Yes, include your custom field values within the `subscriber_json` object when using the `add_subscriber_to_list` tool.

**Is there a limit to the number of subscribers I can retrieve?**
The API uses pagination. The `list_list_subscribers` tool retrieves the first page of results (up to 100 records by default).