WeCom Mail MCP
通过企业微信官方邮件API发送普通邮件,并支持查询邮箱信息,兼容stdio、sse和streamable-http传输方式。
README
WeCom Mail MCP
一个基于 Python 的 MCP 服务端,通过企业微信官方邮件 API 发送普通邮件。
它做的事情很简单:
- 对 AI 暴露
send_email - 通过企业微信官方接口发送邮件
- 从环境变量或
.env读取CORPID/CORPSECRET - 兼容
uv run和uvx --from ...
功能
- 官方 WeCom 邮件 API 发信,不走 SMTP
- 自动获取并缓存
access_token - 兼容
text/html,也兼容text/plain/text/html - 提供
get_mailbox_info,方便确认当前发件邮箱 - 支持
stdio、sse、streamable-http三种传输方式
你需要先准备什么
在企业微信侧确认下面几件事:
- 有可用的
CORPID - 有对应应用的
CORPSECRET - 应用具备“邮件”权限
- 应用邮箱账号已经配置好
- 调用邮件接口所用的应用 secret 已经在“可调用应用”范围内
官方文档:
- 获取 access_token: https://developer.work.weixin.qq.com/document/path/91039
- 发送普通邮件: https://developer.work.weixin.qq.com/document/path/97445
- 查询应用邮箱账号: https://developer.work.weixin.qq.com/document/path/97991
环境变量 / .env
服务端会自动加载项目根目录下的 .env。
优先级是:命令行覆盖 > .env > 系统环境变量。
也就是说,.env 里写了就以 .env 为准;.env 没写或留空时,再回退到系统环境变量。
必填:
WECOM_CORP_IDWECOM_CORP_SECRET
兼容别名:
CORPIDCORPSECRET
可选:
WECOM_API_BASE,默认https://qyapi.weixin.qq.comWECOM_REQUEST_TIMEOUT,默认20WECOM_MCP_TRANSPORT,默认stdioWECOM_MCP_HOST,默认127.0.0.1WECOM_MCP_PORT,默认8000WECOM_LOG_LEVEL,默认INFO
本地运行
1. 安装依赖
uv sync
2. 配置 .env
项目里已经提供了 .env.example 和一个本地 .env 模板。
PowerShell 以外,最省事的方式就是直接编辑根目录 .env:
CORPID=你的企业ID
CORPSECRET=你的应用Secret
如果你不想用 .env,也可以继续用系统环境变量。
3. 或者设置环境变量
PowerShell:
$env:CORPID="你的企业ID"
$env:CORPSECRET="你的应用Secret"
4. 校验配置
uv run wecom-mail-mcp --check-config
成功时会输出当前应用邮箱账号和别名邮箱列表。
5. 以 stdio 启动 MCP
uv run wecom-mail-mcp
uvx 可以吗
可以。对于 Python 项目,uvx 的角色基本就类似 Node 生态里的 npx。
本项目已经提供了 console script,所以本地目录可以直接这样跑:
uvx --from . wecom-mail-mcp
如果以后你把它发到 PyPI,上线后就可以直接:
uvx wecom-mail-mcp
Claude Desktop 配置示例
{
"mcpServers": {
"wecom-mail": {
"command": "uvx",
"args": [
"--from",
"d:/Code_Save/Py/发邮件的mcp",
"wecom-mail-mcp"
],
"env": {
"CORPID": "你的企业ID",
"CORPSECRET": "你的应用Secret"
}
}
}
}
如果你更喜欢 uv run,也可以:
{
"mcpServers": {
"wecom-mail": {
"command": "uv",
"args": [
"run",
"--directory",
"d:/Code_Save/Py/发邮件的mcp",
"wecom-mail-mcp"
],
"env": {
"CORPID": "你的企业ID",
"CORPSECRET": "你的应用Secret"
}
}
}
}
MCP 工具
send_email
参数:
to_email:收件人邮箱subject:邮件主题content:邮件正文content_type:可选,支持text、html、text/plain、text/html,默认text
说明:
- 发件人不是由 AI 传入的,而是企业微信“应用邮箱账号”
- 服务端会把
text/plain映射为官方接口的text - 服务端会把
text/html映射为官方接口的html - 如果发送 HTML,请显式传
content_type="html" - MCP 工具描述会直接告知客户端 HTML 邮件兼容限制,避免把网页模板直接当邮件模板发送
HTML 邮件兼容建议
如果要发 HTML 邮件,按最保守的邮件写法来:
- 优先使用
table、tbody、tr、td做布局 - 文本和基础内容只用
p、br、span、strong、b、em、i、h1到h4、a、img - 样式尽量写成 inline style,不要依赖复杂选择器
- 图片使用公网
https绝对地址
尽量避免:
script、iframe、form、video、audio、canvas、svg- 外链 CSS、Web Font
flex、grid、position- 相对路径、本地路径、网页式复杂模板
推荐骨架:
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<h2 style="margin:0 0 16px;">标题</h2>
<p style="margin:0 0 12px;">正文</p>
<a href="https://example.com">链接</a>
<img
src="https://example.com/demo.png"
alt=""
style="display:block;width:100%;height:auto;border:0;"
>
</td>
</tr>
</table>
get_mailbox_info
返回当前应用邮箱账号与别名邮箱列表,便于确认发件人身份。
HTTP 模式
如果你要用 HTTP 传输:
uv run wecom-mail-mcp --transport streamable-http --host 127.0.0.1 --port 8000
开发测试
python -m unittest discover -s tests
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。