mcpField
A
agenticmail

agenticmail

本地服务
github.com/agenticmail通信协作2426 周前更新

关于 agenticmail

AgenticMail MCP 服务为 MCP 兼容的 AI 客户端提供邮件与短信能力,包括发送、回复、转发邮件,接收验证码等。它面向需要让 AI Agent 处理真实邮箱和短信的用户与多 Agent 系统,需要运行 AgenticMail API 服务。

主要功能

  1. 01收发邮件与短信
  2. 02读取收件箱并接收验证码
  3. 03管理联系人与定时邮件
  4. 04通过 wait_for_email 过滤等待指定回复
  5. 05多 Agent 任务分派与线程记忆
  6. 06默认 stdio 传输,可选 HTTP 传输并启用鉴权

适用场景

  1. 01Agent 接收并读取网站注册的验证码
  2. 02让 Agent 自动回复或转发指定邮件
  3. 03在多个 Agent 之间通过邮件协调任务

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"agenticmail": {
"command": "npx",
"args": [
"-y",
"@agenticmail/mcp"
],
"env": {
"AGENTICMAIL_API_KEY": "<AGENTICMAIL_API_KEY>",
"AGENTICMAIL_MASTER_KEY": "<AGENTICMAIL_MASTER_KEY>",
"AGENTICMAIL_API_URL": "<AGENTICMAIL_API_URL>"
}
}
}
}
启动命令npx -y @agenticmail/mcp
需要配置的环境变量
AGENTICMAIL_API_KEY密钥Per-agent API key issued when you create the agent. Scopes every tool call to that agent's mailbox and outbound. Either AGENTICMAIL_API_KEY or AGENTICMAIL_MASTER_KEY must be set.
AGENTICMAIL_MASTER_KEY密钥Master key for admin operations (creating agents, listing all accounts, deleting agents). Set this when the MCP client needs admin tools; otherwise prefer the per-agent AGENTICMAIL_API_KEY.
AGENTICMAIL_API_URLBase URL of the AgenticMail HTTP API. Defaults to http://127.0.0.1:3100 (the port the local CLI binds). Override when the API runs on a different host or port.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@agenticmail/mcp0.5.59

工具

62

收录的工具列表 · 更新于 2 周前

参数类型必填说明
ccstring否抄送收件人(可选)
tostring是收件人电子邮件地址
htmlstring否HTML 正文(可选)
textstring否纯文本正文
subjectstring是电子邮件主题行
inReplyTostring否要回复的 Message-ID(可选)
referencesarray否用于串联邮件的 Message-ID(可选)
attachmentsarray否文件附件

详细介绍

AgenticMail 标志(粉色蝴蝶结)

@agenticmail/mcp

适用于 AgenticMail 的 MCP(模型上下文协议)服务——为任何兼容 MCP 的 AI 客户端提供完整的电子邮件和短信功能。

连接后,你的 AI Agent 可以通过自然语言发送电子邮件和短信、检查收件箱、回复消息、接收验证码、管理联系人、安排邮件发送时间、向其他 Agent 分配任务等。该服务提供 100 个工具,涵盖电子邮件、短信和 Agent 管理的所有操作。

✨ 安全性 — 0.9.27

修复了 GHSA-63gr-g7jc-v8rg — 可选的 Streamable HTTP 传输(--http / MCP_HTTP=1)缺少身份验证。

  • --http 模式现在默认绑定到 127.0.0.1,并且每个 /mcp 请求都必须携带 Authorization: Bearer <token>。
  • 首次启动时会自动生成 Bearer 令牌,并将其保存到 ~/.agenticmail/mcp-http-token(chmod 600)。可通过 MCP_HTTP_TOKEN 环境变量或 --token=<value> 覆盖。
  • 使用 --host=0.0.0.0 或 MCP_HTTP_HOST=... 绑定到其他接口——如果端点可从网络访问,启动日志会明确发出警告。
  • --insecure 可恢复旧版无身份验证行为,但仅适用于沙箱测试环境。启动时会打印醒目的警告。
  • Stdio 模式(默认模式)从未受到影响。

