Universal Email MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Universal Email MCP ServerSend a welcome email to newuser@example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
📧 通用邮箱 MCP Server
一个让AI轻松接管邮箱的通用MCP服务器,基于 Model Context Protocol (MCP) 构建,支持在 MCP-X、Claude Desktop 等 MCP 客户端中使用。
支持多种邮箱服务商自动配置:QQ邮箱、163邮箱、Gmail、Outlook、腾讯企业邮箱、网易企业邮箱、阿里云邮箱、新浪邮箱、搜狐邮箱等。
📦 快速安装
# npm 安装
npm install -g mcp-email
# 使用 npx 运行(推荐)
npx mcp-emailRelated MCP server: mcp-imap
✨ 功能特性
📤 邮件发送: 支持发送HTML和纯文本邮件
👥 多收件人: 支持多个收件人、抄送、密送
📎 附件支持: 支持文件附件和Base64编码内容
🔧 动态配置: 支持运行时配置邮箱服务器
🔍 连接测试: 内置SMTP服务器连接测试
🛡️ 安全认证: 支持微信企业邮箱授权码认证
⚡ 高性能: 优化的连接超时和重试机制
📚 详细配置指南
项目提供了详细的配置指南,包含各大邮箱服务商的配置说明:
📖 CONFIG_GUIDE.md - 完整配置指南,包含:
📧 163邮箱详细配置教程
🏢 微信企业邮箱配置指南
🌐 QQ邮箱、Gmail等主流邮箱配置
🛠️ 故障排除和常见问题解决
📋 系统要求
Node.js 16.x 或更高版本
邮箱账号
MCP 客户端 (如 Claude Desktop)
🚀 快速开始
方式一:直接使用npm包(推荐)
1. 安装npm包
# 全局安装
npm install -g mcp-email
# 或本地安装
npm install mcp-email2. 在MCP客户端中配置
MCP-X 配置示例:
{
"mcpServers": {
"universal-email": {
"command": "npx",
"args": ["mcp-email"],
"env": {
"EMAIL_USER": "your-email@domain.com",
"EMAIL_PASSWORD": "your-password-or-auth-code",
"EMAIL_TYPE": "auto"
}
}
}
}方式二:从源码安装
1. 克隆项目
git clone https://github.com/TimeCyber/email-mcp.git
cd email-mcp2. 安装依赖
npm install3. 配置 MCP 客户端(源码安装)
MCP-X 配置:
{
"mcpServers": {
"universal-email": {
"command": "node",
"args": ["F:\\path\\to\\email-mcp\\index.js"],
"env": {
"EMAIL_USER": "your-email@domain.com",
"EMAIL_PASSWORD": "your-password-or-auth-code",
"EMAIL_TYPE": "auto"
}
}
}
}企业邮箱配置:
{
"mcpServers": {
"enterprise-email": {
"command": "node",
"args": ["F:\\path\\to\\email-mcp\\index.js"],
"env": {
"EMAIL_USER": "user@company.com",
"EMAIL_PASSWORD": "your-enterprise-auth-code",
"EMAIL_TYPE": "exmail"
}
}
}
}4. 测试配置
# 测试邮件配置是否成功
node test-auto-config.js📧 邮箱配置指南
获取授权码
不同邮箱的授权码获取方式:
腾讯企业邮箱:
访问 企业邮箱管理后台
进入 "设置" → "账户" → "客户端专用密码"
生成 客户端专用密码 (授权码)
进入 "设置" → "收发信设置" → "设置方法"
开启 "POP/IMAP/SMTP服务"
QQ邮箱:
登录QQ邮箱,进入**"设置"** → "账户"
开启**"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"**
生成授权码
163邮箱:
登录163邮箱,进入**"设置"** → "POP3/SMTP/IMAP"
开启**"POP3/SMTP/IMAP服务"**
设置客户端授权密码
💡 关键提示:
企业邮箱必须设置
EMAIL_TYPE字段!个人邮箱可以使用
EMAIL_TYPE: "auto"自动识别
📖 CONFIG_GUIDE.md - 完整配置指南,包含所有邮箱类型详细说明
🔧 MCP 工具说明
1. send_email - 发送邮件
发送邮件,支持多种格式和收件人。
参数
to(必需): 收件人邮箱地址数组subject(必需): 邮件主题text(必需): 纯文本邮件内容cc(可选): 抄送邮箱地址数组bcc(可选): 密送邮箱地址数组html(可选): HTML格式邮件内容attachments(可选): 附件数组
使用示例
基本邮件发送:
{
"to": ["recipient@example.com"],
"subject": "测试邮件",
"text": "这是一封测试邮件"
}带抄送和HTML内容:
{
"to": ["recipient1@example.com", "recipient2@example.com"],
"cc": ["manager@example.com"],
"subject": "项目报告",
"text": "请查看项目报告",
"html": "<h1>项目报告</h1><p>项目进展顺利。</p>"
}带附件的邮件:
{
"to": ["recipient@example.com"],
"subject": "带附件的邮件",
"text": "请查看附件",
"attachments": [
{
"filename": "report.pdf",
"path": "C:\\path\\to\\report.pdf"
},
{
"filename": "data.txt",
"content": "SGVsbG8gV29ybGQ="
}
]
}2. get_recent_emails - 获取最近邮件
获取最近几天的邮件列表,自动选择最佳协议(IMAP/POP3)。
参数
limit(可选): 返回邮件数量限制,默认20days(可选): 获取最近几天的邮件,默认3天
使用示例
{
"limit": 10,
"days": 7
}3. get_email_content - 获取邮件内容
获取指定邮件的详细内容。
参数
uid(必需): 邮件唯一标识符(从邮件列表中获取)
使用示例
{
"uid": "12345"
}4. setup_email_account - 设置邮箱账号
自动识别邮箱类型并配置服务器,支持8大邮箱服务商。
参数
email(必需): 邮箱地址password(必需): 邮箱密码或授权码provider(可选): 邮箱提供商(手动指定,用于企业邮箱)
支持的邮箱类型
qq- QQ邮箱163- 网易邮箱gmail- Gmailoutlook- Outlook/Hotmailexmail- 腾讯企业邮箱netease-enterprise- 网易企业邮箱aliyun- 阿里云邮箱sina- 新浪邮箱sohu- 搜狐邮箱
使用示例
个人邮箱(自动识别):
{
"email": "user@qq.com",
"password": "your-auth-code"
}企业邮箱(手动指定):
{
"email": "user@company.com",
"password": "your-enterprise-auth-code",
"provider": "exmail"
}5. list_supported_providers - 列出支持的邮箱
查看所有支持的邮箱服务商及其配置信息。
参数
无需参数
使用示例
{}6. configure_email_server - 手动配置服务器
手动配置邮箱服务器设置(高级用户使用)。
参数
user(必需): 邮箱账号password(必需): 邮箱密码或授权码smtpHost(可选): SMTP服务器地址smtpPort(可选): SMTP端口smtpSecure(可选): 是否使用SSLimapHost(可选): IMAP服务器地址imapPort(可选): IMAP端口imapSecure(可选): 是否使用SSL
使用示例
{
"user": "your-email@domain.com",
"password": "your-password",
"smtpHost": "smtp.domain.com",
"smtpPort": 465,
"smtpSecure": true
}7. test_email_connection - 测试连接
测试邮箱服务器连接状态。
参数
testType(可选): 测试类型smtp- 仅测试发送服务器imap- 仅测试接收服务器both- 测试全部(默认)
使用示例
{
"testType": "smtp"
}📊 支持的邮箱服务商
主流邮箱服务器配置
邮箱类型 | SMTP服务器 | SMTP端口 | IMAP服务器 | IMAP端口 | 推荐协议 |
QQ邮箱 | smtp.qq.com | 587 | imap.qq.com | 993 | IMAP |
网易邮箱 | smtp.163.com | 465 | imap.163.com | 993 | POP3* |
Gmail* | smtp.gmail.com | 587 | imap.gmail.com | 993 | IMAP |
Outlook | smtp-mail.outlook.com | 587 | outlook.office365.com | 993 | IMAP |
腾讯企业邮箱 | smtp.exmail.qq.com | 465 | imap.exmail.qq.com | 993 | IMAP |
| 阿里云邮箱 | smtp.mxhichina.com | 465 | imap.mxhichina.com | 993 | IMAP |
*网易邮箱(163/126/yeah)自动使用POP3协议以避免"Unsafe Login"错误
Gmail特殊说明: 从2025年5月1日起,Google Workspace账号不再支持"less secure apps",必须使用OAuth认证。个人Gmail需要使用应用专用密码。详见配置指南。*
🔧 自动配置特性
✅ 智能识别: 根据邮箱域名自动选择服务器配置
✅ 协议优化: 163邮箱自动使用POP3,其他使用IMAP
✅ 企业邮箱: 支持通过
EMAIL_TYPE字段手动指定✅ 错误处理: IMAP失败时自动尝试POP3协议
🔍 故障排除
常见错误和解决方案
1. 535 Error: authentication failed
原因: 认证失败 解决方案:
确认已在邮箱设置中开启SMTP/IMAP/POP3服务
重新生成授权码或应用专用密码
检查邮箱地址和授权码是否正确
对于企业邮箱,确认管理员已允许第三方访问
2. [IMAP] EXAMINE Unsafe Login (网易邮箱常见)
原因: 网易邮箱安全限制 解决方案:
系统会自动切换到POP3协议
确认已在网易邮箱中开启POP3/SMTP服务
使用最新生成的16位授权码
3. ECONNREFUSED 或连接超时
原因: 网络连接问题 解决方案:
检查网络连接状态
确认防火墙没有阻挡邮件端口 (25, 465, 587, 993, 995)
尝试不同的网络环境或VPN
4. EMAIL_TYPE 相关错误
原因: 企业邮箱域名和服务器不匹配 解决方案:
为企业邮箱设置正确的
EMAIL_TYPE字段腾讯企业邮箱设置为
"exmail"网易企业邮箱设置为
"netease-enterprise"
📋 诊断工具
使用内置诊断命令:
# 测试邮箱配置
node test-auto-config.js
# 测试EMAIL_TYPE功能
node test-email-type.js
# 使用MCP工具测试连接
# 在MCP客户端中调用 test_email_connection🔧 调试技巧
查看详细日志: 系统会自动输出配置和连接信息
使用测试工具: 通过
test_email_connection诊断问题检查邮箱类型: 使用
list_supported_providers确认支持逐步配置: 先使用
setup_email_account自动配置
📁 项目结构
├── index.js # MCP Server主程序
├── package.json # 项目依赖配置
├── README.md # 项目主文档
├── CONFIG_GUIDE.md # 详细配置指南
├── .gitignore # Git忽略文件
├── 📁 配置模板/
│ ├── mcp-x_config_v2.json # 通用配置模板
│ └── mcp-x_config_multi.json # 多账户配置
├── 📁 测试工具/
│ ├── test-auto-config.js # 自动配置测试
│ └── test-email-type.js # EMAIL_TYPE功能测试
└── LICENSE # 开源许可证🔑 核心文件说明
index.js- 主要的MCP服务器程序,包含所有邮件功能CONFIG_GUIDE.md- 详细的配置指南,包含各种邮箱配置说明mcp-x_config_v2.json- 通用配置模板,支持EMAIL_TYPE字段test-auto-config.js- 测试自动配置功能的脚本test-email-type.js- 验证EMAIL_TYPE字段功能的测试脚本
🔐 安全注意事项
保护授权码: 不要将授权码提交到版本控制系统
使用环境变量: 推荐使用环境变量存储敏感信息
定期更新: 定期更新授权码和检查安全设置
权限控制: 确保只有授权用户可以访问MCP服务器
📞 技术支持
📖 文档资源
📋 CONFIG_GUIDE.md - 完整配置指南
🔧 测试工具 - 使用
test-auto-config.js和test-email-type.js🛠️ 内置诊断 - 使用
test_email_connection工具
🌐 官方文档
🤝 贡献指南
欢迎提交 Issue 和 Pull Request 来改进这个项目!
🐛 报告Bug: 请详细描述问题和复现步骤
💡 功能建议: 欢迎提出新的邮箱支持需求
📝 文档改进: 帮助完善使用文档
📊 项目状态
✅ 生产就绪: 支持8大主流邮箱服务商
🔄 持续更新: 根据用户反馈不断改进
🛡️ 安全保障: 支持SSL/TLS加密和授权码认证
📄 许可证
MIT License - 详见 LICENSE 文件
🎉 快速测试
配置完成后,可以在MCP客户端中测试功能:
发送测试邮件:
请发送一封测试邮件到 test@example.com,主题为"MCP测试邮件",内容为"Hello from Universal Email MCP!"获取邮件列表:
请获取最近3天的邮件列表,限制10封邮件测试连接:
请测试邮箱连接状态如果一切配置正确,所有功能都应该正常工作!🚀
Available Tools
7 toolsconfigure_email_serverB
手动配置邮箱服务器设置(高级用户使用)
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | 邮箱账号 | |
| imapHost | No | IMAP服务器地址 | |
| imapPort | No | IMAP端口 | |
| password | Yes | 邮箱密码或授权码 | |
| smtpHost | No | SMTP服务器地址 | |
| smtpPort | No | SMTP端口 | |
| imapSecure | No | 是否使用SSL | |
| smtpSecure | No | 是否使用SSL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of disclosing behavior. It only says 'configure', which implies mutation, but does not describe side effects, whether existing settings are overwritten, whether credentials are stored, or whether a connection test occurs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the core operation front-loaded and the audience note at the end. It has no wasted words, though it is arguably so short that it under-informs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is an 8-parameter mutating tool with no annotations and no output schema. The description is too thin to make clear the tool's effects, prerequisites, required permissions, or relationship to setup_email_account, leaving an agent under-equipped to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description adds no additional parameter-level meaning beyond labeling the configuration as manual and advanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a verb and resource: manually configure email server settings. The word '手动' (manual) hints at a distinction from automated setup such as setup_email_account, but it does not explicitly name the sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the tool is for advanced users who need manual control rather than automatic setup, giving some context. However, it does not explicitly state when to use this instead of setup_email_account or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_email_contentA
获取指定邮件的详细内容
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | 邮件唯一标识符 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must communicate behavioral traits. '获取' implies read-only, but the description does not state that it has no side effects, what fields are returned, how errors/not-found are handled, or whether the content is plain text/HTML. This is a significant gap for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one short, front-loaded sentence without filler or redundancy. Every word contributes to conveying the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter, the core invocation is clear. However, with no output schema and no annotations, the description should state what '详细内容' includes (e.g., headers, body, attachments) or clarify the return behavior. It is minimally adequate but leaves the agent to assume the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the uid parameter is already described as '邮件唯一标识符'. The tool description adds only that the target is '指定邮件', which does not meaningfully change the agent's understanding of the parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取指定邮件的详细内容' clearly identifies a specific action (retrieve) and resource (detailed content of a specified email). The word '指定' distinguishes it from get_recent_emails, and the sibling set makes this the obvious getter for a single pre-identified email.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied rather than explicit: call this when you have a specific email uid and need its full contents. However, the description does not name alternatives such as get_recent_emails or state conditions when one should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_emailsC
获取最近三天的邮件列表
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | 获取最近几天的邮件(默认3天) | |
| limit | No | 返回邮件数量限制(默认20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavior disclosure, but it only restates the basic retrieve action. It does not disclose whether emails are marked as read, whether an account must already be configured, what the returned list contains, or any error/rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple list-retrieval tool, though it could include one phrase distinguishing it from get_email_content without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and a sibling setup_email_account that hints at prerequisites, the description is incomplete. It does not state what the returned email list looks like, that an account setup may be required, or how the days/limit parameters affect results beyond schema defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no real parameter-level meaning beyond the schema; it only implies the default window, which the days parameter already documents with '默认3天'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取最近三天的邮件列表' clearly states the action (get) and resource (email list), which distinguishes it from siblings like send_email (sends) and get_email_content (retrieves one email's content). It loses a point because it hard-codes 'three days' while the days parameter allows customization, making the stated scope slightly narrower than actual behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. There is no mention that get_email_content is for reading a specific email's details, or that setup_email_account is a prerequisite. The agent must infer usage from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_supported_providersA
列出支持的邮箱提供商
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. The verb 'list' signals a read-only operation, but the description does not add context about whether authentication is required, whether the list is static or dynamic, or what the output structure looks like. It is minimally transparent but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short, front-loaded sentence that names the action and the resource with no wasted words. It is appropriately sized for such a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity—zero parameters, no output schema, and a narrow purpose—the description is sufficiently complete for an agent to select and invoke it correctly. It clearly states what will be returned conceptually (the list of supported email providers), though a bit more detail about the result format would have pushed it to a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is effectively complete, so the description does not need to explain parameter behavior. The baseline for no parameters is 4, and the description correctly avoids inventing unnecessary parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'list' with a clear resource ('supported email providers'), which exactly matches the tool name and distinguishes it from the sibling tools that send, fetch, set up, configure, or test. An agent can immediately understand what this tool does and why it exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this is the tool to call when an agent needs to know which email providers are available. It does not explicitly mention when not to use it or name alternatives, but none of the sibling tools perform this listing function, so the context is clear enough with no real exclusions needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailC
发送邮件
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | 抄送邮箱地址列表(可选) | |
| to | Yes | 收件人邮箱地址列表 | |
| bcc | No | 密送邮箱地址列表(可选) | |
| html | No | HTML格式邮件内容(可选) | |
| text | Yes | 纯文本邮件内容 | |
| subject | Yes | 邮件主题 | |
| attachments | No | 邮件附件列表(可选) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'send email' and does not mention side effects (e.g., email is irrevocably sent), required prior configuration, authentication needs, or handling of failures. The mutation-like nature of sending is implied by the name, but no additional behavioral context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short—only four Chinese characters—which is under-specification rather than effective conciseness. It does not earn its place because it adds negligible value over the tool name. A useful description would include at least one sentence on purpose or usage, so the brevity is a deficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters, no output schema, and no annotations, yet the description provides no context about prerequisites, expected return values, or when to use it. An agent cannot determine whether an email account must be set up first, what happens on success or failure, or how html relates to text. This is completely inadequate for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters have meaningful Chinese descriptions in the input schema. The description itself adds no parameter information, but the schema already documents each field (to, cc, subject, html, text, attachments, etc.). Baseline 3 is appropriate since the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '发送邮件' is a direct translation of the tool name 'send_email' and adds no new semantic information. It restates the name rather than specifying what the tool actually does, which is a tautology. While it conveys the general action of sending email, it fails to clarify scope or distinguish behavior beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like setup_email_account or configure_email_server. The description does not mention prerequisites, such as having a configured email account, nor does it exclude cases where other tools are more appropriate. There is no context or comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_email_accountC
设置邮箱账号(自动识别邮箱类型并配置服务器)
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | 邮箱地址(如 user@qq.com) | ||
| password | Yes | 邮箱密码或授权码 | |
| provider | No | 邮箱提供商(可选,不填写则自动识别) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
没有任何 annotations,描述需承担全部行为披露责任。它只透露了自动识别和配置服务器,但未说明操作是否有副作用、会写入哪些账号配置、密码如何被使用或存储、自动识别失败时会发生什么。对这些关键行为完全沉默。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
整句仅一句话,信息密度高且先给出主行为再说明自动配置能力,没有冗余内容。但过于简短导致行为细节缺失,所以未给5分。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
该工具涉及账号配置和凭据处理,且没有 output schema 说明调用结果,也没有 annotations 覆盖安全性。描述缺少返回/结果形式、配置生效范围、与 configure_email_server 的分工等关键上下文,代理难以判断调用后的状态。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
input schema 对 3 个参数均有 description,覆盖率为 100%,因此基础分为 3。描述中的“自动识别邮箱类型并配置服务器”与 schema 中 provider 的“不填写则自动识别”语义一致,但未额外补充参数格式、约束或交互关系。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述使用明确动词“设置”和宾语“邮箱账号”,并补充了“自动识别邮箱类型并配置服务器”这一核心行为,代理能知道该工具做什么。但与兄弟工具 configure_email_server 存在语义重叠,未做区分,因此不到5分。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述没有说明何时该用本工具而不是 configure_email_server、list_supported_providers 或 test_email_connection。也没有给出前提条件(如是否需要授权码、是否必须先列出支持提供商)。代理只能靠猜测选择工具。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_email_connectionC
测试邮箱服务器连接
| Name | Required | Description | Default |
|---|---|---|---|
| testType | No | 测试类型:smtp(发送)、imap(接收)或both(全部) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'test email server connection' and does not state whether it sends a probe email, checks authentication, modifies any state, or how results/errors are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, and the core purpose is front-loaded. It is somewhat under-specified, but as a concise statement it is clean and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but there is no output schema or annotations, and the description does not explain what a successful test looks like, what happens when testType is omitted, or what underlying behavior is being verified. An agent would need more context to interpret the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the testType parameter already has a clear description and enum values, so the baseline is 3. The description itself adds no additional parameter semantics, but the schema adequately covers the meaning of smtp, imap, and both.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('test') and resource ('email server connection'), and the name aligns with that. It is distinguishable from siblings like send_email, get_recent_emails, and configure_email_server, though it does not mention the SMTP/IMAP scope until the schema is read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the sibling tools, such as configure_email_server or setup_email_account. It also does not explain prerequisites, such as whether an email account must already be configured before testing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v1.0.0- First observed
configure_email_server - First observed
get_email_content - First observed
get_recent_emails - First observed
list_supported_providers - First observed
send_email - First observed
setup_email_account - First observed
test_email_connection
TDQS
Most tools have clearly distinct purposes, but setup_email_account and configure_email_server overlap conceptually since both deal with server configuration. The descriptions help separate auto vs manual setup, so confusion is minor.
All tool names follow a consistent verb_noun snake_case pattern: send_, get_, setup_, list_, configure_, test_. This makes the toolset predictable and easy to navigate.
7 tools is well-scoped for a universal email MCP server. Each tool covers a distinct part of the email workflow—account setup, configuration, testing, sending, and reading—without unnecessary bloat.
Core email workflows are covered: sending, retrieving recent messages, reading content, and account configuration/testing. Minor gaps exist, such as search, attachments, or folder management, but the current surface supports practical usage.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Email for AI agents — send, receive as a webhook, manage domains, templates, routing.
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Give an AI agent its own email address: send, reply, read, and wait for mail.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI to send, read, search, delete and reply to emails through SMTP or Gmail API, supporting common email services like QQ, 163, Gmail and Outlook with HTML/text formats and attachments.481ISC
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with email accounts via IMAP and SMTP, supporting mailbox listing, email search, retrieval, sending, and management.MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to send, read, and manage emails via SMTP and IMAP, with support for attachments, threads, and mailbox organization.16421MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI models to send, receive, search, and manage emails via SMTP/IMAP, including support for attachments, contacts, and advanced search.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/evamardin/email-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server