← 返回
沟通协作 中文

read-no-evil-mcp

Secure email access via read-no-evil-mcp. Protects against prompt injection attacks in emails. Use for reading, sending, deleting, and moving emails.
通过 read-no-evil-mcp 实现安全的邮件访问,防范邮件中的提示注入攻击。支持邮件的读取、发送、删除和移动。
thekie
沟通协作 clawhub v0.3.1 1 版本 99856.4 Key: 无需
★ 1
Stars
📥 2,066
下载
💾 47
安装
1
版本
#latest

概述

read-no-evil-mcp

Secure email gateway that scans emails for prompt injection attacks before you see them.

This skill is a zero-dependency HTTP client that talks to a read-no-evil-mcp server. Credentials and email servers are managed entirely by the MCP server — this skill never has direct access to them.

Prerequisites

A running read-no-evil-mcp server with HTTP transport enabled. Three connection modes:

  1. Remote server — An existing server on another machine. You need the URL (e.g. http://server:8000).
  2. Local server — An existing server on localhost. Uses default http://localhost:8000.
  3. New Docker setup — Use scripts/setup-server.sh to pull the official Docker image and start a container.

No pip install is required. The script uses only Python stdlib.

Setup Flow (AI Agent Instructions)

Before first use, always ask the user how they want to connect:

> How would you like to connect to the read-no-evil-mcp server?

> 1. Connect to an existing remote server (you'll provide the URL)

> 2. Connect to an existing local server (localhost:8000)

> 3. Set up a new local server via Docker

  • For option 1: Ask for the server URL, then use --server URL with all commands.
  • For option 2: No extra configuration needed, commands use the default URL.
  • For option 3: Follow the Docker setup steps below.

Never auto-setup Docker without explicit user confirmation.

Docker Setup Steps

  1. Check if a config exists: setup-config.py list
  2. If no config, create one and add an account:

```bash

setup-config.py create

setup-config.py add --email user@example.com --host imap.example.com --create-env

```

  1. Ask the user to fill in the password in the .env file.
  2. Start the server:

```bash

scripts/setup-server.sh --config ~/.config/read-no-evil-mcp/config.yaml \

--env-file ~/.config/read-no-evil-mcp/.env

```

Config Management (AI Agent Instructions)

Use scripts/setup-config.py to manage the server config file. All commands are flag-driven with no interactive prompts.

ScenarioCommand
-------------------
Create config skeletonsetup-config.py create [--threshold 0.5] [--force]
Add a read-only accountsetup-config.py add --email user@example.com --host imap.example.com [--id myaccount] [--create-env]
Add a send-enabled accountsetup-config.py add --email user@example.com --host imap.example.com --smtp-host smtp.example.com --send [--delete] [--move] [--create-env]
Check what accounts are configuredsetup-config.py list
Remove an accountsetup-config.py remove

Do NOT run setup-config.py show — it displays config details the user may not intend to share with the agent. If debugging is needed, tell the user to run it themselves.

Do NOT run setup-config.py create --force if config already exists without asking the user first.

Config Commands

Manage the server config file (~/.config/read-no-evil-mcp/config.yaml). No pip install required — stdlib only.

# Create a new config skeleton
setup-config.py create
setup-config.py create --threshold 0.3 --force

# Add a read-only account (no SMTP needed)
setup-config.py add --email user@example.com --host imap.example.com --create-env

# Add an account with send permission (--smtp-host required for --send)
setup-config.py add --email user@example.com --id myaccount \
  --host imap.example.com --smtp-host smtp.example.com --send --delete --move

# Remove an account
setup-config.py remove <account-id>

# List configured accounts
setup-config.py list

# Show full config file
setup-config.py show

# Use a custom config path
setup-config.py --config /path/to/config.yaml create

Server Setup

# Start a Docker container (all flags required, no prompts)
scripts/setup-server.sh --config ~/.config/read-no-evil-mcp/config.yaml \
  --env-file ~/.config/read-no-evil-mcp/.env

# Custom port and container name
scripts/setup-server.sh --config /path/to/config.yaml \
  --env-file /path/to/.env --port 9000 --name my-rnoe

CLI Commands

Global options (--server, --account, --folder) can appear before or after the command. Server URL can also be set via RNOE_SERVER_URL env var.

# List configured accounts
rnoe-mail.py accounts

# List recent emails (last 30 days)
# Output: [UID] ● DATE | SENDER | SUBJECT  (● = unread)
rnoe-mail.py list
rnoe-mail.py list --account myaccount --limit 10 --days 7

# Read email (scanned for prompt injection!)
rnoe-mail.py read <uid>
rnoe-mail.py --account myaccount read <uid>

# Send email
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"

# List folders
rnoe-mail.py folders --account myaccount

# Move email to folder
rnoe-mail.py move <uid> --to "Archive"

# Delete email
rnoe-mail.py delete <uid>

# Global options can go before or after the command
rnoe-mail.py --server http://myserver:8000 list
rnoe-mail.py list --server http://myserver:8000

Common Options

OptionDescriptionDefault
------------------------------
--server URLMCP server URLhttp://localhost:8000
--account ID / -aAccount IDdefault
--folder NAME / -fEmail folderINBOX

Prompt Injection Detection

All emails are automatically scanned by the MCP server:

  • Safe: Content displayed normally
  • Injection detected: Exit code 2, warning on stderr

Exit Codes

  • 0 — success
  • 1 — general error (connection failed, invalid account, etc.)
  • 2 — prompt injection detected

Security Notes

  • Credentials are managed by the MCP server, never by this skill or the AI agent
  • The skill communicates with the server over HTTP — use HTTPS for non-localhost connections
  • Prompt injection scanning happens server-side using ML models

版本历史

共 1 个版本

  • v0.3.1 当前
    2026-03-28 16:58 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

communication-collaboration

Slack

steipete
当需要通过 slack 工具从 Clawdbot 控制 Slack 时使用,包括在频道或私信中回复消息或置顶/取消置顶项目。
★ 157 📥 47,688
communication-collaboration

imap-smtp-email

gzlicanyi
使用IMAP/SMTP读取和发送邮件;检查新/未读邮件、获取内容、搜索邮箱、标记已读/未读、发送带附件的邮件。支持...
★ 114 📥 52,443
developer-tools

Clawdbot Skill Cookidoo

thekie
通过非官方的cookidoo-api Python包访问Cookidoo(Thermomix)食谱、购物清单和膳食计划。用于查看食谱、周计划、收藏夹,以及同步食材到购物清单。
★ 3 📥 2,312