如果你没有使用 --http / MCP_HTTP=1,则无需采取任何操作。

✨ 0.9.0 版本新功能

  • 🧠 get_thread_id + save_thread_memory — multi_agent_extras 层级新增的两个工具。Worker 在读取新消息后调用一次 get_thread_id({uid}),然后在唤醒结束时调用 save_thread_memory({threadId, summary, commitments?, openQuestions?, lastAction?, lastUid?})。调度器会自动将记忆读回下一次唤醒的提示词中。它与调度器端的 ThreadCache 配合,可降低唤醒成本——Agent 不再需要每次都重新读取此前的 10 条消息。
  • 🎯 已更新 send_email / reply_email / forward_email / template_send 文档,说明新的 wake 默认值。默认情况下,抄送的本地 Agent 不再唤醒;设置 wake: 'all' 可恢复 0.9.0 之前的行为。

✨ 更早版本 — 0.7.9

  • 📐 call_agent 支持 outputSchema — 传入描述交付内容结构的 JSON Schema(draft-7 子集),API 会据此验证 submit_result;如果不匹配,会返回验证器错误,让 Worker 使用正确的结构重试,而不是返回自由格式的文本。该 Schema 会预先呈现在 Worker 的唤醒提示词中。示例:
    await call_agent({
      target: 'vesper',
      task: 'Audit row 34 of the YAML patch.',
      outputSchema: {
        type: 'object',
        required: ['summary', 'findings', 'recommendation'],
        properties: {
          summary:        { type: 'string' },
          findings:       { type: 'array', items: { type: 'string' } },
          recommendation: { type: 'string', enum: ['proceed', 'block'] },
        },
      },
    });
    
  • 📥 tail_worker(workerId, lines?) — 与 check_activity 配套使用。当 Worker 显示为长时间运行或状态过期时,tail_worker 会返回其日志末尾的 N 行(每次工具调用、结果和助手内容块各占一行)。仅限主密钥使用。该工具位于 multi_agent_extras 层级,因此默认工具集会为负责委派工作的宿主提供此工具。
  • 📊 check_activity 显示实时进度 — 输出现在包含最后使用的工具、工具调用次数、以 Xh Ym Zs 表示的持续时间,以及根据心跳间隔得出的 stale 标记。Worker 不再自动从注册表中移除;过期状态仅用于诊断。

✨ 早前 — 0.7.7

  • 每个发送工具都支持 wake 参数 — send_email、reply_email、forward_email、template_send、manage_drafts(send) 都接受 wake: ["alice", "bob"](或逗号分隔的字符串)。调度器只会让列出的 Agent 开始一轮 Claude 对话;其他 Agent 仍会收到邮件,但保持休眠。这是多 Agent 线程中最有效的 Token 节省方式。
  • check_activity 工具(属于 essential 集合)— 查看调度器此刻唤醒了哪些 Agent、它们正在处理什么、已运行多久,以及最近完成工作的预览。无需等待回复,即可确认“我刚发邮件的 Agent 是否真的开始工作了?”
  • 线程关闭标记 — 在主题中添加 [FINAL]、[DONE]、[CLOSED] 或 [WRAP],告知调度器该线程已结束;之后收到的任何回复都不会再触发唤醒。唤醒提示词会引导 Agent 在工作结束时添加这些标记。
  • 兼容大模型的输入类型转换 — batch_mark_read({ uids: "[1,2,3,4]" })、wait_for_email({ timeout: "120" })、manage_drafts({ where: '{"id":"abc"}' })、manage_pending({ allowSensitive: "true" }) 现在都能正常使用。字符串会在 zod 验证前完成解析。不再需要因“期望数组,收到字符串”而重试。
  • 通过 initialize 发送服务端 instructions 字段 — 每个连接的 MCP 客户端(Claude Code、ChatGPT、Cursor、Grok……)在调用任何工具之前,都会在上下文中获取协作协议。与提供方无关。
  • wait_for_email 筛选条件 — 可等待特定回复,而不仅是“任何新事件”。支持 from、subject、inReplyTo、participants、includeTasks。

