转发邮件 MCP 服务器
简要说明:我们的开源 MCP 服务器让 Claude、ChatGPT、Cursor 和 Windsurf 等 AI 助手通过自然语言管理您的电子邮件、域名、别名、联系人和日历。所有 68 个 API 端点都作为 MCP 工具公开。它通过 npx @forwardemail/mcp-server 本地运行——您的凭据永远不会离开您的机器。
什么是 MCP?
模型上下文协议(MCP)是 Anthropic 创建的一个开放标准,允许 AI 模型安全调用外部工具。MCP 让模型无需复制粘贴 API 响应到聊天窗口,而是直接以结构化方式访问您的服务。
我们的 MCP 服务器封装了整个转发邮件 API——每个端点、每个参数——并将它们作为任何兼容 MCP 的客户端都能使用的工具公开。服务器在您的机器本地运行,使用 stdio 传输。您的凭据保存在环境变量中,绝不会发送给 AI 模型。
快速开始
获取 API 密钥
- 登录您的 Forward Email 账户。
- 进入 我的账户 → 安全 → API 密钥。
- 生成一个新的 API 密钥并复制它。
Claude Desktop
将此添加到您的 Claude Desktop 配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"forwardemail": {
"command": "npx",
"args": ["-y", "@forwardemail/mcp-server"],
"env": {
"FORWARD_EMAIL_API_KEY": "your-api-key-here",
"FORWARD_EMAIL_ALIAS_USER": "[email protected]",
"FORWARD_EMAIL_ALIAS_PASSWORD": "your-generated-alias-password"
}
}
}
}
重启 Claude Desktop。您应该能在工具选择器中看到 Forward Email 工具。
注意:
FORWARD_EMAIL_ALIAS_USER和FORWARD_EMAIL_ALIAS_PASSWORD变量是可选的,但邮箱工具(消息、文件夹、联系人、日历)需要它们。详情请参见 认证。
Cursor
打开 Cursor 设置 → MCP → 添加服务器:
{
"mcpServers": {
"forwardemail": {
"command": "npx",
"args": ["-y", "@forwardemail/mcp-server"],
"env": {
"FORWARD_EMAIL_API_KEY": "your-api-key-here",
"FORWARD_EMAIL_ALIAS_USER": "[email protected]",
"FORWARD_EMAIL_ALIAS_PASSWORD": "your-generated-alias-password"
}
}
}
}
Windsurf
打开 Windsurf 设置 → MCP → 添加服务器,配置同上。
其他 MCP 客户端
任何支持 MCP stdio 传输的客户端都可以使用。命令如下:
FORWARD_EMAIL_API_KEY=your-api-key \
[email protected] \
FORWARD_EMAIL_ALIAS_PASSWORD=your-generated-alias-password \
npx @forwardemail/mcp-server
认证
Forward Email API 使用 HTTP 基本认证,根据不同的端点使用两种不同的凭据类型。MCP 服务器会自动处理认证 —— 您只需提供正确的凭据。
API 密钥认证
大多数管理端点(域名、别名、发件邮件、日志)使用您的 API 密钥 作为 Basic 认证的用户名,密码为空。
这就是您用于 REST API 的同一个 API 密钥。通过 FORWARD_EMAIL_API_KEY 环境变量设置。
别名认证
邮箱端点(消息、文件夹、联系人、日历、别名作用域的 Sieve 脚本)使用 别名凭据 —— 以别名邮箱地址作为用户名,生成的密码作为密码。
这些端点通过 IMAP、CalDAV 和 CardDAV 协议访问每个别名的数据。它们需要别名邮箱和生成的密码,而非 API 密钥。
您可以通过两种方式提供别名凭据:
- 环境变量(推荐用于默认别名):设置
FORWARD_EMAIL_ALIAS_USER和FORWARD_EMAIL_ALIAS_PASSWORD。 - 每次工具调用参数:将
alias_username和alias_password作为参数传递给任何别名认证工具。这会覆盖环境变量,适合处理多个别名时使用。
生成别名密码
在使用别名认证工具之前,您需要为别名生成密码。您可以使用 generateAliasPassword 工具或通过 API 实现:
curl -u "YOUR_API_KEY:" \
https://api.forwardemail.net/v1/domains/example.com/aliases/ALIAS_ID/generate-password \
-X POST
响应中包含 username(别名邮箱)和 password 字段。使用它们作为别名凭据。
提示: 您也可以询问您的 AI 助手:“为域 example.com 上的别名 [email protected] 生成密码” —— 它会调用
generateAliasPassword工具并返回凭据。
下表总结了各工具组所需的认证方式:
| 工具组 | 认证方式 | 凭据 |
|---|---|---|
| 账户 | API 密钥 或 别名认证 | 任一 |
| 域名、别名、域成员、邀请、Catch-All 密码 | API 密钥 | FORWARD_EMAIL_API_KEY |
| 发件邮件(列表、获取、删除、限制) | API 密钥 | FORWARD_EMAIL_API_KEY |
| 发送邮件 | API 密钥 或 别名认证 | 任一 |
| 消息(IMAP) | 别名认证 | FORWARD_EMAIL_ALIAS_USER + FORWARD_EMAIL_ALIAS_PASSWORD |
| 文件夹(IMAP) | 别名认证 | FORWARD_EMAIL_ALIAS_USER + FORWARD_EMAIL_ALIAS_PASSWORD |
| 联系人(CardDAV) | 别名认证 | FORWARD_EMAIL_ALIAS_USER + FORWARD_EMAIL_ALIAS_PASSWORD |
| 日历(CalDAV) | 别名认证 | FORWARD_EMAIL_ALIAS_USER + FORWARD_EMAIL_ALIAS_PASSWORD |
| 日历事件(CalDAV) | 别名认证 | FORWARD_EMAIL_ALIAS_USER + FORWARD_EMAIL_ALIAS_PASSWORD |
| Sieve 脚本(域作用域) | API 密钥 | FORWARD_EMAIL_API_KEY |
| Sieve 脚本(别名作用域) | 别名认证 | FORWARD_EMAIL_ALIAS_USER + FORWARD_EMAIL_ALIAS_PASSWORD |
| 日志 | API 密钥 | FORWARD_EMAIL_API_KEY |
| 加密 | 无 | 不需要凭据 |
所有 68 个工具
每个工具都直接映射到一个 Forward Email API 端点。参数使用与 API 文档相同的名称。每个部分标题中注明了认证方式。
账户(API 密钥或别名认证)
使用 API 密钥认证时,这些接口返回您的用户账户信息。使用别名认证时,它们返回别名/邮箱信息,包括存储配额和设置。
| 工具 | API 端点 | 描述 |
|---|---|---|
getAccount |
GET /v1/account |
获取您的账户信息 |
updateAccount |
PUT /v1/account |
更新您的账户设置 |
域名(API 密钥)
| 工具 | API 端点 | 描述 |
|---|---|---|
listDomains |
GET /v1/domains |
列出您所有的域名 |
createDomain |
POST /v1/domains |
添加新域名 |
getDomain |
GET /v1/domains/:domain_id |
获取域名详情 |
updateDomain |
PUT /v1/domains/:domain_id |
更新域名设置 |
deleteDomain |
DELETE /v1/domains/:domain_id |
删除域名 |
verifyDomainRecords |
GET /v1/domains/:domain_id/verify-records |
验证 DNS 记录 |
verifySmtpRecords |
GET /v1/domains/:domain_id/verify-smtp |
验证 SMTP 配置 |
testS3Connection |
POST /v1/domains/:domain_id/test-s3-connection |
测试自定义 S3 存储 |
别名(API 密钥)
| 工具 | API 端点 | 描述 |
|---|---|---|
listAliases |
GET /v1/domains/:domain_id/aliases |
列出域名的别名 |
createAlias |
POST /v1/domains/:domain_id/aliases |
创建新别名 |
getAlias |
GET /v1/domains/:domain_id/aliases/:alias_id |
获取别名详情 |
updateAlias |
PUT /v1/domains/:domain_id/aliases/:alias_id |
更新别名 |
deleteAlias |
DELETE /v1/domains/:domain_id/aliases/:alias_id |
删除别名 |
generateAliasPassword |
POST /v1/domains/:domain_id/aliases/:alias_id/generate-password |
为别名认证生成 IMAP/SMTP 密码 |
邮件 — 外发 SMTP(API 密钥;发送支持两者)
| 工具 | API 端点 | 认证方式 | 描述 |
|---|---|---|---|
sendEmail |
POST /v1/emails |
API 密钥或别名认证 | 通过 SMTP 发送邮件 |
listEmails |
GET /v1/emails |
API 密钥 | 列出外发邮件 |
getEmail |
GET /v1/emails/:id |
API 密钥 | 获取邮件详情和状态 |
deleteEmail |
DELETE /v1/emails/:id |
API 密钥 | 删除排队邮件 |
getEmailLimit |
GET /v1/emails/limit |
API 密钥 | 检查您的发送限制 |
sendEmail 工具接受 from、to、cc、bcc、subject、text、html 和 attachments 参数。这与 POST /v1/emails 端点相同。
消息 — IMAP(别名认证)
需要别名凭证。 传递
alias_username和alias_password,或设置环境变量FORWARD_EMAIL_ALIAS_USER和FORWARD_EMAIL_ALIAS_PASSWORD。 | 工具 | API 端点 | 描述 | | --------------- | ------------------------- | ------------------------------ | |listMessages|GET /v1/messages| 列出并搜索邮箱中的邮件 | |createMessage|POST /v1/messages| 创建草稿或上传邮件 | |getMessage|GET /v1/messages/:id| 通过 ID 获取邮件 | |updateMessage|PUT /v1/messages/:id| 更新标记(已读、加星等) | |deleteMessage|DELETE /v1/messages/:id| 删除邮件 |
listMessages 工具支持 15+ 搜索参数,包括 subject、from、to、text、since、before、is_unread 和 has_attachment。完整列表请参见 API docs。
文件夹 — IMAP(别名认证)
需要别名凭据。 传递
alias_username和alias_password,或设置环境变量FORWARD_EMAIL_ALIAS_USER和FORWARD_EMAIL_ALIAS_PASSWORD。
| 工具 | API 端点 | 描述 |
|---|---|---|
listFolders |
GET /v1/folders |
列出所有邮箱文件夹 |
createFolder |
POST /v1/folders |
创建新文件夹 |
getFolder |
GET /v1/folders/:id |
获取文件夹详情 |
updateFolder |
PUT /v1/folders/:id |
重命名文件夹 |
deleteFolder |
DELETE /v1/folders/:id |
删除文件夹 |
联系人 — CardDAV(别名认证)
需要别名凭据。 传递
alias_username和alias_password,或设置环境变量FORWARD_EMAIL_ALIAS_USER和FORWARD_EMAIL_ALIAS_PASSWORD。
| 工具 | API 端点 | 描述 |
|---|---|---|
listContacts |
GET /v1/contacts |
列出所有联系人 |
createContact |
POST /v1/contacts |
创建新联系人 |
getContact |
GET /v1/contacts/:id |
获取联系人详情 |
updateContact |
PUT /v1/contacts/:id |
更新联系人 |
deleteContact |
DELETE /v1/contacts/:id |
删除联系人 |
日历 — CalDAV(别名认证)
需要别名凭据。 传递
alias_username和alias_password,或设置环境变量FORWARD_EMAIL_ALIAS_USER和FORWARD_EMAIL_ALIAS_PASSWORD。
| 工具 | API 端点 | 描述 |
|---|---|---|
listCalendars |
GET /v1/calendars |
列出所有日历 |
createCalendar |
POST /v1/calendars |
创建新日历 |
getCalendar |
GET /v1/calendars/:id |
获取日历详情 |
updateCalendar |
PUT /v1/calendars/:id |
更新日历 |
deleteCalendar |
DELETE /v1/calendars/:id |
删除日历 |
日历事件 — CalDAV(别名认证)
需要别名凭据。 传递
alias_username和alias_password,或设置环境变量FORWARD_EMAIL_ALIAS_USER和FORWARD_EMAIL_ALIAS_PASSWORD。
| 工具 | API 端点 | 描述 |
|---|---|---|
listCalendarEvents |
GET /v1/calendar-events |
列出所有事件 |
createCalendarEvent |
POST /v1/calendar-events |
创建新事件 |
getCalendarEvent |
GET /v1/calendar-events/:id |
获取事件详情 |
updateCalendarEvent |
PUT /v1/calendar-events/:id |
更新事件 |
deleteCalendarEvent |
DELETE /v1/calendar-events/:id |
删除事件 |
Sieve 脚本(API 密钥)
这些使用域范围路径,并通过您的 API 密钥进行认证。
| 工具 | API 端点 | 描述 |
|---|---|---|
listSieveScripts |
GET /v1/domains/:domain_id/aliases/:alias_id/sieve |
列出别名的脚本 |
createSieveScript |
POST /v1/domains/:domain_id/aliases/:alias_id/sieve |
创建新脚本 |
getSieveScript |
GET /v1/domains/:domain_id/aliases/:alias_id/sieve/:script_id |
获取脚本详情 |
updateSieveScript |
PUT /v1/domains/:domain_id/aliases/:alias_id/sieve/:script_id |
更新脚本 |
deleteSieveScript |
DELETE /v1/domains/:domain_id/aliases/:alias_id/sieve/:script_id |
删除脚本 |
activateSieveScript |
POST /v1/domains/:domain_id/aliases/:alias_id/sieve/:script_id/activate |
激活脚本 |
筛选脚本(别名认证)
这些使用别名级别的认证。适用于无需 API 密钥即可进行每个别名的自动化操作。
需要别名凭据。 传递
alias_username和alias_password,或设置环境变量FORWARD_EMAIL_ALIAS_USER和FORWARD_EMAIL_ALIAS_PASSWORD。
| 工具 | API 端点 | 描述 |
|---|---|---|
listSieveScriptsAliasAuth |
GET /v1/sieve-scripts |
列出脚本 |
createSieveScriptAliasAuth |
POST /v1/sieve-scripts |
创建脚本 |
getSieveScriptAliasAuth |
GET /v1/sieve-scripts/:script_id |
获取脚本详情 |
updateSieveScriptAliasAuth |
PUT /v1/sieve-scripts/:script_id |
更新脚本 |
deleteSieveScriptAliasAuth |
DELETE /v1/sieve-scripts/:script_id |
删除脚本 |
activateSieveScriptAliasAuth |
POST /v1/sieve-scripts/:script_id/activate |
激活脚本 |
域成员和邀请(API 密钥)
| 工具 | API 端点 | 描述 |
|---|---|---|
updateDomainMember |
PUT /v1/domains/:domain_id/members/:member_id |
更改成员角色 |
removeDomainMember |
DELETE /v1/domains/:domain_id/members/:member_id |
移除成员 |
acceptDomainInvite |
GET /v1/domains/:domain_id/invites |
接受待处理邀请 |
createDomainInvite |
POST /v1/domains/:domain_id/invites |
邀请某人加入域 |
removeDomainInvite |
DELETE /v1/domains/:domain_id/invites |
撤销邀请 |
通配密码(API 密钥)
| 工具 | API 端点 | 描述 |
|---|---|---|
listCatchAllPasswords |
GET /v1/domains/:domain_id/catch-all-passwords |
列出通配密码 |
createCatchAllPassword |
POST /v1/domains/:domain_id/catch-all-passwords |
创建通配密码 |
deleteCatchAllPassword |
DELETE /v1/domains/:domain_id/catch-all-passwords/:token_id |
删除通配密码 |
日志(API 密钥)
| 工具 | API 端点 | 描述 |
|---|---|---|
downloadLogs |
GET /v1/logs/download |
下载邮件投递日志 |
加密(无认证)
| 工具 | API 端点 | 描述 |
|---|---|---|
encryptRecord |
POST /v1/encrypt |
加密 DNS TXT 记录 |
此工具无需认证。它加密转发记录,如 [email protected],用于 DNS TXT 记录。
20 个真实世界用例
以下是将 MCP 服务器与您的 AI 助手结合使用的实用方法:
1. 邮件分类处理
让您的 AI 扫描收件箱并总结未读邮件。它可以标记紧急邮件、按发件人分类,并起草回复——全部通过自然语言完成。(访问收件箱需要别名凭据。)
2. 域名设置自动化
正在设置新域名?让 AI 创建域名、添加别名、验证 DNS 记录并测试 SMTP 配置。通常需要 10 分钟点击操作的流程,变成一次对话。
3. 批量别名管理
需要为新项目创建 20 个别名?描述您的需求,让 AI 处理重复工作。它可以一次性创建别名、设置转发规则并生成密码。
4. 电子邮件活动监控
让你的 AI 检查发送限制,列出最近的外发邮件,并报告投递状态。对监控事务性邮件健康状况非常有用。
5. 联系人同步与清理
使用 CardDAV 工具列出所有联系人,查找重复项,更新过时信息,或从你粘贴到聊天中的电子表格批量创建联系人。(需要别名凭证。)
6. 日历管理
创建日历、添加事件、更新会议时间、删除已取消事件——全部通过对话完成。CalDAV 工具支持对日历和事件的完整增删改查。(需要别名凭证。)
7. Sieve 脚本自动化
Sieve 脚本功能强大但语法晦涩。让你的 AI 为你编写 Sieve 脚本:“将所有来自 [email protected] 的邮件过滤到 Billing 文件夹”即可生成可用脚本,无需接触 RFC 5228 规范。
8. 团队入职
当新成员加入时,让 AI 创建他们的别名,生成密码,发送包含凭证的欢迎邮件,并将其添加为域成员。一个提示,四个 API 调用。
9. 安全审计
让你的 AI 列出所有域,检查 DNS 验证状态,审查别名配置,并识别任何未验证记录的域。用自然语言快速完成安全检查。
10. 邮件转发设置
为新域设置邮件转发?让 AI 创建域,添加转发别名,加密 DNS 记录,并验证所有配置是否正确。
11. 收件箱搜索与分析
使用消息搜索工具查找特定邮件:“查找过去 30 天内所有来自 [email protected] 且带附件的邮件。”15+ 搜索参数使其功能强大。(需要别名凭证。)
12. 文件夹组织
让你的 AI 为新项目创建文件夹结构,在文件夹间移动邮件,或清理不再需要的旧文件夹。(需要别名凭证。)
13. 密码轮换
按计划生成新的别名密码。让你的 AI 为每个别名生成新密码并报告新凭证。
14. DNS 记录加密
在添加到 DNS 之前加密你的转发记录。encryptRecord 工具无需认证即可处理此操作——适合快速一次性加密。
15. 投递日志分析
下载你的邮件投递日志,让 AI 分析退信率,识别问题收件人,或跟踪投递时间。
16. 多域管理
如果你管理多个域,让 AI 给你状态报告:哪些域已验证,哪些有问题,每个域有多少别名,发送限制情况如何。
17. 通配符配置
为需要接收任意地址邮件的域设置通配符密码。AI 可以为你创建、列出和管理这些密码。
18. 域邀请管理
邀请团队成员管理域,检查待处理邀请,并清理过期邀请。适合拥有多个域管理员的组织。
19. S3 存储测试
如果你使用自定义 S3 存储备份邮件,让 AI 测试连接并验证其正常工作。
20. 邮件草稿撰写
在邮箱中创建邮件草稿而不发送。适合准备需要审核的邮件或构建邮件模板。(需要别名凭证。)
示例提示
以下是你可以直接与 AI 助手使用的提示:
发送邮件:
“从 [email protected] 发送邮件到 [email protected],主题为‘明天开会’,正文为‘嗨 John,我们下午 2 点的会议还确定吗?’” 域名管理:
“列出我所有的域名,并告诉我哪些域名有未验证的 DNS 记录。”
别名创建:
“创建一个新的别名 [email protected],将邮件转发到我的个人邮箱。”
收件箱搜索(需要别名凭据):
“查找过去一周内所有未读且提及‘invoice’的邮件。”
日历(需要别名凭据):
“创建一个名为‘工作’的日历,并添加一个明天下午2点的会议,名称为‘团队站会’。”
Sieve 脚本:
“为 [email protected] 编写一个 Sieve 脚本,自动回复邮件内容为‘感谢您的联系,我们将在24小时内回复您。’”
批量操作:
“为 mydomain.com 创建 sales@、support@、billing@ 和 info@ 的别名,全部转发到 [email protected]。”
安全检查:
“检查我所有域名的 DNS 和 SMTP 验证状态,并告诉我是否有需要注意的事项。”
生成别名密码:
“为别名 [email protected] 生成一个密码,以便我访问收件箱。”
环境变量
| 变量 | 必填 | 默认值 | 描述 |
|---|---|---|---|
FORWARD_EMAIL_API_KEY |
是 | — | 您的 Forward Email API 密钥(用于 API 密钥端点的 Basic 认证用户名) |
FORWARD_EMAIL_ALIAS_USER |
否 | — | 邮箱端点的别名邮箱地址(例如 [email protected]) |
FORWARD_EMAIL_ALIAS_PASSWORD |
否 | — | 邮箱端点的生成别名密码 |
FORWARD_EMAIL_API_URL |
否 | https://api.forwardemail.net |
API 基础 URL(用于自托管或测试) |
安全
MCP 服务器在您的本地机器上运行。安全机制如下:
- 您的凭据保持本地。 您的 API 密钥和别名凭据均从环境变量读取,并通过 HTTP Basic 认证用于 API 请求身份验证。它们绝不会发送给 AI 模型。
- stdio 传输。 服务器通过 stdin/stdout 与 AI 客户端通信。不打开任何网络端口。
- 无数据存储。 服务器无状态,不缓存、不记录或存储您的任何邮件数据。
- 开源。 整个代码库托管在 GitHub。您可以审计每一行代码。
编程使用
您也可以将服务器作为库使用:
const { McpServer } = require('@forwardemail/mcp-server');
const server = new McpServer({
apiKey: 'your-api-key',
aliasUser: '[email protected]',
aliasPassword: 'generated-alias-password',
});
server.listen();
开源
Forward Email MCP 服务器是 GitHub 上的开源项目,采用 BUSL-1.1 许可证。我们相信透明。如果您发现漏洞或想要新功能,请提交 issue。