{"name":"io.github.ni-c/smtp-mcp","slug":"ni-c-smtp-mcp","title":"SMTP","description":"MCP server that sends mail over SMTP, gated behind an allowlist and a human confirmation","url":"https://mcp.market/server/ni-c-smtp-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"email","tags":["email"],"presence":{"score":26,"stars":0,"forks":0,"downloads_week":44,"last_push_at":"2026-09-16T08:42:37.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/ni-c/smtp-mcp","website":"https://smtp-mcp.ni-c.de","version":"0.2.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@ni-c/smtp-mcp","version":"0.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Hostname of the SMTP server, e.g. smtp.example.net.","isRequired":true,"format":"string","name":"SMTP_HOST"},{"description":"Port. Defaults to 587 for starttls, 465 for implicit, 25 for none.","format":"number","name":"SMTP_PORT"},{"description":"starttls (default), implicit or none. STARTTLS is required, never opportunistic.","format":"string","name":"SMTP_TLS"},{"description":"Username for SMTP authentication.","isRequired":true,"format":"string","name":"SMTP_USER"},{"description":"Password or app-specific password for SMTP authentication.","isRequired":true,"format":"string","isSecret":true,"name":"SMTP_PASSWORD"},{"description":"The only sender this server will use, e.g. \"Name <person@example.net>\". There is no from parameter.","isRequired":true,"format":"string","name":"SMTP_FROM"},{"description":"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.","format":"string","name":"SMTP_REPLY_TO"},{"description":"Set to \"true\" to register the sending tools. Defaults to false: the server cannot send until it is set.","format":"boolean","name":"SMTP_ALLOW_SEND"},{"description":"Comma-separated addresses and @domains this server may write to. Required with SMTP_ALLOW_SEND=true; \"*\" allows any.","format":"string","name":"SMTP_ALLOWED_RECIPIENTS"},{"description":"Maximum distinct recipients across To, Cc and Bcc in one message. Default 10.","format":"number","name":"SMTP_MAX_RECIPIENTS"},{"description":"Sliding hourly cap on messages sent. Default 20.","format":"number","name":"SMTP_MAX_SENDS_PER_HOUR"},{"description":"Maximum size of the composed message. Default 10485760.","format":"number","name":"SMTP_MAX_MESSAGE_BYTES"},{"description":"Maximum size of a single attachment. Default 5242880.","format":"number","name":"SMTP_MAX_ATTACHMENT_BYTES"},{"description":"Directory attachments are read from. Unset means attachments are unavailable.","format":"string","name":"SMTP_ATTACHMENT_DIR"},{"description":"Comma-separated content types that may be attached. Defaults to a document and image allowlist.","format":"string","name":"SMTP_ATTACHMENT_TYPES"},{"description":"Text appended below the standard signature delimiter of every message.","format":"string","name":"SMTP_SIGNATURE"},{"description":"File the audit lines are appended to, in addition to stderr.","format":"string","name":"SMTP_AUDIT_LOG"},{"description":"Comma-separated tool names, a prefix with one trailing *, or \"essential\" for the curated preset.","format":"string","name":"SMTP_ALLOW_TOOLS"},{"description":"Comma-separated tool names or prefixes to remove, applied after SMTP_ALLOW_TOOLS.","format":"string","name":"SMTP_DENY_TOOLS"},{"description":"Set to \"true\" to accept self-signed certificates. Prefer a proper internal CA.","format":"boolean","name":"SMTP_INSECURE_TLS"}]},{"registryType":"oci","identifier":"ghcr.io/ni-c/smtp-mcp:0.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Hostname of the SMTP server, e.g. smtp.example.net.","isRequired":true,"format":"string","name":"SMTP_HOST"},{"description":"Port. Defaults to 587 for starttls, 465 for implicit, 25 for none.","format":"number","name":"SMTP_PORT"},{"description":"starttls (default), implicit or none. STARTTLS is required, never opportunistic.","format":"string","name":"SMTP_TLS"},{"description":"Username for SMTP authentication.","isRequired":true,"format":"string","name":"SMTP_USER"},{"description":"Password or app-specific password for SMTP authentication.","isRequired":true,"format":"string","isSecret":true,"name":"SMTP_PASSWORD"},{"description":"The only sender this server will use, e.g. \"Name <person@example.net>\". There is no from parameter.","isRequired":true,"format":"string","name":"SMTP_FROM"},{"description":"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.","format":"string","name":"SMTP_REPLY_TO"},{"description":"Set to \"true\" to register the sending tools. Defaults to false: the server cannot send until it is set.","format":"boolean","name":"SMTP_ALLOW_SEND"},{"description":"Comma-separated addresses and @domains this server may write to. Required with SMTP_ALLOW_SEND=true; \"*\" allows any.","format":"string","name":"SMTP_ALLOWED_RECIPIENTS"},{"description":"Maximum distinct recipients across To, Cc and Bcc in one message. Default 10.","format":"number","name":"SMTP_MAX_RECIPIENTS"},{"description":"Sliding hourly cap on messages sent. Default 20.","format":"number","name":"SMTP_MAX_SENDS_PER_HOUR"},{"description":"Maximum size of the composed message. Default 10485760.","format":"number","name":"SMTP_MAX_MESSAGE_BYTES"},{"description":"Maximum size of a single attachment. Default 5242880.","format":"number","name":"SMTP_MAX_ATTACHMENT_BYTES"},{"description":"Directory attachments are read from. Unset means attachments are unavailable.","format":"string","name":"SMTP_ATTACHMENT_DIR"},{"description":"Comma-separated content types that may be attached. Defaults to a document and image allowlist.","format":"string","name":"SMTP_ATTACHMENT_TYPES"},{"description":"Text appended below the standard signature delimiter of every message.","format":"string","name":"SMTP_SIGNATURE"},{"description":"File the audit lines are appended to, in addition to stderr.","format":"string","name":"SMTP_AUDIT_LOG"},{"description":"Comma-separated tool names, a prefix with one trailing *, or \"essential\" for the curated preset.","format":"string","name":"SMTP_ALLOW_TOOLS"},{"description":"Comma-separated tool names or prefixes to remove, applied after SMTP_ALLOW_TOOLS.","format":"string","name":"SMTP_DENY_TOOLS"},{"description":"Set to \"true\" to accept self-signed certificates. Prefer a proper internal CA.","format":"boolean","name":"SMTP_INSECURE_TLS"}]}],"tools":[{"name":"forward_mail","description":"Forwards a message to new recipients. Put the original text in","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_server_info","description":"Reports the SMTP endpoint, the fixed sender address, who this server","write_action":false,"price_micros":0,"input_schema":null},{"name":"preview_mail","description":"Builds exactly the message a send would build and returns its","write_action":false,"price_micros":0,"input_schema":null},{"name":"reply_mail","description":"Sends a reply that mail clients will thread under the original. Pass","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_mail","description":"Sends a new message from the configured sender. Asks the user to","write_action":true,"price_micros":0,"input_schema":null},{"name":"test_connection","description":"Opens a connection to the SMTP server, negotiates TLS and","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_recipients","description":"Says which of the given addresses this server is allowed to write to,","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-20T00:26:50.498Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:26:50.489Z","components":{"code":{"score":25,"max":25,"notes":["45 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 4 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@ni-c/smtp-mcp","version":"0.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":6,"publishedAt":"2026-09-07T18:02:37.632Z","repositoryUrl":"git+https://github.com/ni-c/smtp-mcp.git","weeklyDownloads":44}],"repo":{"found":true,"owner":"ni-c","repo":"smtp-mcp","archived":false,"pushedAt":"2026-09-16T08:42:37Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/283341?v=4","ownerCreatedAt":"2010-05-21T13:00:22Z","license":"MIT"},"icon":{"url":"https://smtp-mcp.ni-c.de/favicon.svg","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":44,"license":"MIT","lastPushAt":"2026-09-16T08:42:37.000Z","score":26}}}},"grade_history":[],"reviews":[]}