安装

npm install -g @agenticmail/mcp

要求: Node.js 22+,且 AgenticMail API 服务正在运行


此软件包的功能

这是 AI 客户端与 AgenticMail 系统之间的桥梁。它以子进程的形式运行,AI 通过标准输入/输出与其通信(不会开放网络端口)。每次工具调用都会转换为发送到 AgenticMail 服务的 API 请求,响应则会以 AI 能理解的格式化文本返回。

可以这样理解:你的 AI Agent 本身并不知道如何发送电子邮件。这个 MCP 服务通过提供一组工具来教会它,例如 “send_email”、“list_inbox”、“reply_email” 等。你提出与电子邮件相关的任务时,AI 就可以调用这些工具。


设置

MCP 客户端设置(基于 CLI)

将以下内容添加到 MCP 客户端配置中(例如 .mcp.json 或项目设置):

{
  "mcpServers": {
    "agenticmail": {
      "command": "npx",
      "args": ["agenticmail-mcp"],
      "env": {
        "AGENTICMAIL_API_URL": "http://127.0.0.1:3829",
        "AGENTICMAIL_API_KEY": "ak_your_agent_key"
      }
    }
  }
}
桌面客户端

对于桌面 AI 应用,将以下内容添加到 MCP 配置文件中。路径示例:

  • macOS: ~/Library/Application Support/<app>/config.json
  • Windows: %APPDATA%\<app>\config.json
{
  "mcpServers": {
    "agenticmail": {
      "command": "npx",
      "args": ["agenticmail-mcp"],
      "env": {
        "AGENTICMAIL_API_URL": "http://127.0.0.1:3829",
        "AGENTICMAIL_API_KEY": "ak_your_agent_key"
      }
    }
  }
}
环境变量
变量必填描述
AGENTICMAIL_API_URL是AgenticMail API 服务 URL。默认端口为 3829(在 @agenticmail/[email protected] 中从 3100 更改而来,以避免与常见开发工具发生冲突)。示例:http://127.0.0.1:3829。
AGENTICMAIL_API_KEY是¹Agent API 密钥(ak_...)。当工具调用未传入 _account 时,它决定此 MCP 服务默认使用的身份。
AGENTICMAIL_MASTER_KEY否主密钥(mk_...)。管理操作(创建/删除 Agent、批准邮件、配置网关)需要此密钥。它还支持按需解析 _account——任何传入 _account: "<name>" 的工具调用,都会在首次遇到该名称时通过主密钥延迟获取对应 Agent 的 API 密钥,因此新创建的 create_account Agent 无需重启 MCP 服务即可使用。
AGENTICMAIL_ACCOUNT_KEYS_JSON否用于按调用切换身份的 JSON 映射,格式为 {"<agentName>": "<apiKey>"}。调用方传入 _account: "Fola"(等)时,服务会在该次调用期间以该 Agent 的身份进行身份验证。agenticmail claudecode install 会为 Claude Code 集成自动填充此项。

¹ 必须设置 AGENTICMAIL_API_KEY、AGENTICMAIL_MASTER_KEY 或 AGENTICMAIL_ACCOUNT_KEYS_JSON 中的至少一项,但不必三项都设置。

可选的 Streamable HTTP 传输(--http)

大多数用户应继续使用默认的 stdio 传输——上方所有 MCP 客户端配置都使用此传输。对于需要长期运行的 HTTP 端点的环境(基于浏览器的客户端、远程开发隧道、多主机设置),请传入 --http:

agenticmail-mcp --http                       # 127.0.0.1:8014, auth required
agenticmail-mcp --http --port=9001
agenticmail-mcp --http --host=0.0.0.0        # expose on network (token still required)
agenticmail-mcp --http --token=mcphttp_xxx   # use a known token instead of the minted one
agenticmail-mcp --http --insecure            # sandbox/test only — disables auth

