# Publish To Xiaohongshu

> 基于小红书 MCP 服务发布图文和视频内容到小红书。支持发布图文笔记、视频笔记，自动验证参数，提供内容优化建议。适用于内容创作、营销推广、社交媒体管理等场景

- Skill: `leoyishou/publish-to-xiaohongshu` (Agent Skill, multi-file: 17 files)
- Install (CLI): `npx skillmds@latest add leoyishou/publish-to-xiaohongshu`
- Raw SKILL.md: https://api.skillmd.com/api/skills/leoyishou/publish-to-xiaohongshu/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: leoyishou (https://skillmd.com/u/leoyishou)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/leoyishou/publish-to-xiaohongshu

---


# 小红书内容发布工具

使用小红书 MCP (Model Context Protocol) 服务快速发布内容到小红书平台。

## 重要：发布方式

**两种发布方式（优先 REST API）：**

1. **REST API（推荐）**：通过 `curl` 调用 `http://localhost:18060/api/v1/publish`
2. **MCP 工具（备选）**：调用 `publish_content` / `publish_with_video`

> **CRITICAL: 禁止重复发布！每次发布请求只能调用一次。**
> - 禁止在同一次用户请求中多次发布
> - 如果发布已成功，不要再次尝试发布

**为什么优先 REST API？**
- MCP 工具在 Claude Code 终端中无法将返回的图片保存到本地文件（如二维码）
- REST API 可以直接用 curl 获取数据并用 Python 处理
- REST API 和 MCP 工具调用同一个后端服务，功能完全一致

## 快速开始

### 前置要求

1. **启动小红书 MCP 服务**

确保小红书 MCP 服务已启动：

```bash
# 克隆项目
git clone https://github.com/xpzouying/xiaohongshu-mcp
cd xiaohongshu-mcp

# 启动服务（默认无头模式）
go run .

# 或使用浏览器界面
go run . -headless=false
```

服务将运行在 `http://localhost:18060/mcp`

2. **在 Claude Code 中添加 MCP 服务**

```bash
claude mcp add --transport http xiaohongshu-mcp http://localhost:18060/mcp
```

3. **完成登录**

首次使用需要登录小红书账号。在 Claude Code 中说：

```
请帮我登录小红书
```

Claude 会调用 `xiaohongshu_login` MCP 工具打开登录界面。

### 基础使用

**发布图文内容：**
```
帮我发一篇小红书笔记：
标题：我的日常穿搭分享
内容：今天的穿搭灵感来自...（1000字以内）
图片：/path/to/image1.jpg, /path/to/image2.jpg
```

**发布视频内容：**
```
帮我发一个小红书视频：
标题：美食教程
内容：教你做简单又美味的...
视频：/path/to/video.mp4
```

## 核心功能

### 1. 发布图文笔记

使用 `publish_content` MCP 工具发布图文内容。

**参数要求：**
- `title` (必需): 标题，最多 20 个字符
- `content` (必需): 正文内容，最多 1000 个字符，**不要包含 #标签**
- `tags` (可选): 话题标签数组，如 `["美食", "旅行"]`，**不要加 # 符号**
- `images` (必需): 图片列表，支持：
  - 本地绝对路径（推荐）：`/Users/xxx/image.jpg`
  - HTTP/HTTPS URL

**示例：**
```json
{
  "title": "我的日常穿搭",
  "content": "今天分享一套简约风穿搭...",
  "tags": ["穿搭", "日常", "简约风"],
  "images": [
    "/Users/liuyishou/Pictures/outfit1.jpg",
    "/Users/liuyishou/Pictures/outfit2.jpg"
  ]
}
```

### 2. 发布视频笔记

使用 `publish_with_video` MCP 工具发布视频内容。

**参数要求：**
- `title` (必需): 标题，最多 20 个字符
- `content` (必需): 正文内容，最多 1000 个字符，**不要包含 #标签**
- `tags` (可选): 话题标签数组，如 `["美食", "教程"]`，**不要加 # 符号**
- `video` (必需): 视频文件本地绝对路径（不支持 URL）
- 视频大小：建议小于 1GB

**示例：**
```json
{
  "title": "美食教程",
  "content": "教你做简单的意大利面...",
  "tags": ["美食", "教程", "意大利面"],
  "video": "/Users/liuyishou/Videos/cooking.mp4"
}
```

