xiaohongshu-mcp-py
Provides tools for interacting with Xiaohongshu (Little Red Book), including feeds listing, searching, detail retrieval, publishing image/video notes, commenting, liking, favoriting, and viewing user profiles.
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., "@xiaohongshu-mcp-pysearch for travel notes"
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.
xiaohongshu-mcp-py
Python rewrite of the Xiaohongshu automation toolchain powered by Playwright + FastMCP. 可直接作为 MCP 服务暴露给 cc或者cherry studio 等客户端。
Table of Contents
Overview / 项目简介
通过 Playwright 驱动 Chromium(默认 headless),在
xhs_mcp/xhs中把「首页、搜索、详情、发布、互动、登录、个人主页」等操作抽象成独立动作。xhs_mcp/mcp_server.py把这些动作暴露为标准 MCP Tool,既可通过streamable-http远程调用,也可通过stdio作为本地子进程集成。xhs_mcp/cli/login_cli.py和scripts/manual_actions.py:前者专注于扫码登录与 cookies 落地,后者用于对浏览器动作的测试。Cookies / storage_state 采用 profile +
profiles/<name>/cookies.json的模式保存,同时兼容旧的/tmp/cookies.json与COOKIES_PATH环境变量,避免破坏历史部署。内置
scripts/clean_array.py对抓取到的 feed 数据做简单脱敏(去除noteCard.user.xsecToken),利于下游安全存储与对外暴露。
Repository Layout / 目录速览
Path | Purpose |
| Playwright action layer:feeds、搜索、详情、发布、互动、登录、个人主页等动作的实现。 |
| 浏览器基础设施:Playwright 启动参数(轻量 stealth)、context 管理、cookies 读写。 |
| MCP 服务定义及所有 tool 的适配层,同时处理 debug/trace、参数默认值等。 |
| CLI 入口: |
| 方便开发者在命令行直接触发 feeds/search/publish 等动作,输出 JSON 结果。 |
| 针对 feed 数据的脱敏清洗工具,可独立运行或作为模块导入。 |
| Profile 级别的 cookies 存储目录,示例 |
Requirements & Installation / 环境依赖
python -m venv .venv && source .venv/bin/activate # 推荐使用虚拟环境
pip install -r requirements.txt
playwright install chromium # 首次运行需要安装浏览器Minimum runtime: Python 3.11+、Playwright ≥ 1.44、Typer ≥ 0.12、FastMCP (mcp ≥ 0.1)。
部署在服务器上时,可通过 CHROME_BIN 指定自定义 Chromium/Chrome,可更好地规避风控。
Login & Session Management / 登录与会话管理
Cookies 存储策略(见
xhs_mcp/configs.py):优先复用历史
/tmp/cookies.json。其次读取
COOKIES_PATH环境变量。若提供
--profile,会自动使用/创建profiles/<profile>/cookies.json。也可以显式传入
--cookies-path。
扫码登录流程(
python -m xhs_mcp.cli.login_cli):check:确认当前 cookies 是否已登录。get_qrcode:抓取二维码图片(data URL 或远程 URL),写入login.png。wait:阻塞等待扫码完成并保存最新 cookies。login:一条命令串联 “获取二维码 → 等待登录 → 保存 cookies”,适合部署脚本。
若使用多账号,请为每个账号配置独立 profile 目录,避免 storage_state 相互覆盖。
Running the MCP Server / 启动 MCP 服务
python -m xhs_mcp.cli.mcp_cli serve \
--host 0.0.0.0 \
--port 8000 \
--transport streamable-http \
--profile myacc \
--debug-dir debug \
--trace--debug-dir会在每次调用后落地 DOM、截图、console log;配合--trace可生成 Playwright trace。LangGraph / Claude Desktop 接入:在
MultiServerMCPClient或配置文件中添加streamable_httpendpoint,指向http://<host>:<port>/mcp。
Available MCP Tools / 可用工具一览
Tool | Purpose | Required params | Notes |
| 获取首页推荐 feed 列表 | (登录态) | 返回值会通过 |
| 搜索 feed |
| 同样会去除内嵌用户 |
| 获取笔记详情 + 评论 |
| 直接读取 |
| 发布图文笔记 |
|
|
| 发布视频笔记 |
| 自动等待上传完成再点击发布。 |
| 评论笔记 |
| 通过页面定位编辑框后提交。 |
| 点赞/取消点赞 |
| 读取互动状态后避免重复点击。 |
| 收藏/取消收藏 |
| 同步状态判断逻辑与点赞类似。 |
| 查看任意用户主页 |
| 返回 basic info + interactions + feeds。 |
| 查看当前登录账号主页 | (登录态) | 通过侧边栏导航进入个人页。 |
| 判断当前 cookies 是否有效 | – | 适合探活。 |
所有工具均接受 profile / cookies_path / chrome_bin / debug_dir / trace 参数,CLI 层也可以通过 configure_defaults 设定全局默认值。
Run Flow / 项目运行流程
登录应该在 MCP 进程启动之前完成;MCP 服务只消费既有 cookies。
准备依赖(首次执行)
python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt playwright install chromium扫码登录(生成 cookies 文件)
python -m xhs_mcp.cli.login_cli login \ --profile myacc \ --out login.png \ --timeout 240CLI 会无头抓取二维码并写入
login.png,请用手机扫描完成登录。登录成功后,cookies 会保存到
profiles/myacc/cookies.json(或你指定的--cookies-path)。随时验证会话是否仍有效:
python -m xhs_mcp.cli.login_cli check --profile myacc
启动 MCP 服务
python -m xhs_mcp.cli.mcp_cli serve \ --host 0.0.0.0 \ --port 8000 \ --profile myacc \ --debug-dir debug服务会复用步骤 2 生成的 cookies,
debug/下会保留 DOM、截图、console 日志。若需要与本地应用直连(Claude Desktop 等),请将
--transport改为stdio。
连接客户端 / 验证
可以使用cherry stio:

Debugging & Troubleshooting / 调试与排障
若页面元素无法点击,可使用
PublishImageAction/_PublishBase中的_select_tab逻辑作为参考(包括弹窗移除与 focus 修复)。profiles/<name>/cookies.json建议纳入.gitignore(默认已忽略),避免泄漏。通过环境变量
PLAYWRIGHT_BROWSERS_PATH可复用系统级浏览器安装,减少镜像体积。debug/目录下的截图可对照时间戳定位具体请求。遇到
no feeds found in __INITIAL_STATE__等错误,多半是 cookies 过期或页面结构改变,优先使用login_cli重新登录并复现。
Development Notes / 开发者提示
代码使用 Python 3.11 的
typing新语法(list[str]等),请确保本地解释器版本满足要求。行为层(
xhs_mcp/xhs/*.py)与服务层(xhs_mcp/mcp_server.py)已经解耦,扩展新动作时建议先在scripts/manual_actions.py中验证,再注册为 MCP tool。建议在合并前运行
playwright codegen/trace.viewer自查元素定位,减少线上改动频率。欢迎提交 Issue/PR,一起把小红书 MCP 能力覆盖到更多工作流。
Happy automating! ✨
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.
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/CloneYourProj0/xiaohongshu--MCP-py'
If you have feedback or need assistance with the MCP directory API, please join our Discord server