SMTP Email MCP Server
by samihalawa
An MCP server providing email sending capabilities for Claude and other MCP-compatible AI assistants. It allows configuration of multiple SMTP servers and email templates for dynamic and bulk email sending.
Last updated: N/A
SMTP Email MCP Server
A Model Context Protocol (MCP) server that provides email sending capabilities for Claude and other MCP-compatible AI assistants.
Features
- Multiple SMTP Configurations: Configure and manage multiple SMTP servers
- Email Templates: Create, update, and use reusable email templates
- Bulk Email Sending: Send emails to multiple recipients with batching and rate limiting
- HTML Support: Full HTML support for rich email content
- Logging: Comprehensive logging of all email activities
- Template Variables: Dynamic content using template variables
Installation
# Clone the repository
git clone https://github.com/samihalawa/mcp-server-smtp.git
cd mcp-server-smtp
# Install dependencies
npm install
# Build the server
npm run build
Usage
Starting the Server
npm start
Configuration
Add the server to your MCP configuration:
{
"servers": {
"smtp-email-server": {
"command": "/path/to/node",
"args": ["/path/to/mcp-server-smtp/build/index.js"],
"enabled": true,
"port": 3007,
"environment": {
"NODE_PATH": "/path/to/node_modules",
"PATH": "/usr/local/bin:/usr/bin:/bin"
}
}
}
}
Available Tools
send-email
Send an email to one or more recipients.
Parameters:
to
: Array of recipients with email and optional namesubject
: Email subjectbody
: Email body (HTML supported)from
: (Optional) Sender email and namecc
: (Optional) CC recipientsbcc
: (Optional) BCC recipientstemplateId
: (Optional) ID of a template to usetemplateData
: (Optional) Data to populate template variablessmtpConfigId
: (Optional) ID of the SMTP configuration to use
send-bulk-emails
Send emails to multiple recipients in batches.
Parameters:
recipients
: Array of recipients with email and optional namesubject
: Email subjectbody
: Email body (HTML supported)from
: (Optional) Sender email and namecc
: (Optional) CC recipientsbcc
: (Optional) BCC recipientstemplateId
: (Optional) ID of a template to usetemplateData
: (Optional) Data to populate template variablesbatchSize
: (Optional) Number of emails to send in each batchdelayBetweenBatches
: (Optional) Delay in milliseconds between batchessmtpConfigId
: (Optional) ID of the SMTP configuration to use
get-smtp-configs
Get all configured SMTP servers.
Parameters: None
add-smtp-config
Add a new SMTP server configuration.
Parameters:
name
: Name for the configurationhost
: SMTP server hostnameport
: SMTP server portsecure
: Whether to use SSL/TLSauth
: Authentication credentials (user and pass)isDefault
: (Optional) Whether this is the default configuration
update-smtp-config
Update an existing SMTP server configuration.
Parameters:
id
: ID of the configuration to updatename
: Name for the configurationhost
: SMTP server hostnameport
: SMTP server portsecure
: Whether to use SSL/TLSauth
: Authentication credentials (user and pass)isDefault
: (Optional) Whether this is the default configuration
delete-smtp-config
Delete an SMTP server configuration.
Parameters:
id
: ID of the configuration to delete
get-email-templates
Get all email templates.
Parameters: None
add-email-template
Add a new email template.
Parameters:
name
: Template namesubject
: Email subject templatebody
: Email body template (HTML supported)isDefault
: (Optional) Whether this is the default template
update-email-template
Update an existing email template.
Parameters:
id
: ID of the template to updatename
: Template namesubject
: Email subject templatebody
: Email body template (HTML supported)isDefault
: (Optional) Whether this is the default template
delete-email-template
Delete an email template.
Parameters:
id
: ID of the template to delete
get-email-logs
Get logs of sent emails.
Parameters: None
Example Usage
-
Configure an SMTP server:
add-smtp-config( name: "Gmail", host: "smtp.gmail.com", port: 587, secure: false, auth: { user: "[email protected]", pass: "your-app-password" }, isDefault: true )
-
Create an email template:
add-email-template( name: "Welcome Email", subject: "Welcome to {{company}}!", body: "<h1>Hello {{name}},</h1><p>Welcome to {{company}}!</p>", isDefault: false )
-
Send an email using a template:
send-email( to: [{ email: "[email protected]", name: "John Doe" }], templateId: "welcome-email", templateData: { name: "John", company: "ACME Corp" } )
-
Send bulk emails:
send-bulk-emails( recipients: [ { email: "[email protected]", name: "User 1" }, { email: "[email protected]", name: "User 2" } ], subject: "Important Announcement", body: "<p>This is an important announcement.</p>", batchSize: 10, delayBetweenBatches: 1000 )
Requirements
- Node.js 14+
- Nodemailer for email sending
- Access to an SMTP server
License
MIT