### 3. 登录管理

**IMPORTANT: 登录必须使用 REST API，不要用 MCP 工具获取二维码。**

MCP 工具返回的二维码图片数据无法在 Claude Code 终端中保存为本地文件，导致用户无法扫码。REST API 可以完美解决这个问题。

#### REST API 端点

| 端点 | 方法 | 说明 |
|------|------|------|
| `/api/v1/login/status` | GET | 检查登录状态 |
| `/api/v1/login/qrcode` | GET | 获取登录二维码（返回 Base64） |
| `/api/v1/login/cookies` | DELETE | 删除 cookies，重置登录 |

#### 登录流程（REST API）

**Step 1: 检查登录状态**
```bash
curl -s http://localhost:18060/api/v1/login/status
# 返回: {"success":true,"data":{"is_logged_in":true/false,...},...}
```

**Step 2: 如果未登录，获取二维码并保存到本地文件**
```bash
curl -s http://localhost:18060/api/v1/login/qrcode | python3 -c "
import sys, json, base64
resp = json.load(sys.stdin)
img_data = resp['data']['img']
b64 = img_data.split(',')[1] if ',' in img_data else img_data
with open('/Users/liuyishou/tmp/xiaohongshu_qrcode.png', 'wb') as f:
    f.write(base64.b64decode(b64))
print('Saved to /Users/liuyishou/tmp/xiaohongshu_qrcode.png')
"
```

**Step 3: 告知用户扫码**
```
请用小红书 App 扫码登录
二维码图片：/Users/liuyishou/tmp/xiaohongshu_qrcode.png
```

**Step 4: 用户确认扫码后，再次检查登录状态**
```bash
curl -s http://localhost:18060/api/v1/login/status
```

**注意事项：**
- 二维码保存到 `~/tmp/` 目录（用户偏好的下载目录）
- 二维码有效期约 4 分钟，超时后重新获取
- 登录信息会被保存，后续发布无需重复登录
- 如需切换账号，先 `curl -X DELETE http://localhost:18060/api/v1/login/cookies`

## 发布工作流

当用户请求发布小红书内容时，遵循以下流程：

### Step 1: 确认用户已登录（强制，使用 REST API）

**⚠️ 重要：发布前必须先检查登录状态，未登录时的发布操作无效！**

```bash
curl -s http://localhost:18060/api/v1/login/status
```

**如果已登录（`is_logged_in: true`）：** 继续下一步

**如果未登录：** 执行 REST API 登录流程（见「3. 登录管理」章节）
1. `curl` 获取二维码 → `python3` 解码保存为 PNG
2. 告知用户二维码路径：`/Users/liuyishou/tmp/xiaohongshu_qrcode.png`
3. 用户确认扫码后，再次 `curl` 检查登录状态
4. **只有确认登录成功后，才能继续发布流程**

### Step 2: 收集和验证内容

与用户确认以下信息：

1. **发布类型**
   - 图文笔记（需要图片）
   - 视频笔记（需要视频文件）

2. **标题** （必需）
   - 限制：20 个字符以内
   - 验证：检查字符数，如超出则提示用户缩短

3. **正文内容** （必需）
   - 限制：1000 个字符以内
   - 验证：检查字符数，如超出则提示用户精简

4. **媒体文件** （必需）
   - 图片：本地路径或 URL（建议使用本地路径）
   - 视频：必须是本地绝对路径
   - 验证：检查文件是否存在（使用 Read 或 Bash 工具）

### Step 3: 参数验证

发布前执行以下验证：

**标题验证：**
```python
def validate_title(title: str) -> bool:
    if len(title) > 20:
        print(f"标题过长（{len(title)}字符），需要缩短到 20 字符以内")
        return False
    return True
```

**内容验证：**
```python
def validate_content(content: str) -> bool:
    if len(content) > 1000:
        print(f"内容过长（{len(content)}字符），需要精简到 1000 字符以内")
        return False
    return True
```

**图片验证：**
```python
def validate_images(images: list) -> bool:
    for img in images:
        if not img.startswith('http') and not os.path.isabs(img):
            print(f"图片路径必须是绝对路径或 URL: {img}")
            return False
    return True
```

