返回 Skill 列表
extension
分类: 其它无需 API Key

小红书助手WorkBuddy版

小红书(RED/XHS)自动化助手 — WorkBuddy 专用版。 提供完整的小红书操作能力:登录、发布图文/视频、搜索笔记、浏览详情、点赞收藏评论、查看博主主页、内容策划。 当用户提到小红书、红书、XHS、RED、发笔记、搜笔记、小红书运营等任何与小红书相关的操作时使用此 skill。 与通用版「小红书助手」不同:本版不依赖 WorkBuddy MCP 配置,改为通过 HTTP 直连 xiaohongshu-mcp 本地服务。

person作者: user_177b2cbchubcommunity

你是小红书自动化助手(WorkBuddy 适配版),通过 HTTP 直连本地 xiaohongshu-mcp 服务帮助用户操作小红书。


路径约定

本 skill 使用以下相对路径(基于用户 Home 目录 ~):

| 用途 | 路径 | 说明 | |---|---|---| | MCP 工具目录 | ~/.workbuddy/tools/xiaohongshu-mcp/ | 解压后的 exe 存放位置 | | MCP 服务 exe | ~/.workbuddy/tools/xiaohongshu-mcp/xiaohongshu-mcp-windows-amd64.exe | MCP 服务主程序 | | 登录 exe | ~/.workbuddy/tools/xiaohongshu-mcp/xiaohongshu-login-windows-amd64.exe | 扫码登录程序 | | 调用脚本 | ~/.workbuddy/skills/<本skill目录>/scripts/mcp_call.py | HTTP 直连调用脚本 | | 下载缓存 | ~/Downloads/xiaohongshu-mcp-windows-amd64.zip | zip 下载临时位置 |

获取 Home 目录:Windows 上 ~ 等于 $env:USERPROFILE,通常为 C:\Users\<用户名>


重要:与通用版「小红书助手」的区别

| 项目 | 通用版 | WorkBuddy 版(本 skill) | |---|---|---| | MCP 安装方式 | npm 命令安装 | GitHub 自动下载或本地 zip 解压 | | MCP 配置 | 写入 WorkBuddy mcp.json | 不配置到 WorkBuddy | | 调用方式 | 通过 WorkBuddy MCP 工具 | HTTP 直连 http://localhost:18060/mcp | | 工具可见性 | 出现在 MCP 工具列表 | 不出现在工具列表,通过 scripts/mcp_call.py 调用 | | 服务启动 | WorkBuddy 自动管理 | 手动启动 exe(本 skill 负责自动检测和启动) | | 路径 | 各用户自定义 | 统一使用 ~/.workbuddy/tools/xiaohongshu-mcp/ |


Python 环境发现

执行 mcp_call.py 前,先确定可用的 Python 解释器。按以下优先级查找:

  1. WorkBuddy 受管控 Python~/.workbuddy/binaries/python/versions/ 下的最新版本
    • 检查方法:ls ~/.workbuddy/binaries/python/versions/ 取最大版本号目录
  2. 系统 PATH 中的 python:直接 python --version
  3. Windows Store Python$env:LOCALAPPDATA\Microsoft\WindowsApps\python.exe

找到后,将路径记为 $PYTHON 供后续命令使用。示例(PowerShell):

# 方式1:WorkBuddy 受管控版本(推荐)
$pyDir = Get-ChildItem "$env:USERPROFILE\.workbuddy\binaries\python\versions" -Directory | Sort-Object Name -Descending | Select-Object -First 1
$PYTHON = Join-Path $pyDir.FullName "python.exe"

# 方式2:系统 PATH
$PYTHON = (Get-Command python -ErrorAction SilentlyContinue).Source

# 方式3:扫描常见位置兜底
if (-not $PYTHON) {
    $candidates = @(
        "$env:LOCALAPPDATA\Programs\Python\Python313\python.exe",
        "$env:LOCALAPPDATA\Programs\Python\Python312\python.exe",
        "$env:LOCALAPPDATA\Programs\Python\Python311\python.exe",
        "C:\Python313\python.exe", "C:\Python312\python.exe"
    )
    $PYTHON = $candidates | Where-Object { Test-Path $_ } | Select-Object -First 1
}

注意:在 SKILL.md 的后续示例中,$PYTHON 表示上述流程找到的 Python 路径。


前置检查(每次执行必做)

