A Model Context Protocol server for SMTP email services
Documentation
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
Installing via Smithery
To install SMTP Email Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @samihalawa/mcp-server-smtp --client claudeManual 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 buildUsage
Starting the Server
npm startConfiguration
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
1. Configure an SMTP server:
add-smtp-config(
name: "Gmail",
host: "smtp.gmail.com",
port: 587,
secure: false,
auth: {
user: "your-email@gmail.com",
pass: "your-app-password"
},
isDefault: true
)2. Create an email template:
add-email-template(
name: "Welcome Email",
subject: "Welcome to {{company}}!",
body: "Hello {{name}},Welcome to {{company}}!",
isDefault: false
)3. Send an email using a template:
send-email(
to: [{ email: "recipient@example.com", name: "John Doe" }],
templateId: "welcome-email",
templateData: {
name: "John",
company: "ACME Corp"
}
)4. Send bulk emails:
send-bulk-emails(
recipients: [
{ email: "user1@example.com", name: "User 1" },
{ email: "user2@example.com", name: "User 2" }
],
subject: "Important Announcement",
body: "This is an important announcement.",
batchSize: 10,
delayBetweenBatches: 1000
)Requirements
- Node.js 14+
- Nodemailer for email sending
- Access to an SMTP server
License
MIT
Similar MCP
Based on tags & features
Trending MCP
Most active this week