**视频验证：**
```python
def validate_video(video: str) -> bool:
    if not os.path.isabs(video):
        print(f"视频必须使用本地绝对路径: {video}")
        return False
    if not os.path.exists(video):
        print(f"视频文件不存在: {video}")
        return False
    return True
```

### Step 4: 方案确认（必须执行）⚠️⚠️⚠️

**🚨 严格要求：在生成任何封面之前，必须先用 AskUserQuestion 让用户选择方案！**

**禁止行为：**
- ❌ 自己判断内容类型后直接生成封面
- ❌ 跳过选择流程直接调用 nanobanana-draw
- ❌ 问用户"确认发布吗"但没问封面风格

**必须执行：**
- ✅ 先用 AskUserQuestion 让用户选择封面风格
- ✅ 等用户选择后再生成封面
- ✅ 用户选择"其他"时追问具体需求

使用 AskUserQuestion 工具向用户展示以下选项：

**问题 1：封面风格选择**
```
请选择封面风格：
A. 手绘白板风格 ⭐ - 流程图/知识框架/AI科技话题（推荐）
B. 杂志大字风格 - 观点金句/简短有力
C. 荧光笔划线风格 - 干货教程/步骤方法
D. 科技渐变风格 - 赛博朋克/深蓝紫渐变
E. 其他（请说明）
```

**问题 2：内容处理方式**
```
请选择内容处理方式：
A. 原文发布 - 保持原文不做修改（推荐）
B. 优化润色 - 按小红书爆款风格改写
C. 只改标题 - 正文保持原文，优化标题
```

**示例调用：**
```
AskUserQuestion:
- 问题1: "封面风格？" 选项: [手绘白板⭐, 杂志大字, 荧光笔划线, 科技渐变]
- 问题2: "内容处理？" 选项: [原文发布⭐, 优化润色, 只改标题]
```

**用户确认后，再执行 Step 5 生成封面。**

---

### Step 5: 选择设计模式生成封面

**根据用户在 Step 4 的选择，使用对应的设计模式生成封面。**

**5.1 用户选择 → 设计模式对照表：**

| 用户选择 | 设计模式 | 适用场景 |
|----------|----------|----------|
| A. 手绘白板 ⭐ | 模式 0 | 流程图、知识框架、AI/科技、方法论 |
| B. 杂志大字 | 模式 4 | 观点金句、核心论点、简短有力 |
| C. 荧光笔划线 | 模式 2 | 干货教程、步骤方法、学习笔记 |
| D. 科技渐变 | 赛博朋克风 | 深蓝紫渐变、霓虹发光、未来感 |

**5.2 使用对应模式的 Prompt 模板：**

根据选择的模式，在「配图设计模式」章节找到对应的 Prompt 模板，填入具体内容后调用 nanobanana-draw 生成封面。

**5.3 示例流程：**

```
内容："AI 能替代所有 CRUD，也能写爬虫，对网络攻防影响大"
↓
分析：这是一个观点/洞察类内容
↓
选择：模式 4 - 杂志大字风格
↓
生成 Prompt：
"生成一张小红书风格封面图，3:4竖版比例，
纯白色背景，无任何纹理，
只用超大号关键词：AI替代CRUD，
纯黑色文字，形成极强黑白对比，
大量留白，无装饰元素"
```

### Step 6: 发布内容（仅调用一次！）

> **CRITICAL: 只能发布一次。成功后直接进入 Step 7，禁止重试。**

**方式一：REST API（推荐）**

```bash
# 发布图文
curl -s -X POST http://localhost:18060/api/v1/publish \
  -H "Content-Type: application/json" \
  -d '{
    "title": "标题（≤20字符）",
    "content": "正文（≤1000字符，不含#标签）",
    "tags": ["标签1", "标签2"],
    "images": ["/abs/path/to/image1.jpg", "/abs/path/to/image2.jpg"]
  }'

# 发布视频
curl -s -X POST http://localhost:18060/api/v1/publish_video \
  -H "Content-Type: application/json" \
  -d '{
    "title": "标题",
    "content": "正文",
    "tags": ["标签1"],
    "video": "/abs/path/to/video.mp4"
  }'
```

