MCP server that sends mail over SMTP, gated behind an allowlist and a human confirmation
Connect Runs on your machine
claude mcp add smtp-mcp -e SMTP_HOST=<SMTP_HOST> -e SMTP_PORT=<SMTP_PORT> -e SMTP_TLS=<SMTP_TLS> -e SMTP_USER=<SMTP_USER> -e SMTP_PASSWORD=<SMTP_PASSWORD> -e SMTP_FROM=<SMTP_FROM> -e SMTP_REPLY_TO=<SMTP_REPLY_TO> -e SMTP_ALLOW_SEND=<SMTP_ALLOW_SEND> -e SMTP_ALLOWED_RECIPIENTS=<SMTP_ALLOWED_RECIPIENTS> -e SMTP_MAX_RECIPIENTS=<SMTP_MAX_RECIPIENTS> -e SMTP_MAX_SENDS_PER_HOUR=<SMTP_MAX_SENDS_PER_HOUR> -e SMTP_MAX_MESSAGE_BYTES=<SMTP_MAX_MESSAGE_BYTES> -e SMTP_MAX_ATTACHMENT_BYTES=<SMTP_MAX_ATTACHMENT_BYTES> -e SMTP_ATTACHMENT_DIR=<SMTP_ATTACHMENT_DIR> -e SMTP_ATTACHMENT_TYPES=<SMTP_ATTACHMENT_TYPES> -e SMTP_SIGNATURE=<SMTP_SIGNATURE> -e SMTP_AUDIT_LOG=<SMTP_AUDIT_LOG> -e SMTP_ALLOW_TOOLS=<SMTP_ALLOW_TOOLS> -e SMTP_DENY_TOOLS=<SMTP_DENY_TOOLS> -e SMTP_INSECURE_TLS=<SMTP_INSECURE_TLS> -- npx -y @ni-c/[email protected]
{
"mcpServers": {
"smtp-mcp": {
"command": "npx",
"args": [
"-y",
"@ni-c/[email protected]"
],
"env": {
"SMTP_HOST": "<SMTP_HOST>",
"SMTP_PORT": "<SMTP_PORT>",
"SMTP_TLS": "<SMTP_TLS>",
"SMTP_USER": "<SMTP_USER>",
"SMTP_PASSWORD": "<SMTP_PASSWORD>",
"SMTP_FROM": "<SMTP_FROM>",
"SMTP_REPLY_TO": "<SMTP_REPLY_TO>",
"SMTP_ALLOW_SEND": "<SMTP_ALLOW_SEND>",
"SMTP_ALLOWED_RECIPIENTS": "<SMTP_ALLOWED_RECIPIENTS>",
"SMTP_MAX_RECIPIENTS": "<SMTP_MAX_RECIPIENTS>",
"SMTP_MAX_SENDS_PER_HOUR": "<SMTP_MAX_SENDS_PER_HOUR>",
"SMTP_MAX_MESSAGE_BYTES": "<SMTP_MAX_MESSAGE_BYTES>",
"SMTP_MAX_ATTACHMENT_BYTES": "<SMTP_MAX_ATTACHMENT_BYTES>",
"SMTP_ATTACHMENT_DIR": "<SMTP_ATTACHMENT_DIR>",
"SMTP_ATTACHMENT_TYPES": "<SMTP_ATTACHMENT_TYPES>",
"SMTP_SIGNATURE": "<SMTP_SIGNATURE>",
"SMTP_AUDIT_LOG": "<SMTP_AUDIT_LOG>",
"SMTP_ALLOW_TOOLS": "<SMTP_ALLOW_TOOLS>",
"SMTP_DENY_TOOLS": "<SMTP_DENY_TOOLS>",
"SMTP_INSECURE_TLS": "<SMTP_INSECURE_TLS>"
}
}
}
}
{
"mcpServers": {
"smtp-mcp": {
"command": "npx",
"args": [
"-y",
"@ni-c/[email protected]"
],
"env": {
"SMTP_HOST": "<SMTP_HOST>",
"SMTP_PORT": "<SMTP_PORT>",
"SMTP_TLS": "<SMTP_TLS>",
"SMTP_USER": "<SMTP_USER>",
"SMTP_PASSWORD": "<SMTP_PASSWORD>",
"SMTP_FROM": "<SMTP_FROM>",
"SMTP_REPLY_TO": "<SMTP_REPLY_TO>",
"SMTP_ALLOW_SEND": "<SMTP_ALLOW_SEND>",
"SMTP_ALLOWED_RECIPIENTS": "<SMTP_ALLOWED_RECIPIENTS>",
"SMTP_MAX_RECIPIENTS": "<SMTP_MAX_RECIPIENTS>",
"SMTP_MAX_SENDS_PER_HOUR": "<SMTP_MAX_SENDS_PER_HOUR>",
"SMTP_MAX_MESSAGE_BYTES": "<SMTP_MAX_MESSAGE_BYTES>",
"SMTP_MAX_ATTACHMENT_BYTES": "<SMTP_MAX_ATTACHMENT_BYTES>",
"SMTP_ATTACHMENT_DIR": "<SMTP_ATTACHMENT_DIR>",
"SMTP_ATTACHMENT_TYPES": "<SMTP_ATTACHMENT_TYPES>",
"SMTP_SIGNATURE": "<SMTP_SIGNATURE>",
"SMTP_AUDIT_LOG": "<SMTP_AUDIT_LOG>",
"SMTP_ALLOW_TOOLS": "<SMTP_ALLOW_TOOLS>",
"SMTP_DENY_TOOLS": "<SMTP_DENY_TOOLS>",
"SMTP_INSECURE_TLS": "<SMTP_INSECURE_TLS>"
}
}
}
}
{
"servers": {
"smtp-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ni-c/[email protected]"
],
"env": {
"SMTP_HOST": "<SMTP_HOST>",
"SMTP_PORT": "<SMTP_PORT>",
"SMTP_TLS": "<SMTP_TLS>",
"SMTP_USER": "<SMTP_USER>",
"SMTP_PASSWORD": "<SMTP_PASSWORD>",
"SMTP_FROM": "<SMTP_FROM>",
"SMTP_REPLY_TO": "<SMTP_REPLY_TO>",
"SMTP_ALLOW_SEND": "<SMTP_ALLOW_SEND>",
"SMTP_ALLOWED_RECIPIENTS": "<SMTP_ALLOWED_RECIPIENTS>",
"SMTP_MAX_RECIPIENTS": "<SMTP_MAX_RECIPIENTS>",
"SMTP_MAX_SENDS_PER_HOUR": "<SMTP_MAX_SENDS_PER_HOUR>",
"SMTP_MAX_MESSAGE_BYTES": "<SMTP_MAX_MESSAGE_BYTES>",
"SMTP_MAX_ATTACHMENT_BYTES": "<SMTP_MAX_ATTACHMENT_BYTES>",
"SMTP_ATTACHMENT_DIR": "<SMTP_ATTACHMENT_DIR>",
"SMTP_ATTACHMENT_TYPES": "<SMTP_ATTACHMENT_TYPES>",
"SMTP_SIGNATURE": "<SMTP_SIGNATURE>",
"SMTP_AUDIT_LOG": "<SMTP_AUDIT_LOG>",
"SMTP_ALLOW_TOOLS": "<SMTP_ALLOW_TOOLS>",
"SMTP_DENY_TOOLS": "<SMTP_DENY_TOOLS>",
"SMTP_INSECURE_TLS": "<SMTP_INSECURE_TLS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
SMTP_HOSTRequired | Hostname of the SMTP server, e.g. smtp.example.net. |
SMTP_PORTOptional | Port. Defaults to 587 for starttls, 465 for implicit, 25 for none. |
SMTP_TLSOptional | starttls (default), implicit or none. STARTTLS is required, never opportunistic. |
SMTP_USERRequired | Username for SMTP authentication. |
SMTP_PASSWORDRequired, secret | Password or app-specific password for SMTP authentication. |
SMTP_FROMRequired | The only sender this server will use, e.g. "Name <[email protected]>". There is no from parameter. |
SMTP_REPLY_TOOptional | 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_SENDOptional | Set to "true" to register the sending tools. Defaults to false: the server cannot send until it is set. |
SMTP_ALLOWED_RECIPIENTSOptional | Comma-separated addresses and @domains this server may write to. Required with SMTP_ALLOW_SEND=true; "*" allows any. |
SMTP_MAX_RECIPIENTSOptional | Maximum distinct recipients across To, Cc and Bcc in one message. Default 10. |
SMTP_MAX_SENDS_PER_HOUROptional | Sliding hourly cap on messages sent. Default 20. |
SMTP_MAX_MESSAGE_BYTESOptional | Maximum size of the composed message. Default 10485760. |
SMTP_MAX_ATTACHMENT_BYTESOptional | Maximum size of a single attachment. Default 5242880. |
SMTP_ATTACHMENT_DIROptional | Directory attachments are read from. Unset means attachments are unavailable. |
SMTP_ATTACHMENT_TYPESOptional | Comma-separated content types that may be attached. Defaults to a document and image allowlist. |
SMTP_SIGNATUREOptional | Text appended below the standard signature delimiter of every message. |
SMTP_AUDIT_LOGOptional | File the audit lines are appended to, in addition to stderr. |
SMTP_ALLOW_TOOLSOptional | Comma-separated tool names, a prefix with one trailing *, or "essential" for the curated preset. |
SMTP_DENY_TOOLSOptional | Comma-separated tool names or prefixes to remove, applied after SMTP_ALLOW_TOOLS. |
SMTP_INSECURE_TLSOptional | Set to "true" to accept self-signed certificates. Prefer a proper internal CA. |
Details
| Package | @ni-c/[email protected] (NPM, stdio) |
| Package | ghcr.io/ni-c/smtp-mcp:0.2.0 (OCI, stdio) |
| First published | 7 Sep 2026 |
| Last updated | 7 Sep 2026 |
| Registry name | io.github.ni-c/smtp-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
