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.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"rednote-gate": {
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add rednote-gate -- npx -y rednote-gateวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"rednote-gate": {
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"rednote-gate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"rednote-gate"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub YashShelar007 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.1.1) เข้า registry 30 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Tools MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า 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.
Web production tools for AI agents: contrast, JP text, WebP, JSON-LD, slugs, dates and 40+ more
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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ตัดมาแค่ช่วงต้น อ่านต่อใน repo