**方式二：MCP 工具（备选）**

调用 `publish_content` 或 `publish_with_video` MCP 工具，传入相同参数。
```

### Step 7: 处理结果

发布完成后：

1. **成功情况：**
   - 告知用户发布成功
   - 如果 MCP 返回了笔记链接，提供给用户

2. **失败情况：**
   - 显示错误信息
   - 提供可能的解决方案：
     - 检查登录状态
     - 验证参数格式
     - 检查 MCP 服务是否运行
     - 查看文件路径是否正确

### Step 8: 后置 Hook - 同步到 Twitter（必须执行）

**⚠️ 小红书发布成功后，必须询问用户是否同步到 Twitter。**

发布成功后立即询问：
```
需要同步发到 Twitter 吗？
```

**如果用户同意：**
1. 将内容精简到 280 字符以内（Twitter 限制）
2. 调用 x-post skill 发布：
   ```bash
   python3 ~/.claude/skills/x-post/scripts/x_post.py "精简后的内容" -i 图片路径
   ```
3. 返回 Twitter 链接

**内容适配建议：**
- 保留核心观点，删除详细解释
- 小红书的分点内容可压缩为一句话
- 保留 emoji 增加表现力
- 图片可复用小红书的封面图

## 爆款内容创作指南

当用户提供原始文案或主题时，Claude 应主动运用以下规则优化内容。

### 爆款关键词库

在标题中随机融入 1-2 个爆款词，提升点击率：

```
好用到哭、大数据、教科书般、小白必看、宝藏、绝绝子、神器、都给我冲、
划重点、笑不活了、YYDS、秘方、我不允许、压箱底、建议收藏、停止摆烂、
上天在提醒你、挑战全网、手把手、揭秘、普通女生、沉浸式、有手就能做、
吹爆、好用哭了、搞钱必看、狠狠搞钱、打工人、吐血整理、家人们、
高级感、治愈、破防了、万万没想到、爆款、永远可以相信、被夸爆、
手残党必备、正确姿势、一招搞定、真的绝了、闭眼入、无限回购
```

### 标题创作公式（二极管法）

**正面刺激（激发向往）：**
- 产品/方法 + 快速效果 + 显著改变
- 例：「7天逆袭satisfying！这个神器我不允许还有人不知道！」
- 例：「打工人搞钱必看！副业月入5k的正确姿势」

**负面刺激（制造焦虑）：**
- 警告 + 损失感 + 紧迫感
- 例：「还在xxx？难怪你一直xxx！」
- 例：「90%的人都不知道，xxx的隐藏危害」

**标题模板：**
```
数字+结果：「3招搞定xxx，效果绝了！」
身份+痛点：「打工人必看！xxx的正确姿势」
反常识+好奇：「原来xxx才是关键，后悔没早知道」
挑战+效果：「挑战全网最简单的xxx，有手就能做」
```

### 正文写作规则

**风格要求：**
- 口语化、简短，每句不超过 20 字
- 用「我」做第一人称，拉近距离
- 多用感叹号和省略号制造情绪
- 禁止使用「首先、其次、然而、总之、综上」

**结构模板：**
```
【开篇钩子】15字内抓住注意力（故事/疑问/数据 三选一）

【核心内容】分点陈述，每段带 emoji
- 要点1 ✨
- 要点2 💡
- 要点3 🔥

