Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@xhs-mcpPost /images/ootd.png to Xiaohongshu with title 'Daily Look' and a fun caption"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
xhs-mcp π
An MCP server that lets your AI agent publish notes to Xiaohongshu (RedNote / ε°ηΊ’δΉ¦) automatically using Playwright browser automation.
Features
πΈ Publish photo notes with title, body, and image
π€ MCP-compatible β works with Claude, Cursor, and any MCP-supported agent
π Session persistence β log in once, post forever
π§ Human-like typing to avoid bot detection
Requirements
Python 3.10+
macOS (tested on macOS with Apple Silicon)
Installation
1. Clone the repo
git clone https://github.com/FrancoSbaffi/xhs-mcp.git
cd xhs-mcp2. Install dependencies
pip install -r requirements.txt3. Install Chromium
python -m playwright install chromium4. Set up your session (first time only)
Run the login script and log in manually in the browser that opens:
python post.pyOnce logged in, press ENTER in the terminal. Your session will be saved to session/auth.json.
Usage
Option A β Run standalone
Edit content/texto.txt with your post content (first line = title, rest = body).
Add your image as content/imagen.jpg. Then run:
python post.pyOption B β Use as MCP server with Claude
Add this to your Claude MCP config (claude_desktop_config.json):
{
"mcpServers": {
"xiaohongshu": {
"command": "python3.11",
"args": ["/absolute/path/to/xhs-mcp/server.py"]
}
}
}Then in Claude, you can say:
"Post this to my Xiaohongshu: title 'Hello World', body 'This is my first automated post', image at /path/to/image.jpg"
MCP Tool Reference
post_note
Parameter | Type | Description |
| string | Post title (max 20 characters) |
| string | Post body text |
| string | Absolute path to image (jpg/png) |
Project Structure
xhs-mcp/
βββ post.py # Standalone posting script
βββ server.py # MCP server
βββ requirements.txt # Dependencies
βββ content/ # Default content folder
β βββ texto.txt # Post text (title on first line)
β βββ imagen.jpg # Post image
βββ session/ # Saved login session (git ignored)
βββ auth.jsonImportant Notes
β οΈ This project uses browser automation and is not affiliated with Xiaohongshu
β οΈ Use responsibly β avoid posting at high frequency
β οΈ Session may expire and require re-login
π Never commit
session/auth.jsonto GitHub β it contains your login credentials
.gitignore
Make sure to add this before pushing:
session/
.envLicense
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.