125 lines
2.0 KiB
Markdown
125 lines
2.0 KiB
Markdown
# Social Auto Hub(Monorepo)
|
||
|
||
[English](./README.md)
|
||
|
||
仓库已改造为 **workspace monorepo**,结构上清晰拆分为:
|
||
|
||
- `apps/xhs-mcp`:小红书 MCP 服务(`xhs_*`)
|
||
- `apps/xhh-mcp`:小黑盒 MCP 服务(`xhh_*`)
|
||
- `packages/core`:共享基础设施(`browser/config/cookie/server/utils`)
|
||
|
||
## 目录结构
|
||
|
||
```text
|
||
apps/
|
||
xhs-mcp/
|
||
xhh-mcp/
|
||
packages/
|
||
core/
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 前置要求
|
||
|
||
- Node.js >= 22
|
||
- pnpm
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
pnpm install
|
||
npx rebrowser-playwright install chromium
|
||
```
|
||
|
||
### 构建全部包
|
||
|
||
```bash
|
||
pnpm build
|
||
```
|
||
|
||
### 启动小红书服务
|
||
|
||
```bash
|
||
pnpm start:xhs
|
||
```
|
||
|
||
默认运行参数:
|
||
|
||
- `PORT=9527`
|
||
- `COOKIE_DIR=~/.social-mcp-xhs`
|
||
|
||
### 启动小黑盒服务
|
||
|
||
```bash
|
||
pnpm start:xhh
|
||
```
|
||
|
||
默认运行参数:
|
||
|
||
- `PORT=9528`
|
||
- `COOKIE_DIR=~/.social-mcp-xhh`
|
||
|
||
## 根目录兼容脚本
|
||
|
||
根脚本保留为转发壳:
|
||
|
||
- `pnpm build`
|
||
- `pnpm lint`
|
||
- `pnpm test`
|
||
- `pnpm start:xhs`
|
||
- `pnpm start:xhh`
|
||
- `pnpm dev:xhs`
|
||
- `pnpm dev:xhh`
|
||
|
||
也可以直接按包执行:
|
||
|
||
```bash
|
||
pnpm --filter @social/core build
|
||
pnpm --filter @social/xhs-mcp start
|
||
pnpm --filter @social/xhh-mcp start
|
||
```
|
||
|
||
## MCP 地址
|
||
|
||
- XHS MCP: `http://127.0.0.1:9527/mcp`
|
||
- XHH MCP: `http://127.0.0.1:9528/mcp`
|
||
|
||
## REST 地址
|
||
|
||
- XHS REST: `http://127.0.0.1:9527/api/xhs/*`
|
||
- XHH REST: `http://127.0.0.1:9528/api/xhh/*`
|
||
|
||
两个服务使用各自 `COOKIE_DIR` 下的独立 Bearer token。
|
||
|
||
## Claude Desktop 接入示例
|
||
|
||
```json
|
||
{
|
||
"mcpServers": {
|
||
"mcp-xhs": {
|
||
"url": "http://127.0.0.1:9527/mcp"
|
||
},
|
||
"mcp-xhh": {
|
||
"url": "http://127.0.0.1:9528/mcp"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
## Docker
|
||
|
||
单一 Dockerfile 支持通过 `APP_NAME` 构建双目标:
|
||
|
||
- `APP_NAME=xhs-mcp`
|
||
- `APP_NAME=xhh-mcp`
|
||
|
||
`docker-compose.yml` 和 `deploy/docker-compose.yml` 已配置双服务。
|
||
|
||
## 迁移说明
|
||
|
||
- 旧的根入口(`src/index.ts`)已移除。
|
||
- 服务代码迁移到 `apps/*`。
|
||
- 共享基础能力迁移到 `packages/core`。
|
||
- 锁文件策略改为 pnpm(`pnpm-lock.yaml`)。
|