mcpField
R
rednote-gate

rednote-gate

ローカル
yashshelar007.github.ioソーシャルメディア13 週間前に更新

rednote-gate について

rednote-gateは、専用の使い捨てRedNoteアカウントをブラウザー操作するローカルMCPサーバーです。読み取りは即時に実行し、書き込みはローカルページで人が承認するまで保留します。既定ではドライランです。

主な機能

  1. 01RedNoteのノート、コメント、検索結果の取得
  2. 02投稿、下書き、いいね、コメントのキュー登録
  3. 03ローカルページでの人による承認
  4. 04既定のドライランと日次上限
  5. 05テキストカード画像のローカル生成

活用シーン

  1. 01ノートとコメントを調べてトピックを調査
  2. 02投稿や返信を用意して人の確認を受ける
  3. 03公開せずにブラウザーフローをテスト
  4. 04承認と状態確認で書き込みキューを管理

MCP 対応

ローカルのstdio MCPサーバーとして、互換ホストにRedNoteの読み書きツールとプロンプトを提供します。書き込みツールはキュー登録のみを行い、承認はMCP外のローカルページで行います。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"yashshelar007-rednote-gate": {
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}
起動コマンドnpx -y rednote-gate

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmrednote-gate1.1.1

ツール

15

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

rednote-gate

npm version License: MIT CI 中文说明

rednote-gate は、専用の使い捨て RedNote(Xiaohongshu)アカウントを 1 つだけ操作します。メインアカウントやブランドアカウントには決して接続しないでください。ブラウザー自動化を使用するため、RedNote の利用規約に違反します。アカウントは利用制限または停止される可能性があります。失っても差し支えないアカウントだけを使用してください。

ドライランモードの承認ページです。メーターには、過去 24 時間に 5 件中 1 件の投稿と 10 件中 2 件の「いいね」を使用したことが表示されています。その下には「雲の上の日の出ハイキング」というタイトルの写真ノートが判断を待っています。本文、3 つのトピック、2 枚の画像と、「ドライランを承認」「却下」ボタンがあります。

ウェブサイト:https://yashshelar007.github.io/rednote-gate/

Claude Code、Claude Desktop、Codex 向けのローカル MCP サーバーです。読み取り操作は直接実行されます。書き込み操作はすべて、ローカルウェブページで人間が「承認」をクリックするまでキューで待機します。

クリックすると rednote-gate のウェブサイトで 24 秒のデモ動画が開きます。承認ページに承認済みの写真ノートが表示され、その横には「実行前にキャンセル」ボタンと、「Claude が下書きします。最後のクリックはあなたが行います。」という言葉が表示されています。

クイックスタート

npm からインストール
npm install -g rednote-gate
rednote-gate setup

Chromium がインストールされ、使い捨てアカウントの QR コードログインが開き、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_photosClaude が写真と 1 行の概要から写真ノートを書き、キューに追加します
/rednote-gate:reply_to_commentsClaude がノートのコメントを読み、最大 3 件の返信を下書きして、キューに追加します
/rednote-gate:post_from_conceptClaude がコンセプトを調査し、オリジナルのノートを書き、テキストカード画像を生成して、キューに追加します
/rednote-gate:research_topicClaude がトピックを検索し、上位のノートとコメントを読んで、効果的な内容を要約します。読み取り専用です。
/rednote-gate:review_queueClaude が待機中の項目と実行結果を要約します
/rednote-gate:helpすべてのツールとプロンプト、自分のモード、今日の残りの予算を確認できます

「ハイキングの写真を 2 枚投稿して」のように、普通の言葉で頼むこともできます。rednote のツールを初めて使うと、小さなバックグラウンドサービスが起動します。このサービスがブラウザー、承認ページ、ワーカーを管理します。Claude Code を閉じても実行し続けるため、承認ページは常に動作し、承認済みの項目は必ず実行されます。5 分間アイドル状態が続くと、ブラウザーウィンドウが閉じます。停止するには rednote-gate stop を実行します(クローンの場合は npm run stop)。項目がキューに追加されると、ブラウザーで承認ページが開き、Mac に通知が表示されます。「承認」をクリックすると、約 30 秒後に実行され、ページに結果のスクリーンショットが表示されます。完了時、または RedNote に CAPTCHA が表示された場合に通知されます。

