Mail and contacts on a self-hosted Stalwart server via JMAP: search, read, OCR, send, drafts.
Connect Runs on your machine
claude mcp add stalwart-mail-mcp -e STALWART_URL=<STALWART_URL> -e STALWART_USER=<STALWART_USER> -e STALWART_PASSWORD=<STALWART_PASSWORD> -e MAIL_LANG=<MAIL_LANG> -e MAIL_OCR_PROVIDER=<MAIL_OCR_PROVIDER> -e MAIL_OCR_API_KEY=<MAIL_OCR_API_KEY> -e MAIL_OCR_MODEL=<MAIL_OCR_MODEL> -e MAIL_OCR_BASE_URL=<MAIL_OCR_BASE_URL> -- npx -y [email protected]
{
"mcpServers": {
"stalwart-mail-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"STALWART_URL": "<STALWART_URL>",
"STALWART_USER": "<STALWART_USER>",
"STALWART_PASSWORD": "<STALWART_PASSWORD>",
"MAIL_LANG": "<MAIL_LANG>",
"MAIL_OCR_PROVIDER": "<MAIL_OCR_PROVIDER>",
"MAIL_OCR_API_KEY": "<MAIL_OCR_API_KEY>",
"MAIL_OCR_MODEL": "<MAIL_OCR_MODEL>",
"MAIL_OCR_BASE_URL": "<MAIL_OCR_BASE_URL>"
}
}
}
}
{
"mcpServers": {
"stalwart-mail-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"STALWART_URL": "<STALWART_URL>",
"STALWART_USER": "<STALWART_USER>",
"STALWART_PASSWORD": "<STALWART_PASSWORD>",
"MAIL_LANG": "<MAIL_LANG>",
"MAIL_OCR_PROVIDER": "<MAIL_OCR_PROVIDER>",
"MAIL_OCR_API_KEY": "<MAIL_OCR_API_KEY>",
"MAIL_OCR_MODEL": "<MAIL_OCR_MODEL>",
"MAIL_OCR_BASE_URL": "<MAIL_OCR_BASE_URL>"
}
}
}
}
{
"servers": {
"stalwart-mail-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"STALWART_URL": "<STALWART_URL>",
"STALWART_USER": "<STALWART_USER>",
"STALWART_PASSWORD": "<STALWART_PASSWORD>",
"MAIL_LANG": "<MAIL_LANG>",
"MAIL_OCR_PROVIDER": "<MAIL_OCR_PROVIDER>",
"MAIL_OCR_API_KEY": "<MAIL_OCR_API_KEY>",
"MAIL_OCR_MODEL": "<MAIL_OCR_MODEL>",
"MAIL_OCR_BASE_URL": "<MAIL_OCR_BASE_URL>"
}
}
}
}
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 |
|---|---|
STALWART_URLRequired | Public address of the Stalwart server, e.g. https://mail.example.com |
STALWART_USERRequired | Mailbox e-mail address to sign in with |
STALWART_PASSWORDRequired, secret | Mailbox or app password |
MAIL_LANGOptional | Language: auto, en, cs, de, es, fr, it, nl, pl, pt, sk |
MAIL_OCR_PROVIDEROptional | OCR of scans: auto, off, mistral, anthropic, openai, openrouter, gemini, ollama, lmstudio, custom |
MAIL_OCR_API_KEYOptional, secret | API key of the OCR provider (not needed for local servers) |
MAIL_OCR_MODELOptional | OCR model name |
MAIL_OCR_BASE_URLOptional | Address of a custom OpenAI-compatible OCR server |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 2 Oct 2026 |
| Last updated | 2 Oct 2026 |
| Registry name | io.github.cybersmurf/stalwart-mail-mcp |
More search and web servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
