HomeCommunication › SMTP

SMTP

MCP server that sends mail over SMTP, gated behind an allowlist and a human confirmation

TypeScript Local macOSWindowsLinux
★ 0 stars Last pushed 2026-09-22 License: MIT

Topics: Communication

Connect

Review any command before running it. Package names and URLs come from the server's own registry entry.

Package (npm 0.2.0)

npx -y @ni-c/smtp-mcp@0.2.0

Or add to your MCP client config:

{
  "mcpServers": {
    "smtp-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ni-c/smtp-mcp@0.2.0"
      ],
      "env": {
        "SMTP_HOST": "<YOUR_VALUE>",
        "SMTP_PORT": "<YOUR_VALUE>",
        "SMTP_TLS": "<YOUR_VALUE>",
        "SMTP_USER": "<YOUR_VALUE>",
        "SMTP_PASSWORD": "<YOUR_VALUE>",
        "SMTP_FROM": "<YOUR_VALUE>",
        "SMTP_REPLY_TO": "<YOUR_VALUE>",
        "SMTP_ALLOW_SEND": "<YOUR_VALUE>",
        "SMTP_ALLOWED_RECIPIENTS": "<YOUR_VALUE>",
        "SMTP_MAX_RECIPIENTS": "<YOUR_VALUE>",
        "SMTP_MAX_SENDS_PER_HOUR": "<YOUR_VALUE>",
        "SMTP_MAX_MESSAGE_BYTES": "<YOUR_VALUE>",
        "SMTP_MAX_ATTACHMENT_BYTES": "<YOUR_VALUE>",
        "SMTP_ATTACHMENT_DIR": "<YOUR_VALUE>",
        "SMTP_ATTACHMENT_TYPES": "<YOUR_VALUE>",
        "SMTP_SIGNATURE": "<YOUR_VALUE>",
        "SMTP_AUDIT_LOG": "<YOUR_VALUE>",
        "SMTP_ALLOW_TOOLS": "<YOUR_VALUE>",
        "SMTP_DENY_TOOLS": "<YOUR_VALUE>",
        "SMTP_INSECURE_TLS": "<YOUR_VALUE>"
      }
    }
  }
}
  • SMTP_HOST required — Hostname of the SMTP server, e.g. smtp.example.net.
  • SMTP_PORT — Port. Defaults to 587 for starttls, 465 for implicit, 25 for none.
  • SMTP_TLS — starttls (default), implicit or none. STARTTLS is required, never opportunistic.
  • SMTP_USER required — Username for SMTP authentication.
  • SMTP_PASSWORD required secret — Password or app-specific password for SMTP authentication.
  • SMTP_FROM required — The only sender this server will use, e.g. "Name <person@example.net>". There is no from parameter.
  • SMTP_REPLY_TO — Reply-To header on every message, e.g. "Team <team@example.net>". Unset means no Reply-To header and replies go to SMTP_FROM. There is no reply_to parameter.
  • SMTP_ALLOW_SEND — Set to "true" to register the sending tools. Defaults to false: the server cannot send until it is set.
  • SMTP_ALLOWED_RECIPIENTS — Comma-separated addresses and @domains this server may write to. Required with SMTP_ALLOW_SEND=true; "*" allows any.
  • SMTP_MAX_RECIPIENTS — Maximum distinct recipients across To, Cc and Bcc in one message. Default 10.
  • SMTP_MAX_SENDS_PER_HOUR — Sliding hourly cap on messages sent. Default 20.
  • SMTP_MAX_MESSAGE_BYTES — Maximum size of the composed message. Default 10485760.
  • SMTP_MAX_ATTACHMENT_BYTES — Maximum size of a single attachment. Default 5242880.
  • SMTP_ATTACHMENT_DIR — Directory attachments are read from. Unset means attachments are unavailable.
  • SMTP_ATTACHMENT_TYPES — Comma-separated content types that may be attached. Defaults to a document and image allowlist.
  • SMTP_SIGNATURE — Text appended below the standard signature delimiter of every message.
  • SMTP_AUDIT_LOG — File the audit lines are appended to, in addition to stderr.
  • SMTP_ALLOW_TOOLS — Comma-separated tool names, a prefix with one trailing *, or "essential" for the curated preset.
  • SMTP_DENY_TOOLS — Comma-separated tool names or prefixes to remove, applied after SMTP_ALLOW_TOOLS.
  • SMTP_INSECURE_TLS — Set to "true" to accept self-signed certificates. Prefer a proper internal CA.

