email-tool

io.github.skhan61由 GitHub 账号 skhan61 发布v5.6.0更新于 Nov 3, 2026

IMAP/SMTP email for AI assistants: read, search, draft and send, with CMMC-grade safeguards.

已验证STDIO仅桌面效率与工作流沟通与协作

概览

AI 生成的概览

本地 IMAP/SMTP 邮件服务器,让助手列出邮箱、读取、搜索、起草、发送和删除邮件,并处理附件。

可以做什么
  • 列出已配置的邮箱及其文件夹,并检查每个邮箱能否登录
  • 按发件人、主题、正文或日期列出和搜索邮件,并完整读取单封邮件且不标记为已读
  • 把邮件附件保存到用户指定的文件夹
  • 创建、列出、读取和更新草稿,包括加入会话的回复草稿
  • 立即发送带附件的邮件,或永久删除某封邮件
  • 通过浏览器设置页添加邮箱,并生成或发送问题报告给维护者
适用场景
适合希望助手在本机处理真实邮件的场景:整理和搜索邮箱、准备待审阅的草稿,或发送用户明确批准的消息;也适用于需要记录操作、发送前需审批的组织。
运行要求
作为本地进程运行在用户的桌面电脑上(PyPI 包 email-tool-mcp,可通过 uv 或应用安装器安装)。需通过浏览器打开的设置页添加至少一个邮箱,密码在该页面输入并保存在操作系统钥匙串中。需要能访问邮件服务商的 IMAP/SMTP 服务器。
安装前请注意
发送和删除不可撤销,删除为永久删除;服务器会要求用户明确确认具体邮件,疑似敏感的附件会先展示给用户确认。密码只能在设置页输入,切勿在对话中提供。问题报告工具会收集版本、应用信息、邮箱类型和最近失败的调用,并移除地址、主题、引用文本、路径和密钥;发送该报告会把数据发给维护者,发送前应用会展示确切内容供批准。

安装

在 SourceWeft 中

  1. 打开 控制台中的 email-tool,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[email-tool icon]

email-tool

Email for any AI agent that speaks MCP: Claude Code, Claude Desktop, Cowork, ChatGPT desktop, Codex and others.
Read, search, draft and send mail, with attachments, over IMAP/SMTP.

Works with
[Claude Code plugin] [Claude Desktop and Cowork] [ChatGPT desktop and Codex] [MCP server]

Compliance
[CMMC Level 2 / NIST SP 800-171 control mapping]

Build and security
[CI] [CodeQL] [OpenSSF Scorecard] [Latest release]

Code quality
[Python version] [Tested on Linux, macOS and Windows] [Ruff] [mypy strict] [uv] [pre-commit] [Dependabot]

Project
[License] [Security policy] [Contributing]

email-tool lets an AI assistant read, search, draft and send your email. It runs on your own computer, keeps passwords in your operating system's keyring, and is built for organizations under CMMC Level 2 and NIST SP 800-171: every action is logged, sending can wait for your approval, and CUI-marked mail stays inside the domains you allow.

Documentation: skhan61.github.io/email-tool

Quick start

No terminal, any app: Start here. Install email-tool in your app (Claude Desktop and Cowork: one file to open; ChatGPT desktop and Codex: one installer to open), then ask your assistant to "add my mailbox".

From a terminal:

  1. Install uv.

  2. Connect your AI app. In Claude Code:

    text
    /plugin marketplace add skhan61/email-tool/plugin install email-tool@email-tool

    Other apps: Advanced setup.

  3. Ask your assistant to "add my mailbox", or from a terminal:

    bash
    uv tool install email-tool-mcpemail-tool-mcp add work --auth microsoft --address [email protected]

    Gmail, Google Workspace and other accounts: Mailbox details.

Documentation

