yutu
YouTube channel management over the YouTube Data API: uploads, comments, playlists, live streams
Publish to Xiaohongshu (RedNote) from your own account, plus search, read, comment, like and notifications.
By zy (individual) Go Local · Streamable HTTP CommunicationMedia
61 popularity score ★ 17k
Opens the app, which asks before it adds the server.
claude mcp add --transport http xiaohongshu http://localhost:18060/mcp{
"mcpServers": {
"xiaohongshu": {
"url": "http://localhost:18060/mcp"
}
}
}{
"servers": {
"xiaohongshu": {
"type": "http",
"url": "http://localhost:18060/mcp"
}
}
}[mcp_servers.xiaohongshu]
url = "http://localhost:18060/mcp"gemini mcp add --scope user --transport http xiaohongshu http://localhost:18060/mcpAUTH_TOKEN secret |
Optional: Bearer token that clients must send as Authorization: Bearer <token>. Off when unset. A non-empty -token flag takes precedence. |
|---|---|
XHS_PROXY |
Optional: HTTP, HTTPS or SOCKS5 proxy for the browser. |
COOKIES_PATH |
Optional: Where the session cookies file lives. Defaults to cookies.json in the working directory, or /tmp/cookies.json if that old file exists. |
XHS_FP_SEED |
Optional: Fixed positive integer seed for the browser fingerprint. Unset, a seed is kept in the session file. |
This server runs a browser that is logged in to Xiaohongshu (RedNote, xiaohongshu.com) as you, and it gives your assistant tools that act through that browser. It can publish image posts and single-video posts, with tags, a scheduled time, visibility and product links. It also reads the home feed, searches notes with filters, opens a note with its engagement counts and comments, and reads any user's profile or your own. It can post comments and replies, like or favorite notes, and work through your notifications by reading them, replying to comments and liking them.
The README documents 13 tools. The code at the current release registers 18 of them (mcp_server.go). The extra five are get_my_profile, get_unread_count, list_notifications, reply_notification and like_notification. Note that list_notifications clears the unread marks for the section it reads.
You log in once, either with the separate login program or by scanning the QR code that get_login_qrcode returns. The session is kept in a cookies.json file. After that the server listens over HTTP at http://localhost:18060/mcp and you add that address to your client. There are three ways to run it: the release binaries, a build from Go source, or Docker Compose. The Compose setup now comes as a headless image (latest tag) or a GUI image (novnc tags) that shows the browser desktop through noVNC on port 6080, which helps when you need to watch a login or step in by hand. The README is written in Chinese.
| Runtime | A prebuilt binaryGoDocker |
|---|---|
| Runs on | macOS, Windows, Linux |
| Xiaohongshu | FreeYour own account. The README suggests finishing real-name verification first. Product links need an account with the product feature enabled. |
| Also |
|
Pick one way to run it. You can use a release binary (macOS Apple Silicon, Windows x64 or Linux x64), build it with Go, or run `docker compose -f docker/docker-compose.yml up -d` (or `docker/novnc/compose.yml` for the GUI image) from a clone of the repository. Log in first with the xiaohongshu-login program, `go run cmd/login/main.go`, or the get_login_qrcode tool. Then start the server and point your client at http://localhost:18060/mcp. The flags are -headless (default true), -port (default :18060) and -token.
A fit for someone who runs a Xiaohongshu account and wants an assistant to draft and publish notes, keep up with comments and notifications, and research what is posted on the platform. It needs a machine that can keep the server running with a browser and a logged-in session, and it posts under your name, so it is a poor fit for read-only research with no account. The same maker offers x-mcp, a Chrome extension that drives the browser you already use. The README recommends it for people who do not want to deal with Docker or other setup.
8 only read, 9 change things, 1 can delete or overwrite. A ? marks an optional parameter.
check_login_statusget_login_qrcodedelete_cookies deletespublish_content changestitle: stringcontent: stringimages: arraytags?: arrayschedule_at?: stringis_original?: booleanvisibility?: stringproducts?: arraypublish_with_video changestitle: stringcontent: stringvideo: stringtags?: arrayschedule_at?: stringvisibility?: stringproducts?: arraylist_feedssearch_feedskeyword: stringfilters?: objectget_feed_detailfeed_id: stringxsec_token: stringload_all_comments?: booleanlimit?: integerclick_more_replies?: booleanreply_limit?: integerscroll_speed?: stringuser_profileuser_id: stringxsec_token: stringtab?: stringpost_comment_to_feed changesfeed_id: stringxsec_token: stringcontent: stringreply_comment_in_feed changesfeed_id: stringxsec_token: stringcomment_id?: stringuser_id?: stringcontent: stringlike_feed changesfeed_id: stringxsec_token: stringunlike?: booleanfavorite_feed changesfeed_id: stringxsec_token: stringunfavorite?: booleanget_my_profiletab?: stringget_unread_countlist_notifications changestab?: stringlimit?: integerreply_notification changescomment_id: stringcontent: stringlike_notification changescomment_id: stringunlike?: boolean