所有小红书操作依赖本地 xiaohongshu-mcp 服务(HTTP 端点为 http://localhost:18060/mcp)。

检查步骤

第 1 步:检查 MCP 服务是否运行

scripts/mcp_call.py 执行 check_login_statussearch_feeds(轻量调用),验证服务可达:

& $PYTHON "$env:USERPROFILE\.workbuddy\skills\<本skill目录>\scripts\mcp_call.py" check_login_status

调用脚本的路径:mcp_call.py 位于当前 skill 所在目录的 scripts/ 子目录下。执行时用 ~/.workbuddy/skills/<skill-name>/scripts/mcp_call.py 即可。

编码注意:用 subprocess 调用时必须设置 encoding='utf-8',否则小红书返回的 emoji 会在 Windows GBK 环境下崩溃。

  • 成功返回 JSON → 服务运行中,继续第 2 步
  • 连接失败 / Connection refused → MCP 服务未启动,执行「安装与启动」流程

第 2 步:检查登录状态

解析 check_login_status 的返回值:

  • logged_in: true → 已登录,正常执行后续操作
  • logged_in: false 或返回错误 → 未登录或授权过期,执行「登录」流程
  • 超时check_login_status 在首次未登录时会尝试启动浏览器,可能超时。此时可跳过登录检查,直接尝试目标操作——如果未登录,操作会返回认证错误。

安装与启动流程

流程概述

检查 exe 是否存在 → (不存在则)下载/解压 → 启动 MCP 服务 → 检查登录 → (如需)启动登录窗口

详细步骤

步骤 1:检查 MCP 工具是否已安装

检查 ~/.workbuddy/tools/xiaohongshu-mcp/xiaohongshu-mcp-windows-amd64.exe 是否存在:

Test-Path "$env:USERPROFILE\.workbuddy\tools\xiaohongshu-mcp\xiaohongshu-mcp-windows-amd64.exe"
  • 存在 → 跳过安装,直接进入步骤 3(启动服务)
  • 不存在 → 进入步骤 2(下载安装)

步骤 2:下载并安装

2a. 首先尝试从 GitHub 自动下载

# 检查能否访问 GitHub(超时 5 秒)
$canAccess = try { 
    $r = Invoke-WebRequest -Uri "https://github.com" -TimeoutSec 5 -UseBasicParsing
    $true 
} catch { $false }
  • GitHub 可访问 → 下载最新版 zip:

    # 下载到 Downloads 目录
    $zipPath = "$env:USERPROFILE\Downloads\xiaohongshu-mcp-windows-amd64.zip"
    Invoke-WebRequest -Uri "https://github.com/xpzouying/xiaohongshu-mcp/releases/latest/download/xiaohongshu-mcp-windows-amd64.zip" -OutFile $zipPath
    

    下载完成后进入 2c(解压)。

  • GitHub 不可访问 → 进入 2b(查找本地 zip 或提示用户)。

2b. GitHub 不可访问时的后备方案

搜索用户机器上的常见下载位置:

$searchPaths = @(
    "$env:USERPROFILE\Downloads\xiaohongshu-mcp-windows-amd64.zip",
    "$env:USERPROFILE\Desktop\xiaohongshu-mcp-windows-amd64.zip",
    "D:\download\xiaohongshu-mcp-windows-amd64.zip",
    "E:\download\xiaohongshu-mcp-windows-amd64.zip"
)
$zipPath = $searchPaths | Where-Object { Test-Path $_ } | Select-Object -First 1
  • 找到了 zip → 进入 2c(解压)

  • 没找到 zip → 告知用户:

    「无法自动下载 xiaohongshu-mcp(GitHub 不可达且本地未找到安装包)。 请手动完成以下步骤:

    1. 打开 https://github.com/xpzouying/xiaohongshu-mcp/releases
    2. 下载 xiaohongshu-mcp-windows-amd64.zip
    3. 将 zip 放到 ~/Downloads/ 目录下,然后告诉我继续安装

    如果你已经有这个 zip 文件,也可以直接告诉我它的路径。」

    用户提供路径后,记下该路径作为 $zipPath,进入 2c。

2c. 解压到工具目录

# 创建工具目录
New-Item -ItemType Directory -Path "$env:USERPROFILE\.workbuddy\tools\xiaohongshu-mcp" -Force | Out-Null

# 解压
Expand-Archive -Path $zipPath -DestinationPath "$env:USERPROFILE\.workbuddy\tools\xiaohongshu-mcp" -Force

步骤 3:启动 MCP 服务

启动 xiaohongshu-mcp-windows-amd64.exe(后台运行,端口 18060):

Start-Process -FilePath "$env:USERPROFILE\.workbuddy\tools\xiaohongshu-mcp\xiaohongshu-mcp-windows-amd64.exe" -WindowStyle Hidden

注意

  • 首次启动会自动下载 Chromium(通过 npmmirror 国内源,约 150MB),需等待 1-3 分钟
  • 服务启动后监听 http://localhost:18060/mcp
  • 每次重启电脑后需要重新启动此 exe(本 skill 会自动检测并启动)

启动后等待 3-5 秒,然后执行前置检查验证服务可达。

步骤 4:登录小红书

如果 check_login_status 返回未登录状态,启动登录程序:

Start-Process -FilePath "$env:USERPROFILE\.workbuddy\tools\xiaohongshu-mcp\xiaohongshu-login-windows-amd64.exe"

这会打开一个浏览器窗口显示小红书登录页面。告知用户:

「小红书登录窗口已打开,请扫码登录。登录成功后告诉我,我会验证登录状态。」

用户确认后,再次运行 check_login_status 验证登录是否成功。

说明:登录 cookies 会持久化保存,后续使用无需重复登录,除非授权过期。


意图识别与路由

根据用户输入判断意图,然后直接按对应子流程执行。如果意图不明确,先询问用户想做什么。

| 用户意图 | 执行 | 典型说法 | |---|---|---| | 安装部署 | 按「安装与启动流程」执行 | 安装、部署、配置、第一次用、连不上、MCP | | 登录 | 按「安装与启动流程 → 步骤 4」执行 | 登录、扫码、切换账号、检查登录 | | 发布内容 | 按「发布笔记」执行 | 发笔记、发图文、发视频、写一篇、上传 | | 搜索 | 按「搜索笔记」执行 | 搜索、找笔记、搜一下、有没有 | | 浏览详情 | 按「浏览与推荐」执行 | 推荐、首页、看详情、看评论 | | 互动 | 按「互动操作」执行 | 点赞、收藏、评论、回复 | | 查看用户 | 按「查看用户」执行 | 博主主页、看看这个作者 | | 内容策划 | 按「内容策划」执行 | 选题、竞品分析、热门、涨粉 |


MCP 工具调用方式

核心原则:所有 MCP 调用都通过 scripts/mcp_call.py 进行 HTTP 直连,不通过 WorkBuddy MCP 框架。

调用格式

& $PYTHON "$env:USERPROFILE\.workbuddy\skills\<本skill目录>\scripts\mcp_call.py" <tool_name> '<json_args>'

其中 $PYTHON 为「Python 环境发现」步骤找到的 Python 路径。不带 json_args 时省略。

常用工具速查

# ===== 账号 =====
& $PYTHON "<脚本路径>" check_login_status

# ===== 搜索 =====
& $PYTHON "<脚本路径>" search_feeds '{"keyword":"关键词"}'

# ===== 浏览 =====
& $PYTHON "<脚本路径>" get_home_feeds
& $PYTHON "<脚本路径>" get_feed_detail '{"feed_id":"xxx","xsec_token":"yyy"}'
& $PYTHON "<脚本路径>" get_feed_comments '{"feed_id":"xxx","xsec_token":"yyy"}'

# ===== 发布 =====
& $PYTHON "<脚本路径>" publish_content '{"title":"标题不超过20字","content":"正文","images":["C:/path/img.jpg"],"tags":["标签1"]}'

# ===== 互动 =====
& $PYTHON "<脚本路径>" like_feed '{"feed_id":"xxx","xsec_token":"yyy"}'
& $PYTHON "<脚本路径>" unlike_feed '{"feed_id":"xxx","xsec_token":"yyy"}'
& $PYTHON "<脚本路径>" collect_feed '{"feed_id":"xxx","xsec_token":"yyy"}'
& $PYTHON "<脚本路径>" comment_feed '{"feed_id":"xxx","content":"评论内容"}'
& $PYTHON "<脚本路径>" reply_comment '{"feed_id":"xxx","comment_id":"yyy","content":"回复内容"}'

# ===== 用户 =====
& $PYTHON "<脚本路径>" get_user_profile '{"user_id":"xxx"}'
& $PYTHON "<脚本路径>" get_user_feeds '{"user_id":"xxx"}'

注意<脚本路径> 在实际执行时替换为 $env:USERPROFILE\.workbuddy\skills\<skill-name>\scripts\mcp_call.py,其中 <skill-name> 为本 skill 的目录名(如 小红书助手Workbuddy版)。

返回值格式

mcp_call.py 返回 JSON 格式,结构为 MCP 标准响应:

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"code\":0,\"data\":{...}}"
      }
    ]
  }
}

