llmail
一 主控程序 允许LLM通过IMAP访问您的电子邮件的服务器。还附带了内置聊天客户端,无需外部MCP主机即可独立使用。
授予法学硕士访问您的电子邮件的权限本质上是有风险的。看 安全.md 完整的威胁模型和建议。
MCP服务器
llmail的核心是一个MCP服务器,它通过stdio将您的电子邮件作为工具公开。将其连接到Claude Desktop、Claude Code或任何兼容MCP的客户端。
特性
- 多帐户IMAP 设置连接池
- Gmail扩展 --原生X-GM-RAW搜索和标签支持
- 本地全文搜索 通过 成为 具有背景同步功能
- 服务器端SORT和THREAD 当IMAP服务器支持它时
- 消息管理 --移动、复制、回收、标记、草稿、编辑、取消订阅
- 快速注射防护 使用Meta的Prompt Guard 2(DeBERTa分类器)在CPU上运行
- 安全的凭证存储 通过系统密钥环或加密配置
- 命名配置文件 针对每个用例的独立配置、凭据和索引
工具
| 工具 | 说明 |
|---|---|
list_accounts | 列出已配置的电子邮件帐户 |
list_folders | 列出帐户中的文件夹 |
imap_search | 服务器端IMAP搜索 |
gmail_search | Gmail原生搜索(X-GM-RAW) |
search_local_index | 在本地Bleve索引上进行全文搜索 |
list_messages | 列出文件夹中的邮件 |
get_message | 获取具有可配置详细级别的消息 |
get_attachment | 下载附件 |
save_attachment | 将附件保存到磁盘 |
get_thread | 获取完整的消息线程 |
move_messages | 在文件夹之间移动邮件 |
copy_messages | 将邮件复制到另一个文件夹 |
delete_messages | 将邮件移至垃圾箱(不支持永久删除) |
set_flags | 设置/清除消息标志(已读、带星号等) |
create_draft | 创建新的电子邮件草稿(必须从电子邮件客户端手动发送) |
edit_message | 编辑以前由llmail创建的邮件 |
create_folder | 创建新文件夹 |
rename_folder | 重命名文件夹 |
trash_folder | 将文件夹中的所有邮件移至回收站,然后删除空文件夹 |
unsubscribe | 通过“列表取消订阅”标题一键取消订阅 |
index_status | 显示本地索引同步状态 |
help | 搜索语法参考和使用主题 |
内置聊天客户端
对于独立使用,llmail包括一个具有流媒体和工具调用功能的交互式聊天客户端。此模式要求配置LLM提供程序。
支持的提供商:
- Anthropic (克劳德)
- 开放人工智能
- 开放路由
- 奥拉玛
- 任何与OpenAI兼容的API 通过自定义基本URL
llmail chat安全模型
llmail仅通过IMAP进行操作 无法发送电子邮件The create_draft 该工具将草稿保存到“草稿”文件夹;您必须打开电子邮件客户端并亲自发送。
LLM可以做什么:
- 阅读、搜索和获取邮件和附件
- 将附件下载到本地文件(无法覆盖文件)
- 在文件夹之间移动和复制邮件
- 垃圾箱邮件(移动到垃圾箱--不支持永久删除)
- 创建和重命名文件夹;回收站文件夹(将内容移至回收站,然后删除空文件夹)
- 设置/清除旗帜(阅读、星号等)
- 创建和编辑草稿消息(编辑仅限于创建的消息llmail,由
X-LLMail-Created头球 - 通过RFC 2369/8058标头取消订阅邮件列表
它不能做什么:
- 发送电子邮件(IMAP是一种读取/存储协议,而不是提交协议)
- 永久删除邮件或清空垃圾箱
- 编辑它没有创建的消息
行为不端的LLM可能会把你的文件夹和标志弄得一团糟,或者批量将邮件移动到垃圾箱,但它不能永久销毁数据。您的电子邮件提供商的垃圾保留政策是安全网。可选的提示注入保护(Meta prompt guard 2)添加了一个基本的保护层,以防止电子邮件内容中嵌入的恶意指令。
数据泄露是主要风险。 即使没有发送访问权限,提示注入的LLM也可能通过草稿、取消订阅侧通道或代理可以访问的其他MCP工具泄露电子邮件内容。请参阅 安全.md 完整的威胁模型和建议。
安装
go install github.com/jpennington/llmail/cmd/llmail@latest快速开始
- 运行安装向导:
llmail setup这将引导您添加IMAP帐户,并可选择启用本地搜索索引、提示注入保护和LLM提供程序(用于内置聊天客户端)。
- 用作MCP服务器 (例如,使用Claude Desktop):
{
"mcpServers": {
"llmail": {
"command": "llmail",
"args": ["serve"]
}
}
}- 或者使用内置聊天客户端 (配置中需要LLM提供程序):
llmail chat命令
llmail serve Start the MCP server (stdio transport)
llmail chat Interactive chat with tool-calling LLM
llmail setup Interactive setup wizard
llmail status Show account and index info
llmail reindex Rebuild the local search index
llmail guard Manage the prompt injection guard model配置
Config住在 $XDG_CONFIG_HOME/llmail/config.yaml (通常 ~/.config/llmail/config.yaml).安装向导处理创建,但结构如下:
accounts:
personal:
host: imap.gmail.com
port: 993
username: you@gmail.com
tls: true
capabilities:
gmail_extensions: true
# Optional: only needed for `llmail chat`
llm:
provider: anthropic # or openai, openrouter, ollama, openai-compatible
model: claude-sonnet-4-20250514
# Optional: local full-text search
index:
enabled: true
folders:
- INBOX
# Optional: prompt injection detection
guard:
enabled: true
threshold: 0.80使用 --profile 在隔离配置、凭据和索引的任何命令上。
许可证
这个程序是自由软件;您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它;许可证的版本2,或(由您选择)任何更高版本。
看 许可证 全文。
