通过 read-no-evil-mcp 实现安全邮件访问,防止邮件中的提示注入攻击,用于读取、发送、删除和移动邮件。
读取- no-evil- mcp. 安全扫描电子邮件的电子邮件网关, 以便在看到邮件前进行快速注入攻击是一项面向实际任务的技能,主要用于这种技能是零依赖的 HTTP 客户端, 向读取- no-evil- mcp 服务器说话。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
一款安全邮件网关,在您查看邮件前扫描其中是否存在提示注入(prompt injection)攻击。
该技能是一个零依赖的 HTTP 客户端,用于与 read-no-evil-mcp 服务端通信。凭据及邮件服务器配置均由 MCP 服务端统一管理——本技能自身**从不直接访问**任何凭据或邮件服务器。
需运行一个已启用 HTTP 传输协议的 read-no-evil-mcp 服务端。支持三种连接模式:
http://server:8000)。http://localhost:8000。scripts/setup-server.sh 脚本拉取官方 Docker 镜像并启动容器。无需执行 pip install。该脚本仅使用 Python 标准库(stdlib)。
首次使用前,务必先向用户询问连接方式:
您希望如何连接到 read-no-evil-mcp 服务端?
- 连接至已有的远程服务端(您将提供 URL)
- 连接至已有的本地服务端(localhost:8000)
- 通过 Docker 部署一个新的本地服务端
--server URL 参数。严禁在未获得用户明确确认的情况下自动执行 Docker 初始化。
setup-config.py listsetup-config.py create setup-config.py add --email user@example.com --host imap.example.com --create-env
.env 文件中填写密码。scripts/setup-server.sh --config ~/.config/read-no-evil-mcp/config.yaml --env-file ~/.config/read-no-evil-mcp/.env
使用 scripts/setup-config.py 管理服务端配置文件(config.yaml)。所有命令均通过参数驱动,**不包含任何交互式提示**。
| 场景 | 命令 |
|---|---|
| 创建空配置骨架 | setup-config.py create [--threshold 0.5] [--force] |
| 添加只读账户 | setup-config.py add --email user@example.com --host imap.example.com [--id myaccount] [--create-env] |
| 添加具备发送权限的账户 | setup-config.py add --email user@example.com --host imap.example.com --smtp-host smtp.example.com --send [--delete] [--move] [--create-env] |
| 查看当前已配置的账户列表 | setup-config.py list |
| 移除指定账户 | setup-config.py remove |
禁止执行 setup-config.py show —— 该命令会输出完整配置内容,而用户可能并不希望将敏感信息暴露给 AI Agent。如需调试,请指导用户自行运行该命令。
禁止在配置文件已存在时,未经用户确认即执行 setup-config.py create --force。
用于管理服务端配置文件(~/.config/read-no-evil-mcp/config.yaml)。无需 pip install,仅依赖 Python 标准库。
# 创建新的空配置骨架 setup-config.py create setup-config.py create --threshold 0.3 --force # 添加只读账户(无需 SMTP 配置) setup-config.py add --email user@example.com --host imap.example.com --create-env # 添加具备发送权限的账户(启用 --send 时必须指定 --smtp-host) setup-config.py add --email user@example.com --id myaccount --host imap.example.com --smtp-host smtp.example.com --send --delete --move # 移除账户 setup-config.py remove# 列出已配置的账户 setup-config.py list # 显示完整配置文件内容 setup-config.py show # 使用自定义配置路径 setup-config.py --config /path/to/config.yaml create
# 启动 Docker 容器(所有参数均为必需,无交互提示) scripts/setup-server.sh --config ~/.config/read-no-evil-mcp/config.yaml --env-file ~/.config/read-no-evil-mcp/.env # 自定义端口与容器名称 scripts/setup-server.sh --config /path/to/config.yaml --env-file /path/to/.env --port 9000 --name my-rnoe
全局选项(--server、--account、--folder)可置于命令之前或之后。服务端 URL 亦可通过环境变量 RNOE_SERVER_URL 设置。
# 列出已配置的账户 rnoe-mail.py accounts # 列出近期邮件(最近 30 天) # 输出格式:[UID] ● DATE | SENDER | SUBJECT (● 表示未读) rnoe-mail.py list rnoe-mail.py list --account myaccount --limit 10 --days 7 # 阅读邮件(已由服务端完成提示注入扫描!) rnoe-mail.py readrnoe-mail.py --account myaccount read # 发送邮件 rnoe-mail.py send --to "user@example.com" --subject "Hello" --body "Message" rnoe-mail.py send --to "user1@example.com, user2@example.com" --cc "cc@example.com" --subject "Hello" --body "Message" # 列出邮箱文件夹 rnoe-mail.py folders --account myaccount # 将邮件移入指定文件夹 rnoe-mail.py move --to "Archive" # 删除邮件 rnoe-mail.py delete # 全局选项可置于命令前后任意位置 rnoe-mail.py --server http://myserver:8000 list rnoe-mail.py list --server http://myserver:8000
| 选项 | 说明 | 默认值 |
|---|---|---|
--server URL |
MCP 服务端 URL | http://localhost:8000 |
--account ID / -a |
账户 ID | default |
--folder NAME / -f |
邮箱文件夹名称 | INBOX |
所有邮件均由 MCP 服务端自动扫描:
0 — 成功1 — 通用错误(连接失败、账户无效等)2 — 检测到提示注入相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章