AI+MCP实现自动化发布小红书笔记和视频

xhs-toolkit,一个强大的基于AI和MCP的小红书自动化工具包

阅读原文

建议阅读原文,始终查看最新文档版本,获得最佳阅读体验:《xhs-toolkit,一个强大的基于AI和MCP的小红书自动化工具包》

介绍

一个强大的小红书自动化工具包,支持通过MCP协议与AI客户端(如Claude Desktop等)集成,实现与AI对话即可进行内容创作、发布及创作者数据分析。

支持Windows和Linux。

✨ 主要特性

🍪 Cookie管理: 安全获取、验证和管理小红书登录凭证

🤖 MCP协议支持: 与Claude Desktop、CherryStudio等AI客户端无缝集成

📝 自动发布: 支持图文和视频笔记的自动化发布

🖼️ 多样化图片支持: 支持本地图片、网络URL

⏰ 定时任务: 支持cron表达式的定时数据采集

📊 数据采集: 自动采集创作者中心仪表板、内容分析、粉丝数据

🧠 AI数据分析: 中文表头数据,AI可直接理解和分析

💾 数据存储: 支持csv本地存储(sql目前保留,暂不开发)

🎯 统一接口: 一个工具解决llm操作小红书自动化需求

github网址

aki66938/xhs-toolkit: 📕 小红书创作者MCP工具包 - 支持与AI客户端集成的内容创作和发布工具

安装先决条件

安装Google chrome浏览器

Windows系统

温馨提示:需要注意的是,不一定有与最新版本chrome相匹配的chromedriver,因为chromedriver可能会延迟发布,所以建议最好先查看最新版本的chromedriver版本号,然后安装相同版本的chrome浏览器

可以从此网站查询到最新版本的chromedriver信息:Chrome for Testing availability

从下图可以看到,最新版本的chromedriver版本号是138.0.7204.94,所以应该安装相同版本的chrome浏览器。(当时,最新版本的chrome其实是138.0.7204.101)

image.png

注意:从https://googlechromelabs.github.io/chrome-for-testing/这个网站下载的chrome,其实是用于开发者和自动化测试的,跟平时使用的浏览器还是有区别的,无需安装,直接打开解压后的chrome.exe,即可开启chrome浏览器

# 定义目标文件路径(保存到当前用户的下载目录)
$outputPath = "$env:USERPROFILE\Downloads\google_chrome_138.0.7204.94.zip"

# 使用 Invoke-WebRequest 下载并保存为指定文件名
Invoke-WebRequest -Uri "https://storage.googleapis.com/chrome-for-testing-public/138.0.7204.94/win64/chrome-win64.zip" -OutFile $outputPath
#解压下载的zip文件
Expand-Archive -Path $outputPath -DestinationPath "$env:USERPROFILE\Downloads"

解压后,能看到这些文件夹和文件

image.png

#下行命令始终安装最新版本的Google chrome浏览器。建议使用最新版本的Windows系统(如Windows11 24H2或更高版本)
#需要注意的是,不一定有与最新版本chrome相匹配的chromedriver,因为chromedriver可能会延迟发布,所以建议最好先查看最新版本的chromedriver版本号,然后安装相同版本的chrome浏览器
winget install --id Google.Chrome --source winget

安装ChromeDriver

注意:ChromeDriver的版本必须与电脑中已经安装的Google chrome版本完全匹配。

查询chrome的版本

如何查询chrome的版本呢?很简单在Chrome浏览器中访问:chrome://version/ 就能查询到版本信息了

image.png

用uv创建虚拟环境(适用于Linux系统)

如果未安装uv,则需要先安装uv,详细教程请参考:《uv,An extremely fast Python package and project manager, written in Rust》

用uv创建虚拟环境

uv venv .chrome_webdriver

image.png

激活虚拟环境

.chrome_webdriver\Scripts\activate

image.png

安装webdriver-manager(适用于Linux系统)

