Files
dsh_mcn_agent/profiles/web/node_modules/dsh-plugin-mcn/README.md
T

84 lines
3.1 KiB
Markdown
Raw Normal View History

# dsh-plugin-mcn
MCN 短视频插件:在 DSH Web 左侧面板添加「MCN短视频」导航按钮,
点击进入抖音账号列表页面(数据来自 MCP 服务,本地 SQLite 缓存)。
参考实现:[deepseek-plugin-store](https://github.com/Ericwong5021/deepseek-plugin-store)
## 功能
- 左侧边栏底部新增「MCN短视频」按钮(图标 + 文字,窄栏模式显示图标)
- 点击进入**抖音账号列表页**(非 iframe,内部 React 页面)
- 账号数据:从 MCP `list_hot_accounts` 获取,**首次自动拉取存入本地 SQLite**(`~/.dsh/mcn-plugin.db`)
- **分页**:每页 20 条,上一页/下一页
- **排序**:默认按序号(id)升序,点击表头可切换排序(序号/账号名/赛道)
- **搜索**:按账号名 / 内容 / 赛道模糊搜索
- **筛选**:按赛道下拉筛选
- **更新**:点击弹窗确认后,从 MCP 重新拉取并覆盖本地缓存
- 页面左上角「← 返回」按钮;URL 路由 `/mcn`
## 架构
```
客户端(React,client.js)
│ fetch /mcn/api/*
宿主端(Node,index.js)
├─ 本地 SQLite(node:sqlite,Node 24 内置,~/.dsh/mcn-plugin.db)
├─ MCP stdio 客户端(spawn npx -y myai-mcp → list_hot_accounts)
└─ HTTP 路由:/mcn/api/accounts|tracks|refresh|status
```
### 数据流
```
首次访问 /mcn 页面
→ GET /mcn/api/accounts → 宿主端查 SQLite
→ 空 → 自动调 MCP list_hot_accounts → 写入 SQLite → 返回
→ 有 → 直接返回缓存
点击「更新」(弹窗确认)
→ POST /mcn/api/refresh → 调 MCP → 覆盖 SQLite → 返回新数量
```
## 安装(本地开发)
```sh
dsh plugin --profile web add file:D:/dshworkspace/plugin_package/dsh-plugin-mcn
```
或通过 patch 直接挂载:
```yaml
# cordis.patch.yml(profile 层)
- insert:
- id: mcn-nav
name: '/绝对路径/dsh-plugin-mcn/lib/index.js'
```
## 结构
```
dsh-plugin-mcn/
├── package.json ← dsh.bundle 声明 + client 入口
├── cordis.patch.yml ← 挂载条目
├── lib/
│ ├── index.js ← 宿主端(SQLite + MCP 拉取 + HTTP 路由)
│ └── client.js ← 客户端 bundle(侧边栏按钮 + 账号列表页)
└── README.md
```
## API
| 路由 | 方法 | 说明 |
|------|------|------|
| `/mcn/api/accounts?page=&pageSize=&search=&track=&sortBy=&order=` | GET | 分页查询账号列表 |
| `/mcn/api/tracks` | GET | 赛道列表(筛选下拉) |
| `/mcn/api/refresh` | POST | 从 MCP 重新拉取数据 |
| `/mcn/api/status` | GET | 本地缓存数量 |
## 说明
- 外部账号导入(/mcn/api/external/*)的字段归一化与「定位/内容」提取规范见 [docs/外部账号导入处理规范.md](docs/外部账号导入处理规范.md),处理新账号时复用
- 客户端 bundle 使用 `window.__ModuleLoader__.load` 格式,与官方 client 插件一致
- 侧边栏注入点:`sidebar.footer.action`(与插件商店相同位置)
- 修改 client.js / index.js 后需刷新页面生效;宿主端改动需重启 dsh 服务
- MCP 拉取依赖飞书登录态(复用 `~/.myai-mcp/credentials.json`)