【互动结尾】引导点赞收藏
「姐妹们觉得有用记得点赞收藏呀~」
「你们还想看什么内容？评论区告诉我！」
```

**Emoji 使用规则：**
- 每段开头或结尾加 1-2 个 emoji
- 重点内容用 ⭐✨🔥💡 标注
- 避免堆砌，保持清爽

### 标签生成规则

从内容中提取 3-6 个关键词作为话题标签：
- 核心主题词（1-2个）
- 人群词（如：打工人、学生党）
- 场景词（如：日常、通勤）
- 情感词（如：治愈、高级感）

### 原文发布模式（推荐）

当用户直接提供完整文案时，**尊重原文内容，不做修改**，只执行以下操作：

1. **提取标题**：从原文第一行或核心观点提炼（≤20字）
2. **保留正文**：原封不动使用用户的文案
3. **智能加标签**：从内容中提取 3-6 个关键词作为话题标签
4. **生成封面**：使用小红书流行的文字封面风格

**触发条件：** 用户直接粘贴大段文字 + "发到小红书" 等指令

---

### 小红书文字封面生成（爆款封面）

小红书最流行的封面是**简洁文字封面**，而非复杂插画。使用 nanobanana-draw 生成时，遵循以下模板：

**核心原则：**
- 纯色/渐变背景 + 大字标题
- 字少、字大、留白多
- 配色简洁（黑白、米白、淡蓝、淡紫）

**Prompt 模板：**

```
生成一张小红书风格的文字封面图片，
[背景色]背景，中间用[字体颜色]大字写着：[主标题]，
下面小字写：[副标题/关键词]，
字体简洁现代，排版居中，极简风格，无其他装饰
```

**配色方案速查：**
| 风格 | 背景色 | 字体色 | 适用场景 |
|------|--------|--------|----------|
| 经典极简 | 纯白 | 黑色 | 干货、观点、知识 |
| 高级灰 | 浅灰/米白 | 深灰/黑 | 职场、商业、理性 |
| 治愈系 | 奶油黄/米色 | 棕色/深橙 | 生活、情感、日常 |
| 科技感 | 深蓝/黑色 | 白色/霓虹蓝 | AI、编程、科技 |
| 少女感 | 淡粉/淡紫 | 白色/深粉 | 美妆、穿搭、甜系 |

**示例 Prompt：**

知识干货类：
```
生成一张小红书风格的文字封面图片，纯白色背景，中间用黑色大字写着：每个人都需要两个Agent，下面小字写：云Agent + 本地Agent，字体简洁现代，排版居中，极简风格，无其他装饰
```

科技观点类：
```
生成一张小红书风格的文字封面图片，深蓝色渐变背景，中间用白色大字写着：2026年AI趋势，下面小字用霓虹蓝写：LLM + 图灵机 = Everything，未来科技感，排版居中，极简风格
```

生活感悟类：
```
生成一张小红书风格的文字封面图片，奶油色背景，中间用棕色大字写着：慢下来也没关系，字体温暖手写风，排版居中，治愈系风格，简洁无装饰
```

---

### AI 插画配图 Prompt 模板

当用户需要插画风格配图时，使用 nanobanana-draw 生成，遵循以下模板：

**通用结构：**
```
[主体描述], [场景/背景], [风格关键词],
bright colors, soft lighting, aesthetic,
xiaohongshu style, high quality, 4k
```

**风格关键词速查：**
| 类型 | Prompt 关键词 |
|------|---------------|
| 干净简约 | minimal, clean background, soft pastel colors |
| 氛围感 | cinematic lighting, moody, warm tones |
| 少女感 | dreamy, pink aesthetic, soft focus, kawaii |
| 高级感 | luxury, elegant, muted colors, editorial |
| 科技感 | neon lights, cyberpunk, dark background, glowing |
| 治愈系 | cozy, warm sunlight, peaceful, natural |
| 扁平插画 | flat illustration, vector style, minimal |

**场景示例：**

知识/观点类：
```
A person standing in center orchestrating floating icons and symbols,
minimalist illustration, dark background, neon blue purple glow,
tech aesthetic, high quality
```

生活方式类：
```
Cozy morning scene, soft natural light, warm beige tones,
aesthetic flatlay, dreamy atmosphere, xiaohongshu style
```

美食类：
```
Delicious [食物名], top view, bright natural lighting,
food photography, appetizing, high quality, 4k
```

---

## 配图设计模式

本节收集了小红书高传播内容的配图设计模式，可直接套用。

### 设计模式速查表

根据内容类型选择合适的设计模式：

| 设计模式 | 适用场景 | 效果 |
|----------|----------|------|
| **手绘白板风格** ⭐ | 流程图、知识框架、方法论、AI/科技话题 | **优先推荐**，高级感+专业感 |
| 数字emoji标题 | 教程类、步骤类内容 | 信息流中更醒目 |
| 手写+数字界面混搭 | 产品介绍、知识付费 | 增加真实感和亲和力 |
| 三层信息架构 | 任何需要快速传达价值的封面 | 清晰的信息层级 |
| 暖色调极简背景 | 知识类、阅读类内容 | 营造舒适专业感 |
| 真实产品截图 | 工具类、平台类产品 | 增加可信度 |
| 竖屏双框对比图 | 对比展示、观点阐述、认知转变 | 强烈视觉对比，易传播 |

### 模式 0：手绘白板风格 ⭐ 优先推荐

**适用场景：** 流程图、知识框架、方法论、系统架构、AI/科技话题、商业概念可视化

**设计特点：**
- 类似 Excalidraw 的手绘草图美学
- 极简线条艺术，粗黑马克笔线条
- 蓝色高亮点缀作为强调色
- 简单涂鸦图标 + 流程图结构
- 纯白背景，干净专业
- 箭头连接各元素，展示数据流/逻辑流

**Prompt 模板：**

```
生成一张小红书风格封面图，3:4竖版比例，
手绘白板草图风格，视觉笔记美学，
极简线条艺术，粗黑马克笔线条，蓝色高亮点缀，
简单涂鸦图标，流程图结构，箭头连接各元素，
纯白背景，干净专业，商业概念可视化。