令牌按以下顺序读取:--token=... 标志、MCP_HTTP_TOKEN 环境变量、~/.agenticmail/mcp-http-token(首次运行时自动生成)。客户端必须在每个发往 /mcp 的请求中发送 Authorization: Bearer <token>。GET /health 保持开放,只返回会话数量。

按调用切换身份(_account)

每个工具的输入架构都接受可选参数 _account: "<name>"。传入此参数时,服务会将该名称解析为 apiKey(先从 AGENTICMAIL_ACCOUNT_KEYS_JSON 获取;若未找到,则通过实时主密钥查询 /accounts),并以该 Agent 的身份执行调用。未传入 _account 时,调用会使用 AGENTICMAIL_API_KEY 作为默认身份。

@agenticmail/claudecode 集成正是通过此方式实现的:一个 MCP 服务进程,多个 AgenticMail 身份。身份为 Fola 的 Claude Code 子 Agent 会在每次调用中传入 _account: "Fola",从而读取 Fola 的真实收件箱、以 fola@localhost 的身份发送邮件,等等。

用于低成本发现的元工具(request_tools + invoke)

为缩小宿主上下文窗口,典型子 Agent 的 tools: 白名单中只预先声明约 100 个工具中的 10 个。其余约 50 个工具仍可通过两个常驻元工具访问:

  • request_tools({ query?, sets? }) — 返回未加载工具的文本目录,按集合分组(mail_extras、mail_compose、sms、account_admin 等)。可选子字符串筛选器或集合名称筛选器。
  • invoke({ tool, args, _account? }) — 按名称分派到 100 个工具中的任意一个。Agent 使用 request_tools 发现工具,再使用 invoke 调用。

令牌影响:典型子 Agent 启动时加载的工具架构约为 3K 个令牌,而非约 15K 个。代价是执行不常用操作时需要额外一次往返(发现 → 调用),但这几乎总是值得的权衡。


工作原理

MCP 服务位于你的 AI 与 AgenticMail API 之间:

AI Client → MCP tool call → agenticmail-mcp → HTTP request → AgenticMail API → Stalwart Mail Server

每次工具调用都会:

  1. 接收来自 AI 的结构化参数
  2. 验证输入(UID 必须为正整数,数组不能为空,等等)
  3. 向 AgenticMail API 发送 HTTP 请求,超时时间为 30 秒
  4. 将格式化的文本结果返回给 AI

服务使用 stdio 传输方式运行——AI 客户端通过 stdin 发送 JSON-RPC 消息,服务通过 stdout 响应。MCP 服务本身不会打开任何网络端口。收到 SIGTERM 或 SIGINT 时,服务会正常关闭。


工具

