Skip to main content
Glama

WeChat Publisher MCP

by BobGod
MIT License
5
  • Apple
  • Linux

📱 微信公众号自动发布 MCP 服务

📖 目录

🎯 项目概述

这是一个独立的MCP(Model Context Protocol)服务,专门用于微信公众号文章的自动发布。支持任何兼容MCP协议的AI工具调用,包括Claude Desktop、Cursor、Continue等。

🎉 最新更新:已修复MCP SDK兼容性问题,支持最新版本的Claude Desktop和Cursor!

✨ 核心特性

  • 🚀 即插即用:标准MCP协议,一键集成到任何AI工具
  • 📝 智能转换:自动将Markdown转换为微信公众号优化HTML
  • 🖼️ 封面处理:自动上传和处理封面图片
  • 👀 预览模式:支持预览和正式发布两种模式
  • 📊 状态查询:实时查询文章发布状态和数据统计
  • 🔧 错误处理:完善的错误提示和解决建议
  • 📱 移动优化:针对微信公众号移动端阅读体验优化

📦 安装

注意:目前该包尚未发布到npm registry,请使用源码安装方式。

方式一:源码安装(推荐)

# 1. 克隆仓库 git clone https://github.com/your-username/wechat-publisher-mcp.git cd wechat-publisher-mcp # 2. 安装依赖 npm install # 3. 配置微信公众号密钥 # ⚠️ 重要安全提示:请勿将真实的AppID和AppSecret提交到代码仓库! cp examples/wechat-config.example.js examples/wechat-config.js # 编辑 examples/wechat-config.js,填入您的真实密钥 # 4. 创建全局链接 npm link # 5. 验证安装 wechat-publisher-mcp --help

安全配置说明

⚠️ 重要:为了保护您的微信公众号安全,请务必正确配置密钥!

  1. 复制配置示例文件
cp examples/wechat-config.example.js examples/wechat-config.js
  1. 编辑配置文件,填入您的真实密钥:
// examples/wechat-config.js export const wechatConfig = { appId: 'your_real_appid_here', // 替换为您的真实AppID appSecret: 'your_real_appsecret_here' // 替换为您的真实AppSecret };
  1. 在代码中引用配置
import { wechatConfig } from './examples/wechat-config.js'; const { appId, appSecret } = wechatConfig;
  1. 确保配置文件不被提交
    • examples/wechat-config.js 已添加到 .gitignore
    • 只有示例文件 examples/wechat-config.example.js 会被提交到仓库

方式二:直接运行

如果不想全局安装,可以直接运行:

# 克隆并安装依赖 git clone https://github.com/your-username/wechat-publisher-mcp.git cd wechat-publisher-mcp npm install # 直接运行 node src/server.js

系统要求

  • Node.js: v18.0.0 或更高版本
  • npm: v8.0.0 或更高版本
  • 操作系统: macOS, Linux, Windows

验证安装

安装完成后,运行以下命令验证:

# 检查命令是否可用 which wechat-publisher-mcp # 查看版本信息 wechat-publisher-mcp --version # 查看帮助信息 wechat-publisher-mcp --help

🔧 配置

1. 微信公众号配置

在微信公众平台完成以下配置:

  1. 获取AppID和AppSecret
  2. 配置IP白名单
    • 在 "开发" → "基本配置" → "IP白名单"
    • 添加服务器IP地址
  3. 开通发布权限
    • 确保公众号已认证
    • 确保具有群发消息权限

2. MCP 客户端配置

Claude Desktop 配置

macOS 配置路径:

~/Library/Application Support/Claude/claude_desktop_config.json

Windows 配置路径:

%APPDATA%\Claude\claude_desktop_config.json

Linux 配置路径:

~/.config/Claude/claude_desktop_config.json

配置内容:

{ "mcpServers": { "wechat-publisher": { "command": "wechat-publisher-mcp", "args": [], "env": { "LOG_LEVEL": "INFO" } } } }

如果使用绝对路径(推荐):

