返回市场
新华社-MCP

新华社-MCP

作者:Algovate17 星标更新:2025-10-23

项目介绍

xhs-mcp

简体中文 | English

xhs-mcp 提供了一个统一的命令行入口点 xhs-mcp,内置了MCP服务器子命令。小红书(xiaohongshu.com)的模型上下文协议(MCP)服务器和CLI工具支持诸如登录、发布、搜索和推荐等自动化功能(基于Puppeteer)。

npm 版本 npm 下载量 许可证: MIT

📦 NPM 信息

  • 包名:xhs-mcp
  • 运行 CLI(推荐):npx xhs-mcp <子命令>
  • 启动 MCP:npx xhs-mcp mcp [--mode stdio|http] [--port 3000]

✨ 功能

  • 认证:登录、登出、状态检查
  • 发布:文本和图片发布、视频发布
    • 图文发布标题 ≤ 20 字符(40 显示单位),内容 ≤ 1000,最多 18 张图片
    • 视频发布支持 MP4、MOV、AVI、MKV、WebM、FLV、WMV 格式
    • 新功能支持自动下载图片URL(HTTP/HTTPS)
    • 新功能精确标题宽度验证(CJK字符2单位,ASCII字符1单位)
    • 支持本地图片路径
    • 支持URL和本地路径混合使用
    • 智能缓存机制避免重复下载
  • 发现:推荐、搜索、详情、评论
  • 用户笔记:列表查看、删除管理
  • 自动化:Puppeteer驱动,无头模式,Cookie管理
  • 验证:发布功能验证脚本,支持HTML报告生成

📋 可用工具

  • xhs_auth_login xhs_auth_logout xhs_auth_status
  • xhs_discover_feeds xhs_search_note xhs_get_note_detail
  • xhs_comment_on_note
  • xhs_get_user_notes xhs_delete_note(用户笔记管理)
  • xhs_publish_content 统一发布接口:type title content media_paths tags
    • 图文发布1-18个图片文件或URL
    • 视频发布恰好1个视频文件
    • 混合使用支持URL和本地路径混合使用

🚀 快速开始(MCP)

Stdio 模式(默认)

npx xhs-mcp mcp

# 调试日志
XHS_ENABLE_LOGGING=true npx xhs-mcp mcp

首次运行提示:如果未安装Puppeteer浏览器,请先运行

npx xhs-mcp browser    # 自动检查并安装Chromium,显示可执行路径
# 或
npx puppeteer browsers install chrome

输出示例:

{
  "success": true,
  "message": "Chromium已准备好",
  "data": {
    "installed": true,
    "executablePath": "/path/to/chromium"
  }
}

验证MCP连接:

echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | npx xhs-mcp mcp

HTTP 模式

# 启动 HTTP 服务器(默认端口 3000)
npx xhs-mcp mcp --mode http

# 指定端口
npx xhs-mcp mcp --mode http --port 8080

# 调试模式
XHS_ENABLE_LOGGING=true npx xhs-mcp mcp --mode http

HTTP服务器支持:

  • 流式HTTP(协议版本2025-03-26)- 端点:/mcp
  • SSE(协议版本2024-11-05)- 端点:/sse/messages
  • 健康检查 - 端点:/health

详细文档请参阅:HTTP传输

CLI 子命令

# 认证
npx xhs-mcp login --timeout 120
npx xhs-mcp logout
npx xhs-mcp status

# 浏览器依赖
npx xhs-mcp browser [--with-deps]  # 检查并安装Chromium,显示可执行路径

# 发现与检索
npx xhs-mcp feeds [-b /path/to/chromium]
npx xhs-mcp search -k 关键字 [-b /path/to/chromium]

# 当前用户笔记
npx xhs-mcp usernote list [-l 20] [--cursor <游标>] [-b /path/to/chromium]

# 删除用户笔记
npx xhs-mcp usernote delete --note-id <ID> [-b /path/to/chromium]
npx xhs-mcp usernote delete --last-published [-b /path/to/chromium]

# 互动
npx xhs-mcp comment --feed-id <ID> --xsec-token <TOKEN> -n "Nice!" [-b /path/to/chromium]

# 发布
# 使用本地图片
npx xhs-mcp publish --type image --title 标题 --content 内容 -m path1.jpg,path2.png --tags a,b [-b /path/to/chromium]

# ⭐ 使用图片URL(自动下载)
npx xhs-mcp publish --type image --title 标题 --content 内容 -m "https://example.com/img1.jpg,https://example.com/img2.png" --tags a,b

# 混合使用URL和本地路径
npx xhs-m_ mcp publish --type image --title 标题 --content 内容 -m "https://example.com/img1.jpg,./local/img2.jpg" --tags a,b

# 发布视频
npx xhs-mcp publish --type video --title 视频标题 --content 视频描述 -m path/to/video.mp4 --tags a,b [-b /path/to/chromium]

# 查看可用工具
npx xhs-mcp tools [--detailed] [--json]

# 启动 MCP
npx xhs-mcp mcp [--mode stdio|http] [--port 3000]

🔧 客户端访问(游标)

Stdio 模式

.cursor/mcp.json:

{
  "mcpServers": {
    "xhs-mcp": {
      "command": "npx",
      "args": ["xhs-mcp", "mcp"],
      "env": { "XHS_ENABLE_LOGGING": "true" }
    }
  }
}

HTTP 模式

.cursor/mcp.json:

{
  "mcpServers": {
    "xhs-mcp-http": {
      "command": "npx",
      "args": ["xhs-mcp", "mcp", "--mode", "http", "--port", "3000"],
      "env": { "XHS_ENABLE_LOGGING": "true" }
    }
  }
}

或者使用HTTP客户端直接连接:

{
  "mcpServers": {
    "xhs-mcp-http": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

⚠️ 注意事项

  • 图文发布标题 ≤20,内容 ≤1000,图片 ≤18
  • 视频发布支持多种格式,建议文件大小 ≤500MB
  • 避免同一账号在不同设备上同时进行网络登录
  • 合理控制发布频率
  • 图片URL自动下载到 ./temp_images/ 表格目录(自动缓存)
  • 支持的图片URL格式:JPEG、PNG、GIF、WebP、BMP

📖 文档和示例

📚 文档

🎨 示例

🧪 测试

  • 运行测试 - 测试说明和使用方法
  • 运行所有测试:npm test
  • 验证脚本npm run validate - 发布功能验证测试,生成HTML报告

🛠️ 构建说明

  • 使用统一的生产构建配置:config/webpack.config.js
  • 移除了开发和优化变种;开发时直接运行:
    • npm run dev(直接运行TypeScript CLI)
    • npm run build 打包成 dist/xhs-mcp.js

🙏 感谢

基于 xiaohongshu-mcp 的重构和扩展(TypeScript、Puppeteer、MCP优化、日志清理、NPM发布)。