电子邮件 — 核心操作(13 个工具)
工具描述示例提示词
send_email发送电子邮件,可包含收件人、主题、纯文本/HTML 和附件,并抄送"给 [email protected] 发一封关于会议的邮件"
list_inbox列出最近的收件箱邮件(支持分页,最多 100 封)"查看我的收件箱"
read_email阅读完整邮件内容并进行安全分析"阅读邮件 #42"
reply_email回复邮件(或回复所有人),并保留邮件会话关系"回复那封邮件,说我会参加"
forward_email转发邮件并附上原始附件"把那封邮件转发给 [email protected]"
search_emails按发件人、主题、正文、日期范围和中继搜索"查找 John 发来的关于预算的邮件"
delete_email根据 UID 删除指定邮件"删除那封垃圾邮件"
move_email将邮件移至文件夹"把这封邮件移到 Archive"
mark_read将邮件标记为已读"将邮件 #15 标记为已读"
mark_unread将邮件标记为未读"将那封邮件标记为未读"
inbox_digest获取包含正文预览的收件箱摘要"给我一份收件箱摘要"
wait_for_email实时等待新邮件(最长 5 分钟)"等待 [email protected] 的回复"
import_relay_email从已连接的 Gmail/Outlook 导入邮件"从 Gmail 导入 UID 500 的邮件"
电子邮件 — 批量操作(5 个工具)
工具描述
batch_delete根据 UID 列表删除多封邮件
batch_mark_read将多封邮件标记为已读
batch_mark_unread将多封邮件标记为未读
batch_move将多封邮件移至文件夹
batch_read一次阅读多封邮件的完整内容
电子邮件 — 管理(14 个工具)
工具描述
manage_contacts在通讯录中添加、移除和列出联系人
manage_drafts创建、列出、编辑、删除和发送草稿
manage_tags创建标签、为邮件分配标签、移除标签和列出标签
manage_rules创建电子邮件筛选规则(自动移动、自动删除、标记为已读)
manage_signatures创建、列出和删除电子邮件签名
manage_templates创建、列出和删除电子邮件模板
manage_scheduled预约未来发送的电子邮件、列出预约邮件和取消预约
manage_spam列出垃圾邮件文件夹、举报垃圾邮件、标记为非垃圾邮件和获取垃圾邮件评分
manage_pending_emails查看等待审批的受阻发件邮件
template_send使用已保存的模板发送电子邮件,并替换变量
create_folder创建新的 IMAP 文件夹
list_folder列出指定文件夹中的邮件
list_folders列出所有可用文件夹
check_health检查 AgenticMail 服务和 Stalwart 的运行状况
多 Agent 通信(8 个工具)
工具描述示例提示词
list_agents列出所有 Agent 的姓名、电子邮件和角色“显示所有 Agent”
message_agent向另一个 Agent 发送电子邮件(含优先级)“告诉研究员查找定价数据”
check_messages检查来自 Agent 和外部人员的新消息“有新消息吗?”
call_agent向另一个 Agent 分配任务(同步或异步)“让分析师研究这个主题”
claim_task认领分配给你的待处理任务“认领那个任务”
submit_result提交已认领任务的结果“提交研究结果”
check_tasks检查收到或发出的任务“我有待处理的任务吗?”
call_agent同步 RPC — 等待结果(最长 5 分钟)“让研究员查找定价信息并等待”
管理(7 个工具)

这些工具需要主密钥(AGENTICMAIL_MASTER_KEY):

工具描述
create_account创建具有指定姓名和角色的新 Agent
delete_agent删除 Agent(归档电子邮件并记录报告)
stop_agent在 Agent 执行任务期间软停止它 — 调度器不会唤醒它,邮件仍会送达收件箱(保留审计记录)
resume_agent撤销 stop_agent — 调度器恢复唤醒 Agent;停止期间收到的邮件会留在收件箱中,并在下次唤醒时处理
cleanup_agents列出非活跃 Agent、清理并设为持久化
deletion_reports查看过去的 Agent 删除报告
update_metadata更新 Agent 元数据(显示名称、所有者等)
whoami获取当前 Agent 信息(姓名、电子邮件、角色、ID)
setup_payment获取 Cloudflare 付款设置说明
网关配置(6 个工具)

这些工具需要主密钥:

工具描述
check_gateway_status检查当前电子邮件网关模式和运行状况
setup_email_relay配置 Gmail/Outlook 中继模式
setup_email_domain使用 Cloudflare 配置自定义域名
setup_gmail_alias获取 Gmail“以此身份发送邮件”别名的设置说明
setup_guide显示中继与域名的对比指南
send_test_email发送测试邮件以验证网关
purchase_domain搜索并购买域名
短信 / 电话号码(8 个工具)
工具描述
sms_setup配置 Google Voice 或 46elks 电话号码访问权限
sms_send通过 46elks API 发送短信,或返回 Google Voice 发送说明
sms_messages列出收到和发出的短信
sms_check_code从近期短信中提取验证码/一次性密码
sms_read_voice直接从 Google Voice 网页读取短信(最快的方法)
sms_record记录从 Google Voice 网页或任何来源读取的短信
sms_parse_email解析从 Google Voice 转发邮件中的短信(备用方法)
sms_config获取当前短信配置

出站安全扫描

通过 send_email、reply_email 或 forward_email 发送的每封邮件都会在发出前进行扫描。扫描器会检查以下内容:

会检测哪些内容