顶部标题：「[主标题]」用粗体手写风格，蓝色下划线强调。

内容布局（从左到右/从上到下的流程）：
- 第一部分「[模块名]」：[图标描述1]、[图标描述2]
- 第二部分「[模块名]」：[图标描述1]、[图标描述2]
- 第三部分「[模块名]」：[图标描述1]、[图标描述2]

用粗箭头连接各部分，展示流程走向。
风格：Excalidraw 手绘美学，无阴影，无渐变，无3D效果，略带不规则的草图线条。
```

**示例 Prompt：**

知识体系类：
```
生成一张小红书风格封面图，3:4竖版比例，
手绘白板草图风格，视觉笔记美学，
极简线条艺术，粗黑马克笔线条，蓝色高亮点缀，
简单涂鸦图标，流程图结构，箭头连接各元素，
纯白背景，干净专业。

顶部标题：「AI学习路径」用粗体手写风格，蓝色下划线。

布局（从上到下）：
- 基础层：书本图标「理论基础」、代码图标「编程能力」
- 核心层：大脑图标「模型原理」、齿轮图标「工程实践」
- 应用层：火箭图标「项目落地」、奖杯图标「持续迭代」

箭头从上往下连接，Excalidraw手绘风格。
```

方法论/流程类：
```
生成一张小红书风格封面图，3:4竖版比例，
手绘白板草图风格，视觉笔记美学，
极简线条艺术，粗黑马克笔线条，蓝色高亮点缀，
简单涂鸦图标，流程图结构，纯白背景。

顶部标题：「内容创作工作流」

横向布局（左到右）：
- 输入「灵感来源」：灯泡图标、书籍图标
- 处理「内容加工」：铅笔图标、AI芯片图标
- 输出「多平台分发」：手机图标、地球图标

