Lettio MCP

eu.lettio由 lettio.eu 发布官方发布者v0.5.0更新于 Nov 3, 2026

面向 AI 智能体的私有、托管于欧盟的 JMAP 电子邮件:读取、搜索、回复、起草、整理、发送。

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

Private, EU-hosted email for AI agents over JMAP: read, search, reply, draft, organize, send.

已验证Streamable HTTP可网页运行效率与工作流沟通与协作

概览

Lettio 的托管 MCP 服务(mcp.lettio.eu),由 lettio.eu 发布;需要 OAuth 登录;Streamable HTTP;20 个工具。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

发布者
lettio.eu
端点
mcp.lettio.eu
最近检查

安装

在 SourceWeft 中

  1. 打开 控制台中的 Lettio MCP,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/eu.lettio%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "lettio": {
      "type": "http",
      "url": "https://mcp.lettio.eu/mcp"
    }
  }
}

README

Lettio MCP

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.

  • 🇪🇺 European by default — talks to your own EU-hosted mailbox, no third‑party middleman.
  • 🔒 Safe sending — the server can only ever send as the mailbox it is signed in to. It cannot be tricked into sending from another address.
  • 📬 Everything an agent needs — list, search, read and send, over the open JMAP standard.
  • 👥 One or many mailboxes — configure a single account or several.

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.

Hosted server: mail cards in Claude

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 flag
  • show_email: a whole conversation, with Reply, Reply all, Archive and Trash
  • preview_email: a drafted message you can edit, preview in your brand and send

Sending 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.

[Lettio mail cards in Claude]

Tools

ToolWhat it does
whoamiShow the connected mailbox and whether it may send.
list_accountsList configured mailboxes (local server).
list_mailboxesList folders with message and unread counts.
list_recent_emailsLatest messages in a folder, with paging.
search_emailsFree text plus filters: sender, recipient, subject, dates, attachments, unread, folder.
read_emailOne message as text, with its attachments listed. HTML mail is converted.
get_threadA whole conversation, oldest first.
get_attachmentOpen an attachment: text and PDF as text, images as images, others as binary. Locally it can also save to a file.
send_emailSend formatted mail as the signed-in mailbox, with attachments.
reply_emailReply in-thread, optionally to everyone, with attachments.
create_draftSave a message to Drafts without sending.
create_reply_draftSave a threaded reply to Drafts without sending.
send_draftSend a draft that is already in Drafts.
set_read_statusMark messages read or unread.
flag_emailFlag or unflag messages.
label_emailAdd or remove a label.
move_emailMove to a folder, archive, or trash (reversible).
create_folderCreate 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:

json
{ "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.

Requirements

  • Node.js 18 or newer.
  • A Lettio mailbox and an app password for it (use a dedicated app password, not your main login).

Use with Claude Desktop

Add this to your claude_desktop_config.json:

json
{  "mcpServers": {    "lettio": {      "command": "npx",      "args": ["-y", "@lettio/mcp"],      "env": {        "LETTIO_USERNAME": "[email protected]",        "LETTIO_PASSWORD": "your-app-password"      }    }  }}

Restart Claude Desktop; the Lettio tools appear in the tools menu.

Configuration

Configured entirely through environment variables.

Single mailbox

VariableRequiredDescription
LETTIO_USERNAMEyesFull email address, e.g. [email protected].
LETTIO_PASSWORDyesMailbox app password.
LETTIO_HOSTnoMail host. Defaults to https://mail.lettio.eu.
LETTIO_ACCOUNT_NAMEnoFriendly name for the account (default: the username).

Several mailboxes

Set LETTIO_ACCOUNTS to a JSON array and omit the single‑account variables:

json
[  { "name": "work", "username": "[email protected]", "password": "app-password" },  { "name": "sales", "username": "[email protected]", "password": "app-password" }]

Then pass account: "work" to any tool to choose which mailbox to use.

Security

Sending is deliberately constrained. Before it sends, the server asks the mail host for the identities the signed‑in mailbox is allowed to use and requires one that matches the login address. The From header and the SMTP envelope MAIL FROM are both pinned to that address. There is no parameter for choosing a different sender, so an agent can never send "from" a foreign or arbitrary mailbox. Credentials are read from the environment, kept only in memory, and never logged.

Run from source

bash
npm installnpm run build[email protected] LETTIO_PASSWORD=app-password npm start

License

MIT © Valmia Solutions s.r.o.

来源:README.md,提交 41ad3bb

工具

20

whoami

Show which mailbox this connection uses and whether it may send.

输入参数account

list_accounts

List the mailboxes this server can use.

无需输入参数。

list_mailboxes

List folders with message and unread counts.

输入参数account

list_recent_emails

List the most recent emails in a folder, newest first.

输入参数limitoffsetaccountmailboxunread_only

search_emails

Search email. Combine free text with filters; all given filters must match. With several mailboxes and no account, searches them all.

输入参数tofromafterlimitquerybeforeoffsetaccountmailboxsubjectunread_onlyhas_attachment

read_email

Read one email: its text and a list of attachments. HTML mail is converted to text.

输入参数id必填account

get_thread

Read the whole conversation an email belongs to, oldest first.

输入参数id必填account

get_attachment

Open an attachment. Text and PDF come back as text, images as images, other files as a binary resource. Give save_to to write it to a local file instead.

输入参数accountsave_toemail_id必填attachment_id必填

send_email

Send an email from this mailbox. This really sends, and the sender is always this mailbox. Write in Markdown; recipients get formatted HTML with a plain-text version.

输入参数ccto必填bccbody必填formataccountsubject必填signatureattachments

reply_email

Reply in the same conversation and send it. Replies to the sender, or to everyone with reply_all.

输入参数id必填body必填formataccountreply_allsignatureattachments

create_draft

Save a new message to Drafts without sending it.

输入参数ccto必填bccbody必填formataccountsubject必填signatureattachments

create_reply_draft

Save a reply to Drafts, in the same conversation, without sending it.

输入参数id必填body必填formataccountreply_allsignatureattachments

send_draft

Send a draft that is already in Drafts. This really sends.

输入参数id必填account

get_signature

Show the signature that is added to outgoing mail.

输入参数account

set_signature

Set the signature added to outgoing mail. Stored on the mailbox, so it applies to every client that reads it.

输入参数htmltext必填account

set_read_status

Mark emails read or unread.

输入参数ids必填read必填account

flag_email

Flag (star) or unflag emails.

输入参数ids必填accountflagged必填

label_email

Add or remove a label on emails.

输入参数addids必填label必填account

move_email

Move emails to a folder. Use "archive", "trash" (reversible), "inbox", or a folder name.

输入参数ids必填accountmailbox必填

create_folder

Create a mail folder, optionally inside another.

输入参数name必填parentaccount

版本历史

2
  1. v0.5.0最新Nov 3, 2026
  2. v0.1.2Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分