Email MCP Server
Provides email management capabilities including sending emails with HTML content, attachments, and multiple recipients, as well as retrieving and reading recent emails through IMAP/POP3 protocols.
Serves as the runtime environment for the MCP server, allowing the email management functionality to be executed and integrated with MCP clients.
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., "@Email MCP Serversend an email to john@example.com with subject 'Meeting Notes' and attach the report.pdf file"
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: Email MCP Server
✨ 功能特性
📤 邮件发送: 支持发送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_serverC
手动配置邮箱服务器设置(高级用户使用)
| Name | Required | Description | Default |
|---|---|---|---|
| smtpHost | No | SMTP服务器地址 | |
| smtpPort | No | SMTP端口 | |
| smtpSecure | No | 是否使用SSL | |
| imapHost | No | IMAP服务器地址 | |
| imapPort | No | IMAP端口 | |
| imapSecure | No | 是否使用SSL | |
| user | Yes | 邮箱账号 | |
| password | Yes | 邮箱密码或授权码 |
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 hints at advanced usage but doesn't specify if this is a write operation (likely, given 'configure'), what permissions are required, whether changes are reversible, or any rate limits. For a configuration tool with 8 parameters and no annotations, this is a significant gap in transparency about its effects and constraints.
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, efficient sentence in Chinese: '手动配置邮箱服务器设置(高级用户使用)'. It's front-loaded with the core action and resource, and the parenthetical adds context without verbosity. However, it could be more structured by explicitly separating purpose from guidelines, but it earns a 4 for being appropriately sized with no wasted words.
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 complexity (8 parameters, configuration tool), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what happens after configuration (e.g., success/failure states, return values), behavioral risks, or integration with sibling tools. For a tool that likely mutates system settings, more context is needed to guide safe and effective use.
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%, with all 8 parameters clearly documented in the input schema (e.g., SMTP/IMAP settings, user credentials). The description adds no additional parameter information beyond the schema, such as format examples or interdependencies. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting without description enhancement.
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 states the tool's purpose as 'manually configure email server settings (for advanced users)', which is clear but vague. It specifies the action ('configure') and resource ('email server settings'), but lacks detail on what exactly is configured. It distinguishes from siblings like 'send_email' or 'get_email_content' by focusing on configuration, but doesn't explicitly differentiate from 'setup_email_account' or 'test_email_connection', which might overlap in purpose.
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 provides minimal guidance: it mentions 'for advanced users', implying complexity or risk, but offers no explicit when-to-use rules, prerequisites, or alternatives. It doesn't clarify when to use this versus 'setup_email_account' (which might be simpler) or 'test_email_connection' (which might be for validation), leaving the agent with little direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_email_contentC
获取指定邮件的详细内容
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | 邮件唯一标识符 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While '获取' (get) implies a read operation, the description doesn't specify whether this requires authentication, what format the content returns (HTML, plain text, attachments), whether there are rate limits, or what happens with invalid UIDs. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
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, efficient Chinese sentence that directly states the tool's function. There's zero wasted text - every character contributes to understanding what the tool does. It's appropriately sized for a simple retrieval tool with one parameter.
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 tool with no annotations and no output schema, the description is insufficiently complete. While the purpose is clear, there's no information about return format (headers, body, attachments), error conditions, authentication requirements, or how this differs from sibling email tools. The agent would need to guess about important behavioral aspects.
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% with the single parameter 'uid' documented as '邮件唯一标识符' (email unique identifier). The description adds no additional parameter information beyond what the schema provides. With high schema coverage and only one parameter, the baseline score of 3 is appropriate - the schema does the heavy lifting.
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 '获取指定邮件的详细内容' (Get detailed content of specified email) clearly states the tool's purpose with a specific verb ('获取' - get) and resource ('邮件详细内容' - email detailed content). However, it doesn't distinguish this tool from potential sibling tools like 'get_recent_emails' - both appear to retrieve email content, just with different scopes (specified vs recent).
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 provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_recent_emails' and 'send_email' available, there's no indication whether this tool is for retrieving full content of a specific known email versus browsing recent emails or composing new ones. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_emailsB
获取最近三天的邮件列表
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回邮件数量限制(默认20) | |
| days | No | 获取最近几天的邮件(默认3天) |
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 behavioral disclosure. It states what the tool does (get recent emails) but lacks critical behavioral details such as whether this is a read-only operation, if it requires authentication, how it handles errors, or what the return format looks like (e.g., list structure, pagination). This is a significant gap for a tool with zero annotation coverage.
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, efficient sentence in Chinese that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to understand at a glance.
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 complexity (a read operation with two parameters), no annotations, and no output schema, the description is incomplete. It adequately states the purpose but fails to provide necessary behavioral context (e.g., safety, authentication, return format) or usage guidelines, leaving gaps that could hinder an AI agent's ability to use the tool effectively.
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 schema description coverage is 100%, with both parameters (limit and days) fully documented in the schema, including their types and default values. The description adds no additional parameter information beyond implying a three-day default for 'days', which is already covered in the schema. This meets the baseline score of 3 when the schema does the heavy lifting.
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 ('获取' meaning 'get') and resource ('邮件列表' meaning 'email list'), and specifies a time scope ('最近三天' meaning 'last three days'). It distinguishes from siblings like get_email_content (which gets content of specific emails) and send_email (which sends emails). However, it doesn't explicitly contrast with list_supported_providers or other siblings, keeping it from a perfect score.
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 implies usage for retrieving recent emails within a three-day window, but provides no explicit guidance on when to use this tool versus alternatives like get_email_content (for specific email details) or configure_email_server (for setup). No exclusions or prerequisites are mentioned, leaving usage context somewhat vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_supported_providersB
列出支持的邮箱提供商
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states what the tool does (lists providers) but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, what format the output takes, or if there are rate limits. For a tool with zero annotation coverage, this is a significant gap in behavioral context.
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, efficient sentence in Chinese that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple listing tool and front-loads the core functionality immediately.
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 (0 parameters, no output schema), the description is minimally adequate. It states the purpose but lacks context about output format, authentication needs, or when to use it relative to siblings. For a tool with no annotations and no output schema, the description should ideally provide more behavioral guidance to compensate.
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 0 parameters with 100% schema description coverage, so the schema already fully documents the input (none required). The description doesn't need to add parameter information, and it doesn't contradict the schema. A baseline of 4 is appropriate for zero-parameter tools where the schema handles all input documentation.
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 '列出支持的邮箱提供商' (List supported email providers) clearly states the verb (list) and resource (email providers). It distinguishes from siblings like configure_email_server or send_email by focusing on provider enumeration rather than configuration or sending operations. However, it doesn't explicitly differentiate from setup_email_account or test_email_connection which might involve providers.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether this should be called before setup_email_account), exclusions, or relationships to sibling tools like configure_email_server or setup_email_account. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailD
发送邮件
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | 收件人邮箱地址列表 | |
| cc | No | 抄送邮箱地址列表(可选) | |
| bcc | No | 密送邮箱地址列表(可选) | |
| subject | Yes | 邮件主题 | |
| text | Yes | 纯文本邮件内容 | |
| html | No | HTML格式邮件内容(可选) | |
| 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 behavioral disclosure but offers none. It doesn't mention whether this requires authentication, has rate limits, what happens on failure, whether emails are queued or sent immediately, or any other behavioral characteristics. For a mutation tool with zero annotation coverage, this is a critical gap.
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?
While extremely concise with just two characters, this represents under-specification rather than effective conciseness. The description doesn't front-load important information and fails to provide the necessary context for a tool with 7 parameters and multiple sibling alternatives.
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 mutation tool with 7 parameters, no annotations, no output schema, and multiple sibling tools, the description is completely inadequate. It provides no behavioral context, no usage guidance, and minimal purpose clarification beyond the tool name itself.
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 all 7 parameters thoroughly with Chinese descriptions. The description adds no additional parameter information beyond what's in the schema, which meets the baseline expectation when schema coverage is complete.
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 '发送邮件' (Send email) is a tautology that restates the tool name in Chinese. While it clearly indicates the general action, it lacks specificity about what resources or capabilities are involved and doesn't differentiate from sibling tools like 'configure_email_server' or 'get_recent_emails'.
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 provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools for email operations (configure_email_server, get_email_content, get_recent_emails, etc.), but the description offers no context about when this specific send_email tool is appropriate versus those other tools.
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions automatic provider detection and server configuration, but lacks critical details: whether this creates a new account or configures an existing one, what permissions are required, if it's a read-only or destructive operation, potential rate limits, or what happens on success/failure. For a tool with no annotations and potential account setup implications, this is a significant gap.
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 concise and front-loaded: a single sentence in parentheses adds useful context about automatic detection. There's no wasted verbiage or redundancy, making it efficient for an agent to parse while conveying the core functionality.
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 complexity (account setup with 3 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like mutability, error handling, or return values, which are crucial for a tool that likely involves authentication and configuration. The description alone is insufficient for safe and effective use by an AI agent.
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%, with all parameters well-documented in the input schema (email, password, provider). The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain parameter interactions (e.g., how provider auto-detection works if omitted) or usage nuances. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't detract either.
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 tool's purpose: '设置邮箱账号(自动识别邮箱类型并配置服务器)' translates to 'Set up email account (automatically identify email type and configure server).' It specifies the verb 'set up' and resource 'email account' with the additional functionality of automatic provider detection and server configuration. However, it doesn't explicitly differentiate from sibling tools like 'configure_email_server' or 'test_email_connection,' which prevents a perfect score.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'configure_email_server' (which might be for manual configuration) or 'test_email_connection' (which might be for verification). There's no indication of prerequisites, such as needing an existing account or specific permissions, leaving the agent with no context for tool selection.
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 states the tool tests connections but doesn't explain what 'testing' entails—e.g., whether it performs authentication checks, network pings, or returns diagnostic details. It also omits critical behavioral traits like error handling, timeouts, or if it modifies server state (though 'test' implies read-only). For a tool with zero annotation coverage, this is a significant gap in transparency.
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, efficient phrase ('测试邮箱服务器连接') that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool and front-loaded with the core action. Every part of the description earns its place by conveying essential intent.
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 complexity (involving server testing) and lack of annotations or output schema, the description is incomplete. It doesn't explain what the test does, what results to expect (e.g., success/failure indicators), or any dependencies (e.g., requiring prior server configuration). For a testing tool with no structured output documentation, the description should provide more context to guide effective use.
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 input schema has 100% description coverage, with the single parameter 'testType' fully documented in the schema (including enum values and descriptions). The tool description adds no parameter-specific information beyond what the schema provides. According to the rules, when schema_description_coverage is high (>80%), the baseline score is 3 even with no param info in the description, which applies here.
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 tool's purpose: to test email server connections. It uses a specific verb ('测试' meaning 'test') and resource ('邮箱服务器连接' meaning 'email server connection'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'configure_email_server' or 'setup_email_account', which might involve similar server interactions but for different purposes.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a configured server first), exclusions, or comparisons to siblings like 'configure_email_server' (for setup) or 'send_email' (for actual operations). Without such context, an agent might struggle to select this tool appropriately in scenarios involving email server interactions.
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
- 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
Each tool has a clearly distinct purpose with no ambiguity. Tools like 'configure_email_server' (manual setup), 'setup_email_account' (automatic setup), and 'test_email_connection' (testing) serve different functions, while 'get_email_content', 'get_recent_emails', and 'send_email' handle specific email operations without overlap.
All tool names follow a consistent verb_noun pattern using snake_case, such as 'configure_email_server', 'get_email_content', and 'send_email'. This predictability makes it easy for agents to understand and select the right tool based on naming conventions.
With 7 tools, the server is well-scoped for email management. It covers setup, testing, sending, and retrieving emails, plus provider listing, which is appropriate for the domain without being overly sparse or bloated.
The toolset provides good coverage for core email operations like sending, receiving, and setup, with minor gaps. For example, there are no tools for deleting emails, managing folders, or handling attachments, but agents can still perform basic workflows effectively.
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 inboxes for AI agents: send, receive, reply, search, and manage threaded email over MCP.
Hosted email MCP for AI agents with inboxes, send/receive, memory, recovery, and credits.
Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI models to read, search, and send emails via IMAP and SMTP protocols. It supports various providers like Gmail and Outlook, allowing for tasks such as retrieving unread messages, searching by sender, and managing mailbox folders.-
- AlicenseAqualityDmaintenanceAn MCP server providing comprehensive email capabilities via IMAP and SMTP, enabling AI assistants to read, search, send, manage, schedule, and analyze emails across multiple accounts.495,599107LGPL 3.0
- AlicenseBqualityBmaintenanceEnables users to manage email accounts via IMAP/SMTP, including reading, searching, sending emails with attachments and calendar invites, all through natural language interactions with MCP-compatible clients.14MIT

InboxAPI CLIofficial
AlicenseNot gradedqualityBmaintenanceProvides an AI agent with its own email address to send, receive, and manage emails via MCP. No email server setup required.3312MIT
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/TimeCyber/email-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server