Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP server for one throwaway RedNote account. Every write waits for a human Approve click.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"rednote-gate": {
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}Run this in your terminal
claude mcp add rednote-gate -- npx -y rednote-gatePaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"rednote-gate": {
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"rednote-gate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account YashShelar007, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.1.1) reached the registry 30 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, MCP Server Autocad Lisp Helper
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
High-precision static analysis and debug server for AutoCAD AutoLISP (.lsp) files.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
中文说明
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 oOnly the beginning is shown; read the rest in the repo