中文 英文
一个基于人工智能的智能小红书内容生成和自动发布的Web应用程序,通过MCP(模型上下文协议)集成多个工具服务,实现从主题输入到内容发布的全自动流程。
简单来说,输入一个主题,所有的人工智能都会帮助你解决它,然后直接发布到你的小红书账号。
系统主界面:

制作广告
这是我的个人账号,所有由本项目撰写的文章

个人主页欢迎浏览,点击关注获取一手AI资源
必须首先启动xiaohongshu-mcp服务
# 1. 克隆小红书MCP项目
git clone https://github.com/xpzouying/xiaohongshu-mcp.git
cd xiaohongshu-mcp
# 2. 按照项目README的说明启动服务
# 默认服务地址: http://localhost:18060/mcp
⚠️ 注意:你需要先登录自己的小红书账号(按照此MCP服务中的说明进行登录)
cd xhs_web_app
pip install -r requirements.txt
python app.py
应用默认在http://localhost:8080启动。
访问http://localhost:8080在左侧面板中配置以下信息:
| 配置项 | 描述 | 示例 |
|---|---|---|
| LLM API Key | 与OpenAI兼容的API密钥 | sk-xxx... |
| OpenAI Base URL | API基础地址 | https://api.openai.com/v1 或 https://usw.sealos.io/v1 |
| 默认模型 | 使用的LLM模型 | claude-sonnet-4-20250514(推荐) |
| 小红书MCP服务地址 | MCP服务的URL | http://localhost:18060/mcp |
| 配置项 | 描述 | 获取方法 |
|---|---|---|
| Jina API Key | Jina搜索服务密钥 | Jina官方网站 |
| Tavily API Key | Tavily搜索服务密钥 | Tavily官方网站 |
建议使用Tavily作为搜索工具,每月可免费生成1000次搜索请求
💡 提示点击配置项旁边的“获取密钥”或“查看文档”链接可以直接跳转到相应的服务网站。
系统采用全新的沉浸式双视图设计:
这是系统的默认视图,专注于单个主题的深入创作。
主题示例:

点击左侧边栏的“🔥 热点”图标进入此视图,适合寻找灵感和批量生产。
在页面顶部,点击具有玻璃质感样式的领域标签,快速获取该领域的热门话题:
如果你有特定的文章链接:
获得主题卡片后:
点击左侧边栏的“📝 历史”图标打开历史模式框:
xhs_web_app/
├── app.py # FastAPI主程序
├── requirements.txt # Python依赖
├── README.md # 本文档
│
├── config/ # 配置模块
│ ├── __init__.py
│ ├── config_manager.py # 配置管理器
│ ├── app_config.json # 应用配置(自动生成)
│ ├── servers_config.json # MCP服务配置(自动生成)
│ └── .env # 环境变量(自动生成)
│
├── core/ # 核心功能模块
│ ├── __init__.py
│ ├── content_generator.py # 内容生成器(基于MCP工具执行)
│ └── xhs_llm_client.py # MCP客户端和LLM交互
│
├── cache/ # 缓存模块
│ ├── __init__.py
│ ├── cache_manager.py # 任务历史缓存管理
│ └── task_history.json # 任务历史记录(自动生成)
│
├── static/ # 静态资源
│ ├── css/
│ │ └── style.css # 样式文件
│ └── js/
│ └── app.js # 前端交互逻辑
│
└── templates/ # HTML模板
└── index.html # 主页面
存储应用程序的主要配置信息:
{
"llm_api_key": "sk-xxx...",
"openai_base_url": "https://api.openai.com/v1",
"default_model": "claude-sonnet-4-20250514",
"jina_api_key": "jina_xxx...",
"tavily_api_key": "tvly_xxx...",
"xhs_mcp_url": "http://localhost:18060/mcp"
}
MCP服务器配置(基于appFHIR json自动生成):
{
"mcpServers": {
"jina-mcp-tools": {
"command": "npx",
"args": ["jina-mcp-tools"],
"env": {
"JINA_API_KEY": "jina_xxx..."
}
},
"tavily-remote": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.tavily.com/mcp/?tavilyApiKey=tvly_xxx..."]
},
"xhs": {
"type": "streamable_http",
"url": "http://localhost:18060/mcp"
}
}
}
系统采用四步流程自动生成并发布内容:
| 方法 | 路径 | 描述 |
|---|---|---|
| GET | / | 主页 |
| GET | /api/config | 获取配置(隐藏敏感信息) |
| POST | /api/config | 保存配置 |
| POST | /api/validate-model | 验证LLM模型是否可用 |
| POST | /api/test-login | 测试小红书的MCP连接 |
| POST | /api/generate-and-publish | 生成并发布单一主题 |
| POST | /api/fetch-trending-topics | 获取今日热门话题(支持领域过滤) |
| POST | /api/fetch-topics-from-url | 爬取并提取URL主题 |
| POST | /api/batch-generate-and-publish | 批量生成并发布多个主题 |
| GET | /api/history | 检索任务历史 |
| DELETE | /api/history/{task_id} | 删除指定的任务记录 |
| GET | /api/history/statistics | 获取任务统计信息 |
本项目仅用于学习和研究目的。使用本项目时,请遵循以下规定:
如有任何问题或建议,请随时:
本项目可以作为一个代理的学习案例,但不建议直接在生产环境中使用。
整个项目的逻辑是抽象出一个更通用的代理架构:
**欢迎点赞快乐创作!🎉**