read-no-evil-mcp

通过MCP服务器对邮件进行提示注入攻击检测,保障邮件安全访问。

已扫描
适合谁
需要安全处理邮件的个人用户、关注邮件安全的企业员工
不适合谁
无需邮件管理的普通用户、无法配置远程或本地MCP服务器的用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @thekie/read-no-evil-mcp

Skill 说明

命令、参数、文件名以原文为准

read-no-evil-mcp

安全的电子邮件网关,在您查看邮件前扫描提示注入攻击。

此技能是一个无依赖项的 HTTP 客户端,用于与 [read-no-evil-mcp](https://github.com/thekie/read-no-evil-mcp) 服务器通信。凭据和邮件服务器均由 MCP 服务器管理——该技能不会直接访问这些信息。

前置条件

需要运行一个启用了 HTTP 传输的 read-no-evil-mcp 服务器。支持三种连接模式:

  1. 远程服务器 — 另一台机器上的现有服务器。需提供 URL(例如 http://server:8000)。
  2. 本地服务器 — 本地主机上的现有服务器。默认使用 http://localhost:8000
  3. 新 Docker 环境 — 使用 scripts/setup-server.sh 脚本拉取官方 Docker 镜像并启动容器。

无需 pip install。脚本仅使用 Python 标准库。

设置流程(AI 代理指令)

首次使用前,务必询问用户希望如何连接:

您希望如何连接到 read-no-evil-mcp 服务器?

  1. 连接到现有的远程服务器(您将提供 URL)
  2. 连接到现有的本地服务器(localhost:8000)
  3. 通过 Docker 设置新的本地服务器
  • 若选择 1:请用户提供服务器 URL,后续所有命令使用 --server URL
  • 若选择 2:无需额外配置,命令默认使用默认 URL。
  • 若选择 3:请遵循下方 Docker 设置步骤。

在未获得用户明确确认前,不得自动设置 Docker。

Docker 设置步骤

  1. 检查是否存在配置文件:setup-config.py list
  2. 若无配置文件,请创建并添加账户:
   setup-config.py create
   setup-config.py add --email user@example.com --host imap.example.com --create-env
  1. 提示用户在 .env 文件中填写密码。
  2. 启动服务器:
   scripts/setup-server.sh --config ~/.config/read-no-evil-mcp/config.yaml \
     --env-file ~/.config/read-no-evil-mcp/.env

配置管理(AI 代理指令)

使用 scripts/setup-config.py 管理服务器配置文件。所有命令均为标志驱动,不包含交互式提示。

场景命令
创建配置骨架setup-config.py create [--threshold 0.5] [--force]
添加只读账户setup-config.py add --email user@example.com --host imap.example.com [--id myaccount] [--create-env]
添加可发送账户(需指定 SMTP 主机)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 <id>

不要运行 setup-config.py show —— 该命令会显示用户可能不愿与代理共享的配置详情。如需调试,请告知用户自行运行。

不要在已有配置的情况下未经用户确认就运行 setup-config.py create --force

配置命令

管理服务器配置文件(~/.config/read-no-evil-mcp/config.yaml)。无需 pip 安装——仅使用标准库。

# 创建新的配置骨架
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

# 添加具有发送权限的账户(需指定 --smtp-host 才能启用 --send)
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 <account-id>

# 列出已配置账户
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

CLI 命令

全局选项(--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 read <uid>
rnoe-mail.py --account myaccount read <uid>

# 发送邮件
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 <uid> --to "Archive"

# 删除邮件
rnoe-mail.py delete <uid>

# 全局选项可放在命令前或后
rnoe-mail.py --server http://myserver:8000 list
rnoe-mail.py list --server http://myserver:8000

常用选项

选项描述默认值
--server URLMCP 服务器地址http://localhost:8000
--account ID / -a账户 IDdefault
--folder NAME / -f邮件文件夹INBOX

提示注入检测

所有邮件均由 MCP 服务器自动扫描:

  • 安全:内容正常显示
  • 检测到注入:退出码为 2,错误输出显示警告

退出码

  • 0 — 成功
  • 1 — 一般错误(连接失败、账户无效等)
  • 2 — 检测到提示注入

安全说明

  • 凭据由 MCP 服务器管理,不会由本技能或 AI 代理持有
  • 该技能通过 HTTP 与服务器通信——非本地连接时建议使用 HTTPS
  • 提示注入扫描在服务器端完成,使用机器学习模型
T
@thekie

已收录 1 个 Skill

相关推荐