Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP server for one throwaway RedNote account. Every write waits for a human Approve click.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"rednote-gate": {
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}ターミナルでこれを実行します
claude mcp add rednote-gate -- npx -y rednote-gateプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"rednote-gate": {
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"rednote-gate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント YashShelar007 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.1.1)がレジストリに届いたのは30 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Zendesk
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Zendesk MCP Pack — tickets, users, organizations via OAuth.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
中文说明
rednote-gate drives ONE dedicated throwaway RedNote (Xiaohongshu) account. Never point it at a primary or brand account. It works by browser automation, which is against RedNote's terms of service. The account can be rate limited or banned. Only use an account you can afford to lose.
Website: https://yashshelar007.github.io/rednote-gate/
It is a local MCP server for Claude Code, Claude Desktop and Codex. Reads run directly. Every write waits in a queue until a human clicks Approve on a local web page.
npm install -g rednote-gate
rednote-gate setup
That installs Chromium, opens the QR login for your throwaway account, and connects rednote-gate to Claude Code. Your data and login live in ~/.rednote-gate.
git clone https://github.com/YashShelar007/rednote-gate.git
cd rednote-gate npm run setup
Same steps, plus the build. A clone that already has a login in .session/ keeps its data in the clone folder.
Then use rednote-gate's prompts. Claude Code shows them as slash commands:
| Prompt (slash command) | What happens |
|---|---|
/rednote-gate:post_photos | Claude writes a photo note from your photos and a one-line brief, and queues it |
/rednote-gate:reply_to_comments | Claude reads a note's comments, drafts up to 3 replies, and queues them |
/rednote-gate:post_from_concept | Claude researches a concept, writes an original note, renders text-card images, and queues it |
/rednote-gate:research_topic | Claude searches a topic, reads the top notes and comments, and summarises what works. Read only. |
/rednote-gate:review_queue | Claude summarises what is waiting and what happened |
/rednote-gate:help | every tool and prompt, your mode, and what is left of today's budget |
Or just ask in plain words ("post these two photos about my hike"). The first time you use a rednote tool, a small background service starts. It owns the browser, the approval page and the worker, and it keeps running after you close Claude Code, so the approval page always works and approved items always run. It closes the browser window after 5 idle minutes. Stop it with rednote-gate stop (npm run stop in a clone). When something is queued, the approval page opens in your browser and your Mac shows a notification. You click Approve. About 30 seconds later it runs, and the page shows a screenshot of the result. You get a notification when it is done, or if RedNote ever shows a captcha.
Status: every flow was checked against the live site on 2026-10-06 on a rednote.com account, headed: four reads, and one real publish, draft, comment and reply, each approved by a human on the approval page. See Last verified against the live site.
| Part | Here |
|---|---|
| Host | Claude Code, Claude Desktop or Codex: the AI app you talk to |
| Client | the connector inside the host, one per server. The host provides it. |
| Server | rednote-gate, a local MCP server. The host starts it and talks to it over stdio. |
| Tools (15) | 5 read tools run straight away. 6 write tools only queue. 4 local tools never touch RedNote. |
| Prompts (6) | post_photos, post_from_concept, reply_to_comments, research_topic, review_queue, help. Claude Code shows them as slash commands. |
| Resources | none |
The model calls tools. You choose prompts. The background service, the approval page and the rednote-gate CLI are not part of MCP. The approval page is a local web page on 127.0.0.1. It sits outside MCP on purpose, so the model cannot approve its own writes.
rednote-gate is a local stdio MCP server. It needs Node 20 or newer. It is written in TypeScript and drives Playwright Chromium on your own machine.
Read tools run straight away:
| Tool | Arguments | Returns |
|---|---|---|
rednote_login_status | none | site, loggedIn (main site) and creatorSession (creator site, needed to publish) |
rednote_search | keyword, limit (up to 30) | noteId, title, author, likes, url. The url carries an xsec_token. |
rednote_get_note | url | noteId, title, body, author, tags, likes, collects, comment count, ipLocation, time |
rednote_get_comments | url, limit (up to 50) | id, author, text, likes, reply count. First page only. |
rednote_make_cards | cards (1 to 9: title, up to 8 lines, footer), optional theme (notebook, sticky, chalkboard, blueprint) | renders 1080x1440 text-card PNGs on your computer and returns their paths. Never touches RedNote. |
rednote_my_notes | limit (up to 30) | your own notes, newest first: noteId, title, likes, url |
rednote_queue_status | limit | recent queue items: id, tool, status, last change. Never the approval link. |
rednote_help | none | what rednote-gate can do, the current mode, and today's remaining budget |
rednote_open_approval_page | none | opens the approval page in your browser. Never returns the link. |
Write tools only add an item to the queue and return its queue id. They never touch the browser.
| Tool | Arguments | What happens after approval |
|---|---|---|
rednote_create_post | title (RedNote's limit of 20: a CJK character counts 1, ASCII counts half), body (up to 1000 characters, emoji fine, no #), images (1 to 9 absolute paths to JPEG, PNG or WebP files; the first is the cover), optional topics (up to 5, without #) | publishes a photo note; each topic is added as a linked RedNote topic when the picker offers exactly that topic, otherwise as plain #text |
rednote_create_draft | same as rednote_create_post | saves a draft instead of publishing |
rednote_create_video_post | title, body, video (absolute path to one MP4 or MOV, up to 500 MB, a project limit), optional topics | publishes a video note once RedNote has processed it |
rednote_post_comment | url, text (up to 500 characters) | posts a comment on the note |
rednote_like_note | url, optional noteTitle | likes the note (own daily cap, see RN_DAILY_LIKES); refuses a note already liked |
rednote_reply_comment | url, commentId, commentAuthor, commentText, text (up to 500 characters) | replies to that comment |
For rednote_reply_comment, pass the id, author and text exactly as rednote_get_comments returned them. Before replying, the worker reads the comment with that id from the page and checks that its author and text still match exactly. If not, it does not reply.
Titles, comments and replies must be a single line: a line break would be typed as Enter, which can send a comment early. The body of a note may have line breaks.
Note URLs must look like https://www.xiaohongshu.com/explore/ ?xsec_token=... (or www.rednote.com for overseas accounts). Take them from rednote_search results. Bare URLs without the token are refused, because RedNote answers them with a captcha. See docs/friction.md.
A short example:
rednote_create_post. The server checks the image, copies it into the queue and hashes it. It returns a queue id such as q_20261006T153012_ab12. No browser opens. Nothing is posted.rednote-gate approve and open the link it prints. The page shows the exact title, body and image. You click Approve.attempt line to the ledger, then opens the creator page, uploads the image and types the text.dry_run. In live mode (rednote-gate live) it clicks publish. The item becomes posted.rednote_queue_status to see the result. It never gets the approval link.Clicking Approve only marks the item. It does not post anything by itself. There is no approval in chat. Telling Claude "yes, post it" changes nothing.
pending -> approved | rejected
approved -> posting | rejected (Cancel) posting -> posted | dry_run | failed | unknown
| Status | Meaning |
|---|---|
pending | queued, waiting for a human |
approved | a human clicked Approve. Waits for the worker and the budget. |
rejected | a human clicked Reject, or Cancel on an approved item |
posting | the worker is running it now |
posted | a live attempt finished |
dry_run | the worker ran the flow with dry run on. It navigated, uploaded images and typed text, but did not click the final button. |
failed | a dry run hit an error, or a live attempt stopped before its final click (for example, the comment it should reply to changed). Nothing was sent. It can be queued again. |
unknown | a live attempt hit an error after its final click, or the process died mid live attempt. It may or may not have posted. It is never retried. Check the account by hand. |
Queuing an identical write returns the existing id instead of a second item. Identical means same tool, same arguments and same image bytes. This applies while the first one is pending, approved, posting, posted or unknown.
RN_DAILY_WRITES live attempts (default 5) in any rolling 24 hours. Comments and replies also need RN_COMMENT_GAP_MIN minutes (default 10) since the last live comment or reply attempt. The budget is worked out from the ledger, so a restart does not reset it. Failed and unknown live attempts count. Dry runs do not. An approved item over budget waits. The approval page shows when the next slot opens.attempt line is written before the browser starts, so a crash still uses up budget. A live item cut off mid attempt becomes unknown and is never retried. A dry run cut o冒頭だけを表示しています。続きはリポジトリで読めます