# Mailsoftly MCP

> Mailsoftly MCP Server connects your AI agent directly to Mailsoftly's API. Use this server to programmatically manage contacts, build subscriber lists, track campaign performance, and trigger full email sends without logging into a dashboard.

## Overview
- **Category:** crm-sales
- **Price:** Free
- **Tags:** email-campaigns, subscriber-management, contact-lists, engagement-tracking, marketing-analytics

## Description

Your agent talks directly to Mailsoftly’s API. You don't have to log into a dashboard to manage your contacts, run campaigns, or check performance. This server lets you use specific tools right where you are working.

***

### Managing Your Audience List

Before you hit send, you gotta make sure your list is clean and accurate. You start by seeing what organized lists you've got sitting there using **`list_subscriber_collections`**. That gives you a full rundown of every collection available for targeting.

When you find the right group, you can manage membership in two ways. If you have an email address that’s brand new to Mailsoftly, run **`create_base_contact`**; it creates the record using only the email address. If the contact is already in your system but needs to be added to a specific list, use **`add_contact_to_list`**.

### Running Campaigns

You need to know what you're running before you send it out. To see every campaign that exists and its current status, run **`list_marketing_campaigns`**. If you want more granular detail on a specific campaign—like who the sender is or what the subject line was—use **`get_campaign_details`** with the correct ID.

When everything looks right, you initiate the send. Use **`send_campaign_to_all`** to immediately trigger the sending process for that campaign across its entire target segment or list.

### Auditing Performance and History

After a campaign goes out, you gotta check the results. You can see every single campaign ID that’s been sent at least once, along with the exact dates they went out, by calling **`list_sent_history`**. For actual performance metrics, use **`get_campaign_click_data`** to pull detailed statistics showing exactly how many unique times people clicked links and where those clicks came from. These tools give you complete control over building your lists, launching campaigns, and checking the numbers without ever touching a web browser.

## Tools

### add_contact_to_list
Adds an email address to a specific, target contact list.

### get_campaign_click_data
Retrieves the total number of unique clicks and source data for a past campaign.

### list_marketing_campaigns
Returns a list of all campaigns that exist in the system and their current status.

### list_subscriber_collections
Returns a list of all organized contact lists available for targeting campaigns.

### create_base_contact
Creates and adds a brand new contact record using only their email address.

### get_campaign_details
Gets specific metadata, like sender name or subject lines, for one campaign ID.

### send_campaign_to_all
Immediately initiates the sending process for a selected campaign to its entire target audience.

### list_sent_history
Lists every campaign ID that has been sent at least once, along with send dates.

## Prompt Examples

**Prompt:** 
```
List all my email campaigns in Mailsoftly.
```

**Response:** 
```
I've retrieved your campaigns. You have 5 campaigns, including 'Launch Event 2024 (ID: cp123)', 'Monthly Roundup', and 'Welcome Series'. Would you like to see metadata for any of them?
```

**Prompt:** 
```
Add 'user@example.com' to my 'VIP Customers' list (ID: 'list-987').
```

**Response:** 
```
Successfully added user@example.com to the VIP Customers list. They are now registered and will receive future mailings targeted to this list.
```

**Prompt:** 
```
Show click statistics for sent campaign ID 'cp456'.
```

**Response:** 
```
I've retrieved the click data for campaign cp456. It recorded 145 unique clicks from 120 individual subscribers.
```

## Capabilities

### Manage contact membership
Add a specific email address to an existing, predefined contact list.

### Create new contacts
Adds a completely new subscriber record to the Mailsoftly database using just an email.

### List campaign metadata
Retrieves names, IDs, and status details for every available marketing campaign in your account.

### Execute bulk sends
Triggers the official send process for a specific campaign to an entire target segment or list.

### Analyze click performance
Fetches detailed statistics showing how many times recipients clicked links in past campaigns.

### View historical sends
Generates a list of all campaign IDs and dates that have been successfully sent out.

## Use Cases

### New Leads Need List Assignment
A sales rep gets a new lead's email. Instead of copying the email, navigating to the 'VIP' list, and adding them manually, they ask their agent: 'Add user@corp.com to the VIP list.' The agent runs `add_contact_to_list` directly, solving it in two seconds.

