Install
openclaw skills install xhs-publish小红书一键发布 — AI 全流程搞定:自动生成标题 → 撰写正文 → 封面/知识卡片/视频(三种形式) → 一键发布。3 分钟从创意到上线,支持多模型自由切换。触发词:发小红书、发布笔记、小红书发布、发笔记、小红书笔记、写小红书、写笔记。
openclaw skills install xhs-publish核心能力:文案创作(标题+正文+封面图)和笔记发布(图文/视频)
支持三种笔记格式:
用户请求写笔记/发小红书
│
▼
用户是否提供了主题?
│
┌────────────┴────────────┐
│ │
没有 有
│ │
▼ │
① 询问主题 │
│ │
└────────────┬────────────┘
│
▼
② 笔记类型选择
│
▼
生成标题 + 正文(通用)
│
┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
📷纯封面图 🖼️知识卡片 🎬视频笔记
│ │ │
▼ ▼ ▼
生成封面 生成知识卡片 ③ 视频流程
│ │ │
└──────────────────┼──────────────────┘
│
▼
④ 内容确认
│
┌───────┴───────┐
│ │
满意 不满意
│ │
▼ ▼
⑤ 发布流程 重新生成/调整
│
┌─────────┼─────────┐
│ │
▼ ▼
发布成功 发布失败
│ │
▼ ▼
完成 ✅ ⑥ 登录流程
(注:🎬 视频笔记不需要封面图,小红书会自动从视频中截取)
关键确认节点(AI 执行重点):
⚠️ 笔记内容禁止出现以下关键词!
禁止关键词:
原因:
替代方案:
检查时机:
⚠️ 永远不要发路径!永远要发图片!
正确方式:
// 1. 先把文件复制到 inbound 目录
cp /path/to/file.jpg /root/.openclaw/media/inbound/
// 2. 再用 message 发送
message({
action: "send",
channel: "feishu",
media: "/root/.openclaw/media/inbound/file.jpg",
filename: "文件名.jpg"
})
✅ 永远用 media 参数发送图片,✅ 永远从 /root/.openclaw/media/inbound/ 目录发送
❌ 所有其他方式都不行:
message 参数发路径 → 用户看到路径⚠️ 智能判断是否需要询问主题!
判断规则:
询问主题的提示:
请选择主题类型:
- 📱 产品/工具分享 — 分享你使用的某个产品或工具
- 📖 教程/攻略 — 教别人如何做某件事
- 🌅 日常分享 — 分享日常生活、旅行、美食等
- 🎁 好物推荐 — 推荐你觉得好用的东西
⚠️ 用户确认主题后,询问笔记类型和封面方式!
请选择笔记类型:
- 📷 纯封面图 — AI 生成单张封面图 + 正文(最常用,适合分享/种草)
- 🖼️ 知识卡片 — 生成精美知识卡片 + 正文(适合教程/长文)
- 🎬 视频笔记 — AI 生成视频 + 正文(适合动态展示/教程)
用户选择纯封面图后,询问封面方式:
请选择封面生成方式:
- 🎨 AI 模型生图 — 使用 AI 模型生成封面图(需要 API Key)
- 📝 MD2Card 一句话封面 — 输入一句话,自动生成精美封面(支持关键字标注)(推荐)
用户选择知识卡片或视频笔记后,直接进入生成流程。
⚠️ 不同笔记类型的生成流程不同!
并行生成,一次性确认:
分步确认,避免浪费资源:
⚠️ 视频笔记不需要生成封面图! 小红书会自动从视频中截取。
自动执行流程(每步完成后发送进度提示):
生成标题:自动生成 5 个标题,默认选择第一个
✅ 1/5 标题生成完成生成正文:根据主题生成 600-800 字正文
✅ 2/5 正文生成完成生成知识卡片内容(仅知识卡片类型):2000-3000 字
✅ 3/5 知识卡片内容生成完成生成封面图:根据类型生成
✅ 4/5 封面图生成完成生成知识卡片图(仅知识卡片类型):使用 MD2Card MCP
✅ 5/5 知识卡片图生成完成生成完成后,一次性发送给用户确认:
📝 笔记内容已生成!
标题(默认第一个):
- 标题1
- 标题2
- 标题3
- 标题4
- 标题5
正文: [正文内容]
封面:[图片]
是否满意?
- 满意,直接发布
- 换个标题
- 重新生成正文
- 重新生成封面
- 全部重新生成
优先使用当前对话模型,参考 references/title-guide.md 生成 5 个不同风格的标题。
核心要求:
5 种标题风格:
优先使用当前对话模型,参考 references/content-guide.md。
字数要求:
| 笔记类型 | 正文字数 | 知识卡片文字 | 配音文案 | 说明 |
|---|---|---|---|---|
| 📷 纯封面图 | 600-800 字 | - | - | 简洁总结 |
| 🖼️ 知识卡片 | 600-800 字 | 2000-3000 字 | - | 正文简洁,知识卡片内容更丰富 |
| 🎬 视频笔记 | 200-300 字 | - | 与正文一致 | 正文即配音文案 |
知识卡片字数说明:
视频笔记字数说明:
格式要求:
适用场景:需要个性化、创意性强的封面图
前置条件:需要配置 AI 生图 API Key(Doubao/Hunyuan)
自动执行流程:
Prompt 模板:
cute cartoon illustration style, [场景描述], kawaii anime style, soft pastel [色调] colors, minimal clean background, with Chinese text "[标题]" at top, no watermark, high quality, square format, poster design
生图调用示例:
curl -X POST "https://ark.cn-beijing.volces.com/api/v3/images/generations" \
-H "Authorization: Bearer $DOUBAO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-5-0-260128",
"prompt": "cute cartoon illustration style, ...",
"size": "2048x2048",
"n": 1
}'
适用场景:快速生成精美封面,支持关键字标注
特点:
自动执行流程:
封面文案生成规则:
示例:
标题:OpenClaw原理剖析
封面文案:
如何让OpenClaw真的能干活
3分钟看懂 | 实用技巧 | 效率翻倍
⚠️ MD2Card API 调用(推荐):
# 调用 MD2Card API 生成封面
curl -X POST https://md2card.cn/api/generate/cover \
-H "x-api-key: $MD2CARD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "如何让OpenClaw真的能干活\n3分钟看懂 | 实用技巧 | 效率翻倍",
"keywords": "OpenClaw",
"count": 3
}'
# 响应示例:
{
"success": true,
"images": [
{
"url": "https://md2card-com.oss-cn-shenzhen.aliyuncs.com/screenshot/xxx.png",
"fileName": "screenshot/xxx.png",
"size": 218.88
}
],
"cost": 2,
"message": "成功生成 3 张封面图片,消耗 2 积分"
}
# 下载第一张图片
curl -s "图片URL" -o /root/.openclaw/media/inbound/xhs_cover.png
参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
text | string | 封面文字(支持换行符 \n) |
keywords | string | 关键词(用于高亮) |
count | number | 生成数量(1-3) |
返回值说明:
images:图片数组(最多3张)url:图片下载链接cost:消耗积分(通常2分)⚠️ 知识卡片需要生成封面 + 知识卡片内容!
封面生成位置:已在「三、封面生成」章节的「3.2 MD2Card 一句话封面」中完成
本章只负责生成知识卡片内容(MD2Card MCP)
MD2Card 知识卡片是付费服务!
| 项目 | 价格 |
|---|---|
| 封面图 | 约 0.05 元/张 |
| 知识卡片 | 约 0.1 元/张 |
充值地址:https://md2card.cn/zh/login
积分不足时的处理:
检测积分的 API 调用:
# 检测 MD2Card 积分(可选,提前检测)
curl -s https://md2card.cn/api/user/info \
-H "x-api-key: $MD2CARD_API_KEY"
# 响应示例:
{
"success": true,
"data": {
"balance": 50, # 剩余积分
"used": 100 # 已用积分
}
}
# 如果 balance < 10,建议充值
错误提示模板:
⚠️ MD2Card 积分不足
知识卡片生成需要 MD2Card 积分(约 0.1 元/张)。
当前账户积分已用完,请充值后继续: 👉 充值地址:https://md2card.cn/zh/login
或者改用「📷 纯封面图」模式发布笔记?
自动执行流程:
⚠️ 封面生成位置:封面已在「三、封面生成」章节生成,这里只生成知识卡片内容!
🔴 重要:知识卡片必须使用 API 方式,并设置自动拆分参数!
关键参数:splitMode: "autoSplit"(不是 "auto",不是 "noSplit")
完整 API 调用示例:
source /etc/environment && timeout 120 npx -y md2card-mcp-server@latest << 'EOFMCP'
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"openclaw","version":"1.0.0"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"md2card_api","arguments":{
"markdown": "## 标题\n\n内容...",
"type": "小红书",
"theme": "apple-notes",
"splitMode": "autoSplit"
}}}
EOFMCP
入参 JSON 示例:
{
"markdown": "## 🎯 OpenClaw 是什么?\n\nOpenClaw 是一个 AI 助手框架...\n\n---\n\n## 💎 5 大核心玩法\n\n### 1️⃣ 小红书一键发布\n...",
"type": "小红书",
"theme": "apple-notes",
"splitMode": "autoSplit",
"width": 440,
"height": 586,
"mdxMode": false,
"overHiddenMode": false
}
参数说明:
| 参数 | 值 | 说明 |
|---|---|---|
markdown | 字符串 | Markdown 格式的知识卡片内容(1500-2000字) |
type | "小红书" | 卡片类型,使用小红书尺寸(440x586) |
theme | "apple-notes" | 主题风格(推荐苹果备忘录) |
splitMode | "autoSplit" | 🔴 关键!自动拆分参数,必须是这个值! |
width | 440 | 卡片宽度(小红书默认) |
height | 586 | 卡片高度(小红书默认) |
返回结果示例(多张图片):
{
"result": {
"content": [{
"type": "text",
"text": "**下载图片**\n[screenshot/xxx_1.png](https://...)\n图片大小:120 KB\n[screenshot/xxx_2.png](https://...)\n图片大小:95 KB\n[screenshot/xxx_3.png](https://...)\n图片大小:85 KB\n...\n\n**在线编辑**\n[点击在线编辑](https://...)\n\n- 本次消耗积分:10"
}]
}
}
⚠️ 消耗积分:每张卡片消耗 1 积分(10 张卡片 = 10 积分)
⚠️ 图片尺寸:自动拆分后的卡片尺寸为 880 x 1172(小红书标准尺寸)
⚠️ 用户确认时必须展示所有拆分后的图片!
# 发送封面图
openclaw message send --channel feishu --media /root/.openclaw/media/inbound/md2card_cover.png --message "📷 封面预览"
# 发送知识卡片
openclaw message send --channel feishu --media /root/.openclaw/media/inbound/md2card_content.png --message "🖼️ 知识卡片预览"
⚠️ 优先使用 MD2Card MCP 生成知识卡片!
前置条件:
npm install -g md2card-mcp-server@latestexport MD2CARD_API_KEY="您的密钥"检测 MCP 是否已安装:
# 检查环境变量
echo $MD2CARD_API_KEY && echo "✅ MCP 已配置" || echo "❌ MCP 未配置"
如果 MCP 已配置,使用 MCP 生成:
# 启动 MCP 服务(后台运行)
MD2CARD_API_KEY="您的密钥" npx -y md2card-mcp-server@latest &
MCP 调用示例(JSON-RPC 2.0 批量请求):
export MD2CARD_API_KEY="您的密钥"
# 调用 MCP 生成小红书知识卡片
cat << 'EOF' | timeout 30 npx -y md2card-mcp-server@latest
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"openclaw","version":"1.0.0"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"md2card_api","arguments":{"markdown":"## 标题\n\n内容","type":"小红书","theme":"apple-notes"}}}
EOF
MCP 参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
markdown | string | Markdown 格式内容 |
type | string | 卡片类型:小红书、正方形、手机海报、A4纸打印 |
theme | string | 主题风格(见下方列表) |
themeMode | string | 主题模式(可选) |
可用主题列表(theme):
apple-notes - 苹果备忘录(推荐)xiaohongshu - 紫色小红书darktech - 暗黑科技glassmorphism - 玻璃拟态minimal - 简约高级灰dreamy - 梦幻渐变typewriter - 复古打字机返回结果格式:
{
"result": {
"content": [{
"type": "text",
"text": "**下载图片**\n[图片链接](https://...)\n图片大小:XX KB\n\n**在线编辑**\n[点击在线编辑](https://...)"
}]
}
}
下载所有拆分后的图片:
# MCP 返回结果示例(多张图片):
{
"result": {
"content": [{
"type": "text",
"text": "**下载图片**\n[图片1](https://...)\n[图片2](https://...)\n[图片3](https://...)\n\n**在线编辑**\n[点击在线编辑](https://...)"
}]
}
}
# 提取所有图片 URL 并下载
# 使用 grep 提取所有图片链接
urls=$(echo "$result" | grep -o 'https://[^)]*\.png')
# 创建保存目录
mkdir -p /root/.openclaw/media/inbound/xhs_cards
# 下载所有图片
i=1
for url in $urls; do
curl -s "$url" -o "/root/.openclaw/media/inbound/xhs_cards/card_$i.png"
echo "✅ 已下载第 $i 张卡片"
i=$((i+1))
done
# 发送所有图片给用户确认
for file in /root/.openclaw/media/inbound/xhs_cards/card_*.png; do
openclaw message send --channel feishu --media "$file" --message "🖼️ 知识卡片"
done
⚠️ 注意:每张卡片消耗 1 积分,下载前确认积分充足!
如果 MCP 未配置,提示用户安装(必装):
⚠️ MD2Card MCP 未安装!
MD2Card MCP 是知识卡片的必装组件,请先安装:
安装步骤:
- 访问 https://md2card.cn/zh/login 申请 API 密钥
- 复制 API 密钥
- 发送给我,格式:
MD2CARD_API_KEY=sk-xxx- 我会自动配置环境变量
配置完成后,即可生成知识卡片。
⚠️ 视频笔记采用多镜头方式,需要用户多次确认!
⚠️ 视频笔记不需要生成封面图! 小红书会自动从视频中截取。
⚠️ 用户确认内容后,询问视频风格!
5 个视频风格选项:
| 序号 | 风格 | 描述 | 适合场景 |
|---|---|---|---|
| 1 | 🎨 卡通可爱 | 卡通角色,明亮色彩,轻松有趣 | 日常分享、趣味内容 |
| 2 | 🔬 科技简约 | 简洁线条,科技蓝,专业感 | 技术讲解、工具介绍 |
| 3 | 🌙 暗黑科技 | 深色背景,霓虹光效,未来感 | 高端产品、极客内容 |
| 4 | 🌈 梦幻渐变 | 柔和渐变,温暖色调,治愈系 | 情感分享、生活记录 |
| 5 | 📰 商务专业 | 简洁大气,商务配色,正式感 | 职场干货、商业内容 |
询问提示:
🎬 请选择视频风格:
- 🎨 卡通可爱 — 卡通角色,明亮色彩,轻松有趣
- 🔬 科技简约 — 简洁线条,科技蓝,专业感(推荐)
- 🌙 暗黑科技 — 深色背景,霓虹光效,未来感
- 🌈 梦幻渐变 — 柔和渐变,温暖色调,治愈系
- 📰 商务专业 — 简洁大气,商务配色,正式感
请回复数字 1-5,或直接说风格名称。
默认风格:如果用户跳过或不确定,默认使用「科技简约」
⚠️ 用户选择风格后,生成分镜脚本 + 配音文案!
🔴 文案-语音-视频三同步规则(最重要!)
三要素必须完全一致:
同步要求:
分镜规则:
分镜脚本模板:
{
"style": "科技简约",
"total_duration": 30,
"shots": [
{
"id": 1,
"duration": 5,
"narration": "你有没有遇到过,让AI帮你整理文件,它说无法访问?",
"prompt": "User typing on phone asking AI chatbot, error message appears, frustrated expression, clean tech UI, blue and white colors, 4K quality"
}
]
}
Prompt 生成规则(根据风格调整):
| 风格 | Prompt 关键词 |
|---|---|
| 卡通可爱 | cartoon style, cute characters, bright colors, kawaii, playful |
| 科技简约 | clean minimal design, tech blue, simple lines, professional, modern UI |
| 暗黑科技 | dark background, neon glow, cyberpunk, futuristic, holographic |
| 梦幻渐变 | soft gradient, pastel colors, dreamy, warm tones, ethereal |
| 商务专业 | clean corporate design, professional colors, business style, formal |
⚠️ 生成分镜后,必须发送给用户确认!
确认提示:
🎬 分镜脚本已生成!
视频风格:[用户选择的风格] 总时长:约 XX 秒
镜头 1(0-5秒)
- 配音:"[配音文案]"
- 画面:[画面描述]
镜头 2(5-10秒)
- 配音:"[配音文案]"
- 画面:[画面描述]
...(所有镜头)
分镜满意吗?
- ✅ 满意,开始生成视频
- 调整配音文案
- 调整画面风格
- 重新生成分镜
⚠️ 用户确认分镜后,才开始生成视频!
生成流程:
进度反馈:
🎬 视频生成中...
✅ 1/5 配音生成完成 ✅ 2/5 视频片段 1/4 完成 ✅ 3/5 视频片段 2/4 完成 ...
豆包 Seedance API(当前使用):
# 提交视频生成任务
curl -X POST "https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer $DOUBAO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-5-pro-251215",
"content": [{"type": "text", "text": "[Prompt]"}]
}'
# 查询任务状态
curl -s "https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks/[task_id]" \
-H "Authorization: Bearer $DOUBAO_API_KEY"
环境变量(存储在 /etc/environment):
export DOUBAO_API_KEY="919ec537-6d4d-43c4-a5ce-a90a17673bbb"
付费说明:约 0.1 元/5秒视频
充值入口:https://console.volcengine.com/finance/recharge
使用 Edge TTS 生成中文配音:
# 生成配音
edge-tts --text "配音文案内容" --voice zh-CN-XiaoxiaoNeural --write-media output.mp3
可用中文语音:
zh-CN-XiaoxiaoNeural — 温柔女声(推荐)zh-CN-YunxiNeural — 阳光男声zh-CN-YunyangNeural — 专业男声合并视频片段:
# 创建合并列表
cat > concat_list.txt << 'EOF'
file 'shot_1.mp4'
file 'shot_2.mp4'
file 'shot_3.mp4'
EOF
# 合并
ffmpeg -f concat -safe 0 -i concat_list.txt -c copy merged.mp4
添加配音:
ffmpeg -i merged.mp4 -i narration.mp3 \
-c:v copy -c:a aac \
-map 0:v:0 -map 1:a:0 \
final_with_audio.mp4
添加字幕:
ffmpeg -i final_with_audio.mp4 \
-vf "subtitles=subtitle.srt:force_style='FontName=Noto Sans CJK SC,Fontsize=24,PrimaryColour=&HFFFFFF,OutlineColour=&H000000,Outline=2'" \
-c:a copy final_video.mp4
⚠️ 视频生成完成后,必须进行音画同步校验!通过后才能发送给用户确认!
校验步骤:
# 1. 获取配音时长
audio_duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 narration.mp3)
# 2. 获取视频时长
video_duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 merged_video.mp4)
# 3. 计算差值
diff=$(echo "$audio_duration - $video_duration" | bc)
abs_diff=${diff#-}
# 4. 判断是否通过
if (( $(echo "$abs_diff < 1" | bc -l) )); then
echo "✅ 音画同步校验通过"
else
echo "❌ 音画不同步,差值: ${abs_diff}秒"
fi
调整方案:
# 如果配音更长 → 视频放慢
speed_ratio=$(echo "scale=2; $video_duration / $audio_duration" | bc)
setpts_value=$(echo "scale=2; 1 / $speed_ratio" | bc)
ffmpeg -i video.mp4 -filter:v "setpts=${setpts_value}*PTS" -an slowed_video.mp4
# 如果视频更长 → 视频加速
speed_ratio=$(echo "scale=2; $video_duration / $audio_duration" | bc)
ffmpeg -i video.mp4 -filter:v "setpts=${speed_ratio}*PTS" -an faster_video.mp4
示例:
ffmpeg -i video.mp4 -filter:v "setpts=1.28*PTS" -an output.mp4⚠️ 校验不通过时:
] }
---
## 六、发布流程
**⚠️ 用户确认内容后,立即发布,不需要询问!**
### 6.1 立即发布
#### 前置检查
**⚠️ 小红书 MCP 是必装项,无法发布笔记!**
执行环境检查:
```bash
bash {baseDir}/check_env.sh
返回码说明:
| 返回码 | 状态 | 处理方式 |
|---|---|---|
0 | ✅ 正常已登录 | 继续发布 |
1 | ❌ 未安装 MCP | 告知用户必须安装(见「八、安装 MCP 服务」) |
2 | ⚠️ 未登录 | 进入「七、登录流程」 |
如果返回码为 1(未安装),提示用户:
⚠️ 小红书 MCP 未安装,无法发布笔记!
小红书 MCP 是发布笔记的必装组件,请先安装:
安装步骤:
- 安装依赖:
sudo apt install -y xvfb imagemagick zbar-tools xdotool fonts-noto-cjk- 下载 MCP:
cd ~/xiaohongshu-mcp && wget https://github.com/xpzouying/xiaohongshu-mcp/releases/latest/download/xiaohongshu-mcp-linux-amd64.tar.gz- 解压并启动:
tar xzf xiaohongshu-mcp-linux-amd64.tar.gz && DISPLAY=:99 nohup ./xiaohongshu-mcp-linux-amd64 -port :18060 > mcp.log 2>&1 &详细安装步骤见「八、安装 MCP 服务」
{
"name": "publish_content",
"arguments": {
"title": "标题",
"content": "正文",
"images": ["/path/to/cover.jpg"],
"tags": ["标签1", "标签2"]
}
}
{
"name": "publish_content",
"arguments": {
"title": "标题",
"content": "正文",
"images": ["/path/to/cover.jpg", "/path/to/content.jpg"],
"tags": ["标签1", "标签2"]
}
}
{
"name": "publish_with_video",
"arguments": {
"title": "标题",
"content": "正文",
"video": "/path/to/video.mp4"
}
}
MCP 发布超时设置为 180 秒(3 分钟)
发布失败自动重试机制:
⚠️ 小红书需要扫码两次:
获取二维码:
MCP_URL="http://localhost:18060/mcp"
SESSION_ID=$(curl -s -D /tmp/headers -X POST "$MCP_URL" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{}},"id":1}' \
> /dev/null && grep -i 'Mcp-Session-Id' /tmp/headers | awk '{print $2}')
curl -s --max-time 30 -X POST "$MCP_URL" -H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_login_qrcode","arguments":{}},"id":2}'
当扫码登录失败时使用。
获取 Cookie:
a1、web_session、websectiga、id_token更新 Cookie 文件:
nano ~/xiaohongshu-mcp/cookies.json
重启 MCP 服务:
pkill -f xiaohongshu-mcp && sleep 3
cd ~/xiaohongshu-mcp && export DISPLAY=:99
nohup ./xiaohongshu-mcp-linux-amd64 -port :18060 > mcp.log 2>&1 &
sudo apt update && sudo apt install -y xvfb imagemagick zbar-tools xdotool fonts-noto-cjk
Xvfb :99 -screen 0 1920x1080x24 &
mkdir -p ~/xiaohongshu-mcp && cd ~/xiaohongshu-mcp
wget https://github.com/xpzouying/xiaohongshu-mcp/releases/latest/download/xiaohongshu-mcp-linux-amd64.tar.gz
tar xzf xiaohongshu-mcp-linux-amd64.tar.gz
chmod +x xiaohongshu-*
export ROD_DEFAULT_TIMEOUT=10m
DISPLAY=:99 nohup ./xiaohongshu-mcp-linux-amd64 -port :18060 > mcp.log 2>&1 &
图片/视频必须使用服务器本地绝对路径:
"images": ["{baseDir}/media/inbound/cover.jpg"]
"video": "{baseDir}/media/inbound/video.mp4"
不要用 base64 编码(会导致上传超时):
"images": ["data:image/jpeg;base64,..."]
⚠️ 永远用文件路径,永远不要用 base64!
pgrep -f xiaohongshu-mcp # MCP 是否运行
pgrep -x Xvfb # Xvfb 是否运行
tail -20 ~/xiaohongshu-mcp/mcp.log # 查看日志
lsof -i :18060 # 检查端口
1. 发布失败(已重试)
2. context deadline exceeded
ROD_DEFAULT_TIMEOUT=10m3. 图片上传超时