状況:2026-10-06 に rednote.com のアカウントで、すべてのフローを実際のサイトで確認しました。確認したのは 4 件の読み取りと、人間が承認ページで承認した投稿、下書き、コメント、返信の実行です。実際のサイトでの最終確認をご覧ください。

全体の仕組み

部分ここ
ホストClaude Code、Claude Desktop、または Codex:あなたが会話する AI アプリです
クライアントホスト内のコネクターで、サーバーごとに 1 つあります。ホストが提供します。
サーバー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_searchkeyword、limit(最大 30)noteId、title、author、likes、url。url には xsec_token が含まれます。
rednote_get_noteurlnoteId、title、body、author、tags、likes、collects、コメント数、ipLocation、time
rednote_get_commentsurl、limit(最大 50)id、author、text、likes、返信数。最初のページのみです。
rednote_make_cardscards(1~9 個:title、最大 8 行、footer)、オプションの theme(notebook、sticky、chalkboard、blueprint)お使いのコンピューターで 1080x1440 のテキストカード PNG をレンダリングし、そのパスを返します。RedNote には一切アクセスしません。
rednote_my_noteslimit(最大 30)自分のノートを新しい順に返します:noteId、title、likes、url
rednote_queue_statuslimit最近のキュー項目:id、tool、status、最終変更日時。承認リンクは決して返しません。
rednote_helpなしrednote-gate でできること、現在のモード、本日の残り予算
rednote_open_approval_pageなしブラウザーで承認ページを開きます。リンクは決して返しません。

書き込みツールは項目をキューに追加して、そのキュー ID を返すだけです。ブラウザーには一切アクセスしません。