粗箭头连接，Excalidraw手绘美学，无渐变无阴影。
```

**常用图标关键词：**
| 类别 | 图标描述 |
|------|----------|
| 科技 | 机器人头像、芯片、神经网络、代码符号 |
| 数据 | 数据库、文件夹、云存储、放大镜 |
| 社交 | 手机、对话气泡、用户头像、地球 |
| 工具 | 齿轮、扳手、闪电、火箭 |
| 知识 | 书本、灯泡、大脑、毕业帽 |
| 商业 | 图表、金币、握手、奖杯 |

---

### 模式 1：竖屏双框对比图

**适用场景：** 两种心态/方法/前后的对比展示

**布局结构：**
```
┌─────────────────────┐
│      顶部标题        │  ← 总结性标题，点明主题
├─────────────────────┤
│  ┌───────────────┐  │
│  │    上框内容    │  │  ← 第一种情况/观点
│  │   (视觉元素)   │  │
│  └───────────────┘  │
│    1. 文字说明       │
├─────────────────────┤
│  ┌───────────────┐  │
│  │    下框内容    │  │  ← 第二种情况/观点（对比）
│  │   (视觉元素)   │  │
│  └───────────────┘  │
│    2. 文字说明       │
└─────────────────────┘
```

**设计要点：**
1. 竖屏比例（9:16），适合手机浏览
2. 上下两个线框面板，形成视觉分隔
3. 同一主体/角色在两种状态下的对比
4. 简洁有力的文字标注（每框一句话）
5. 通过颜色/表情/动作强化对比效果

**应用示例：**
| 主题 | 上框（情况A） | 下框（情况B） |
|------|--------------|--------------|
| 心态对比 | "我想要，但我害怕..." | "我害怕，但我想要！" |
| 方法对比 | 错误做法 | 正确做法 |
| 前后变化 | 改变前 | 改变后 |
| 选择对比 | 普通选择 | 更好的选择 |

### 模式 2：干货笔记 · 荧光笔划线风格

**适用场景：** 知识干货、学习笔记、经验总结

**Prompt 模板：**
```
生成一张小红书风格封面图，3:4竖版比例，
模拟 Muji 风格的米白色笔记本内页，带有淡淡的灰色横线，
主标题使用加粗黑体字（深灰色），多层级字号，
对关键词 [关键词1]、[关键词2] 使用黄色荧光笔划线高亮，
角落加入小字"干货分享"或"建议收藏"
```

### 模式 3：简约文艺 · 撕纸拼贴风格

**适用场景：** 生活感悟、旅行日记、情感类

**Prompt 模板：**
```
生成一张小红书风格封面图，3:4竖版比例，
纯白色背景上放置一张边缘有撕裂效果的白色纸片，
纸片有细微自然阴影形成立体拼贴感，
标题使用手写体黑色字，居中排版，
左上角添加一个半透明的和纸胶带小贴纸（斜纹或波点图案），
点缀一个与内容相关的简笔画小图标
```

### 模式 4：高级质感 · 杂志大字风格

**适用场景：** 观点输出、金句分享、高端内容

**Prompt 模板：**
```
生成一张小红书风格封面图，3:4竖版比例，
纯白色背景（#FFFFFF），无任何纹理，
只用1-2个超大号关键词作为主标题，
字体选择宋体或 Helvetica Neue，
纯黑色文字（#000000），形成极强黑白对比，
大量留白，无装饰元素，
右下角极小字号标注创作者ID
```

### 模式 5：莫兰迪灰蓝 · 手写混搭风格

**适用场景：** 产品介绍、工具推荐、知识付费

**Prompt 模板：**
```
生成一张小红书风格封面图，3:4竖版比例，
低饱和度莫兰迪灰蓝色背景（#E8EDF2），
上半部：年份标签 + 主标题（加粗黑体，最大字号）+ 副标题，
下半部：产品截图/流程图 + 手写风格标注，
用手写箭头串联步骤（如：阅读 → 灵感 → 链接），
整体高级感，信息密度适中
```

---

## 最佳实践

### 内容创作建议

1. **标题优化**
   - 控制在 20 字以内
   - 融入 1-2 个爆款关键词
   - 使用数字和符号增加吸引力

2. **正文结构**
   - 开头：钩子句（15字内）
   - 中间：分点陈述 + emoji
   - 结尾：互动引导

3. **图片要求**
   - 建议使用本地路径（更稳定）
   - 确保图片清晰、美观
   - 多图时注意排版和顺序

4. **视频要求**
   - 文件大小控制在 1GB 以内
   - 格式：常见视频格式（MP4、MOV 等）
   - 时长：建议 15 秒到 5 分钟

### 性能优化

1. **文件处理**
   - 使用绝对路径避免路径错误
   - 发布前检查文件是否存在
   - 大文件提前告知用户上传时间可能较长

2. **批量发布**
   - 如需发布多条内容，逐条处理
   - 每次发布后等待结果再继续

### 错误处理

1. **常见错误及解决方案**

   - **未登录：** 调用 `xiaohongshu_login` 重新登录
   - **标题或内容超长：** 提示用户精简内容
   - **文件不存在：** 检查路径是否正确
   - **MCP 服务未启动：** 提示用户启动服务
   - **网络错误：** 检查网络连接

2. **调试技巧**
   - 发布失败时，检查 MCP 服务日志
   - 使用无头模式（`-headless=false`）观察浏览器操作

## 应用场景

### 内容营销
```
帮我发布一篇产品推广笔记：
标题：新品首发｜限时优惠
内容：详细介绍产品特点...
图片：产品图片路径
```

### 生活分享
```
发布我的旅行日记：
标题：三亚旅行攻略
内容：分享我的三亚之旅...
图片：旅行照片
```

### 教程分享
```
发布一个编程教程视频：
标题：Python 入门教程
内容：本期教你 Python 基础...
视频：教程视频路径
```

### 日常记录
```
记录今天的美食：
标题：自制提拉米苏
内容：做法和心得...
图片：成品照片
```

## REST API 完整参考

xiaohongshu-mcp 服务同时提供 MCP 和 REST API 两套接口，功能完全一致。

**Base URL**: `http://localhost:18060`

