localSMTP-mcp
by fclef819
README.md
localSMTP
=========
Local dummy SMTP server for development. It accepts messages and writes the
original bytes to `.eml` files.
## SMTP server
```powershell
uv run localsmtp --host 127.0.0.1 --port 25 --out ./mail
```
The legacy entry point also works:
```powershell
uv run python .\main.py --host 127.0.0.1 --port 25 --out ./mail
```
## MCP server
The MCP entry point starts both the MCP stdio server and an SMTP listener. This
lets coding agents start the mail catcher only when they need it.
```powershell
uv run localsmtp-mcp --smtp-host 127.0.0.1 --smtp-port 25
```
By default, the MCP server stores received mail in a temporary directory. Pass
`--out` when you want to keep messages in a specific location.
After publishing the package, use it from an MCP client with `uvx`:
```json
{
"mcpServers": {
"localsmtp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/fclef819/localSMTP-mcp.git",
"localsmtp-mcp",
"--smtp-host",
"127.0.0.1",
"--smtp-port",
"25"
]
}
}
}
```
## MCP tools
- `list_messages(limit = 50, newest_first = true)`
- `get_message(id, include_raw = false)`
- `clear_messages()`
- `get_server_status()`
TDQS
A3.5/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a distinct purpose: clearing all messages, retrieving a specific message, checking server status, and listing messages. No overlap in functionality.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern (e.g., clear_messages, get_message), making it predictable for agents.
Tool Count5/5
With only 4 tools, the set is well-scoped for a local SMTP server, covering essential operations without unnecessary bloat.
Completeness4/5
The set covers core operations (list, get, clear, status) but lacks individual message deletion or filtering, which could be useful but not critical.
Maintenance
ActivityStale
ResponsivenessNo issues