# 使用webdriver-manager自动管理,其会自动安装与chrome匹配的chromedriver
uv pip install webdriver-manager

#取消激活虚拟环境
deactivate

image.png

安装chromedriver(适用于Windows)

winget install --id Chromium.ChromeDriver --source winget --version 138.0.7204.94

image.png

验证安装的chromedriver版本

chromedriver --version

image.png

查询chromedriver安装的位置

chromedriver --help

下图箭头所示的位置其实是符号链接,真正的文件是在另外一个位置

image.png

真正的文件在下图所示的文件夹中

image.png

安装xhs-toolkit

克隆仓库

#如果未安装git,可以用下行命令快速安装
winget install --id Git.Git --source winget
#克隆仓库
git clone https://github.com/aki66938/xhs-toolkit.git

image.png

安装依赖

cd .\xhs-toolkit\

# 使用uv安装依赖并运行,此命令会自动创建虚拟环境
uv sync

image.pngimage.png

验证工具是否可用

uv run python xhs_toolkit.py status

image.png

使用xhs-toolkit

创建配置文件

edit的安装教程请参考:《edit,Windows系统原生的命令行文本编辑器》

#复制并重命名env_example
copy-item env_example .env
#edit是Windows系统原生的文本编辑器,当然也可以用记事本应用
edit .env  # 编辑配置,也可以用记事本编辑此文件,命令为:notepad.exe .\.env

image.png

利用命令登录小红书(获取登录凭证cookie)

# 方式一:使用交互式菜单
./xhs
# 选择 4 -> Cookie管理 -> 1 -> 获取新的Cookies

# 方式二:直接命令
./xhs cookie save

在弹出的浏览器中:

登录小红书创作者中心

确保能正常访问创作者中心功能

完成后按回车键保存

image.pngimage.pngimage.png

image.pngimage.png

image.png

image.png

启动MCP server

# 方式一:使用交互式菜单
.\xhs
# 选择 5 -> MCP服务器 -> 1 -> 启动服务器

# 方式二:直接命令
.\xhs server start

image.png

image.png

配置MCP客户端

cherry studio

有关cherry studio的教程请阅读此文:《cherry studio》

image.png

用cherry studio发布一篇小红书笔记(图文笔记)

准备图片

我下载了一张图片,用于测试

image.png

选中相应的mcp server

首先要确保勾选了相关的MCP server

image.png

直接用自然语言请求即可

我问了三次才成功:

调用mcp时,会自动打开chrome浏览器,完成后,会自动关闭chrome浏览器,是高度自动化的,若之前已经登录过小红书,则无线再次登录,完全自动化发布小红书笔记。

注意:在cherry studio中,调用mcp中的tool时,还需要用户确认(右侧有个勾,点击这个√),确认后,才会真正调用mcp中的tool

image.png

mcp server日志:

image.png

image.png

验证:

如下图,确实已经成功发布了小红书图文笔记,而且我还收到了两个赞呢[大笑]image.png

image.png

优化提示词,确保一次成功

其实之前,经过三次提问,才成功发布小红书笔记的原因是话题没有正确设置,应该要加上#号,然后不同的话题之间用、分隔,这样成功率非常高。

视频演示

请至钉钉文档查看附件《cherry studio自动发布小红书笔记视频演示.mp4》

准备一张图片,放到网络上

这次我将图片放到网络上,而不是本地,试试看能否成功发布小红书笔记(图文笔记)

为了方便,我直接将图片存放在钉钉文档上,然后将钉钉文档公开,如此任何人都可以访问此图片

领养猫咪.jpg

还得知道上面这种图片的url才行,很简单,直接将当前钉钉文档导出为本地的markdown文件,从markdown文件这就能看到图片的url了。

image.png

还可以先提前验证,url是否正确,直接在浏览器访问此url即可,如下图,能看到图片,说明url正确。

image.png

用自然语言请求发布小红书笔记

提问:

请发布一篇小红书笔记,标题:"电梯中看到领养猫咪启示,莫名好笑哈哈",内容:"今天在坐电梯时,看到了一张领养猫咪的启示,广东中山的朋友们,如果想领养猫咪,可以联系猫主人哈",使用这个网络图片:“https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/5VLqXLbxxb1YvqX1/img/09d45681-9595-4887-b094-c3dfb50e0a04.jpg",话题:#分享、#铲屎官、#猫咪、#记录日常、#领养

虽然提示调用tool失败,但是实际上,mcp server会自动进行重试的,最终其实是成功发布了,所以,第二次调用tool时,我直接取消了(点叉叉)

image.png

反思

我注意到,每次调用mcp server中的smart_publish_note工具时,第一次登录总是没有成功,自动刷新后,才正常进入小红书创作中心网站。这可能跟我实验时电脑性能比较差有关,还有可能是我用的是自动化测试专用的chrome浏览器,可以采用标准版的chrome浏览器试试,或许可以避免此问题。

验证

如下图,成功发布了小红书笔记

image.png

发布小红书视频

本小节验证能否利用此MCP server发布小红书笔记(视频)

image.png

image.png

image.png

关于作者和DreamAI

https://docs.dingtalk.com/i/nodes/Amq4vjg890AlRbA6Td9ZvlpDJ3kdP0wQ?iframeQuery=utm_source=portal&utm_medium=portal_recent

关注微信公众号“AI发烧友”,获取更多IT开发运维实用工具与技巧,还有很多AI技术文档!

梦幻智能logo-01(无水印).png

### 实现 Spring AI MCP 中的 SSE(Server-Sent Events) 为了通过 Spring AI MCP 协议实现 SSE(Server-Sent Events),需要理解以下几个核心概念: 1. **SSE 基础** SSE 是一种基于 HTTP 的技术,允许服务器向客户端推送实时更新的数据。它适用于单向通信场景,即服务器主动推送给客户端消息[^1]。 2. **MCP 上下文协议** MCP 使用 JSON-RPC 2.0 来定义消息格式,并支持通过多种传输方式传递数据。其中,HTTP with SSE 被用来实现实时通知功能[^3]。 3. **Spring Boot 集成 SSE** 在 Spring 应用程序中,可以通过 `ResponseEntity` 或者 `StreamingResponseBody` 提供流式响应来实现 SSE 功能。 以下是具体实现方法的一个示例教程: #### 创建 Spring Boot 项目 首先创建一个新的 Spring Boot 项目并引入必要的依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` #### 定义控制器以支持 SSE 推送 下面是一个简单的控制器代码片段,展示如何使用 Spring Boot 发布 SSE 数据流: ```java import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @RestController public class SseController { @GetMapping(value = "/sse", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux<String> streamEvents() { return Flux.generate( sink -> sink.next(LocalDateTime.now().toString()) ).delayElements(Duration.ofSeconds(1)); } } ``` 上述代码实现了每秒一次的时间戳广播服务。 #### 结合 MCP 协议扩展 SSE 如果要将此逻辑嵌入到 MCP 框架中,则需进一步调整消息结构使其兼容 JSON-RPC 2.0 格式的请求与响应。例如,在每次发送事件之前封装为标准的 JSON 对象形式: ```json { "jsonrpc": "2.0", "method": "notifyUpdate", "params": {"timestamp": "2023-10-07T12:00:00"} } ``` 这样做的目的是让前端能够解析接收到的内容作为合法的 RPC 方法调用。 #### 处理 SQLite 后端存储问题 对于某些特定环境下的部署需求,比如 Windows 平台上的 claude-desktop 工具链集成案例提到过关于 uvx 可执行文件路径设置错误引发的问题解决方案可以参照以下步骤解决[^4]: 修改配置文件中的 command 参数指向实际存在的可运行实例绝对地址即可避免因找不到对应工具而导致启动失败的情况发生。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值