PageWhat it covers
Start hereInstall in any app and add a mailbox, no terminal
Everyday useWhat to ask, the tools, approving before sending
Mailbox detailsWhat each mailbox needs (Gmail App Password, Microsoft, GCC High, Google Workspace, others), and the terminal steps
Advanced setupuv by hand, configuration files, ChatGPT Business, other MCP apps, update or remove
Why CMMCEach protection, with examples
CMMC control mappingNIST SP 800-171 requirements, evidence and your part
For administratorsPolicy, audit log, FIPS mode, your own Microsoft or Google app
TroubleshootingEvery message and its fix
PrivacyWhat email-tool accesses and where it goes

Contributing and security

See CONTRIBUTING.md. Report vulnerabilities privately as described in SECURITY.md.

License

MIT

来源:README.md,提交 c17996b

工具

15

list_mailboxes

List the mailboxes configured on this machine and whether each can log in.

无需输入参数。

list_folders

List every folder in the mailbox.

输入参数mailbox

list_emails

List the newest messages in a folder, newest first.

输入参数limitfoldermailbox

search_emails

Search a folder by sender, subject, body text or date (since, as DD-Mon-YYYY). On Gmail, `gmail_query` takes Gmail's own search syntax instead; other servers ignore it. Supply at least one field.

输入参数bodylimitsincefoldersendermailboxsubjectgmail_query

get_email

Read one message in full by UID. Does not mark it as read.

输入参数uid必填foldermailbox

save_attachment

Save one attachment of a message into a folder the user names. The file is never opened. A relative folder is taken from the user's home ("Downloads" is ~/Downloads). Saving into a place where a file can run (autostart, .ssh, ...) asks the user first.

输入参数uid必填index必填foldermailboxdirectory必填confirm_sensitive

delete_email

Permanently delete one message by UID. This cannot be undone.

输入参数uid必填folder必填mailbox

create_draft

Save a new draft into the drafts folder, with any attachments. Does not send it. For a reply, `in_reply_to_uid` names the message answered, so the draft joins its conversation.

输入参数ccto必填bodyhtmlfolder必填mailboxsubjectattachmentsin_reply_to_uidin_reply_to_folder

list_drafts

List the newest drafts, newest first.

输入参数limitfolder必填mailbox

get_draft

Read one draft in full by UID.

输入参数uid必填folder必填mailbox

update_draft

Replace an existing draft with new content and attachments, keyed by UID. IMAP has no in-place edit: the replacement is stored first, then the original deleted. A reply draft stays in its conversation; `in_reply_to_uid` moves it to another one.

输入参数ccto必填uid必填bodyhtmlfolder必填mailboxsubjectattachmentsin_reply_to_uidin_reply_to_folder

send_email

Send an email immediately from this mailbox, with any attachments. This is not reversible. Attachments that look sensitive (keys, credentials, CUI) are shown to the user to confirm first. For a reply, `in_reply_to_uid` names the message answered, so the reply joins its conversation.

输入参数ccto必填body必填htmlmailboxsubject必填attachmentsin_reply_to_uidconfirm_sensitivein_reply_to_folder

add_mailbox

Open a setup page in the user's browser to add a mailbox: Gmail, Outlook or Microsoft 365, Google Workspace, or any other. The user types any password on that page only; never ask for it in the chat. Closing the app's page box can read as "canceled" even after a mailbox was added: then call list_mailboxes to see whether it was.

无需输入参数。

report_problem

Build a problem report for the email-tool maintainer when the user wants to report a problem. It holds the versions, the app, the kinds of mailbox and the last few failed calls, with addresses, subjects, quoted text, home-folder paths, passwords, tokens and keys removed. It changes nothing and sends nothing; it says how the user can send it.

输入参数description必填

email_problem_report

Email a report from report_problem to the email-tool maintainer, from one of the user's mailboxes. The user's app always shows them the exact message to approve first. If the app cannot ask, nothing is sent: offer the GitHub link from report_problem instead.

输入参数report必填mailbox

版本历史

3
  1. v5.6.0最新Oct 29, 2026
  2. v5.5.0Oct 23, 2026
  3. v5.4.4Oct 23, 2026

评分

已满足适用检查项的 90%

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

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分