Skip to main content
Glama
FrancoSbaffi

xhs-mcp

by FrancoSbaffi

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-mcp

2. Install dependencies

pip install -r requirements.txt

3. Install Chromium

python -m playwright install chromium

4. Set up your session (first time only)

Run the login script and log in manually in the browser that opens:

python post.py

Once 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.py

Option 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

title

string

Post title (max 20 characters)

body

string

Post body text

image_path

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.json

Important 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.json to GitHub β€” it contains your login credentials

.gitignore

Make sure to add this before pushing:

session/
.env

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/FrancoSbaffi/xhs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server