eu.lettio/mcp is an MCP server that private, EU-hosted email for AI agents over JMAP: read, search, reply, draft, organize, send. Its tool list has not been published yet over http and stdio, requires no API key, and scores 61/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"lettio": {
"env": {
"LETTIO_PASSWORD": "your-app-password",
"LETTIO_USERNAME": "you@yourcompany.eu"
},
"args": [
"-y",
"@lettio/mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Private, EU-hosted email for AI agents over JMAP: read, search, reply, draft, organize, send.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
npx -y '@lettio/mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @lettio/mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in ai-ml / communication
A cross-platform desktop application for managing AI Agents and MCP Servers. 一款用于管理AI智能体与MCP服务器的跨平台桌面应用程序。
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
An open-source AI agent that brings the power of Gemini directly into your terminal.
🛡️ BLA (Blind LLM Agents) — Adversarial defense shield that protects binaries, Electron apps, JS bundles, Python, and WebAssembly against AI reverse-engineering agents like REA. Poison -> Exhaust -> Hallucinate.
MCP Security Weekly
Get CVE alerts and security updates for eu.lettio/mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Let your AI assistant read, search and send email from a private, EU-hosted mailbox.
Lettio MCP is a Model Context Protocol server that connects an AI agent (Claude, Cursor, and any other MCP client) to a Lettio mailbox over JMAP. Your assistant can triage your inbox, find a message, and send a reply.
Prefer nothing to install? Lettio also runs as a hosted, OAuth‑secured MCP server at
https://mcp.lettio.eu/mcp— add that URL in your client and sign in. This npm package is the local / self‑hosted option for people who want to run it on their own machine.
The hosted server at https://mcp.lettio.eu/mcp adds three tools that open interactive cards in clients that support MCP Apps, such as Claude:
show_emails: the inbox, a folder or search results as a list you can open, archive and flagshow_email: a whole conversation, with Reply, Reply all, Archive and Trashpreview_email: a drafted message you can edit, preview in your brand and sendSending from a card always needs your click, even when the connection doesn't allow the agent to send on its own. One connection can cover up to 10 mailboxes; searches run across all of them.

| Tool | What it does |
|---|---|
whoami | Show the connected mailbox and whether it may send. |
list_accounts | List configured mailboxes (local server). |
list_mailboxes | List folders with message and unread counts. |
list_recent_emails | Latest messages in a folder, with paging. |
search_emails | Free text plus filters: sender, recipient, subject, dates, attachments, unread, folder. |
read_email | One message as text, with its attachments listed. HTML mail is converted. |
get_thread | A whole conversation, oldest first. |
get_attachment | Open an attachment: text and PDF as text, images as images, others as binary. Locally it can also save to a file. |
send_email | Send formatted mail as the signed-in mailbox, with attachments. |
reply_email | Reply in-thread, optionally to everyone, with attachments. |
create_draft | Save a message to Drafts without sending. |
create_reply_draft | Save a threaded reply to Drafts without sending. |
send_draft | Send a draft that is already in Drafts. |
set_read_status | Mark messages read or unread. |
flag_email | Flag or unflag messages. |
label_email | Add or remove a label. |
move_email | Move to a folder, archive, or trash (reversible). |
create_folder | Create a mail folder. |
Messages are written in Markdown and rendered as a styled email: headings, tables, quotes (end with > — Name), callouts (> [!NOTE] Title), code blocks, numbered steps and buttons ([Label](https://url "button")). The mailbox signature is added automatically; set it with set_signature.
To match your brand, set LETTIO_BRANDS to JSON (or a path to a JSON file) keyed by domain:
{ "example.com": { "primary": "#231F47", "accent": "#D8093A", "font": "Lexend, Arial, sans-serif" } }
Formatted mail goes out as HTML with a plain-text version. Pass format: "plain" to send text as written. Bulk tools take up to 100 ids.
Attachments can be base64 content, a local path, or from_email_id with attachment_id to reuse a file from another message.