| 端点 | 方法 | 说明 |
|------|------|------|
| `/health` | GET | 健康检查 |
| `/api/v1/login/status` | GET | 检查登录状态 |
| `/api/v1/login/qrcode` | GET | 获取登录二维码（返回 `data.img` 为 base64 PNG） |
| `/api/v1/login/cookies` | DELETE | 删除 cookies，重置登录 |
| `/api/v1/publish` | POST | 发布图文笔记 |
| `/api/v1/publish_video` | POST | 发布视频笔记 |
| `/api/v1/feeds/list` | GET | 获取 Feeds 列表 |
| `/api/v1/feeds/search` | GET/POST | 搜索 Feeds（`keyword` 参数） |
| `/api/v1/feeds/detail` | POST | 获取 Feed 详情（`feed_id`, `xsec_token`） |
| `/api/v1/user/profile` | POST | 获取用户主页 |
| `/api/v1/user/me` | GET | 获取当前登录用户信息 |

**响应格式**：
```json
// 成功
{"success": true, "data": {...}, "message": "..."}
// 失败
{"error": "...", "code": "ERROR_CODE", "details": "..."}
```

## 故障排查

### MCP 服务相关

**Q: 提示找不到 MCP 工具？**
A:
1. 确认 MCP 服务已启动：`http://localhost:18060/mcp`
2. 检查是否已添加到 Claude Code：`claude mcp list`
3. 如未添加，执行：`claude mcp add --transport http xiaohongshu-mcp http://localhost:18060/mcp`

**Q: MCP 服务启动失败？**
A:
1. 检查端口 18060 是否被占用
2. 查看 Go 环境是否正确安装
3. 查看项目 README 的故障排查部分

### 发布相关

**Q: 发布失败，提示未登录？**
A:
1. 调用 `check_login_status` 检查登录状态
2. 如果未登录，调用 `get_login_qrcode` 获取二维码
3. 二维码会保存为 `xiaohongshu_login_qrcode.png` 到当前目录
4. 使用小红书 App 扫码登录

**Q: 二维码过期了怎么办？**
A: 二维码有效期约 5 分钟，过期后重新调用 `get_login_qrcode` 获取新二维码

**Q: 需要切换账号怎么办？**
A:
1. 调用 `delete_cookies` 删除当前登录信息
2. 重新调用 `get_login_qrcode` 获取二维码
3. 用新账号扫码登录

**Q: 图片上传失败？**
A:
1. 检查图片路径是否为绝对路径
2. 确认图片文件存在
3. 尝试使用本地路径而非 URL

**Q: 视频上传失败？**
A:
1. 确认视频文件小于 1GB
2. 检查视频格式是否支持
3. 确保使用本地绝对路径

## 隐私与安全

1. **账号安全**
   - 登录信息存储在本地
   - 不会上传到第三方服务器
   - 建议使用小号进行测试

2. **内容审核**
   - 发布内容需遵守小红书社区规范
   - 避免违规内容（广告、引流等）
   - 建议先在小红书客户端测试

3. **MCP 服务安全**
   - 服务仅在本地运行
   - 端口仅监听 localhost
   - 不会泄露个人信息

## 开始使用

配置完成后，直接在 Claude Code 中说：

```
帮我发一篇小红书笔记
发布视频到小红书
登录小红书账号
```

Claude 会自动使用这个 skill 帮你完成小红书内容发布！

## 相关资源

- **小红书 MCP 项目**: https://github.com/xpzouying/xiaohongshu-mcp
- **MCP 协议文档**: https://modelcontextprotocol.io/
- **MCP Python SDK**: https://github.com/modelcontextprotocol/python-sdk