个人身份信息(PII) — 社会安全号码、信用卡号码、电话号码、银行路由号码、驾驶证号码、护照号码、税务识别号、Medicare/Medicaid 识别号、移民号码、PIN、安全问题答案、IBAN/SWIFT 代码、加密货币钱包地址、电汇指令

凭据 — API 密钥、AWS 密钥、密码、私钥(PEM 格式)、Bearer 令牌、数据库连接字符串、GitHub 令牌、Stripe 密钥、JWT、Webhook URL、环境变量块、加密货币助记词、双重身份验证(2FA)备用代码、用户名/密码组合、OAuth 令牌、VPN 凭据

系统内部信息 — 私有 IP 地址、常见系统目录中的文件路径、环境变量赋值

所有者隐私 — 提及所有者的个人信息、泄露创建或运营该 Agent 的人员身份

高风险附件 — 私钥文件(.pem、.key、.p12、.pfx)、环境文件(.env、.credentials)、数据库文件(.db、.sqlite)、可执行文件(.exe、.bat、.sh、.ps1)等

发现问题时会发生什么
  • 中等严重性 — 邮件会发送,但 AI 会在响应中收到警告
  • 高严重性 — 邮件会被拦截,并保存以供人工审核

邮件被拦截时,AI 会收到待处理 ID,并被指示告知用户。用户(所有者)会收到一封通知邮件,其中包含完整的拦截内容和操作说明。

仅限人工审批

AI 不能批准或拒绝自己拦截的邮件。manage_pending_emails 工具只允许列出和查看邮件——对于批准/拒绝操作,系统会明确拒绝并给出清晰的错误消息。只有人工所有者可以批准(通过 API、交互式 Shell,或回复通知邮件中的“approve”或“yes”)。

自动后续提醒

邮件被拦截时,MCP 服务会自动为 AI 安排逐步递增的后续提醒:

  1. 12 小时 — 第一次提醒
  2. 6 小时 — 第二次提醒
  3. 3 小时 — 第三次提醒
  4. 1 小时 — 冷却期前的最后一次提醒
  5. 3 天冷却期 — 随后重新开始循环

这些提醒会注入工具响应中,提示 AI 询问用户是否批准待处理事项。后台心跳机制每隔 5 分钟检查一次所有者是否已批准或拒绝邮件;如果已处理,则会取消提醒。


入站安全

AI 使用 read_email 读取邮件时,响应会包含一份安全分析:

  • 垃圾邮件评分 — 邮件属于垃圾邮件或恶意邮件的可能性(0-100)
  • 类别 — 检测到的威胁类型(网络钓鱼、社会工程、提示词注入等)
  • 清理 — 是否发现并清理了不可见 Unicode 字符或隐藏的 HTML
  • 附件警告 — 标记可执行文件、存档文件、HTML 文件以及伪装的文件扩展名(例如 report.pdf.exe)

同一系统中 Agent 之间的内部邮件受信任,不进行垃圾邮件评分。


实时等待邮件

wait_for_email 工具会向 API 建立服务器发送事件(SSE)连接,并监听新邮件或任务通知。如果 SSE 不可用,则会改为轮询收件箱。这适用于 AI 需要等待回复后再继续的工作流。

等待时长可以配置(默认 2 分钟,最长 5 分钟)。收到邮件时,工具会返回消息详情。如果收到的是任务通知,工具则会返回任务信息。


中继电子邮件集成

所有者将 Gmail 或 Outlook 账户连接为中继后,AI 可以:

  • 搜索中继账户 — 使用 search_emails 并将 searchRelay: true 设为启用,即可同时搜索本地收件箱和已连接的 Gmail/Outlook 账户。中继搜索结果会返回一组单独的 UID,并标明所属账户。
  • 从中继账户导入 — import_relay_email 会将中继账户中的指定邮件导入本地收件箱,并保留所有标头,以便正确串联邮件。

这样一来,AI 就可以在所有者的真实 Gmail/Outlook 收件箱中查找并导入邮件,然后通过 AgenticMail 系统正常回复。


定时发送邮件

