关于 rednote-gate
rednote-gate 是一个本地 MCP 服务,通过浏览器自动化操作一个专用的一次性 RedNote 账号。读取操作立即执行,写入操作则排队等待用户在本地页面批准,且默认使用试运行模式。
主要功能
- 01读取 RedNote 笔记、评论和搜索结果
- 02排队发布笔记、草稿、点赞和评论
- 03在本地网页上要求人工批准
- 04默认试运行并设每日预算
- 05在本机生成文字卡片图片
适用场景
- 01浏览笔记和评论以研究主题
- 02准备笔记或回复并等待审核
- 03在不发布内容的情况下测试浏览器流程
- 04通过审批和状态查询管理待处理写入
MCP 相关
本地 stdio MCP 服务向兼容主机提供 RedNote 读写工具和提示词。写入工具只负责排队,审批在 MCP 之外的本地网页完成。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
15收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
rednote-gate
rednote-gate 专用于一个专门创建的一次性小红书账号。切勿将其用于主账号或品牌账号。它通过浏览器自动化运行,这违反了小红书的服务条款。账号可能会受到限流或封禁。请只使用一个即使失去也能承担得起的账号。
网站:https://yashshelar007.github.io/rednote-gate/
这是一个供 Claude Code、Claude Desktop 和 Codex 使用的本地 MCP 服务。读取操作会直接执行。每一项写入操作都会在队列中等待,直到有人点击本地网页上的“批准”。
快速开始
从 npm 安装
npm install -g rednote-gate
rednote-gate setup
这会安装 Chromium,打开一次性账号的二维码登录页面,并将 rednote-gate 连接到 Claude Code。你的数据和登录信息保存在 ~/.rednote-gate 中。
或从克隆版本安装
git clone https://github.com/YashShelar007/rednote-gate.git
cd rednote-gate
npm run setup
步骤相同,另需构建。如果克隆版本的 .session/ 中已有登录信息,数据会保存在克隆文件夹中。
然后使用 rednote-gate 的提示词。Claude Code 会将它们显示为斜杠命令:
| 提示词(斜杠命令) | 执行内容 |
|---|---|
/rednote-gate:post_photos | Claude 根据你的照片和一行简介撰写图文笔记,并将其加入队列 |
/rednote-gate:reply_to_comments | Claude 阅读笔记评论,起草最多 3 条回复,并将它们加入队列 |
/rednote-gate:post_from_concept | Claude 调研一个概念,撰写原创笔记,生成文字卡片图片,并将其加入队列 |
/rednote-gate:research_topic | Claude 搜索一个话题,阅读热门笔记和评论,并总结哪些内容有效。仅限读取。 |
/rednote-gate:review_queue | Claude 总结等待处理的事项和已发生的情况 |
/rednote-gate:help | 查看每个工具和提示词、当前模式,以及今天剩余的额度 |
也可以直接用自然语言提出请求(“发布这两张徒步照片”)。首次使用 rednote 工具时,会启动一个小型后台服务。它负责管理浏览器、审批页面和工作进程;即使你关闭 Claude Code,它也会继续运行,因此审批页面始终可用,已批准的项目也会照常执行。空闲 5 分钟后,它会关闭浏览器窗口。使用 rednote-gate stop 停止服务(在克隆版本中使用 npm run stop)。有内容加入队列时,审批页面会在浏览器中打开,Mac 也会显示通知。点击“批准”即可。约 30 秒后,操作会执行,页面会显示结果截图。完成时会收到通知;如果小红书显示验证码,也会收到通知。
状态:2026-10-06,在一个 rednote.com 账号上对照线上网站检查了每种流程:4 次读取,以及各 1 次真实发布、草稿、评论和回复;每项操作都由人工在审批页面上批准。请参阅上次对照线上网站验证的时间。
整体结构
| 部分 | 说明 |
|---|---|
| 宿主 | Claude Code、Claude Desktop 或 Codex:你与之交互的 AI 应用 |
| 客户端 | 宿主内部的连接器,每个服务对应一个。由宿主提供。 |
| 服务 | rednote-gate,一个本地 MCP 服务。宿主启动它,并通过 stdio 与它通信。 |
| 工具(15 个) | 5 个读取工具可直接运行。6 个写入工具只会排入队列。4 个本地工具不会接触 RedNote。 |
| 提示词(6 个) | post_photos、post_from_concept、reply_to_comments、research_topic、review_queue、help。Claude Code 会将它们显示为斜杠命令。 |
| 资源 | 无 |
模型调用工具。你选择提示词。后台服务、审批页面和 rednote-gate CLI 不属于 MCP。审批页面是 127.0.0.1 上的本地网页。它有意置于 MCP 之外,这样模型就无法批准自己的写入操作。
功能
rednote-gate 是一个本地 stdio MCP 服务。它需要 Node 20 或更高版本。它使用 TypeScript 编写,并在你自己的计算机上驱动 Playwright Chromium。
读取类工具会立即执行:
| 工具 | 参数 | 返回内容 |
|---|---|---|
rednote_login_status | 无 | site、loggedIn(主站)和 creatorSession(创作者站点,发布时需要) |
rednote_search | keyword、limit(最多 30) | noteId、title、author、likes、url。url 中包含 xsec_token。 |
rednote_get_note | url | noteId、title、body、author、tags、likes、collects、评论数、ipLocation、time |
rednote_get_comments | url、limit(最多 50) | id、author、text、likes、回复数。仅第一页。 |
rednote_make_cards | cards(1 至 9 张:title、最多 8 行内容、footer),可选的 theme(notebook、sticky、chalkboard、blueprint) | 在你的计算机上渲染 1080x1440 的文字卡片 PNG,并返回其路径。不会操作 RedNote。 |
rednote_my_notes | limit(最多 30) | 你自己的笔记,按时间从新到旧排列:noteId、title、likes、url |
rednote_queue_status | limit | 最近的队列项目:id、tool、status、最后变更时间。绝不返回审批链接。 |
rednote_help | 无 | rednote-gate 的功能、当前模式和今日剩余预算 |
rednote_open_approval_page | 无 | 在浏览器中打开审批页面。绝不返回链接。 |
写入类工具只会向队列中添加项目并返回其队列 ID。它们绝不会操作浏览器。
| 工具 | 参数 | 审批后执行的操作 |
|---|---|---|
rednote_create_post | title(RedNote 的长度限制为 20:一个 CJK 字符计 1,ASCII 字符计半个),body(最多 1000 个字符,可使用表情符号,不可包含 #),images(1 至 9 个 JPEG、PNG 或 WebP 文件的绝对路径;第一张为封面),可选的 topics(最多 5 个,不含 #) | 发布图片笔记;若选取器提供的主题与主题完全匹配,则将其添加为带链接的 RedNote 主题,否则将其作为纯文本 #text 添加 |
rednote_create_draft | 与 rednote_create_post 相同 | 保存为草稿而非发布 |
rednote_create_video_post | title、body、video(一个 MP4 或 MOV 文件的绝对路径,最大 500 MB,这是项目限制),可选的 topics | RedNote 处理完成后发布视频笔记 |
rednote_post_comment | url、text(最多 500 个字符) | 在笔记下发布评论 |
rednote_like_note | url、可选的 noteTitle | 点赞笔记(有单独的每日上限,参见 RN_DAILY_LIKES);若笔记已点赞,则拒绝操作 |
rednote_reply_comment | url、commentId、commentAuthor、commentText、text(最多 500 个字符) | 回复该评论 |
对于 rednote_reply_comment,传入的 id、author 和 text 必须与 rednote_get_comments 返回的内容完全一致。回复前,工作进程会从页面中读取具有该 id 的评论,并检查其作者和文本是否仍然完全匹配。若不匹配,则不会回复。
标题、评论和回复必须为单行:换行符会被输入为 Enter,可能导致评论提前发送。笔记正文可以包含换行。
笔记 URL 必须符合 https://www.xiaohongshu.com/explore/<id>?xsec_token=... 的格式(海外账号使用 www.rednote.com)。请从 rednote_search 的结果中获取 URL。由于 RedNote 会对不带令牌的裸 URL 返回验证码,因此系统会拒绝此类 URL。参见 docs/friction.md。
审批关卡的工作方式
简短示例:
- 你向 Claude 提出请求:“发布一条介绍我桌面布置的笔记,附上 /Users/me/pics/desk.jpg。”
- Claude 调用
rednote_create_post。服务会检查图片,将其复制到队列并计算哈希值,然后返回一个队列 ID,例如q_20261006T153012_ab12。不会打开浏览器,也不会发布任何内容。 - 你运行
rednote-gate approve并打开它打印出的链接。页面会显示确切的标题、正文和图片。你点击 Approve。 - 工作进程每 10 秒检查一次队列。你点击后,它会等待 30 秒,这样你仍然可以按 Cancel;之后,如果预算允许,它就会取出该条目。它会在账本中写入一行
attempt,然后打开创作者页面、上传图片并输入文本。 - 在试运行模式(默认模式)下,它会在最后一次点击前停止。该条目的状态会变为
dry_run。在实时模式下(rednote-gate live),它会点击发布。该条目的状态会变为posted。 - Claude 可以调用
rednote_queue_status查看结果。它永远不会获得审批链接。
点击 Approve 只会标记该条目,不会自行发布任何内容。聊天中不进行审批。告诉 Claude“是的,发布吧”不会有任何改变。
状态
pending -> approved | rejected
approved -> posting | rejected (Cancel)
posting -> posted | dry_run | failed | unknown
| 状态 | 含义 |
|---|---|
pending | 已加入队列,等待人工处理 |
approved | 人工点击了 Approve。等待工作进程处理,并等待预算允许。 |
rejected | 人工点击了 Reject,或在已批准的条目上点击了 Cancel |
posting | 工作进程正在处理 |
posted | 一次实时操作已完成 |
dry_run | 工作进程在试运行模式下执行了流程。它进行了导航、上传图片并输入文本,但没有点击最后的按钮。 |
failed | 试运行过程中出错,或实时操作在最后一次点击前停止(例如,它应该回复的评论发生了变化)。没有发送任何内容。可以重新加入队列。 |
unknown | 实时操作在最后一次点击后出错,或进程在实时操作过程中意外终止。内容可能已发布,也可能没有发布。绝不会重试。请手动检查账号。 |
如果将完全相同的写入操作加入队列,系统会返回现有 ID,而不是创建第二个条目。所谓完全相同,指使用相同的工具、相同的参数和相同的图片字节内容。当第一个条目的状态为 pending、approved、posting、posted 或 unknown 时,这条规则均适用。
防护措施
- 在代码中审批。 写入工具只会加入队列。仅在实时模式下,工作进程才会点击最终按钮,而且只会处理已审批的项目。
- 你审批什么,就会发布什么。 图片会在加入队列时复制到队列中并计算哈希值。仅接受通过文件签名检查的真实 JPEG、PNG 或 WebP 文件。每张图片不得超过 20 MB。一篇笔记需包含 1 到 9 张图片。这是项目限制,并非 RedNote 的限制。
- 每日限额。 任意滚动 24 小时内,实时尝试最多为
RN_DAILY_WRITES次(默认 5 次)。自上次实时评论或回复尝试后,还必须间隔RN_COMMENT_GAP_MIN分钟(默认 10 分钟),才能再次评论或回复。限额根据日志账本计算,因此重启不会重置限额。失败和状态未知的实时尝试也会计入。试运行不计入。超过限额的已审批项目会等待。审批页面会显示下一个名额开放的时间。 - 撤销窗口。 点击 Approve 后,工作进程会等待 30 秒。在此期间,点击 Cancel 即可停止操作。
- 审批与模式绑定。“Approve dry run”只会以试运行方式执行。如果你以实时模式重启,先前获批的试运行不会执行;页面会提示你取消并重新审批。
- 发送前读回。 输入后会读回每个字段。如果话题或提及选择器,或其他任何内容更改了文本,流程会在点击最终按钮前停止。
- 崩溃安全。 浏览器启动前就会写入
attempt行,因此即使发生崩溃,也会消耗限额。实时项目若在尝试过程中中断,会标记为unknown,且绝不会重试。试运行若在尝试过程中中断,则会标记为failed。 - 发送前再次检查。 上传前会重新检查图片哈希值。仅当目标评论仍然存在,且其文本仍与获批内容一致时,才会发送回复。
- 遇到阻碍即停止。 如果 RedNote 显示验证码或“操作过于频繁”警告,rednote-gate 会向日志账本写入一条
blocked行。它会停止工作进程并拒绝读取工具。写入工具仍可将内容加入队列,因为排队操作不会触碰浏览器。系统不会重试。重启后仍会保持停止状态。由人工在审批页面点击 Resume 才能继续。 - 不接受没有令牌的笔记 URL。 不含
xsec_token的 URL 会在浏览器打开前被拒绝。 - 浏览器仅由一个服务控制。 只有服务会驱动浏览器,并由
data/中的锁文件保护。每个 MCP 主机(Claude Code、Claude Desktop、Codex,或同时运行的多个会话)都与这一个服务通信,因此账户上绝不会出现第二个浏览器。 - 默认试运行。 在运行
rednote-gate live或前往 Settings 页面切换到实时模式之前,系统会一直保持试运行。settings.json中保存的模式优先于RN_DRY_RUN。
服务条款警告
本项目通过真实浏览器和真实登录会话操作 RedNote 网站。RedNote 的服务条款不允许这样做。使用本项目可能导致账号被限流、限制或封禁。风险由你自行承担。
2026 年的两则小红书公告也适用(核查日期:2026-10-07)。2026-03-10,小红书宣布打击“AI 托管”账号(IT之家报道)。偶尔让 AI 托管代为撰写、发布或互动的账号会收到警告,内容分发也会减少。通过 AI 托管工具直接注册、发布或互动的账号会被封禁,所有公开笔记都通过这种方式发布的账号也会被封禁。2026-04-27,小红书发布了 AI 内容规则(IT之家报道)。创作者发布由 AI 生成或润色的笔记时应予以标注,平台会为未标注的 AI 内容添加自己的标记。使用 AI 违规运营账号会受到逐级处罚,最高可至封禁。
点击“批准”并不能让账号符合规定。只通过 rednote-gate 发布内容的一次性账号,符合 3 月公告中所述的封禁情形。
- 使用一个专用的一次性账号。切勿使用主账号或品牌账号。
- 少量发布,并拉开发布时间间隔。预算是上限,不是目标。
- 遵守你所在地的法律,并尊重你阅读或回复笔记的用户。
设置
你需要 Node 20 或更高版本、一个专门用于此用途的 RedNote 账号,以及该账号已登录的手机。
npm install -g rednote-gate
rednote-gate setup
rednote-gate setup 会使用软件包自带的 Playwright 安装 Chromium,然后运行以下两个步骤;你也可以逐个运行:
rednote-gate login
rednote-gate connect
从克隆的仓库开始时,npm run setup 会在 npm install 和 npm run build 之后执行相同操作。在克隆的仓库中,npm run login、connect、live、dry、stop 和 approve 会运行相同的命令。
rednote-gate connect 会将 rednote-gate 添加到 Claude Code,供你的所有项目使用(claude mcp add --scope user)。它还会打印 Claude Desktop 和 Codex 的配置。详见下文。
默认以试运行模式启动:已批准的项目会填入表单,但不会发布。试运行结果符合预期后,可用一条命令切换模式:
rednote-gate live
它会说明实时模式的含义并要求你确认。rednote-gate live --yes 会跳过确认。模式会保存到 settings.json,仪表板的 Settings 页面也会写入同一文件,并在下次调用工具时重启服务。rednote-gate dry 会切回试运行模式。在一种模式下给出的批准不会在另一种模式下执行。
更多命令:
| 命令 | 作用 |
|---|---|
rednote-gate status | 版本、站点、模式、今日剩余预算,以及服务是否正在运行 |
rednote-gate doctor | 离线检查,每项检查各显示一行通过或失败:Node、Chromium、登录、设置、账本、服务。绝不会联系 RedNote。 |
rednote-gate approve | 打印批准页面链接 |
rednote-gate stop | 停止后台服务 |
rednote-gate help | 所有命令 |
不带命令时,rednote-gate 会运行 MCP 服务。这是 MCP 主机启动的内容。
数据存储位置
数据和登录信息存储在 ~/.rednote-gate:队列、台账和设置位于 data/,登录信息位于 .session/。设置 RN_HOME 可迁移这两个目录。已有旧版本 .session/ 目录的克隆会继续使用自己的目录。
rednote-gate login 会在可见浏览器中打开 xiaohongshu.com。海外账号会被转到 rednote.com:登录流程会继续,在 rednote.com 上重新加载并要求你扫描新的二维码。系统会在 .session/site 中记录账号使用的网站。使用备用账号的手机扫描二维码。如果页面显示你已登录,但终端没有继续操作,请在终端中按 Enter。接着,程序会访问 creator.xiaohongshu.com 以获取创作者会话;如果该网站要求扫描,请再次扫码。会话会以仅所有者可访问的权限(0600)保存到 .session/state.json。
运行前请退出 MCP 宿主:一次只能有一个进程控制浏览器。
该文件是凭据,已加入 git 忽略规则。rednote-gate 绝不会打印该文件。切勿分享、提交或复制到共享磁盘。
然后,将服务添加到 MCP 宿主。
接入 Claude Code、Claude Desktop 和 Codex
rednote-gate connect 会输出适用于你当前安装的三种配置。全局 npm 安装时,命令为 rednote-gate。从克隆目录运行时,请使用 node 和 dist/cli.js 的绝对路径。
Claude Code:
claude mcp add rednote-gate --scope user -- rednote-gate
Claude Desktop(在 claude_desktop_config.json 中):
{
"mcpServers": {
"rednote-gate": {
"command": "rednote-gate",
"args": []
}
}
}
Claude Desktop 可能无法读取 Shell 的 PATH。如果无法启动服务,请使用绝对路径:command 的值为 which node 的输出,args 的值为 ["<npm root -g>/rednote-gate/dist/cli.js"]。
Codex(在 ~/.codex/config.toml 中):
[mcp_servers.rednote-gate]
command = "rednote-gate"
args = []
env 块为可选。请参阅环境变量。
切勿在同一个宿主会话中加载浏览器 MCP 服务(如 @playwright/mcp)和 rednote-gate。拥有浏览器的 Agent 可能会打开审批页面并点击 Approve。
审批页面
MCP 服务运行时,页面位于 http://127.0.0.1:7317。使用 RN_APPROVAL_PORT 更改端口。
获取链接:
rednote-gate approve
它会输出包含秘密令牌的 URL。服务每次启动时都会生成新令牌,因此重启后请获取新链接。链接也会以仅所有者可访问的权限存储在 data/approval-url 中。
页面会显示:
- 对于帖子和草稿:准确的标题、正文和图片
- 对于评论:评论文本
- 对于回复:所回复的评论和回复文本
- 过去 24 小时内已执行的实时写入,以及下一个时段的开放时间
- 模式:DRY RUN 或 LIVE
- 如果验证码或警告导致工作器停止,则显示暂停横幅
- 每次尝试后,显示浏览器结束时画面的截图
- 在有内容获批或任务运行时,每 5 秒自动刷新
Claude 将写入内容加入队列时,页面会自动打开(每分钟最多一次)。也可以按需使用 rednote_open_approval_page 打开页面。
页面还会以仪表条显示今天的用量,并提供 Settings 链接,可设置:模式(dry run 或 live;切换到 live 需勾选确认框)、每日写入次数、每日点赞次数、评论间隔分钟数和通知设置。设置会保存到 data/settings.json,并应用于下一个运行的项目,无需重启。设置不能超过硬性上限:写入 20 次、点赞 50 次、评论间隔 2 分钟。
按钮:
| 按钮 | 功能 |
|---|---|
| Approve dry run,或在 live 模式下选择 Approve and publish、Approve and save draft、Approve and send、Approve and send reply | 将待处理项目标记为已批准。不会立即发布。工作器会在约 30 秒后执行。 |
| Reject | 将待处理项目标记为已拒绝 |
| Cancel before it runs | 拒绝已获批准但工作器尚未开始处理的项目 |
| Resume | 清除暂停状态,并在账本中写入一条 resumed 记录 |
页面的保护方式:
- 仅绑定到 127.0.0.1。
- 检查 Host 标头,以阻止 DNS 重绑定。
- 每个请求都需要令牌。
- 状态更改仅允许通过 POST 请求进行,且请求必须来自同一来源。这可以阻止其他网站发起请求。
- 页面无法被嵌入框架中。它会发送严格的内容安全策略,且不发送 referrer。
队列文件格式
所有数据都存储在 ~/.rednote-gate/data/ 中;如果克隆目录已有登录信息,则存储在其中的 data/ 目录下。设置 RN_HOME 或 RN_DATA_DIR 可更改存储位置。该文件夹仅所有者可访问。在克隆目录中,该文件夹会被 git 忽略。
| 路径 | 内容 |
|---|---|
data/queue/<id>.json | 一个队列项目 |
data/queue/<id>/<n>.<ext> | 项目加入队列时复制的图片 |
data/ledger.jsonl | 账本 |
data/screenshots/<id>.png | 尝试操作的截图 |
data/approval-url | 审批链接(0600) |
data/lock | 服务的进程 ID;只有服务可以驱动浏览器 |
data/service.log | 服务日志 |
一个队列项目:
{
"id": "q_20261006T153012_ab12",
"tool": "create_post",
"args": { "title": "...", "body": "...", "images": ["q_20261006T153012_ab12/0.jpg"] },
"imageSha256": ["..."],
"contentHash": "...",
"createdAt": "2026-10-06T15:30:12.000Z",
"status": "pending",
"history": [{ "status": "pending", "at": "2026-10-06T15:30:12.000Z" }]
}
args.images 中的图片路径相对于 data/queue/。imageSha256 保存每张图片对应的哈希值。contentHash 涵盖工具、参数和图片哈希值,用于重复项检查。每次状态更改都会向 history 添加一条记录。
账本格式
data/ledger.jsonl 每行包含一个 JSON 对象。
| 字段 | 含义 |
|---|---|
at | 事件发生时间 |
event | attempt、result、blocked 或 resumed |
id | 队列 ID |
tool | 使用的写入工具 |
dryRun | 是否启用了试运行 |
outcome | 条目的最终状态:posted、dry_run、failed 或 unknown |
detail | 简短备注 |
screenshot | 截图路径 |
并非每行都会包含所有字段。浏览器启动前会写入 attempt 行。尝试结束后会写入 result 行。如果进程在两者之间退出,就会出现没有对应 result 的 attempt。下次启动时,该条目的状态会变为 unknown(实运行)或 failed(试运行),并写入一行 result 记录。
预算统计过去 24 小时内 dryRun: false 的 attempt 行数。暂停状态也由账本记录:如果存在一行 blocked,且后面没有 resumed 行,则即使重启后仍视为已暂停。
如果某行不是有效的 JSON,必须修复或删除该行后才能继续写入。如果无法读取预算,系统会采取安全失败策略。
环境变量
| 变量 | 默认值 | 含义 |
|---|---|---|
RN_HOME | ~/.rednote-gate | data/ 和 .session/ 的存放目录。如果克隆目录中已有 .session/,则改用克隆目录。 |
RN_SITE | 来自 rednote-gate login | xiaohongshu.com(中国大陆账号)或 rednote.com(海外账号) |
RN_HEADLESS | headed | 1 以无头模式运行 Chromium |
RN_DRY_RUN | 1 | 0 允许工作进程点击已批准条目的最终按钮 |
RN_DAILY_WRITES | 5 | 任意滚动 24 小时内允许的实运行尝试次数 |
RN_COMMENT_GAP_MIN | 10 | 实运行评论或回复尝试之间的间隔分钟数 |
RN_DAILY_LIKES | 10 | 任意滚动 24 小时内允许的实运行点赞次数,与 RN_DAILY_WRITES 分开计算 |
RN_APPROVAL_PORT | 7317 | 审批页面端口 |
RN_DATA_DIR | <RN_HOME>/data | 队列、账本、设置、截图和锁文件的存放目录 |
RN_SESSION_PATH | <RN_HOME>/.session/state.json | 保存的登录会话 |
RN_OPEN_APPROVAL | on | 0 阻止自动打开审批页面 |
RN_NOTIFY | on | 0 关闭 Mac 通知 |
RN_TYPE_MIN_MS | 40 | 每个输入字符的最短延迟 |
RN_TYPE_MAX_MS | 140 | 每个输入字符的最长延迟 |
限制值和端口必须是整数。输入错误会导致服务器报错停止,而不会关闭限制。
仪表板的 Settings 页面会写入 data/settings.json,其中的限制、模式和通知设置优先于这些变量。
在 MCP 主机的 env 配置块中设置这些变量。rednote-gate 命令会从 shell 中读取它们。如果设置了 RN_HOME、RN_DATA_DIR 或 RN_SESSION_PATH,请在 shell 中导出相同的值。rednote-gate connect 会将这三个变量复制到 Claude Code 配置项中。
试运行并非没有副作用。它会打开页面、将图片上传到 RedNote 创作者页面,并输入文本。它只会跳过最终的发布、保存或发送操作。
它不会做什么
- 不会在没有人工点击 Approve 的情况下发布任何内容。聊天中没有审批功能。
- 不会使用多个账号、多个浏览器上下文,也不会同时执行写入操作。
- 不会批量发布,也不会安排无人看管的定时发布。
- 不会解决验证码,也不会在遇到拦截后重试。
- 不会收藏、关注或发送消息。(应所有者要求,已于 2026-10-06 添加点赞功能;该功能使用同一个审批页面,并有单独的每日上限。)
- 不会在云浏览器中运行账号。
- 不会操作主要账号或品牌账号。
已知限制
- 浏览器 Agent 可能会批准。 如果 Agent 在同一台机器上拥有自己的浏览器工具,就可以打开审批页面并点击“批准”。切勿在同一主机的会话中加载浏览器 MCP 服务。任何以你的用户身份运行的进程也一样:它可以读取
data/approval-url。这个关卡会阻止模型通过 rednote-gate 的工具执行操作,但无法阻止你运行的其他软件。 - 服务会持续运行。 服务会在首次使用时启动,并一直运行,直到执行
rednote-gate stop或重启系统。更新后,请运行rednote-gate stop;下次调用工具时,服务会重新启动。设置无需重启即可生效。日志位于data/service.log。 - 选择器会发生变化。 RedNote 会更改页面。选择器位于
src/rednote.ts的SEL对象中。请在那里修复,并在 PROTOTYPE-RUNSHEET.md 的捕获记录区块和 docs/friction.md 中记录证据。 - 状态未知会阻止重新排队。
unknown项会阻止相同内容的写入。如果你手动检查后确认内容并未发布,请先修改文本,再次排队。 - 草稿保存在 rednote-gate 的浏览器中。 RedNote 的网页版创作平台会将草稿保存在浏览器中,而不是你的账户中(平台自身的提示也说明了这一点)。rednote-gate 保存的草稿不会出现在手机应用中。rednote-gate 会将浏览器的 IndexedDB 与会话一并保存,以便在重启后保留草稿;要完成草稿,请在 rednote-gate 的浏览器中打开创作平台的草稿箱。
- 评论仅限第一页。
- 默认使用有头模式。 运行浏览器工具时会打开 Chromium 窗口,并保持为一个标签页。当你信任它后,可设置
RN_HEADLESS=1。
反机器人措施(有意披露)
所有者于 2026-10-06 决定保留以下措施。在此列出,以免任何人感到意外。
- 模拟人类节奏输入,每个字符之间加入随机延迟,并随机暂停。
- Chromium 启动时会使用
--disable-blink-features=AutomationControlled。 - 固定使用桌面版 Chrome 124 macOS User-Agent。该版本与 Playwright 实际运行的较新 Chromium 不匹配。
不会解决验证码。除上述三项外,不会进行任何指纹伪装。
RedNote 页面包含人眼不可见、无法点击的隐藏诱饵按钮。rednote-gate 只会对可见元素(即人可以点击的元素)执行操作,绝不会强制点击。请参阅 docs/friction.md。
最后一次对照线上网站验证
| 流程 | 工具 | 截至 2026-10-06 的状态 |
|---|---|---|
| 登录状态 | rednote_login_status | 已于 2026-10-06 在有头模式下验证(rednote.com);无头模式尚未验证 |
| 搜索 | rednote_search | 已于 2026-10-06 在有头模式下验证(rednote.com);无头模式尚未验证 |
| 获取笔记 | rednote_get_note | 已于 2026-10-06 在有头模式下验证(rednote.com);无头模式尚未验证 |
| 我的笔记 | rednote_my_notes | 已于 2026-10-06 在有头模式下验证(rednote.com) |
| 帖子中的话题和表情符号 | 使用 topics 的 rednote_create_post | 已于 2026-10-06 在线验证(rednote.com):笔记的标签列表中有 4 个关联话题,4 个表情符号均保留 |
| AI 标签 | 使用 aiGenerated: true 的 rednote_create_post | 已于 2026-10-07 通过试运行验证(rednote.com):内容类型声明已设为笔记含AI合成内容,并显示在预览中;尚未实际发布 |
| 视频笔记 | rednote_create_video_post | 已于 2026-10-06 通过试运行验证(rednote.com):已上传、处理并关联话题,也找到发布按钮;尚无真实视频 |
文字卡片和 post_from_concept | rednote_make_cards | 已于 2026-10-06 在线验证(rednote.com):研究了一个概念,生成 4 张卡片,并将其作为笔记发布 |
| 点赞 | rednote_like_note | 已于 2026-10-06 在线验证(rednote.com):点击后确认已点赞,计数从 151 变为 152 |
| 获取评论 | rednote_get_comments | 已于 2026-10-06 在有头模式下验证(rednote.com);无头模式尚未验证 |
| 发布帖子 | rednote_create_post | 已于 2026-10-06 在线验证(rednote.com):笔记已发布,并由 rednote_my_notes 列出 |
| 创建草稿 | rednote_create_draft | 已于 2026-10-06 在线验证(rednote.com):已保存,但仅保存在 rednote-gate 的浏览器中(见已知限制) |
| 发布评论 | rednote_post_comment | 已于 2026-10-06 在线验证(rednote.com) |
| 回复评论 | rednote_reply_comment | 已于 2026-10-06 在线验证(rednote.com);因评论间隔限制等待 9 分钟后自动发送 |
PROTOTYPE-RUNSHEET.md 说明了如何检查每一行。每次运行后,请用日期和结果更新此表。
致谢
- 选择器和页面状态路径参考了 xpzouying/xiaohongshu-mcp(Apache-2.0,提交 a5c8f77)和 sykuang/rednote-mcp(MIT,提交 7e87754)。
- 写入结果不确定时应标记为
unknown,且不得重试;这条规则遵循 mimi17-shq/xiaohongshu-mcp-reliable(Apache-2.0)。
请参阅 docs/landscape.md,了解这些项目与其他项目的比较。
许可证
MIT。作者:Yash Shelar。请参阅 LICENSE。
rednote-gate 独立运营,与相关方无关联。RedNote 和 Xiaohongshu 是其所有者的商标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
