Skip to main content
Glama
TimeCyber

Email MCP Server

by TimeCyber

📧 通用邮箱 MCP Server

npm version npm downloads License: MIT

一个让AI轻松接管邮箱的通用MCP服务器,基于 Model Context Protocol (MCP) 构建,支持在 MCP-X、Claude Desktop 等 MCP 客户端中使用。

支持多种邮箱服务商自动配置:QQ邮箱、163邮箱、Gmail、Outlook、腾讯企业邮箱、网易企业邮箱、阿里云邮箱、新浪邮箱、搜狐邮箱等。

📦 快速安装

# npm 安装
npm install -g mcp-email

# 使用 npx 运行(推荐)
npx mcp-email

Related 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-email

2. 在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-mcp

2. 安装依赖

npm install

3. 配置 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

📧 邮箱配置指南

获取授权码

不同邮箱的授权码获取方式:

腾讯企业邮箱:

  1. 访问 企业邮箱管理后台

  2. 进入 "设置""账户""客户端专用密码"

  3. 生成 客户端专用密码 (授权码)

  4. 进入 "设置""收发信设置""设置方法"

  5. 开启 "POP/IMAP/SMTP服务"

QQ邮箱:

  1. 登录QQ邮箱,进入**"设置"** → "账户"

  2. 开启**"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"**

  3. 生成授权码

163邮箱:

  1. 登录163邮箱,进入**"设置"** → "POP3/SMTP/IMAP"

  2. 开启**"POP3/SMTP/IMAP服务"**

  3. 设置客户端授权密码

💡 关键提示:

  • 企业邮箱必须设置 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 (可选): 返回邮件数量限制,默认20

  • days (可选): 获取最近几天的邮件,默认3天

使用示例

{
  "limit": 10,
  "days": 7
}

3. get_email_content - 获取邮件内容

获取指定邮件的详细内容。

参数

  • uid (必需): 邮件唯一标识符(从邮件列表中获取)

使用示例

{
  "uid": "12345"
}

4. setup_email_account - 设置邮箱账号

自动识别邮箱类型并配置服务器,支持8大邮箱服务商。

参数

  • email (必需): 邮箱地址

  • password (必需): 邮箱密码或授权码

  • provider (可选): 邮箱提供商(手动指定,用于企业邮箱)

支持的邮箱类型

  • qq - QQ邮箱

  • 163 - 网易邮箱

  • gmail - Gmail

  • outlook - Outlook/Hotmail

  • exmail - 腾讯企业邮箱

  • 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 (可选): 是否使用SSL

  • imapHost (可选): 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

🔧 调试技巧

  1. 查看详细日志: 系统会自动输出配置和连接信息

  2. 使用测试工具: 通过 test_email_connection 诊断问题

  3. 检查邮箱类型: 使用 list_supported_providers 确认支持

  4. 逐步配置: 先使用 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字段功能的测试脚本

🔐 安全注意事项

  1. 保护授权码: 不要将授权码提交到版本控制系统

  2. 使用环境变量: 推荐使用环境变量存储敏感信息

  3. 定期更新: 定期更新授权码和检查安全设置

  4. 权限控制: 确保只有授权用户可以访问MCP服务器

📞 技术支持

📖 文档资源

  • 📋 CONFIG_GUIDE.md - 完整配置指南

  • 🔧 测试工具 - 使用 test-auto-config.jstest-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 tools
configure_email_serverC

手动配置邮箱服务器设置(高级用户使用)

ParametersJSON Schema
NameRequiredDescriptionDefault
smtpHostNoSMTP服务器地址
smtpPortNoSMTP端口
smtpSecureNo是否使用SSL
imapHostNoIMAP服务器地址
imapPortNoIMAP端口
imapSecureNo是否使用SSL
userYes邮箱账号
passwordYes邮箱密码或授权码

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

获取指定邮件的详细内容

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes邮件唯一标识符

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

获取最近三天的邮件列表

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返回邮件数量限制(默认20)
daysNo获取最近几天的邮件(默认3天)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

列出支持的邮箱提供商

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

发送邮件

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes收件人邮箱地址列表
ccNo抄送邮箱地址列表(可选)
bccNo密送邮箱地址列表(可选)
subjectYes邮件主题
textYes纯文本邮件内容
htmlNoHTML格式邮件内容(可选)
attachmentsNo邮件附件列表(可选)

TDQS

D1.7/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

设置邮箱账号(自动识别邮箱类型并配置服务器)

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes邮箱地址(如 user@qq.com)
passwordYes邮箱密码或授权码
providerNo邮箱提供商(可选,不填写则自动识别)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

测试邮箱服务器连接

ParametersJSON Schema
NameRequiredDescriptionDefault
testTypeNo测试类型:smtp(发送)、imap(接收)或both(全部)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 7 tool updates
    • First observedconfigure_email_server
    • First observedget_email_content
    • First observedget_recent_emails
    • First observedlist_supported_providers
    • First observedsend_email
    • First observedsetup_email_account
    • First observedtest_email_connection

TDQS

B3.1/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
    -
  • A
    license
    A
    quality
    D
    maintenance
    An 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.
    49
    5,599
    107
    LGPL 3.0
  • A
    license
    B
    quality
    B
    maintenance
    Enables 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.
    1
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides an AI agent with its own email address to send, receive, and manage emails via MCP. No email server setup required.
    33
    12
    MIT

Latest Blog Posts

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