mcpbeat

Self Media Wechat Publisher

yanhua1010/self-media-wechat-publisher

把已确认的公众号终稿 Markdown 排版并写入微信公众号草稿箱。用于用户说"发布到公众号、写入草稿箱、公众号排版、换个排版主题、发小绿书图片消息"等场景。自动上传封面与文内图片,支持多主题与自定义 CSS、多账号和 server 模式。只创建草稿不群发,凭据只通过环境变量提供,未安装适配工具时交付手动发布包。

2k tokens
context cost
the whole folder, loaded on every use
4
files
instructions only
0
copies elsewhere
how many repositories repackaged it
343
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/yanhua1010/self-media-content-workflow --skill self-media-wechat-publisher

The instruction itself

as written by the author

公众号发布

目标

把确认过的公众号终稿 Markdown 排版成平台原生富文本,连同封面和文内图片写入公众号草稿箱。只创建草稿,从不群发。

适配层说明

本模块是公众号渠道的发布适配层,基于开源工具 wenyan CLI(Apache-2.0)。wenyan 不可用时不阻塞创作流程,按 self-media-content-delivery 交付手动发布包。

前置检测

  • wenyan --version 确认安装。未安装时提示 npm install -g @wenyan-md/cli,用户不想安装则直接交付手动发布包。
  • 确认 WECHAT_APP_IDWECHAT_APP_SECRET 环境变量存在。只判断存在性,不读取、不回显、不写入任何文件。
  • 首次发布前确认运行机器 IP 已加入公众号后台白名单。IP 频繁变动或团队协作场景使用 server 模式,见 wenyan-setup.md。

输入契约

文章顶部必须有 frontmatter:title 必填;cover 为本地或网络路径,缺省时自动取正文第一张图;authorsource_url 可选。文内图片支持本地绝对路径、相对路径和网络地址,发布时自动上传公众号素材库。模板见 wechat-article-template.md。

小绿书图片消息:frontmatter 设 type: image 自动提取正文全部图片,或手动列出 image_list。最多 20 张,首图即封面。

主题选择

  • 优先读取账号风格档案中的默认排版主题。
  • 没有默认主题或用户要求换风格时,用当前文章渲染候选主题生成本地预览(wenyan render -f 文章.md -t 主题),让用户对比选择。
  • 用户选定后写入账号风格档案,后续沿用,不重复询问。
  • 需要品牌化排版时用 -c 加载自定义 CSS 主题。

发布流程

两层授权缺一不可:终稿确认,加上草稿箱写入授权。

  • 核对 frontmatter 完整、封面可用、文内图片路径全部有效。
  • wenyan render 本地渲染,确认无乱码、代码块和表格可读。
  • wenyan publish -f 文章.md -t 主题 -h 高亮主题 写入草稿箱。
  • 提醒用户在公众号后台打开草稿,核对标题、封面、前两段、图片数量和外链。
  • 把草稿创建时间、使用主题和核对结果写回任务卡。

发布失败时按 wenyan-setup.md 排查。同一错误不盲目重试超过一次,凭据类问题交给用户处理。

多账号

发布到多个公众号时,改用 wenyan 的凭据配置管理多账号,publish 时加 --app-id 指定。每个账号都需要独立配置 IP 白名单。

安全边界

  • 只写草稿箱,不调用群发接口。
  • 凭据只通过环境变量或 wenyan 凭据配置提供,不写入任务卡、文章、日志或仓库。
  • 命令输出中出现 token 或密钥片段时不记录、不转述。
  • 发布接口报错、白名单拦截或凭据失效时立即停止并交给用户。

输出

返回:草稿标题、使用主题、封面来源、图片数量、草稿创建时间和需要人工核对的清单。

How to use it

Copy the folder

Take yanhua1010/self-media-wechat-publisher from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference npm. Without those the skill loads but fails at the first command.