smtp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SMTP_TLS | No | starttls, implicit or none. Never opportunistic. | starttls |
| SMTP_FROM | Yes | The only sender used, e.g. Name <person@example.net>. There is no from parameter. | |
| SMTP_HOST | Yes | Hostname of the SMTP server, e.g. smtp.example.net. | |
| SMTP_PORT | No | Depends on SMTP_TLS. | 587 / 465 / 25 |
| SMTP_USER | Yes | Username for SMTP authentication. | |
| ELICITATION | No | false replaces the approval dialog with the two-call token. Not prefixed. | true |
| SMTP_PASSWORD | Yes | Password or app-specific password. | |
| SMTP_AUDIT_LOG | No | File the audit lines are appended to, in addition to stderr. | |
| SMTP_SIGNATURE | No | Text appended below the standard -- delimiter. | |
| SMTP_ALLOW_SEND | No | Set to true to register the sending tools. | false |
| SMTP_DENY_TOOLS | No | Removed after SMTP_ALLOW_TOOLS is applied. | |
| SMTP_ALLOW_TOOLS | No | Tool names, a prefix with one trailing *, or essential. | |
| SMTP_INSECURE_TLS | No | Accept self-signed certificates. | false |
| SMTP_ATTACHMENT_DIR | No | Directory attachments are read from. Unset means no attachments. | |
| SMTP_MAX_RECIPIENTS | No | Distinct recipients across To, Cc and Bcc in one message. | 10 |
| SMTP_ATTACHMENT_TYPES | No | Comma-separated content types that may be attached. text/html and application/zip are opt-in. | |
| SMTP_MAX_MESSAGE_BYTES | No | Size ceiling on the composed message. | 10485760 |
| SMTP_ALLOWED_RECIPIENTS | No | Comma-separated addresses and @domains. * allows anyone. Required when SMTP_ALLOW_SEND=true. | |
| SMTP_MAX_SENDS_PER_HOUR | No | Sliding hourly cap. | 20 |
| SMTP_MAX_ATTACHMENT_BYTES | No | Size ceiling on one attachment. | 5242880 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_infoA | Reports the SMTP endpoint, the fixed sender address, who this server is allowed to write to, the current limits and whether sending is switched on at all. Call this first: it answers "can I send, and to whom" without touching the network. |
| validate_recipientsA | Says which of the given addresses this server is allowed to write to, and why the others are refused. Nothing is sent and no connection is made. Use it before composing a message rather than discovering the refusal afterwards. |
| preview_mailA | Builds exactly the message a send would build and returns its headers and bodies, without connecting to anything. Every check a send performs runs here too — the allowlist, the recipient limit, the attachment policy and the size limit — so this is the way to find out whether a message is acceptable before asking a human to approve it. The sending tools register only when SMTP_ALLOW_SEND is true and may therefore be absent even where this preview succeeds; get_server_info reports whether sending is on. Attachment payloads are summarised by name, size and digest rather than printed. |
| test_connectionA | Opens a connection to the SMTP server, negotiates TLS and authenticates, then closes it again. No message is sent. Use it to tell a configuration problem apart from a delivery problem. Tries the server at most once every ten seconds; a call inside that window repeats the previous outcome and says so. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool serves a clearly distinct purpose: test_connection verifies connectivity, get_server_info provides configuration details, preview_mail builds a message without sending, and validate_recipients checks recipient permissions. There is no overlap or ambiguity between these tools.
All tool names follow a consistent verb_noun pattern in snake_case (test_connection, get_server_info, preview_mail, validate_recipients). This uniformity makes the toolset predictable and easy to navigate.
With 4 tools, the server is well-scoped for its purpose of SMTP configuration verification and pre-send checks. Each tool addresses a distinct aspect of the workflow, and the count is neither too sparse nor excessive for the stated functionality.
The toolset fully covers the domain of pre-send validation: retrieving server info, testing the connection, previewing messages with all checks, and validating recipients. The absence of a send tool is intentional (conditional on SMTP_ALLOW_SEND), so the surface is complete for its defined scope.