Xiaohongshu MCP Server
Enables enterprise-grade multi-account management and automated operations for Xiaohongshu (Little Red Book) platform. Supports content searching, publishing, user data collection, and anti-detection features through browser automation with proxy rotation and fingerprint spoofing.
README
小红书MCP服务器 - Node.js版本
基于现代化Node.js技术栈的小红书MCP(Model Context Protocol)服务器,提供企业级多账号矩阵管理和反风控功能。
🌟 核心特性
🔐 多账号管理
- 无限账号支持:支持无限数量的小红书账号管理
- 独立环境:每个账号使用独立的浏览器指纹和代理环境
- 状态监控:实时监控账号登录状态和健康状况
- Cookie管理:自动维护登录状态,支持Cookie持久化
🛡️ 反风控系统
- 浏览器指纹伪造:完整的UA、硬件、地理位置模拟
- 行为模拟:智能鼠标轨迹、键盘输入、页面滚动
- 特征清理:移除WebDriver、CDP等自动化检测特征
- 代理轮换:支持HTTP/SOCKS5代理池,智能轮换
🚀 任务调度
- 并发执行:支持多任务并发执行,可配置并发数
- 定时任务:基于Cron表达式的定时任务调度
- 重试机制:智能重试和失败恢复
- 任务监控:实时任务状态追踪和历史记录
📊 数据采集
- 内容搜索:关键词搜索、话题搜索、用户搜索
- 笔记详情:获取完整的笔记内容和互动数据
- 用户信息:获取用户基本信息和统计数据
- 评论采集:获取笔记评论和互动信息
- 热门内容:获取各分类热门内容
🎛️ 管理后台
- Web界面:基于Express.js的现代化管理界面
- 实时监控:实时任务状态、系统资源监控
- 数据可视化:图表展示账号数据、任务统计
- 配置管理:可视化配置代理、指纹、任务参数
🏗️ 技术架构
┌─────────────────────────────────────────────────────────────────┐
│ 系统架构总览 │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ AI客户端群 │ │ API网关层 │ │ 小红书平台 │
│ Claude/Cursor │◄──►│ Express+MCP │◄──►│ 多账号并发 │
│ VSCode/CLI工具 │ │ WebSocket │ │ 自动化操作 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Directus │ │ MySQL │ │ 反风控引擎 │
│ 管理后台 │ │ 数据中心 │ │ Stealth+ │
│ (零配置) │ │ (统一前缀) │ │ Fingerprint │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
└───────────────┼───────────────┘
▼
┌─────────────────────────────────────────────────┐
│ 浏览器实例池 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 账号1+代理A │ │ 账号2+代理B │ │ 账号N+代理N │ │
│ │ 指纹集A │ │ 指纹集B │ │ 指纹集N │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────┘
🛠️ 技术栈
- 运行时环境: Node.js 18+ LTS
- 浏览器自动化: Playwright + playwright-stealth + ghost-cursor
- 数据库: MySQL 8.0+ (统一表前缀:
idea_xiaohongshu_) - 缓存: Redis 7.0+
- 任务调度: Bull Queue + node-cron
- Web框架: Express.js + Socket.IO
- MCP协议: JSON-RPC 2.0 标准实现
- 管理后台: Directus CMS
📦 快速开始
1. 环境准备
# 克隆项目
git clone https://github.com/ToDieOrNot/xiaohongshu-mcp-nodejs.git
cd xiaohongshu-mcp-nodejs
# 安装依赖
npm install
2. 数据库配置
# 创建数据库
mysql -u root -p
CREATE DATABASE xiaohongshu_mcp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 运行数据库迁移
npm run db:migrate
3. 环境配置
# 复制环境变量模板
cp .env.example .env
# 编辑配置文件
vim .env
4. 启动服务
# 开发模式
npm run dev
# 生产模式
npm start
🔧 配置说明
数据库配置
# MySQL数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_NAME=xiaohongshu_mcp
DB_USER=root
DB_PASSWORD=your_password
# Redis缓存配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
反风控配置
# 浏览器配置
BROWSER_HEADLESS=true
BROWSER_TIMEOUT=30000
BROWSER_MAX_CONCURRENCY=5
# 代理配置
PROXY_ENABLED=true
PROXY_CHECK_INTERVAL=300000
PROXY_TIMEOUT=10000
# 指纹配置
FINGERPRINT_ENABLED=true
FINGERPRINT_CACHE_SIZE=1000
MCP服务配置
# MCP服务器配置
MCP_SERVER_HOST=0.0.0.0
MCP_SERVER_PORT=3000
MCP_WEBSOCKET_PORT=3001
# 任务配置
TASK_MAX_CONCURRENCY=10
TASK_RETRY_ATTEMPTS=3
TASK_RETRY_DELAY=2000
📋 API接口
MCP协议接口
账号管理
xiaohongshu.create_account- 创建账号xiaohongshu.get_accounts- 获取账号列表xiaohongshu.update_account- 更新账号信息xiaohongshu.delete_account- 删除账号
任务管理
xiaohongshu.create_task- 创建任务xiaohongshu.get_tasks- 获取任务列表xiaohongshu.cancel_task- 取消任务xiaohongshu.get_task_status- 获取任务状态
内容操作
xiaohongshu.search_content- 搜索内容xiaohongshu.get_post_info- 获取笔记详情xiaohongshu.get_user_info- 获取用户信息xiaohongshu.get_comments- 获取评论xiaohongshu.get_trending- 获取热门内容
发布操作
xiaohongshu.publish_post- 发布笔记xiaohongshu.schedule_post- 定时发布笔记xiaohongshu.get_drafts- 获取草稿列表
RESTful API
账号管理
GET /api/accounts # 获取账号列表
POST /api/accounts # 创建账号
PUT /api/accounts/:id # 更新账号
DELETE /api/accounts/:id # 删除账号
任务管理
GET /api/tasks # 获取任务列表
POST /api/tasks # 创建任务
PUT /api/tasks/:id/cancel # 取消任务
GET /api/tasks/:id # 获取任务详情
内容管理
GET /api/search # 搜索内容
GET /api/posts/:id # 获取笔记详情
GET /api/users/:id # 获取用户信息
GET /api/comments # 获取评论
GET /api/trending # 获取热门内容
🎯 使用示例
1. 创建账号
// MCP协议调用
const result = await client.call('xiaohongshu.create_account', {
username: 'test_user',
phone: '13800138000',
proxy_id: 1,
fingerprint_id: 1
});
// REST API调用
const response = await fetch('/api/accounts', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
username: 'test_user',
phone: '13800138000',
proxy_id: 1,
fingerprint_id: 1
})
});
2. 搜索内容
// MCP协议调用
const results = await client.call('xiaohongshu.search_content', {
keyword: '美妆',
account_id: 1,
limit: 20,
sort: 'latest'
});
// REST API调用
const response = await fetch('/api/search?keyword=美妆&account_id=1&limit=20&sort=latest');
3. 发布笔记
// MCP协议调用
const result = await client.call('xiaohongshu.publish_post', {
account_id: 1,
title: '测试笔记',
content: '这是测试内容',
images: ['image1.jpg', 'image2.jpg'],
tags: ['测试', '美妆']
});
// REST API调用
const response = await fetch('/api/posts', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
account_id: 1,
title: '测试笔记',
content: '这是测试内容',
images: ['image1.jpg', 'image2.jpg'],
tags: ['测试', '美妆']
})
});
🐳 Docker部署
使用Docker Compose
version: '3.8'
services:
xiaohongshu-mcp:
build: .
ports:
- "3000:3000"
- "3001:3001"
environment:
- NODE_ENV=production
volumes:
- ./data:/app/data
depends_on:
- mysql
- redis
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: xiaohongshu_mcp
volumes:
- mysql_data:/var/lib/mysql
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
volumes:
mysql_data:
redis_data:
启动服务
# 构建并启动
docker-compose up -d
# 查看日志
docker-compose logs -f xiaohongshu-mcp
🔍 监控和日志
日志系统
- 应用日志:使用Winston记录所有操作和错误
- 访问日志:记录所有API请求和响应
- 任务日志:记录任务执行详情和状态变化
- 浏览器日志:记录浏览器操作和网络请求
健康检查
GET /health
监控指标
- 账号登录状态
- 任务执行统计
- 系统资源使用
- 代理可用性
- 反风控效果
🚨 注意事项
合规使用
- 请遵守小红书平台的使用条款
- 不要用于恶意刷量、垃圾营销等违规操作
- 合理设置请求频率,避免对平台造成压力
安全建议
- 定期更换代理IP
- 使用高质量的代理服务
- 监控账号异常行为
- 及时更新反风控策略
性能优化
- 根据服务器配置调整并发数
- 合理设置任务重试策略
- 定期清理过期数据
- 使用CDN加速静态资源
🤝 贡献指南
- Fork项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建Pull Request
📄 许可证
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。
📞 支持
- 📧 邮箱:qq164093410@gmail.com
- 💬 微信:ToDieOrNot
- 🐛 问题反馈:GitHub Issues
🙏 致谢
- Playwright - 浏览器自动化
- Bull Queue - 任务队列
- Socket.IO - 实时通信
- Directus - 管理后台
⭐ 如果这个项目对你有帮助,请给个Star支持一下!
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。