Stalwart MCP
About
MCP server for Stalwart mail server via JMAP — mailboxes, search, send, and admin
Details
- Author
- codechap
- Categories
- Communication, Search, Knowledge Base, Productivity
Jump to
Setup
Install Stalwart MCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/codechap/mcp-server-stalwart
Follow the installation instructions in the repository README, then restart your MCP client.
- Rust (2024 edition)
- A Stalwart mail server with JMAP enabled
Binary is output totarget/release/mcp-server-stalwart.
The server connects via stdio and is configured through environment variables.
Switch tools onto another mailbox withaccount(e.g.hello@codechap.com) without needing the admin API.
If an app (invoice mailer, WordPress, etc.) is configured with the admin password as the SMTP secret, Stalwart returns535 Authentication credentials invalidandnothing is queued.check_sentwill correctly show zero submissions. Useverify_account_authto test credentials before chasing delivery.
{ "mcpServers": { "stalwart": { "command": "/path/to/mcp-server-stalwart", "env": { "JMAP_SESSION_URL": "https://mail.example.com/jmap/session", "JMAP_USERNAME": "you@example.com", "JMAP_PASSWORD": "your-password", "JMAP_SECRETS_FILE": "/home/you/.local/share/mailman4/secrets.toml", "STALWART_ADMIN_URL": "https://mail.example.com", "STALWART_ADMIN_PASSWORD": "admin-password" } } } }
List all mailboxes/folders with message counts.
Search emails with filters. Returns email IDs -- useget_emailsto read full content.
Get full email content by IDs. Returns subject, from, to, date, body text, and metadata.
Permanently delete emails by ID. Cannot be undone.
Send an email with optional HTML body and file attachments. Whenhtml_bodyis provided, the email is sent as multipart with both plain text and HTML parts -- the recipient's email client will choose which to display.
Download all attachments from an email to a local directory.
Create a new email account on the server. Requires admin API configuration.
List all accounts, or get details for one. Requires admin API configuration.
Add or remove an email alias on an account. Requires admin API configuration.
Update an account'senabledPermissions. Newly-created principals start with no permissions and cannot authenticate, send, or receive mail until permissions are granted. Requires admin API configuration.
Reset an account's password. Ifpasswordis omitted, a strong 24-character random password is generated. The new password is returned in plaintext in the response so it can be delivered to the user. Requires admin API configuration.
List email addresses that have DSN (Delivery Status Notification) delivery reports enabled. Requires admin API configuration.
Set which email addresses receive DSN delivery reports (SUCCESS + FAILURE). Replaces the full list. Requires admin API configuration.
The first tool to reach for when verifying any outbound email— contact forms, WordPresswp_mail(), invoice/statement mailers, password resets, transactional mail — anything needing"did this leave the server?".
Reads Stalwart's/api/logs(authoritative) and groups byqueueId: submission → delivery attempt → final status (delivery.delivered/delivery.dsn-success/delivery.failed) plus upstream MXcode/hostname.
Do NOT search mailboxes first— SMTP submissions are not auto-saved to Sent. Start here.
How the log fetch works (production lesson):
Stalwart's server-sidefilter=query oftenhangson multi-GB daily log files. By default this tool fetches the newestscan_limitrowsunfilteredand appliesto/from/filterclient-side(fast: ~300ms for 1000 rows). Passuse_server_filter=trueonly if you know you need it (e.g. a unique queueId on a quiet host).
- "Did the invoice mailer / contact form send toap@client.com?"
- "Was a transactional email delivered — what did Gmail return?"
- "Why bounce — remote SMTP code?"
Returnsmessages_found,delivered_count,failed_count, per-message timelines (mx_code/mx_hostname), plusauth_events(submission auth success/failure) and alog_window.
Test whether a username/password is accepted by Stalwart (same secret as SMTP port 587). Use whencheck_sentshowsno submission— usually the app has the wrong password.
Connect Claude, ChatGPT, and other AI tools to your Granola meeting notes via MCP. Query your notes, search transcripts, and get meeting insights in your favorite AI assistants.
MCP server for full Gmail operations via Unipile API. 9 tools: send, reply, list, read, delete, search, labels, attachments, drafts. Dry-run by default, 55 unit tests. MIT licensed.
Telegram MCP server with 20 tools — read chats, search messages, download media via MTProto
Search, read, and send personal WhatsApp messages, contacts, and media files.
A WhatsApp MCP (Model Context Protocol) server that connects your WhatsApp account with AI agents, enabling automated messaging, contact search, and chat interaction through LLMs.
Connect your Plaud recordings to any MCP-compatible AI client. Search recordings, read transcripts, and generate documents without leaving your AI assistant.
Agent-native forum for the x402/A2A ecosystem. The hosted MCP server exposes the whole forum as tools — threads, comments, votes, USDC bounties (Coinbase x402 on Base), provider reviews, and search. Endpoint: https://api.achivx.com/mcp/ (HTTP, OAuth 2.1).
Interact with Confluence to execute CQL queries, retrieve page content, and update pages.
Fetch and interact with Hacker News content, including top stories, comments, and search functionality.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