Package (oci)

docker run -i --rm ghcr.io/ni-c/smtp-mcp:0.2.0

Or add to your MCP client config:

{
  "mcpServers": {
    "smtp-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/ni-c/smtp-mcp:0.2.0"
      ],
      "env": {
        "SMTP_HOST": "<YOUR_VALUE>",
        "SMTP_PORT": "<YOUR_VALUE>",
        "SMTP_TLS": "<YOUR_VALUE>",
        "SMTP_USER": "<YOUR_VALUE>",
        "SMTP_PASSWORD": "<YOUR_VALUE>",
        "SMTP_FROM": "<YOUR_VALUE>",
        "SMTP_REPLY_TO": "<YOUR_VALUE>",
        "SMTP_ALLOW_SEND": "<YOUR_VALUE>",
        "SMTP_ALLOWED_RECIPIENTS": "<YOUR_VALUE>",
        "SMTP_MAX_RECIPIENTS": "<YOUR_VALUE>",
        "SMTP_MAX_SENDS_PER_HOUR": "<YOUR_VALUE>",
        "SMTP_MAX_MESSAGE_BYTES": "<YOUR_VALUE>",
        "SMTP_MAX_ATTACHMENT_BYTES": "<YOUR_VALUE>",
        "SMTP_ATTACHMENT_DIR": "<YOUR_VALUE>",
        "SMTP_ATTACHMENT_TYPES": "<YOUR_VALUE>",
        "SMTP_SIGNATURE": "<YOUR_VALUE>",
        "SMTP_AUDIT_LOG": "<YOUR_VALUE>",
        "SMTP_ALLOW_TOOLS": "<YOUR_VALUE>",
        "SMTP_DENY_TOOLS": "<YOUR_VALUE>",
        "SMTP_INSECURE_TLS": "<YOUR_VALUE>"
      }
    }
  }
}
  • SMTP_HOST required — Hostname of the SMTP server, e.g. smtp.example.net.
  • SMTP_PORT — Port. Defaults to 587 for starttls, 465 for implicit, 25 for none.
  • SMTP_TLS — starttls (default), implicit or none. STARTTLS is required, never opportunistic.
  • SMTP_USER required — Username for SMTP authentication.
  • SMTP_PASSWORD required secret — Password or app-specific password for SMTP authentication.
  • SMTP_FROM required — The only sender this server will use, e.g. "Name <person@example.net>". There is no from parameter.
  • SMTP_REPLY_TO — Reply-To header on every message, e.g. "Team <team@example.net>". Unset means no Reply-To header and replies go to SMTP_FROM. There is no reply_to parameter.
  • SMTP_ALLOW_SEND — Set to "true" to register the sending tools. Defaults to false: the server cannot send until it is set.
  • SMTP_ALLOWED_RECIPIENTS — Comma-separated addresses and @domains this server may write to. Required with SMTP_ALLOW_SEND=true; "*" allows any.
  • SMTP_MAX_RECIPIENTS — Maximum distinct recipients across To, Cc and Bcc in one message. Default 10.
  • SMTP_MAX_SENDS_PER_HOUR — Sliding hourly cap on messages sent. Default 20.
  • SMTP_MAX_MESSAGE_BYTES — Maximum size of the composed message. Default 10485760.
  • SMTP_MAX_ATTACHMENT_BYTES — Maximum size of a single attachment. Default 5242880.
  • SMTP_ATTACHMENT_DIR — Directory attachments are read from. Unset means attachments are unavailable.
  • SMTP_ATTACHMENT_TYPES — Comma-separated content types that may be attached. Defaults to a document and image allowlist.
  • SMTP_SIGNATURE — Text appended below the standard signature delimiter of every message.
  • SMTP_AUDIT_LOG — File the audit lines are appended to, in addition to stderr.
  • SMTP_ALLOW_TOOLS — Comma-separated tool names, a prefix with one trailing *, or "essential" for the curated preset.
  • SMTP_DENY_TOOLS — Comma-separated tool names or prefixes to remove, applied after SMTP_ALLOW_TOOLS.
  • SMTP_INSECURE_TLS — Set to "true" to accept self-signed certificates. Prefer a proper internal CA.

Related servers

Listed in punkpeye/awesome-mcp-servers (MIT)

Data from the Official MCP Registry