### Post-Sale Sequence Trigger
The growth engineer needs to launch a welcome series for new signups. They ask their agent to 'Send the Welcome Series campaign.' The agent checks `list_marketing_campaigns` first, confirming the ID, then runs `send_campaign_to_all`, deploying the sequence instantly.

### Analyzing a Failed Campaign
The marketing manager suspects last week's mailing didn't perform. They ask their agent to 'Show me click stats for campaign cp456.' The agent runs `get_campaign_click_data`, providing the exact metric (145 unique clicks), allowing immediate pivot planning.

### Auditing Contacts Before a Push
Before launching a major promotion, the team needs to know which lists exist. They ask their agent: 'What are all my target mailing list names?' The agent runs `list_subscriber_collections`, providing every available ID for verification.

## Benefits

- Stop manually listing available sends. The `list_marketing_campaigns` tool lets your agent retrieve all campaign IDs instantly, so you never lose track of a draft or a live asset.
- Need to update a lead? You don't have to open the CRM portal. Use `add_contact_to_list` and tell your agent which list needs updating, keeping the workflow in chat.
- Performance data used to be buried deep in reports. Now, calling `get_campaign_click_data` pulls precise metrics—like 145 clicks from 120 users—and gives you usable numbers immediately.
- Don't wait for a team member to manually run the mailout. Use `send_campaign_to_all` and let your agent trigger the entire send process with one command, making it instant.
- You can maintain data integrity by first running `list_subscriber_collections`, ensuring you pass the correct target list ID when calling other tools like `add_contact_to_list`.

## How It Works

The bottom line is: You talk to your AI agent, and it runs the API calls for you—no manual switching between tabs needed.

1. Subscribe to the Mailsoftly MCP Server on Vinkius.
2. Input your required API Key from your Mailsoftly account credentials.
3. Ask your AI client a natural language command (e.g., 'Send the Monthly Roundup campaign') and let the agent execute the necessary tools.

## Frequently Asked Questions

**How do I list all available mailing lists using the Mailsoftly MCP Server?**
Run `list_subscriber_collections`. This tool retrieves a full, up-to-date listing of every organized contact collection ID you have within your account.

**What if I need to add contacts in bulk using the Mailsoftly MCP Server?**
You must use `create_base_contact` for each individual address. While there isn't a single 'bulk upload' tool, you can write an agent loop that calls `create_base_contact` multiple times based on your input data.

**Can I see which campaigns have already been sent with the Mailsoftly MCP Server?**
Yes. Use `list_sent_history`. This tool returns a clear record of every campaign ID that has run, along with the dates they were deployed.

**Does `send_campaign_to_all` require me to know the list ID?**
No. You only need to specify the Campaign ID. The tool handles triggering the full send process for that campaign, targeting its default or associated segment.

**How does the `create_base_contact` tool handle duplicate email addresses?**
It typically handles duplicates by returning a conflict error code rather than failing outright. You'll need to check the API response status; most modern systems let you write logic that skips or updates existing records.

**Is there a rate limit when I use `list_marketing_campaigns`?**
Yes, all external APIs have usage limits. Check the Mailsoftly documentation for specific request quotas. If you hit that ceiling, your agent needs to pause and wait before trying again.

**What information do I get when using `get_campaign_details`?**
This tool pulls comprehensive metadata beyond just the status. You'll get details like the template name, sender ID, date created, and target segment criteria for that campaign.

**When running `add_contact_to_list`, do I need to verify the list ID first?**
You should always confirm the list ID using `list_subscriber_collections` before calling `add_contact_to_list`. This prevents errors and ensures you're targeting the correct group.

**How do I find my Mailsoftly API Key?**
Log in to your Mailsoftly account and navigate to Account Settings or API to generate and copy your unique authorization token.

**What fields are required to add a contact to a list?**
You must provide the `email` address and the unique `contact_list` ID. Providing a `first_name` is optional but recommended.

**Can I see how many people clicked a link in a sent campaign?**
Yes, use the `get_campaign_click_data` tool with the target campaign ID to retrieve detailed click engagement statistics.