The Mailmodo MCP server enables comprehensive email marketing management, including:
Contact Management: Add, remove, update contacts and manage their status (unsubscribe, resubscribe, archive) in lists
Campaign Management: Trigger personalized emails to individuals or broadcast to entire lists
Reporting: Generate campaign reports with metrics like opens, clicks, and submissions
Event Tracking: Send and track custom events with properties for user actions
Template Access: Retrieve available email templates, campaigns, and contact lists
Automation: Integrate with Claude Desktop and other MCP clients for automated workflows
mailmodo-mcp
This is a TypeScript project that implements a Message Control Protocol (MCP) server for Mailmodo integration with Claude Desktop and other MCP supported client.
Prerequisites
Node.js (v20 or higher recommended)
npm (comes with Node.js)
Related MCP server: Liveblocks
Installation
Installing via Smithery
To install Mailmodo Integration Server for Claude Desktop automatically via Smithery:
Manual Installation
Clone the repository:
Install dependencies:
Building the Project
To compile the TypeScript code to JavaScript, run:
This will create a dist directory containing the compiled JavaScript files.
Running the Project
After building, you can run the project using:
Or use the npm script:
Claude Desktop Configuration
Local Run from Code
To configure this project with Claude Desktop, add the following configuration to your Claude Desktop settings:
Run from docker image
Run from npx
Connect via Remote Server
Make sure to adjust the file path in the args array to match your local project directory.
Development
To run the project in development mode with automatic recompilation:
Install
ts-nodeandnodemonas dev dependencies:
Add a dev script to your package.json:
Run the development server:
Project Structure
Tools and Resources
The Mailmodo MCP server provides several tools and resources for interacting with Mailmodo's functionality. Here's a comprehensive list:
Resources
Mailmodo Templates (
mailmodo://templates)Returns a list of all available email templates in JSON format
MIME Type: application/json
Mailmodo Campaigns (
mailmodo://campaigns)Returns a list of all campaigns in JSON format
MIME Type: application/json
Mailmodo Contact Lists (
mailmodo://contact-lists)Returns all contact lists in JSON format
MIME Type: application/json
Tools
User Details
Name:
userDetailsDescription: Get all details of a contact
Parameters:
email(string): Email address of the contact
Campaign Report Tool
Name:
MailmodoCampainReportToolDescription: Get campaign reports including open, click, and submission counts
Parameters:
campaignId(UUID): ID of the campaignfromDate(YYYY-MM-DD): Start date for the reporttoDate(YYYY-MM-DD): End date for the report
Current DateTime
Name:
currentDateTimeDescription: Get current date and time
Parameters: None
Send Event
Name:
sendEventDescription: Send custom events with email and event properties
Parameters:
email(string): Contact's email addressevent_name(string): Name of the eventts(number, optional): Timestampevent_properties(object, optional): Additional event properties
Contact List Management
Add Contact to List
Name:
addContactToListDescription: Add a single contact to a list
Parameters:
email(string): Contact's emaillistName(string): Name of the listdata(object, optional): Contact propertiesVarious optional fields for contact metadata
Bulk Add Contacts
Name:
addBulkContactToListDescription: Add multiple contacts to a list in a single operation
Parameters:
listName(string): Name of the listvalues(array): Array of contact objects
Remove Contact from List
Name:
removeContactFromListDescription: Remove a contact from a specific list
Parameters:
email(string): Contact's emaillistName(string): Name of the list
Contact Status Management
Unsubscribe Contact
Name:
unsubscribeContactDescription: Unsubscribe or suppress a contact
Parameters:
email(string): Contact's email
Resubscribe Contact
Name:
resubscribeContactDescription: Resubscribe a previously unsubscribed contact
Parameters:
email(string): Contact's email
Archive Contact
Name:
archiveContactDescription: Permanently archive a contact
Parameters:
email(string): Contact's email
Campaign Management
Send Email Campaign
Name:
sendEmailToCampaignDescription: Trigger an email campaign with personalization
Parameters:
campaignId(string): Campaign IDemail(string): Recipient's emailVarious optional parameters for customization
Broadcast Campaign
Name:
broadcastCampaignToListDescription: Trigger campaigns to an entire contact list
Parameters:
campaignId(string): Campaign IDlistId(string): Target list IDOptional parameters for campaign customization