ツール引数承認後の動作
rednote_create_posttitle(RedNote の上限は 20:CJK 文字は 1 文字、ASCII は半文字としてカウント)、body(最大 1000 文字、絵文字可、# は不可)、images(JPEG、PNG、WebP ファイルの絶対パスを 1~9 個。最初の画像がカバーになります)、オプションの topics(最大 5 個、# なし)写真ノートを投稿します。トピック選択欄に該当するトピックがちょうど表示された場合は、各トピックをリンク付きの RedNote トピックとして追加します。それ以外の場合は、通常の #text として追加します。
rednote_create_draftrednote_create_post と同じ投稿の代わりに下書きを保存します。
rednote_create_video_posttitle、body、video(MP4 または MOV ファイル 1 個の絶対パス、最大 500 MB。プロジェクトの上限です)、オプションの topicsRedNote による処理が完了した後、動画ノートを投稿します。
rednote_post_commenturl、text(最大 500 文字)ノートにコメントを投稿します。
rednote_like_noteurl、オプションの noteTitleノートに「いいね」します(独自の日次上限があります。RN_DAILY_LIKES を参照)。すでに「いいね」済みのノートには実行しません。
rednote_reply_commenturl、commentId、commentAuthor、commentText、text(最大 500 文字)指定したコメントに返信します。

rednote_reply_comment には、rednote_get_comments が返した ID、投稿者、テキストをそのまま渡してください。返信前にワーカーがページから該当 ID のコメントを読み取り、投稿者とテキストが完全に一致するか確認します。一致しない場合は返信しません。

タイトル、コメント、返信は 1 行で入力してください。改行は Enter として入力され、コメントが途中で送信される可能性があります。ノートの本文には改行を含められます。

ノートの URL は https://www.xiaohongshu.com/explore/<id>?xsec_token=... の形式(海外アカウントの場合は www.rednote.com)である必要があります。rednote_search の結果から取得してください。トークンのない URL は拒否されます。RedNote が CAPTCHA を表示するためです。docs/friction.md を参照してください。

承認ゲートの仕組み

簡単な例:

  1. Claude に「/Users/me/pics/desk.jpg を使って、デスクのセットアップについて投稿して」と依頼します。
  2. Claude が rednote_create_post を呼び出します。サーバーは画像を確認し、キューにコピーしてハッシュ化します。q_20261006T153012_ab12 のようなキュー ID を返します。ブラウザーは開きません。何も投稿されません。
  3. rednote-gate approve を実行し、表示されたリンクを開きます。ページにタイトル、本文、画像がそのまま表示されます。「承認」をクリックします。
  4. ワーカーは 10 秒ごとにキューを確認します。クリック後 30 秒待機するため、その間に「キャンセル」を押すこともできます。その後、予算に余裕があれば項目を処理します。台帳に attempt の行を記録してから、投稿者ページを開き、画像をアップロードしてテキストを入力します。
  5. ドライランモード(デフォルト)では、最後のクリックの前に停止します。項目は dry_run になります。ライブモード(rednote-gate live)では、投稿をクリックします。項目は posted になります。
  6. Claude は rednote_queue_status を呼び出して結果を確認できます。承認リンクを受け取ることはありません。

「承認」をクリックしても、項目に承認済みの印が付くだけです。それだけで投稿されることはありません。チャット内で承認することはできません。Claude に「はい、投稿して」と伝えても何も変わりません。

ステータス
pending  -> approved | rejected
approved -> posting  | rejected    (Cancel)
posting  -> posted | dry_run | failed | unknown
ステータス意味
pendingキューに追加され、人による操作を待っています
approved人が「承認」をクリックしました。ワーカーと予算を待っています。
rejected人が「拒否」をクリックしたか、承認済みの項目で「キャンセル」をクリックしました
postingワーカーが現在処理中です
postedライブでの処理が完了しました
dry_runドライランを有効にした状態で、ワーカーがフローを実行しました。ページに移動し、画像をアップロードしてテキストを入力しましたが、最後のボタンはクリックしていません。
failedドライランでエラーが発生したか、ライブ処理が最後のクリックの前に停止しました(返信対象のコメントが変更された場合など)。何も送信されていません。再度キューに追加できます。
unknownライブ処理で最後のクリック後にエラーが発生したか、ライブ処理の途中でプロセスが終了しました。投稿されたかどうかは不明です。再試行されることはありません。アカウントを手動で確認してください。

同一の書き込みをキューに追加すると、2つ目の項目ではなく既存の ID が返されます。同一とは、ツール、引数、画像のバイト列が同じであることを意味します。最初の項目が pending、approved、posting、posted、unknown のいずれかの間は、この動作が適用されます。

ガードレール

  • コードで承認します。 書き込みツールはキューに追加するだけです。ワーカーが最後のボタンをクリックするのは、ライブモードで、かつ承認済みの項目に限られます。
  • 承認した内容が投稿されます。 画像はキューに追加されるときにコピーされ、ハッシュ化されます。ファイルシグネチャを検証し、実際の JPEG、PNG、WebP ファイルだけを受け付けます。画像はそれぞれ最大 20 MB です。ノートには 1~9 枚の画像を添付できます。これはプロジェクト側の制限であり、RedNote の制限ではありません。
  • 1 日あたりの上限。 任意の連続した 24 時間におけるライブ試行は、最大 RN_DAILY_WRITES 回です(既定値は 5 回)。コメントや返信にも、直前のライブでのコメントまたは返信の試行から RN_COMMENT_GAP_MIN 分(既定値は 10 分)空ける必要があります。上限は台帳に基づいて計算されるため、再起動してもリセットされません。失敗したライブ試行や結果不明のライブ試行もカウントされます。ドライランはカウントされません。上限を超えている承認済み項目は待機します。承認ページには、次の枠が空く時刻が表示されます。
  • 取り消し可能な時間。 承認後、ワーカーは 30 秒待機します。その間にキャンセルすれば、実行を停止できます。
  • 承認はモードに紐付けられます。 「ドライランを承認」は、ドライランとしてのみ実行されます。ライブモードで再起動しても、以前に承認したドライランは実行されません。ページの案内に従ってキャンセルし、再度承認してください。
  • 送信前に読み戻します。 入力後、すべてのフィールドを読み戻します。トピックやメンションの選択欄など、何かがテキストを変更した場合は、最後のクリックの前に停止します。
  • クラッシュ時の安全対策。 ブラウザーの起動前に attempt の行が書き込まれるため、クラッシュしても上限を消費します。ライブ項目が試行の途中で中断された場合は unknown となり、再試行されません。ドライランが試行の途中で中断された場合は failed となります。
  • 送信前に再度確認します。 アップロード前に画像のハッシュを再確認します。返信は、対象のコメントが引き続き存在し、そのテキストが承認した内容と一致する場合にのみ送信されます。
  • 問題があれば停止します。 RedNote に CAPTCHA や「頻繁すぎます」という警告が表示された場合、rednote-gate は台帳に blocked の行を書き込みます。ワーカーを停止し、読み取りツールを拒否します。書き込みツールは引き続きキューに追加できます。キューへの追加でブラウザーにアクセスすることはないためです。再試行はしません。この停止状態は再起動後も維持されます。続行するには、人が承認ページの「再開」をクリックします。
  • 単独のノート URL は受け付けません。 xsec_token を含まない URL は、ブラウザーを開く前に拒否されます。
  • ブラウザーを操作するのは 1 つのサービスだけです。 ブラウザーを操作するのはサービスだけで、data/ 内のロックファイルで制御されます。すべての MCP ホスト(Claude Code、Claude Desktop、Codex、複数の同時セッション)は、この 1 つのサービスに接続するため、アカウント上で 2 つ目のブラウザーが起動することはありません。
  • 既定ではドライランです。 rednote-gate live を実行するか、設定ページでライブモードに切り替えるまで、ドライランのままです。settings.json に保存されたモードが RN_DRY_RUN より優先されます。

利用規約に関する警告

このプロジェクトは、実際のブラウザーとログイン済みの実際のセッションを使ってRedNoteのウェブサイトを操作します。RedNoteの利用規約では、これが認められていません。使用すると、アカウントにレート制限がかかったり、制限されたり、停止されたりする可能性があります。そのリスクはご自身で負うことになります。

2026年に小紅書が発表した2件の告知も適用されます(2026-10-07に確認)。2026-03-10には、「AI 托管」(AIホスティング)アカウントに対する措置を発表しました(IT之家の記事)。ときどきAIホスティングに投稿文の作成、投稿、交流をさせるアカウントには、警告が届き、投稿の配信が抑制されます。AIホスティングツールを通じて直接登録、投稿、交流を行うアカウントは停止されます。また、公開ノートがすべてその方法で投稿されたアカウントも停止されます。2026-04-27には、AIコンテンツに関するルールを公開しました(IT之家の記事)。クリエイターは、AIが生成または推敲したノートを公開する際に、その旨を表示する必要があります。表示のないAIコンテンツには、プラットフォームが独自のラベルを付けます。ルールに反してAIでアカウントを運用すると、段階的に処罰され、最終的には停止される可能性があります。

承認をクリックしても、アカウントがルールに準拠するわけではありません。rednote-gate経由でのみ投稿する使い捨てアカウントは、3月の告知に記載された停止対象に該当します。

  • この用途専用の使い捨てアカウントを1つだけ使用してください。メインアカウントは絶対に使用しないでください。ブランドアカウントも絶対に使用しないでください。
  • 書き込みは少なく、十分な間隔を空けてください。予算は上限であり、目標ではありません。
  • お住まいの地域の法律と、閲覧したり返信したりするノートの投稿者を尊重してください。

セットアップ

Node 20以降、この用途のために作成したRedNoteアカウント、およびそのアカウントでログインしているスマートフォンが必要です。

npm install -g rednote-gate
rednote-gate setup

rednote-gate setupは、パッケージに同梱されたPlaywrightを使ってChromiumをインストールし、その後、以下の2つの手順を実行します。各手順は個別に実行することもできます。

rednote-gate login
rednote-gate connect

クローンから実行する場合は、npm installとnpm run buildの後にnpm run setupを実行すると、同じ処理が行われます。クローンでは、npm run login、connect、live、dry、stop、approveで同じコマンドを実行できます。

rednote-gate connectは、すべてのプロジェクトで使えるようにrednote-gateをClaude Codeに追加します(claude mcp add --scope user)。Claude DesktopとCodex用の設定も表示します。下記をご覧ください。

初期状態はドライランです。承認済みの項目はフォームに入力されますが、投稿はされません。ドライランが問題ないことを確認したら、次のコマンド1つでモードを切り替えます。

rednote-gate live

ライブモードの意味が説明され、確認を求められます。rednote-gate live --yesを実行すると、確認を省略できます。モードはsettings.jsonに保存されます。これはダッシュボードの「設定」ページから書き込まれるファイルと同じで、次のツール呼び出し時にサービスが再起動します。rednote-gate dryでドライランに戻せます。一方のモードで行った承認が、もう一方のモードで実行されることはありません。

その他のコマンド:

コマンド内容
rednote-gate statusバージョン、サイト、モード、今日の予算の残り、サービスの稼働状況
rednote-gate doctorオフラインでのチェック。Node、Chromium、ログイン、設定、台帳、サービスをそれぞれ合格または不合格の1行で表示します。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 でページが再読み込みされて、新しい QR コードのスキャンを求められます。アカウントが使用するサイトは .session/site に記録されます。使い捨てアカウントのスマートフォンで QR コードをスキャンしてください。ページにログイン済みと表示されているのにターミナルで処理が進まない場合は、そこで Enter を押してください。続いて creator.xiaohongshu.com にアクセスしてクリエイターセッションを取得します。このサイトで求められた場合は、もう一度スキャンしてください。セッションは、所有者のみがアクセスできる権限(0600)で .session/state.json に保存されます。

実行前に MCP ホストを終了してください。ブラウザーを操作できるプロセスは一度に 1 つだけです。

このファイルは認証情報です。Git の追跡対象から除外されています。rednote-gate がこのファイルを表示することはありません。共有、コミット、共有ディスクへのコピーは絶対に行わないでください。

次に、MCP ホストにサーバーを追加します。

Claude Code、Claude Desktop、Codex への接続

rednote-gate connect を実行すると、インストール環境に合わせた 3 つすべての設定が出力されます。npm でグローバルインストールしている場合、コマンドは rednote-gate です。クローンから実行する場合は、dist/cli.js の絶対パスを指定して node を使います。

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 からは、シェルの 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 ブロックは省略できます。環境変数を参照してください。

@playwright/mcp などのブラウザー MCP サーバーを、rednote-gate と同じホストセッションで読み込まないでください。ブラウザーを操作できるエージェントが承認ページを開き、「Approve」をクリックする可能性があります。

承認ページ

MCP サーバーの実行中、ページは http://127.0.0.1:7317 で動作します。ポートは RN_APPROVAL_PORT で変更できます。

リンクを取得します。

rednote-gate approve

シークレットトークン付きの URL が出力されます。サーバーは起動するたびに新しいトークンを生成するため、再起動後は新しいリンクを取得してください。リンクは data/approval-url に、所有者のみがアクセスできる権限で保存されます。

ページには次の内容が表示されます。

  • 投稿と下書きの場合:正確なタイトル、本文、画像
  • コメントの場合:コメントのテキスト
  • 返信の場合:返信先のコメントと返信のテキスト
  • 過去 24 時間に使用されたライブ書き込み数と、次の枠が利用可能になる時刻
  • モード:DRY RUN または LIVE
  • CAPTCHA または警告によってワーカーが停止した場合の停止バナー
  • 各試行の後に、ブラウザーが最後に表示した画面のスクリーンショット
  • 承認済みの項目または実行中の項目がある間、5 秒ごとに自動更新

Claude が書き込みをキューに追加すると、自動的にページが開きます(1 分に 1 回まで)。rednote_open_approval_page を使うと、要求に応じてページを開けます。

ページには、本日の使用状況メーターと Settings へのリンクも表示されます。設定できるのは、モード(ドライランまたはライブ。ライブにするには確認チェックが必要)、1 日あたりの書き込み数、1 日あたりの「いいね」数、コメント間の待ち時間、通知です。設定は data/settings.json に保存され、再起動せずに、次に実行される項目から適用されます。上限を超える設定はできません。上限は書き込み 20 件、「いいね」50 件、コメント間隔 2 分です。

ボタン:

ボタン動作
Approve dry run、またはライブモードで 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 のみで、同一オリジンから送信される必要があります。これにより、他のウェブサイトからの操作を防ぎます。
  • フレーム内には表示できません。厳格な Content Security Policy と no-referrer を送信します。

キューファイルの形式

すべてのデータは ~/.rednote-gate/data/、またはログイン済みのクローンでは data/ に保存されます。RN_HOME または RN_DATA_DIR で保存先を変更できます。このフォルダーにアクセスできるのは所有者のみです。クローンでは Git の対象外です。

パス内容
data/queue/<id>.jsonキュー項目 1 件
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 には画像ごとに 1 つのハッシュが格納されます。contentHash はツール、引数、画像のハッシュを対象とし、重複チェックで比較されます。状態が変わるたびに、history に 1 件追加されます。

台帳の形式

data/ledger.jsonl には、1 行につき 1 つの JSON オブジェクトが格納されます。

フィールド意味
atイベントの時刻
eventattempt、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-gatedata/ と .session/ の格納フォルダーです。.session/ がすでにあるクローンでは、代わりにクローンのフォルダーが使われます。
RN_SITErednote-gate login から取得xiaohongshu.com(中国本土のアカウント)または rednote.com(海外アカウント)
RN_HEADLESSheaded1 にすると Chromium をヘッドレスで実行します
RN_DRY_RUN10 にすると、ワーカーが承認済み項目の最後のボタンをクリックします
RN_DAILY_WRITES5任意の連続する 24 時間内に許可される実行時の試行回数
RN_COMMENT_GAP_MIN10実行時のコメントまたは返信の試行間隔(分)
RN_DAILY_LIKES10任意の連続する 24 時間内に許可される実行時の「いいね」の回数。RN_DAILY_WRITES とは別枠です
RN_APPROVAL_PORT7317承認ページのポート
RN_DATA_DIR<RN_HOME>/dataキュー、台帳、設定、スクリーンショット、ロックの格納先
RN_SESSION_PATH<RN_HOME>/.session/state.json保存されたログインセッション
RN_OPEN_APPROVALon0 にすると、承認ページが自動で開かなくなります
RN_NOTIFYon0 にすると、Mac の通知が無効になります
RN_TYPE_MIN_MS40入力する文字ごとの最短遅延時間
RN_TYPE_MAX_MS140入力する文字ごとの最長遅延時間

上限値とポートは整数で指定する必要があります。入力に誤りがあると、上限が無効になるのではなく、エラーでサーバーが停止します。

ダッシュボードの Settings ページは data/settings.json に書き込みます。このファイルの上限値、モード、通知の設定は、これらの変数より優先されます。

これらの値は MCP ホストの env ブロックに設定してください。rednote-gate コマンドはシェルから値を読み取ります。RN_HOME、RN_DATA_DIR、RN_SESSION_PATH を設定する場合は、シェルでも同じ値をエクスポートしてください。rednote-gate connect は、この 3 つの値を Claude Code のエントリーにコピーします。

ドライランでも副作用は発生します。ページを開き、RedNote のクリエイターページに画像をアップロードし、テキストを入力します。最後の公開、保存、送信のクリックだけをスキップします。

このツールが行わないこと

  • 人間が Approve をクリックしない限り、何も投稿しません。チャット内での承認機能はありません。
  • 複数のアカウントや複数のブラウザーコンテキストを使ったり、書き込みを同時に実行したりしません。
  • 一括投稿や、誰も確認していない投稿の予約は行いません。
  • CAPTCHA を解いたり、ブロックされた後に再試行したりしません。
  • お気に入り登録、フォロー、メッセージの送信は行いません。(「いいね」はオーナーのリクエストにより 2026-10-06 に追加され、同じ承認ページと独自の日次上限の対象です。)
  • アカウントをクラウドブラウザーで実行しません。
  • メインアカウントやブランドアカウントには触れません。

既知の制限

  • ブラウザーエージェントが承認できる可能性があります。 同じマシン上で独自のブラウザーツールを使うエージェントは、承認ページを開いて「承認」をクリックできます。同じホストセッションでブラウザー 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 が再キュー登録をブロックします。 unknown 項目があると、同一の書き込みはブロックされます。手動で確認して投稿されていなかった場合は、再度キューに追加する前にテキストを変更してください。
  • 下書きは rednote-gate のブラウザーに保存されます。 RedNote のウェブ投稿サイトでは、下書きはアカウントではなくブラウザーに保存されます(サイト独自のお知らせにもそう記載されています)。rednote-gate で保存した下書きは、スマートフォンアプリには表示されません。rednote-gate はセッションとともにブラウザーの IndexedDB を保存することで、再起動後も下書きを保持します。仕上げるには、rednote-gate のブラウザーで投稿サイトの草稿箱を開いてください。
  • コメントを取得するのは最初のページのみです。
  • デフォルトではヘッド付きです。 ブラウザーツールの実行時に Chromium ウィンドウが開き、1 つのタブとして開いたままになります。信頼できるようになったら、RN_HEADLESS=1 を設定してください。

アンチボット対策(意図的に開示)

所有者は 2026-10-06 に、これらの対策を維持することを決定しました。誰もが予期しない事態にならないよう、ここに記載しています。

  • 人間の入力速度に合わせたタイピング。文字ごとにランダムな遅延を加え、ランダムに一時停止します。
  • Chromium は --disable-blink-features=AutomationControlled を指定して起動します。
  • 固定のデスクトップ版 Chrome 124 macOS ユーザーエージェントです。Playwright が実際に実行する新しい Chromium とは一致しません。

CAPTCHA の解決は行いません。上記 3 項目を超えるフィンガープリント偽装も行いません。

RedNote のページには、人には見えず、クリックもできない隠しデコイボタンがあります。rednote-gate は、人がクリックする可視要素のみを操作し、クリックを強制することはありません。docs/friction.md を参照してください。

ライブサイトでの最終確認

フローツール2026-10-06 時点のステータス
ログイン状態rednote_login_status2026-10-06 にヘッド付きで確認済み(rednote.com);ヘッドレスは未確認
検索rednote_search2026-10-06 にヘッド付きで確認済み(rednote.com);ヘッドレスは未確認
ノートの取得rednote_get_note2026-10-06 にヘッド付きで確認済み(rednote.com);ヘッドレスは未確認
自分のノートrednote_my_notes2026-10-06 にヘッド付きで確認済み(rednote.com)
投稿のトピックと絵文字topics を指定した rednote_create_post2026-10-06 にライブサイトで確認済み(rednote.com):ノートのタグ一覧にリンク付きトピックが4件、絵文字が4個保持される
AI ラベルaiGenerated: true を指定した rednote_create_post2026-10-07 にドライランで確認済み(rednote.com):内容タイプの宣言が「笔记含AI合成内容」に設定され、プレビューに表示される;ライブでは未投稿
動画ノートrednote_create_video_post2026-10-06 にドライランで確認済み(rednote.com):アップロード、処理、トピックのリンクが完了し、「发布」が見つかった;実際の動画は未投稿
テキストカードと post_from_conceptrednote_make_cards2026-10-06 にライブサイトで確認済み(rednote.com):コンセプトを調査し、カードを4枚作成してノートとして公開
いいねrednote_like_note2026-10-06 にライブサイトで確認済み(rednote.com):クリック後に「いいね」状態を確認、件数は151から152に増加
コメントの取得rednote_get_comments2026-10-06 にヘッド付きで確認済み(rednote.com);ヘッドレスは未確認
投稿の作成rednote_create_post2026-10-06 にライブサイトで確認済み(rednote.com):ノートを公開し、rednote_my_notes に表示
下書きの作成rednote_create_draft2026-10-06 にライブサイトで確認済み(rednote.com):保存済み。ただし rednote-gate のブラウザー内のみ(「既知の制限」を参照)
コメントの投稿rednote_post_comment2026-10-06 にライブサイトで確認済み(rednote.com)
コメントへの返信rednote_reply_comment2026-10-06 にライブサイトで確認済み(rednote.com);コメント間隔の制限により9分間保留された後、自動的に送信

各行の確認方法については、PROTOTYPE-RUNSHEET.md を参照してください。実行のたびに、日付と結果をこの表に更新してください。

クレジット

これらのプロジェクトやその他のプロジェクトの比較については、docs/landscape.md を参照してください。

ライセンス

MIT。作者:Yash Shelar。LICENSE を参照してください。

rednote-gate は独立したプロジェクトであり、いかなる組織とも提携していません。RedNote と Xiaohongshu は、それぞれの所有者の商標です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。