npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@xuezimao/mcp-smtp-sender

v1.0.0

Published

SMTP Email MCP Server with template management

Readme

SMTP Email MCP Server

smithery badge

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 claude

Manual 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 name
  • subject: Email subject
  • body: Email body (HTML supported)
  • from: (Optional) Sender email and name
  • cc: (Optional) CC recipients
  • bcc: (Optional) BCC recipients
  • templateId: (Optional) ID of a template to use
  • templateData: (Optional) Data to populate template variables
  • smtpConfigId: (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 name
  • subject: Email subject
  • body: Email body (HTML supported)
  • from: (Optional) Sender email and name
  • cc: (Optional) CC recipients
  • bcc: (Optional) BCC recipients
  • templateId: (Optional) ID of a template to use
  • templateData: (Optional) Data to populate template variables
  • batchSize: (Optional) Number of emails to send in each batch
  • delayBetweenBatches: (Optional) Delay in milliseconds between batches
  • smtpConfigId: (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 configuration
  • host: SMTP server hostname
  • port: SMTP server port
  • secure: Whether to use SSL/TLS
  • auth: 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 update
  • name: Name for the configuration
  • host: SMTP server hostname
  • port: SMTP server port
  • secure: Whether to use SSL/TLS
  • auth: 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 name
  • subject: Email subject template
  • body: 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 update
  • name: Template name
  • subject: Email subject template
  • body: 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: "[email protected]",
        pass: "your-app-password"
      },
      isDefault: true
    )
  2. 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
    )
  3. Send an email using a template:

    send-email(
      to: [{ email: "[email protected]", name: "John Doe" }],
      templateId: "welcome-email",
      templateData: {
        name: "John",
        company: "ACME Corp"
      }
    )
  4. 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