{ "mcpServers": { "wechat-publisher": { "command": "/path/to/your/node", "args": ["/path/to/wechat-publisher-mcp/src/server.js"] } } }
Cursor 配置
  1. 打开Cursor设置(Cmd+,Ctrl+,
  2. 搜索"MCP"找到配置选项
  3. 添加以下配置:

方式一:使用全局命令

{ "mcpServers": { "wechat-publisher": { "command": "wechat-publisher-mcp", "args": [] } } }

方式二:使用绝对路径(推荐)

{ "mcpServers": { "wechat-publisher": { "command": "/Users/your-username/.nvm/versions/node/v18.20.8/bin/wechat-publisher-mcp", "args": [] } } }

方式三:使用Node.js直接启动(最稳定)

{ "mcpServers": { "wechat-publisher": { "command": "/Users/your-username/.nvm/versions/node/v18.20.8/bin/node", "args": ["/path/to/wechat-publisher-mcp/src/server.js"] } } }
Continue 配置

在Continue的配置文件中添加:

{ "mcpServers": { "wechat-publisher": { "command": "wechat-publisher-mcp", "args": [] } } }
配置验证

配置完成后:

  1. 重启AI工具(Claude Desktop/Cursor等)
  2. 等待服务初始化(通常需要几秒钟)
  3. 验证连接:在AI对话中输入"请列出可用的工具"
  4. 查看状态:MCP服务图标应显示为绿色
故障排除

如果MCP服务图标显示黄色或红色:

  1. 检查命令路径
    which wechat-publisher-mcp
  2. 使用绝对路径:将上述命令返回的完整路径用于配置
  3. 检查Node.js版本
    node --version # 应该 >= v18.0.0
  4. 查看错误日志:打开AI工具的开发者工具查看Console错误
  5. 手动测试:在终端中直接运行命令验证
    wechat-publisher-mcp

🚀 新手快速开始

第一步:环境准备

  1. 检查Node.js版本
    node --version # 需要 >= v18.0.0
    如果版本过低,请访问 Node.js官网 下载最新版本。
  2. 检查npm版本
    npm --version # 需要 >= v8.0.0

第二步:安装项目

# 1. 克隆项目到本地 git clone https://github.com/your-username/wechat-publisher-mcp.git cd wechat-publisher-mcp # 2. 安装依赖 npm install # 3. 创建全局链接 npm link # 4. 验证安装 wechat-publisher-mcp --help

第三步:获取微信公众号配置

  1. 登录微信公众平台
  2. 获取AppID和AppSecret
    • 进入"开发" → "基本配置"
    • 复制保存AppID和AppSecret
  3. 配置IP白名单
    • 在"基本配置"页面找到"IP白名单"
    • 添加你的服务器IP地址(可以先添加 0.0.0.0/0 用于测试)

第四步:配置AI工具

如果你使用Claude Desktop:
  1. 找到配置文件
    # macOS open "~/Library/Application Support/Claude/" # Windows # 打开 %APPDATA%\Claude\ # Linux # 打开 ~/.config/Claude/
  2. 编辑claude_desktop_config.json
    { "mcpServers": { "wechat-publisher": { "command": "wechat-publisher-mcp", "args": [] } } }
  3. 重启Claude Desktop
如果你使用Cursor:
  1. 打开Cursor设置
    • Cmd+, (Mac) 或 Ctrl+, (Windows/Linux)
  2. 搜索MCP配置
    • 在设置中搜索"MCP"
  3. 添加服务配置
    # 首先获取你的命令路径 which wechat-publisher-mcp
    然后使用返回的完整路径配置:
    { "mcpServers": { "wechat-publisher": { "command": "/your/full/path/to/wechat-publisher-mcp", "args": [] } } }
  4. 重启Cursor

第五步:测试连接

  1. 验证MCP服务状态
    • 在AI工具中,MCP服务图��应显示为绿色
    • 如果显示黄色或红色,请查看故障排除部分
  2. 测试工具可用性 在AI对话中输入:
    请列出可用的工具
    你应该能看到以下工具:
    • wechat_publish_article - 发布文章
    • wechat_query_status - 查询状态

第六步:发布第一篇文章

在AI工具中输入以下内容(替换为你的实际信息):

请帮我发布一篇测试文章到微信公众号: 标题:我的第一篇AI发布文章 作者:你的名字 AppID:你的微信公众号AppID AppSecret:你的微信公众号AppSecret 预览模式:true 预览用户OpenID:你的OpenID(可选,用于预览) 内容: # 欢迎使用微信公众号自动发布工具 这是一篇测试文章,用于验证MCP服务是否正常工作。 ## 功能特点 - ✅ 支持Markdown格式 - ✅ 自动转换为微信HTML - ✅ 支持预览和正式发布 - ✅ 实时状态查询 **测试成功!** 🎉

常见问题解决

Q: MCP服务图标显示黄色怎么办? A: 这通常表示路径问题,请使用 which wechat-publisher-mcp 获取完整路径,然后在配置中使用绝对路径。

Q: 提示"access_token invalid"怎么办? A: 检查AppID和AppSecret是否正确,确保在微信公众平台的"基本配置"中获取。

Q: 提示IP不在白名单怎么办? A: 在微信公众平台的"基本配置" → "IP白名单"中添加你的服务器IP。

Q: 如何获取预览用户的OpenID? A: 可以通过微信公众号的用户管理功能获取,或者先不使用预览模式直接发布。

🚀 使用方法

基础发布

// 在AI工具中直接描述需求 "请帮我发布一篇文章到微信公众号,标题是'AI赋能内容创作',作者是'张三',内容是以下Markdown..."

预览模式

"请先预览这篇文章,预览用户OpenID是 'xxx',然后再决定是否正式发布"

状态查询

"查询刚才发布的文章状态,消息ID是 '12345'"

🛠️ API 工具

1. wechat_publish_article

发布或预览文章到微信公众号。

参数:

参数名类型必需说明
titlestring文章标题(最大64字符)
contentstring文章内容(Markdown格式)
appIdstring微信公众号AppID
appSecretstring微信公众号AppSecret
authorstring作者名称(最大8字符)
coverImagePathstring封面图片路径
previewModeboolean是否预览模式(默认false)
previewOpenIdstring预览用户OpenID(预览模式必需)

返回值:

{ "success": true, "publishId": "2247483647", "msgId": "1000000001", "articleUrl": "https://mp.weixin.qq.com/s?__biz=...", "mediaId": "media_id_here" }

2. wechat_query_status

查询文章发布状态和统计数据。

参数:

参数名类型必需说明
msgIdstring消息ID
appIdstring微信公众号AppID
appSecretstring微信公众号AppSecret

返回值:

{ "article_id": "123456", "publish_status": 1, "article_detail": { "title": "文章标题", "author": "作者", "publish_time": 1634567890, "url": "https://mp.weixin.qq.com/s?...", "stat_info": { "read_num": 1000, "like_num": 50, "comment_num": 10, "share_num": 20 } } }

📋 示例

完整发布流程

# 示例:发布技术文章 ## 步骤1:准备内容 将文章写成Markdown格式,包含代码块、图片等。 ## 步骤2:准备封面图 准备一张封面图片,支持PNG、JPG、JPEG格式,建议尺寸900x500px。 ## 步骤3:发布文章 在AI工具中说:"请发布这篇文章到微信公众号",并提供: - 标题:🔥 AI赋能Chrome扩展开发:从PromptX到功能实现的全流程实战教程 - 作者:郑伟 | PromptX技术 - AppID:your_wechat_appid_here(请替换为您的真实AppID) - AppSecret:your_wechat_appsecret_here(请替换为您的真实AppSecret) - 封面图:./cover.png - 内容:[Markdown内容] ## 步骤4:查询状态 发布后使用返回的msgId查询文章状态和数据。

自然语言示例

用户:"帮我把这篇关于Chrome扩展开发的教程发布到微信公众号,标题叫'AI赋能Chrome扩展开发实战教程',作者署名'郑伟',先预览给我看看效果" AI会自动: 1. 解析用户需求 2. 转换Markdown为微信HTML 3. 上传封面图(如果提供) 4. 发送预览消息 5. 返回预览结果和链接

🔧 高级配置

环境变量

变量名默认值说明
LOG_LEVELINFO日志级别(ERROR/WARN/INFO/DEBUG)
NO_COLOR0禁用彩色输出(设为1禁用)
NODE_ENVdevelopment运行环境

启动参数

# 调试模式启动 LOG_LEVEL=DEBUG wechat-publisher-mcp # 生产模式启动 NODE_ENV=production wechat-publisher-mcp

🐛 故障排除

MCP连接问题

1. MCP服务图标显示黄色或红色

症状:AI工具中MCP服务状态异常

解决方案

  1. 检查命令路径
    which wechat-publisher-mcp
  2. 使用绝对路径配置
    { "mcpServers": { "wechat-publisher": { "command": "/Users/username/.nvm/versions/node/v18.20.8/bin/wechat-publisher-mcp", "args": [] } } }
  3. 使用Node.js直接启动
    { "mcpServers": { "wechat-publisher": { "command": "/Users/username/.nvm/versions/node/v18.20.8/bin/node", "args": ["/path/to/wechat-publisher-mcp/src/server.js"] } } }
2. ERR_PACKAGE_PATH_NOT_EXPORTED 错误

症状:启动时报模块导入错误

解决方案

# 重新安装依赖 cd wechat-publisher-mcp npm install # 检查Node.js版本 node --version # 确保 >= v18.0.0
3. 命令未找到错误

症状command not found: wechat-publisher-mcp

解决方案

# 重新创建全局链接 npm unlink -g wechat-publisher-mcp npm link # 或者检查PATH环境变量 echo $PATH

微信API错误

1. IP白名单错误
错误:invalid ip xxx, not in whitelist 解决:在微信公众平台添加服务器IP到白名单

详细步骤

  1. 登录微信公众平台
  2. 进入"开发" → "基本配置"
  3. 找到"IP白名单"设置
  4. 添加你的公网IP地址
  5. 如果不确定IP,可以临时添加 0.0.0.0/0(仅用于测试)
2. access_token错误
错误:access_token invalid 解决:检查AppID和AppSecret是否正确

检查清单

  • AppID格式正确(以wx开头)
  • AppSecret长度为32位
  • 没有多余的空格或换行符
  • 公众号类型支持API调用
3. 封面图上传失败
错误:图片上传失败 解决:检查图片格式(PNG/JPG)和大小(<1MB)

图片要求

  • 格式:PNG、JPG、JPEG
  • 大小:< 1MB
  • 尺寸:建议 900x500px
  • 路径:使用绝对路径或相对于项目根目录的路径
4. 预览失败
错误:预览用户不存在 解决:确认previewOpenId是否正确,用户是否关注公众号

获取OpenID方法

  1. 在微信公众平台的"用户管理"中查看
  2. 通过微信网页授权获取
  3. 使用微信开发者工具测试

权限和认证问题

1. 公众号权限不足
错误:no privilege to write this kind of message 解决:确保公众号已认证且具有群发权限
2. 接口调用次数限制
错误:api minute-quota reach limit 解决:等待一分钟后重试,或优化调用频率

环境和依赖问题

1. Node.js版本过低
错误:SyntaxError: Unexpected token 解决:升级Node.js到v18.0.0或更高版本
2. 依赖安装失败
错误:npm install失败 解决:清理缓存后重新安装
npm cache clean --force rm -rf node_modules package-lock.json npm install

调试模式

启用调试模式查看详细日志:

# 方式一:环境变量 LOG_LEVEL=DEBUG wechat-publisher-mcp # 方式二:在配置中添加 { "mcpServers": { "wechat-publisher": { "command": "wechat-publisher-mcp", "args": [], "env": { "LOG_LEVEL": "DEBUG", "DEBUG": "true" } } } }

获取帮助

如果以上方法都无法解决问题:

  1. 查看详细日志:启用DEBUG模式
  2. 检查网络连接:确保能访问微信API
  3. 提交Issue:在GitHub仓库提交详细的错误信息
  4. 社区求助:在相关技术社区寻求帮助

提交Issue时请包含

  • 操作系统和版本
  • Node.js版本
  • 错误的完整日志
  • 复现步骤
  • 配置文件(隐藏敏感信息)

🧪 测试

# 运行单元测试 npm test # 运行集成测试 npm run test:integration # 运行代码覆盖率测试 npm run test:coverage

🤝 贡献

欢迎提交Issue和Pull Request!

  1. Fork本仓库
  2. 创建特性分支:git checkout -b feature/amazing-feature
  3. 提交更改:git commit -m 'Add amazing feature'
  4. 推送分支:git push origin feature/amazing-feature
  5. 提交Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🔗 相关链接

官方文档

AI工具配置

开发资源

社区和支持

🙏 致谢

感谢以下项目和社区的支持:

核心技术

灵感来源

开源社区

  • 所有提交Issue和PR的贡献者
  • 微信开发者社区的技术分享
  • MCP协议的早期采用者和反馈者

特别感谢

  • 郑伟 - 项目发起人和主要维护者
  • PromptX团队 - 技术指导和架构设计
  • 所有测试用户 - 提供了宝贵的使用反馈

📢 如果这个项目对您有帮助,请给我们一个⭐!

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that allows AI assistants to interact with Appwrite's API, providing tools to manage databases, users, functions, teams, and other resources within Appwrite projects.
    Last updated -
    84
    46
    Python
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.
    Last updated -
    16
    1
    TypeScript
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables AI agents to interact with Qiita, allowing for creating, reading, and updating articles through standardized MCP tools.
    Last updated -
    5
    3
    4
    TypeScript
    MIT License
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that enables users to automatically generate articles using large language models and publish them directly to Zhihu (a Chinese Q\&A platform).
    Last updated -
    11
    Python
    • Linux
    • Apple

View all related MCP servers

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/BobGod/wechat-publisher-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server