SMTP runs on your own machine — the client starts it, so there is no endpoint to ping. 74 installs a week from npm. Last commit 29 Oct 2026.
MCP server that sends mail over SMTP, gated behind an allowlist and a human confirmation
Today is the operative word: we check SMTP every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add smtp-mcp -e 'SMTP_HOST=<SMTP_HOST>' -e 'SMTP_USER=<SMTP_USER>' -e 'SMTP_PASSWORD=<SMTP_PASSWORD>' -e 'SMTP_FROM=<SMTP_FROM>' -- npx -y @ni-c/smtp-mcp
{
"mcpServers": {
"smtp-mcp": {
"command": "npx",
"args": [
"-y",
"@ni-c/smtp-mcp"
],
"env": {
"SMTP_FROM": "<SMTP_FROM>",
"SMTP_HOST": "<SMTP_HOST>",
"SMTP_PASSWORD": "<SMTP_PASSWORD>",
"SMTP_USER": "<SMTP_USER>"
}
}
}
}
[mcp_servers.smtp-mcp]
command = "npx"
args = ["-y", "@ni-c/smtp-mcp"]
env = { SMTP_HOST = "<SMTP_HOST>", SMTP_USER = "<SMTP_USER>", SMTP_PASSWORD = "<SMTP_PASSWORD>", SMTP_FROM = "<SMTP_FROM>" }
{
"mcpServers": {
"smtp-mcp": {
"command": "npx",
"args": [
"-y",
"@ni-c/smtp-mcp"
],
"env": {
"SMTP_FROM": "<SMTP_FROM>",
"SMTP_HOST": "<SMTP_HOST>",
"SMTP_PASSWORD": "<SMTP_PASSWORD>",
"SMTP_USER": "<SMTP_USER>"
}
}
}
}
{
"servers": {
"smtp-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ni-c/smtp-mcp"
],
"env": {
"SMTP_FROM": "<SMTP_FROM>",
"SMTP_HOST": "<SMTP_HOST>",
"SMTP_PASSWORD": "<SMTP_PASSWORD>",
"SMTP_USER": "<SMTP_USER>"
}
}
}
}
Put your own values in place of
<SMTP_HOST> (Hostname of the SMTP server, e.g. smtp.example.net), <SMTP_USER> (Username for SMTP authentication), <SMTP_PASSWORD> (Password or app-specific password for SMTP authentication), <SMTP_FROM> (The only sender this server will use, e.g. "Name <[email protected]>". There is no from parameter).
The author’s registry entry marks them as required.
Optional settings from the registry entry, left out of the block above:
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_REPLY_TO (Reply-To header on every message, e.g. "Team <[email protected]>". 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).
Governance proxy for MCP servers: allowlist, forced dry run, human confirmation, blast radius, audit
Stdio MCP server that inspects and (with confirmation) mutates one VPS over SSH.
MCP server for Titan Email (IMAP/SMTP), tested and confirmed with GoDaddy mailboxes.
MCP server for the Scrawly SEO crawler: query local audits and propose confirmation-gated fixes.
An MCP server whose confirmation cannot be replayed against a different call.
Sophisticated bash command MCP server that runs and manages shell execution.
Site Investigation Cost: the site's own MCP server — enquiry (enquiry = a human handoff, not a...
Self-hosted AI gateway that governs MCP servers, LLM traffic, and A2A agents behind one endpoint
Answers built from our own checks of this server.