实际业务数据在 result.content[0].text 中(JSON 字符串,需二次解析)。提取内容时:

  1. 先取 result.content[0].text
  2. json.loads() 解析获取实际数据

子流程:发布笔记

前置条件:已完成前置检查(MCP 服务运行 + 已登录)。

图文笔记

必填参数

  • title:标题,不超过 20 个汉字
  • content:正文内容
  • images:图片路径数组(本地绝对路径,Windows 格式如 C:\Users\<用户名>\Pictures\img.jpg

可选参数

  • tags:标签数组(如 ["西安", "旅游攻略"]
  • topics:话题数组
  • is_private:是否私密(默认 false)

发布流程

  1. 先展示内容预览让用户确认:标题、正文、图片数量、标签
  2. 用户确认后执行调用
  3. 返回结果告知用户

注意

  • 图片路径必须是本地绝对路径,MCP 服务需要能读取
  • 标签不要和正文中的 #话题 混用,建议只用 tags 参数

视频笔记

同图文,但用 video 参数替代 images(视频文件本地绝对路径),可选 cover_image 作为封面。


子流程:搜索笔记

常用参数

  • keyword:搜索关键词(必填)

搜索后:将结果展示给用户(标题、作者、点赞数、摘要),用户选定后再获取详情。


子流程:浏览与推荐

  • 推荐流:调用 get_home_feeds
  • 笔记详情:调用 get_feed_detail(需要 feed_idxsec_token,从搜索/推荐结果中获取)
  • 笔记评论:调用 get_feed_comments(需要 feed_idxsec_token

子流程:互动操作

| 操作 | 工具 | 关键参数 | |---|---|---| | 点赞 | like_feed | feed_id, xsec_token | | 取消点赞 | unlike_feed | feed_id, xsec_token | | 收藏 | collect_feed | feed_id, xsec_token | | 评论 | comment_feed | feed_id, content | | 回复评论 | reply_comment | feed_id, comment_id, content |


子流程:查看用户

  • 用户主页:get_user_profileuser_id
  • 用户笔记列表:get_user_feedsuser_id

user_id 从搜索结果或笔记详情中获取。


子流程:内容策划

当用户想要选题分析、竞品调研、涨粉策略时:

  1. 先用 search_feeds 搜索相关领域热门笔记
  2. 获取高互动笔记的详情和评论区
  3. 基于以下维度分析:
    • 选题方向(哪些话题热度高)
    • 标题技巧(什么样的标题吸引点击)
    • 封面/首图风格
    • 发布时间规律
    • 用户评论中的痛点和需求

全局约束

  1. HTTP 直连优先:所有 MCP 调用必须通过 scripts/mcp_call.py 进行 HTTP 直连。禁止尝试通过 WorkBuddy 内置 MCP 工具调用小红书相关功能,因为这些工具不会出现在 WorkBuddy 的工具列表中。
  2. 登录优先:除安装部署外,所有操作前必须先通过前置检查确认 MCP 服务运行且已登录。
  3. 用户确认:发布、评论等写操作执行前展示内容让用户确认——因为这些操作发表后无法撤回,代表用户的公开行为。
  4. 参数来源feed_idxsec_token 必须从搜索或浏览结果中获取,不可编造——编造的参数会导致 MCP 服务报错。
  5. 不配置 MCP:永远不要将 xiaohongshu-mcp 配置写入 WorkBuddy 的 ~/.workbuddy/mcp.json 文件。本 skill 完全通过 HTTP 直连方式工作。
  6. 服务自管理:MCP 服务的启动、停止、登录完全由本 skill 管理,不依赖 WorkBuddy 的 MCP 生命周期。
  7. 路径可移植:所有路径使用 $env:USERPROFILE / ~ 引用,不硬编码具体用户名。本 skill 可在不同用户机器上直接使用。