This is a TypeScript project that implements a Message Control Protocol (MCP) server for Mailmodo integration with Claude Desktop and other MCP supported client.
- Node.js (v20 or higher recommended)
- npm (comes with Node.js)
To install Mailmodo Integration Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @mailmodo/mailmodo-mcp --client claude
- Clone the repository:
git clone https://github.com/mailmodo/mailmodo-mcp.git
cd mailmodo-mcp
- Install dependencies:
npm install
To compile the TypeScript code to JavaScript, run:
npm run build
This will create a dist
directory containing the compiled JavaScript files.
After building, you can run the project using:
node dist/index.js
Or use the npm script:
npm start
To configure this project with Claude Desktop, add the following configuration to your Claude Desktop settings:
{
"mcpServers": {
"mailmodo": {
"command": "node",
"args": [
"/path/to/your/mailmodo-mcp/dist/index.js"
]
}
}
}
{
"mcpServers": {
"mailmodo": {
"command": "docker",
"args": [
"run",
"--platform",
"linux/amd64",
"-i",
"--rm",
"-e",
"MAILMODO_API_KEY",
"avneesh001/mailmodo-mcp"
],
"env": {
"MAILMODO_API_KEY": "<GET MAILMODO KEY from https://manage.mailmodo.com/app/settings/apikey and insert here>"
}
}
}
}
{
"mcpServers": {
"mailmodo": {
"command": "npx",
"args": [
"-y",
"@mailmodo/mcp"
],
"env": {
"MAILMODO_API_KEY": "<GET MAILMODO KEY from https://manage.mailmodo.com/app/settings/apikey and insert here>"
}
}
}
}
{
"mcpServers": {
"mailmodo": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.app.mailmodo.com/mcp",
"--header",
"mmApiKey:${MAILMODO_API_KEY}"
],
"env": {
"MAILMODO_API_KEY": "<GET MAILMODO KEY from https://manage.mailmodo.com/app/settings/apikey and insert here>"
}
}
}
}
Make sure to adjust the file path in the args
array to match your local project directory.
To run the project in development mode with automatic recompilation:
- Install
ts-node
andnodemon
as dev dependencies:
npm install --save-dev ts-node nodemon
- Add a dev script to your package.json:
{
"scripts": {
"dev": "nodemon src/index.ts",
"build": "tsc",
"start": "node dist/index.js"
}
}
- Run the development server:
npm run dev
mailmodo-mcp/
├── src/ # TypeScript source files
├── dist/ # Compiled JavaScript files
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configuration
The Mailmodo MCP server provides several tools and resources for interacting with Mailmodo's functionality. Here's a comprehensive list:
-
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
-
User Details
- Name:
userDetails
- Description: Get all details of a contact
- Parameters:
-
email
(string): Email address of the contact
-
- Name:
-
Campaign Report Tool
- Name:
MailmodoCampainReportTool
- Description: Get campaign reports including open, click, and submission counts
- Parameters:
-
campaignId
(UUID): ID of the campaign -
fromDate
(YYYY-MM-DD): Start date for the report -
toDate
(YYYY-MM-DD): End date for the report
-
- Name:
-
Current DateTime
- Name:
currentDateTime
- Description: Get current date and time
- Parameters: None
- Name:
-
Send Event
- Name:
sendEvent
- Description: Send custom events with email and event properties
- Parameters:
-
email
(string): Contact's email address -
event_name
(string): Name of the event -
ts
(number, optional): Timestamp -
event_properties
(object, optional): Additional event properties
-
- Name:
-
Contact List Management
-
Add Contact to List
- Name:
addContactToList
- Description: Add a single contact to a list
- Parameters:
-
email
(string): Contact's email -
listName
(string): Name of the list -
data
(object, optional): Contact properties - Various optional fields for contact metadata
-
- Name:
-
Bulk Add Contacts
- Name:
addBulkContactToList
- Description: Add multiple contacts to a list in a single operation
- Parameters:
-
listName
(string): Name of the list -
values
(array): Array of contact objects
-
- Name:
-
Remove Contact from List
- Name:
removeContactFromList
- Description: Remove a contact from a specific list
- Parameters:
-
email
(string): Contact's email -
listName
(string): Name of the list
-
- Name:
-
-
Contact Status Management
-
Unsubscribe Contact
- Name:
unsubscribeContact
- Description: Unsubscribe or suppress a contact
- Parameters:
-
email
(string): Contact's email
-
- Name:
-
Resubscribe Contact
- Name:
resubscribeContact
- Description: Resubscribe a previously unsubscribed contact
- Parameters:
-
email
(string): Contact's email
-
- Name:
-
Archive Contact
- Name:
archiveContact
- Description: Permanently archive a contact
- Parameters:
-
email
(string): Contact's email
-
- Name:
-
-
Campaign Management
-
Send Email Campaign
- Name:
sendEmailToCampaign
- Description: Trigger an email campaign with personalization
- Parameters:
-
campaignId
(string): Campaign ID -
email
(string): Recipient's email - Various optional parameters for customization
-
- Name:
-
Broadcast Campaign
- Name:
broadcastCampaignToList
- Description: Trigger campaigns to an entire contact list
- Parameters:
-
campaignId
(string): Campaign ID -
listId
(string): Target list ID - Optional parameters for campaign customization
-
- Name:
-