post-to-xhs

Installation
SKILL.md

输入判断

根据用户提供的素材判断发布类型:

  • 提供了视频文件 → 视频笔记
  • 提供了图片 → 图文笔记
  • 仅提供文本 → 提示用户至少提供图片或视频

约束

  • 标题最多 20 个中文字或英文单词(小红书平台限制,超长会被截断)
  • 图文笔记至少 1 张图片(小红书不允许纯文本笔记)
  • 视频笔记仅支持本地视频文件绝对路径(MCP 服务需要读取本地文件)
  • 图片和视频不能混用,只能二选一(小红书平台限制)
  • 正文中不要包含 # 标签(标签通过 tags 参数单独传递,MCP 服务会自动处理格式)
  • 发布前展示完整内容让用户确认(发布后无法撤回)

执行流程

1. 收集发布信息

确保以下内容齐全:

  • title(必填)— 标题
  • content(必填)— 正文
  • 图片列表或视频路径(必填其一)
  • tags(可选)— 话题标签
  • schedule_at(可选)— 定时发布,ISO8601 格式
  • is_original(可选,仅图文)— 声明原创
  • visibility(可选)— 公开可见 | 仅自己可见 | 仅互关好友可见

信息不完整时,向用户询问缺少的部分。

2. 内容校验

  • 检查标题长度(≤20 中文字)
  • 检查图片/视频文件路径是否为绝对路径
  • 如用户提供 URL 内容,先用 WebFetch 提取文本和图片

3. 确认发布

向用户展示完整的发布内容预览:

  • 标题、正文、标签
  • 图片列表或视频路径
  • 定时时间、可见范围(如有)

等待用户确认后才执行发布。

4. 发布

图文笔记 — 调用 publish_content

  • title(string,必填)
  • content(string,必填)
  • images(string[],必填)— 图片路径或 URL
  • tags(string[],可选)
  • schedule_at(string,可选)
  • is_original(bool,可选)
  • visibility(string,可选)

视频笔记 — 调用 publish_with_video

  • title(string,必填)
  • content(string,必填)
  • video(string,必填)— 本地视频绝对路径
  • tags(string[],可选)
  • schedule_at(string,可选)
  • visibility(string,可选)

5. 报告结果

发布成功后,告知用户笔记 ID 和发布状态。

失败处理

场景 处理
未登录 引导使用 xhs-login
标题超长 提示用户缩短标题
图片路径无效 提示检查路径是否正确
视频使用了相对路径 提示改为绝对路径
发布失败 展示错误信息,建议检查内容或重试
Weekly Installs
2
GitHub Stars
203
First Seen
Mar 24, 2026