一个基于 Model Context Protocol (MCP) 的 PushPlus 推送服务器,让 AI 助手能够通过 PushPlus 发送推送消息到微信、邮箱等渠道。
🎉 现已发布到 NPM!
可直接通过npm install -g @perk-net/pushplus-mcp-server安装使用,无需下载源码。
- 🚀 完整的 MCP 支持: 实现 Model Context Protocol 规范
- 📱 多渠道推送: 支持微信、邮箱、短信、企业微信等多种推送渠道
- 🎨 多种消息格式: 支持 HTML、Markdown、纯文本、JSON 等格式
- 🔧 灵活配置: 支持环境变量配置,便于部署
- 🛡️ 类型安全: 使用 TypeScript 开发,提供完整的类型支持
- 📊 状态监控: 提供服务器状态和配置信息查询
- 🧪 测试友好: 内置配置测试和消息发送测试
npm install -g @perk-net/pushplus-mcp-server安装完成后,pushplus-mcp 命令将全局可用。
优势:
- ✅ 安装简单,一条命令搞定
- ✅ 自动处理依赖关系
- ✅ 支持全局命令行工具
- ✅ 无需下载源码
如果您需要修改代码或进行开发:
# 克隆项目
git clone https://github.com/your-org/pushplus-mcp
cd pushplus-mcp
# 安装依赖
npm install
# 构建项目
npm run build
# 测试配置
npm run test适用场景:
- 🛠️ 需要自定义功能
- 🔧 参与项目开发
- 📊 需要调试详细日志
- 访问 PushPlus 官网
- 微信扫码登录
- 在个人中心获取您的 Token
# 设置环境变量
export PUSHPLUS_TOKEN=your_pushplus_token_here
# 测试配置
pushplus-mcp --test如果配置正确,您会收到一条测试推送消息!
- 打开 Claude Desktop 设置 → Developer → Edit Config
- 添加配置(根据您的操作系统选择):
NPM 安装用户 - Windows:
{
"mcpServers": {
"pushplus": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@perk-net/pushplus-mcp-server"
],
"env": {
"PUSHPLUS_TOKEN": "您的Token"
}
}
}
}NPM 安装用户 - Mac/Linux:
{
"mcpServers": {
"pushplus": {
"command": "npx",
"args": [
"-y",
"@perk-net/pushplus-mcp-server"
],
"env": {
"PUSHPLUS_TOKEN": "您的Token"
}
}
}
}源码构建用户:
{
"mcpServers": {
"pushplus": {
"command": "node",
"args": ["/path/to/pushplus-mcp-server/dist/index.js"],
"env": {
"PUSHPLUS_TOKEN": "您的Token"
}
}
}
}配置文件位置:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- 重启 Claude Desktop
在 Claude 中说:
"请发送一条测试推送消息到我的微信"
🎉 恭喜!您已成功设置 PushPlus MCP Server!
📝 配置说明:当您在 Claude Desktop 配置中设置了
env.PUSHPLUS_TOKEN后,就不需要创建.env文件了。MCP 服务器会自动读取通过 Claude Desktop 传递的环境变量。
完整的推送消息工具,支持所有参数:
{
"title": "消息标题",
"content": "消息内容",
"template": "html",
"channel": "wechat",
"topic": "群组编码(可选)",
"to": "好友令牌(可选)",
"pre": "预处理编码(可选,仅供会员使用)",
"webhook": "webhook地址(可选)",
"callbackUrl": "回调地址(可选)"
}快速发送纯文本消息:
{
"title": "消息标题",
"content": "纯文本内容",
"topic": "群组编码(可选)",
"to": "好友令牌(可选)",
"pre": "预处理编码(可选)"
}发送带有 HTML 格式的消息:
{
"title": "消息标题",
"content": "<h1>HTML内容</h1><p>支持HTML标签</p>",
"topic": "群组编码(可选)",
"to": "好友令牌(可选)",
"pre": "预处理编码(可选)"
}发送 Markdown 格式的消息:
{
"title": "消息标题",
"content": "# Markdown标题\n\n支持**粗体**和*斜体*",
"topic": "群组编码(可选)",
"to": "好友令牌(可选)",
"pre": "预处理编码(可选)"
}发送 JSON 格式的消息:
{
"title": "消息标题",
"content": "{\"data\": \"JSON格式内容\"}",
"topic": "群组编码(可选)",
"to": "好友令牌(可选)",
"pre": "预处理编码(可选)"
}获取服务器运行状态和配置信息
获取所有支持的消息模板类型
获取所有支持的推送渠道信息
| 模板类型 | 描述 | 示例 |
|---|---|---|
html |
HTML格式消息,支持HTML标签和样式 | <h1>标题</h1><p>内容</p> |
txt |
纯文本消息,简单易读 | 标题\n内容 |
json |
JSON格式消息,适合结构化数据 | {"title": "标题", "content": "内容"} |
markdown |
Markdown格式消息,支持Markdown语法 | # 标题\n\n内容 |
cloudMonitor |
云监控消息格式,适合告警通知 | 告警: 服务器CPU使用率过高 |
| 渠道类型 | 描述 | 备注 |
|---|---|---|
wechat |
微信推送,通过微信公众号发送 | 默认渠道 |
webhook |
第三方webhook推送 | 需要提供webhook参数 |
cp |
企业微信推送 | 需要配置企业微信应用 |
mail |
邮箱推送 | 需要绑定邮箱 |
sms |
短信推送 | 需要绑定手机号 |
voice |
语音推送 | 需要绑定手机号 |
extension |
插件推送 | 支持浏览器插件和桌面应用程序 |
app |
App推送 | 需要先登录App |
# 显示帮助信息
pushplus-mcp --help
# 显示版本信息
pushplus-mcp --version
# 测试配置(包含发送测试消息)
pushplus-mcp --test
# 显示当前配置
pushplus-mcp --config
# 启动服务器(默认命令)
pushplus-mcp# 显示帮助信息
node dist/index.js --help
# 显示版本信息
node dist/index.js --version
# 测试配置(包含发送测试消息)
npm run test
# 显示当前配置
node dist/index.js --config
# 启动服务器(默认命令)
npm start
# 开发模式
npm run dev
# 监听模式构建
npm run watch| 变量名 | 描述 | 默认值 | 必需 |
|---|---|---|---|
PUSHPLUS_TOKEN |
PushPlus API Token | - | ✅ |
MCP_SERVER_NAME |
MCP 服务器名称 | pushplus-mcp-server | ❌ |
MCP_SERVER_VERSION |
MCP 服务器版本 | 1.0.1 | ❌ |
DEFAULT_TEMPLATE |
默认消息模板 | html | ❌ |
DEFAULT_CHANNEL |
默认推送渠道 | ❌ | |
DEBUG |
调试模式 | false | ❌ |
在 Claude 中询问:
请使用 PushPlus 发送一条测试消息,标题是"测试消息",内容是"这是一条来自 Claude 的测试消息"
Claude 会调用 send_text_message 工具发送纯文本消息。
请发送一条 HTML 格式的消息,标题"系统通知",内容包含:
- 一个标题
- 一个列表
- 一些样式
Claude 会调用 send_html_message 工具发送带样式的消息。
请发送一条 Markdown 格式的消息,包含代码块和表格
Claude 会调用 send_markdown_message 工具发送 Markdown 格式的消息。
请发送一条 JSON 格式的消息,标题"API响应",内容为用户数据的JSON格式
Claude 会调用 send_json_message 工具发送 JSON 格式的消息,适合发送结构化数据。
请使用完整参数发送推送消息:
- 标题:重要通知
- 内容:HTML 格式的内容
- 推送渠道:微信
- 群组:开发团队
- 好友令牌:指定接收人
Claude 会调用 send_push_message 工具,使用所有可用参数。
请发送消息给特定好友,使用好友令牌:token1,token2
使用 to 参数可以指定具体的接收人,支持多人推送(逗号分隔)。
当您发送消息后,会收到如下格式的响应:
{
"code": 200,
"msg": "请求成功",
"data": "abc123def456"
}字段说明:
code: HTTP 响应状态码200: 请求成功被服务器接收- 其他值: 请求失败,需检查参数或配置
msg: 服务器返回的消息说明data: 📋 流水号(重要!)- 这是消息的唯一标识符,可用于后续查询消息发送状态count: 消息发送数量
📌 注意事项:
- 收到
code: 200只表示服务器接受了推送请求 - 实际的消息发送可能需要一些时间完成
- 如需确认消息是否真正送达,请保存返回的
data(流水号)用于后续状态查询
询问 Claude:
请查看 PushPlus MCP Server 的状态信息
Claude 会读取 pushplus://status 资源,显示服务器状态。
询问 Claude:
PushPlus 支持哪些消息模板?
Claude 会读取 pushplus://templates 资源,显示所有支持的模板类型。
询问 Claude:
PushPlus 支持哪些推送渠道?
Claude 会读取 pushplus://channels 资源,显示所有支持的推送渠道。
❌ 配置验证失败: PUSHPLUS_TOKEN 格式不正确,应为32位字符串
解决方案:
- 检查您的 PushPlus Token 是否正确,Token 应该是32位的字母数字组合
- 确认 Token 是否有效且有足够的推送额度
❌ 发送失败: HTTP请求失败: 400 Bad Request
解决方案:
- 检查消息内容是否符合格式要求
- 确认 Token 有效且有足够的推送额度
- 检查网络连接
- 确认消息标题不超过100字符
✅ HTTP请求成功
📊 响应详情:
- 状态码: 200
- 消息: 请求成功
- 📋 流水号: abc123def456 (重要!可用于查询消息发送状态)
- 计数: 1
⚠️ 注意:HTTP请求成功不代表消息已送达,实际发送可能需要一些时间。
说明:
状态码 200表示服务器成功接收了推送请求流水号是消息的唯一标识符,请妥善保存用于后续查询- 消息实际送达可能需要几秒到几分钟的时间
- 如需确认消息是否真正送达,可使用流水号查询消息状态
❌ 配置验证失败: 缺少 PUSHPLUS_TOKEN 环境变量
解决方案:
- 确保
.env文件存在并包含正确的配置 - 或者通过环境变量直接设置
PUSHPLUS_TOKEN(如 Claude Desktop 配置) - 检查环境变量是否正确传递到 MCP 服务器
解决方案:
- 确认 Claude Desktop 配置正确
- 检查命令和参数是否正确
- 重启 Claude Desktop
- 确认 NPM 包已正确安装
解决方案:
# 重新安装
npm uninstall -g @perk-net/pushplus-mcp-server
npm install -g @perk-net/pushplus-mcp-server
# 验证安装
pushplus-mcp --versionpushplus-mcp-server/
├── src/
│ ├── index.ts # 程序入口
│ ├── server.ts # MCP 服务器实现
│ ├── pushplus.ts # PushPlus API 客户端
│ └── config.ts # 配置管理
├── dist/ # 编译输出目录
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
└── README.md # 项目文档
# 构建项目
npm run build
# 监听模式构建
npm run watch
# 清理构建文件
npm run clean
# 重新构建
npm run rebuild
# 开发模式(构建并启动)
npm run dev项目使用 TypeScript 开发,提供完整的类型支持:
- 严格类型检查: 启用 TypeScript 严格模式
- Zod 验证: 使用 Zod 进行运行时类型验证
- 完整类型定义: 所有 API 和配置都有完整的类型定义
- Fork 项目
- 创建功能分支
- 提交更改
- 推送到分支
- 创建 Pull Request
MIT License - 详见 LICENSE 文件
🎉 享受使用 PushPlus MCP Server!
如有问题,欢迎提交 Issue 或 Pull Request