manage_scheduled 工具接受灵活的时间格式:

  • ISO 8601: 2026-02-14T10:00:00Z
  • 相对时间: in 30 minutes、in 2 hours
  • 指定时间: tomorrow 8am、tomorrow 2pm
  • 星期: next monday 9am、next friday 2pm
  • 人类可读格式: 02-14-2026 3:30 PM EST
  • 日常表达: tonight、this evening

API 服务每隔 30 秒检查一次是否有到达发送时间的定时邮件,并自动发送。


Agent 间通信

消息优先级

使用 message_agent 时,AI 可以设置优先级:

  • 普通 — 不添加前缀
  • 高 — 在主题前添加 [HIGH]
  • 紧急 — 在主题前添加 [URGENT]
同步 RPC

call_agent 工具独具特色——它会将任务分配给另一个 Agent,然后保持连接打开,直到该 Agent 响应(最长 5 分钟)。当 AI 需要先获得另一个 Agent 的答复才能继续时,这一工具就很有用。

在底层,API 服务每隔 2 秒轮询一次,同时还使用即时解析机制——目标 Agent 提交结果时,等待中的连接会立即解析。

任务生命周期

任务会依次经历以下状态:pending → claimed → completed 或 failed。任何知道任务 ID 的 Agent 都可以领取任务,因此也支持由子 Agent 代表父 Agent 处理任务的架构。


资源

MCP 服务提供一项资源:

URI名称描述
agenticmail://inboxAgent 收件箱浏览当前 Agent 最近收到的 20 条收件箱消息

对话示例

User: Check my email and summarize anything important

AI: [calls list_inbox]
You have 5 new emails:
1. [email protected] - "Q2 Budget Review" (2 hours ago)
2. [email protected] - "Re: Project Timeline" (4 hours ago)
3. [email protected] - "[repo] PR #123 merged" (5 hours ago)
...

[calls read_email for #1]
[calls read_email for #2]

Here's a summary of the important emails:

1. **Q2 Budget Review** from John — He's requesting approval for the revised
   budget. The total is $45K, up from $38K due to infrastructure costs.
   He needs a response by Friday.

2. **Project Timeline** from Sarah — She confirmed the new deadline is March 15.
   The design phase is complete and development starts Monday.

User: Reply to John saying I approve the budget

AI: [calls reply_email]
Reply sent to [email protected] with subject "Re: Q2 Budget Review"

外部收件箱暴露——在引导操作员设置中继前,先说明这一点

用于配置中继的 MCP 工具(setup_operator_email,以及建议操作员运行 agenticmail setup-email 或 setup-relay 的任何 Agent)会通过 Gmail / Outlook 加号寻址,让所有子 Agent 都能从公共互联网接收邮件。 操作员不一定会意识到这一点——主机 Agent 应明确提醒:

  • 加号地址很容易被公开猜到。 配置中继后,任何人都可以向 [email protected]、[email protected] 等地址发邮件,相应的 AgenticMail Agent 都会收到邮件。+sub 部分并非秘密。
  • 外部邮件会像内部 @localhost 邮件一样唤醒主机调度器。 MCP 服务不会按来源过滤;对于任何入站邮件,API 都会发布 SSE new-mail 事件,主机集成则会启动一个工作线程轮次。
  • 主机桥接会走不同的路径。 发往 [email protected] / [email protected] 的邮件会路由到 handleBridgeMail,它会使用主机 SDK 的 resume 选项,在后台唤醒操作员最近一次会话。如果恢复失败,则会回退到向 setup_operator_email 发送桥接升级邮件——这正是该 MCP 工具存在的原因。
  • 垃圾邮件 = 工作线程轮次。 按升级顺序排列的限流措施:调度器中的 wake-budget 防护(自动)、中继级垃圾邮件过滤器,以及基于 metadata.host 的隔离机制,用于限制仅应在内部使用的 Agent。

当主机 Agent 准备调用任何中继设置工具,或指示操作员运行 setup-email 时,应先转述以上内容,让操作员有意识地选择是否启用,而不是等收到第一封垃圾邮件唤醒后才发现这一点。


许可证

MIT - Ope Olatunji (@ope-olatunji)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。