ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI+MCP 自动化发布小红书笔记和视频:TaoToken 统一 Key 接入 xhs-toolkit 配置实战

AI+MCP 自动化发布小红书笔记和视频:TaoToken 统一 Key 接入 xhs-toolkit 配置实战 1. 为什么我盯上了 xhs-toolkit 这条自动化链路做小红书运营的朋友大概率都经历过这种循环白天写脚本、拍素材晚上蹲在电脑前一条条手动发笔记标题、正文、话题、图片位置来回切窗口发完还要切到创作者中心看数据。单账号还能忍一旦手上同时跑三五个账号纯手工发布基本等于把自己焊在椅子上。xhs-toolkit 这个项目解决的就是这段重复劳动。它是一个基于 MCP 协议的小红书自动化工具包把「获取 Cookie、发布图文/视频笔记、采集创作者数据」这些动作封装成 MCP 工具AI 客户端Claude Desktop、Cherry Studio 等通过对话就能调用。你只需要用自然语言说清楚标题、正文、图片地址和话题剩下的浏览器操作、页面跳转、发布确认全部由工具链完成。它适合谁我梳理了三类一是需要批量发布笔记和视频的运营同学二是想把内容发布接进自己 Agent 工作流的开发者三是想用 AI 对话方式管理多个小红书账号的团队。不适合纯小白拿来当「一键涨粉神器」因为它本质是自动化执行层内容质量还得你自己把控。真正让我决定写这篇实战的是另一个坑MCP 客户端调用模型时需要 API Key而不同客户端、不同模型的 Key 管理很碎。我这次用 TaoToken 的统一 Key 来收口配合 xhs-toolkit 的 config.toml 和 settings.json把「模型调用」和「发布执行」两条链路串成一条可复现的流程。下面按我实际跑通的顺序拆开讲。2. TaoToken 前置准备统一 Key 怎么拿、放哪在动手配 xhs-toolkit 之前先把模型侧的 Key 准备好。TaoToken 的定位是统一接入层一个 Key 可以对接多个模型省得你在 Cherry Studio、Claude Desktop、Coding Plan 之间来回换配置。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 这个地址不加 UTM配置里直接写。拿 Key 的路径很直接进控制台创建 API Key复制出来。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你后面要跑长期编码或 Agent 任务可以看下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。这里有个容易踩的点MCP 客户端里填的 Key 和 xhs-toolkit 本身没关系。xhs-toolkit 负责的是小红书侧的浏览器自动化它不调用大模型调用大模型的是 Cherry Studio 这类客户端。所以你的 Key 是填在客户端的模型配置里不是填在 xhs-toolkit 的 .env 里。我第一次配的时候就把两者搞混了在 .env 里找模型配置找了半天其实那边只有 Cookie 和浏览器相关参数。注意Key 属于敏感凭证不要写进会提交到 Git 的配置文件。建议放在客户端本地配置或环境变量里仓库里的示例文件只做占位。模型侧确认能通之后再进入 xhs-toolkit 的安装和配置。顺序反了的话你会在「工具装好了但 AI 调不动」的状态里卡很久。3. xhs-toolkit 安装与 config.toml 骨架3.1 环境先决条件xhs-toolkit 依赖 Chrome 和匹配版本的 ChromeDriver。这里有个版本对齐的坑ChromeDriver 的发布经常滞后于 Chrome 正式版所以不要盲目装最新 Chrome而是先去 Chrome for Testing 的可用性页面查当前能拿到的 driver 版本号再装同版本 Chrome。Windows 下可以用 winget 装 Chromewinget install --id Google.Chrome --source winget装完在浏览器地址栏输入chrome://version/查版本号。假设查到是 138.0.7204.94那 ChromeDriver 也要装这个版本winget install --id Chromium.ChromeDriver --source winget --version 138.0.7204.94验证一下chromedriver --versionLinux 下更推荐用 webdriver-manager 自动匹配省去手动对版本的麻烦uv venv .chrome_webdriver source .chrome_webdriver/bin/activate uv pip install webdriver-manager deactivate3.2 克隆与依赖安装git clone https://github.com/aki66938/xhs-toolkit.git cd xhs-toolkit uv syncuv sync会自动创建虚拟环境并装依赖。装完先跑一次状态检查确认工具本身可用uv run python xhs_toolkit.py status3.3 config.toml 骨架xhs-toolkit 的配置分两块一块是项目根目录的.envCookie、浏览器路径等运行时参数一块是 MCP 客户端侧的settings.json模型和 MCP server 注册。先看.env的骨架从示例文件复制cp env_example .env.env里我实际会关注这几项# 浏览器可执行文件路径指向你装好的 Chrome CHROME_PATHC:\Program Files\Google\Chrome\Application\chrome.exe # ChromeDriver 路径版本必须和 Chrome 匹配 CHROMEDRIVER_PATHC:\Program Files\Chromium\ChromeDriver\chromedriver.exe # Cookie 存储位置登录后自动写入 COOKIE_FILE./cookies/xhs_cookies.json # 无头模式调试阶段建议 false能看到浏览器操作过程 HEADLESSfalse # 发布超时网络慢可以调大 PUBLISH_TIMEOUT120如果你更习惯用 TOML 组织可以把上面这些整理成config.toml字段名和.env保持一致工具读取时会做映射。我实测下来调试阶段把HEADLESS设成false非常关键——你能亲眼看到浏览器打开、跳转、填表、点发布出问题时一眼就知道卡在哪一步。3.4 登录获取 Cookie配置好之后先登录把 Cookie 拿到手./xhs cookie save或者走交互式菜单./xhs # 选择 4 - Cookie管理 - 1 - 获取新的Cookies浏览器会弹出来你手动登录小红书创作者中心确认能正常访问后台功能后回到终端按回车保存。Cookie 会写进COOKIE_FILE指定的路径。这一步只做一次后续发布复用这份凭证。4. settings.json 配置片段与 MCP server 启动4.1 启动 MCP serverCookie 就绪后启动 MCP server./xhs server start或者走菜单5 - MCP服务器 - 1 - 启动服务器。启动后它会监听本地端口等待客户端连接。4.2 Cherry Studio 的 settings.json 片段在 Cherry Studio 里注册这个 MCP server配置片段大致长这样{ mcpServers: { xhs-toolkit: { command: uv, args: [ --directory, D:/workspace/xhs-toolkit, run, python, xhs_toolkit.py, mcp ], env: { CHROME_PATH: C:/Program Files/Google/Chrome/Application/chrome.exe, CHROMEDRIVER_PATH: C:/Program Files/Chromium/ChromeDriver/chromedriver.exe, HEADLESS: false } } } }同时模型侧的 Key 配置在 Cherry Studio 的模型服务里填 TaoToken 的 API 基址和你的 Key{ provider: taotoken, baseUrl: https://taotoken.net/api, apiKey: sk-你的TaoToken密钥, model: claude-sonnet-4-5 }这里baseUrl就是前面说的 API 地址不带 UTM 参数。模型名按你实际开通的填模型对话入口在 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。4.3 勾选 MCP server配置保存后在 Cherry Studio 的对话界面里要确保勾选了xhs-toolkit这个 MCP server。没勾的话AI 根本看不到这些工具你发再多指令它也只能干聊。注意Cherry Studio 调用 MCP tool 时需要用户确认右侧会出现一个勾选按钮点一下才会真正执行。这是安全机制不是 bug。5. 一次发布任务的验证动作与成功结果5.1 图文笔记发布准备一张本地图片然后在对话里用自然语言请求请发布一篇小红书笔记标题电梯中看到领养猫咪启示莫名好笑哈哈 内容今天在坐电梯时看到了一张领养猫咪的启示广东中山的朋友们 如果想领养猫咪可以联系猫主人哈 使用本地图片D:/images/cat.jpg 话题#分享、#铲屎官、#猫咪、#记录日常、#领养调用 MCP 时Chrome 会自动打开跳转创作者中心填标题、正文、上传图片、设置话题最后点发布完成后自动关闭浏览器。如果之前登录过Cookie 有效全程无需人工干预。话题格式是成功率的关键。我试过不加#号、用逗号分隔结果话题没设置成功AI 反复重试。正确写法是每个话题带#话题之间用顿号「、」分隔这样一次过的概率高很多。5.2 网络图片发布图片也可以走 URL。把图片放到可公开访问的地址先验证 URL 在浏览器里能打开再请求请发布一篇小红书笔记标题测试网络图片发布 内容这是一条用网络图片发布的测试笔记 使用这个网络图片https://example.com/test.jpg 话题#测试、#自动化实测中会遇到 tool 调用提示失败但 MCP server 内部会自动重试最终往往发布成功。所以看到第一次失败提示时先别急着取消等它重试完再看结果。5.3 视频笔记发布视频发布流程和图文类似把图片参数换成视频路径或 URL 即可。视频文件体积大上传耗时长建议把PUBLISH_TIMEOUT调大比如 300 秒。发布完成后同样去创作者中心确认。5.4 成功结果确认发布成功后登录小红书创作者中心在「笔记管理」里能看到刚发的笔记状态是已发布。我实测那次图文笔记发出去后还收到了两个赞说明链路是通的。数据采集功能也能用创作者中心的仪表板、内容分析、粉丝数据会被抓成中文表头的 CSVAI 可以直接读。6. 本篇常见错排查清单6.1 ChromeDriver 版本不匹配报错通常是session not created: This version of ChromeDriver only supports Chrome version XX。解决方法是查chrome://version/拿到 Chrome 版本去 Chrome for Testing 页面找同版本 driver重新安装。Linux 下用 webdriver-manager 可以自动对齐。6.2 Cookie 失效表现是浏览器打开后停在登录页或者发布时提示未登录。重新跑./xhs cookie save登录一次即可。Cookie 有有效期长期不用会过期。6.3 MCP server 连不上先确认./xhs server start在跑再看 settings.json 里的--directory路径是不是指向你实际的仓库目录。路径写错是最常见的原因Windows 下注意用正斜杠或双反斜杠。6.4 话题设置失败前面提过话题必须带#多个话题用「、」分隔。写成分享,铲屎官这种工具解析不出来会反复重试。6.5 首次登录不成功、刷新后才进我遇到过每次调用smart_publish_note时第一次登录不成功自动刷新后才进创作者中心。可能和机器性能有关也可能和用的是自动化测试专用 Chrome 有关。换成标准版 Chrome 试试或者把HEADLESS设成false观察具体卡在哪。6.6 图片 URL 不可访问网络图片发布前先在浏览器里直接访问那个 URL能看到图才说明地址有效。钉钉文档这类需要权限的地址要先设为公开。6.7 发布超时视频或大图上传慢把PUBLISH_TIMEOUT调大。网络环境差的时候无头模式反而容易超时建议调试阶段保持有头模式。排障时如果怀疑是模型侧的问题可以去模型对话页单独测一下模型是否正常响应https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入相关的配置问题文档里有更细的字段说明https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。Key 的管理和轮换在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。7. 把这条链路用顺的几个实操建议跑通一次发布之后我做了几件事让它更稳。第一把常用的话题组合固化成提示词模板每次只改标题和正文减少格式错误。第二Cookie 单独备份一份换机器或重装时直接恢复省去重新登录。第三视频发布和图文发布分开跑不要混在一个对话里避免上下文干扰。第四定期去创作者中心核对发布结果自动化不等于免检尤其是批量场景。如果你要跑长期的内容发布 AgentCoding Plan 那边有更完整的额度方案https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。控制台里可以看调用量和 Key 状态https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后说个我踩过的坑不要一上来就批量发。先用一个测试账号、一条测试笔记把全链路走通确认 Cookie、ChromeDriver、MCP server、模型 Key 四个环节都没问题再逐步放量。自动化发布的价值在于省时间但前提是链路稳定否则排查问题花的时间比手动发还多。
返回列表