deepseek-harness-baidu-netdisk-audit
README.md
# DeepSeek Harness × 百度网盘:只读目录审计
一个非官方、社区维护的最小项目:让 DeepSeek Harness 通过百度网盘官方 MCP 读取**用户自己的网盘**,递归整理大型教程目录,同时默认阻止下载和写入操作。
本仓库不包含任何人的 Access Token、真实网盘目录、文件清单或审计报告,也不会安装、同步或上传网盘文件。
## 为什么需要桥接
百度网盘官方目前提供远程 SSE 地址 `https://mcp-pan.baidu.com/sse`。DeepSeek Harness 的通用 MCP 客户端支持 `stdio` 和 Streamable HTTP;本项目提供一个很小的 SSE → stdio 适配器,并在适配器中使用显式只读 allowlist。
```text
DeepSeek Harness
│ stdio
▼
本地只读桥接器
│ 官方 SSE + 用户自己的 Access Token
▼
百度网盘官方 MCP
```
Harness 中只会注册这些工具:
- `file_list`
- `file_doc_list`
- `file_image_list`
- `file_video_list`
- `file_meta`
- `file_keyword_search`
- `file_semantics_search`
- `user_info`
- `get_quota`
上传、下载、分享、删除、移动、复制、重命名和新建目录等工具不会暴露给模型。
## 前置条件
- Windows 10/11(当前脚本在 Windows 验证;桥接器本身是跨平台 Node.js)
- Node.js 20 或更高版本
- 已能正常启动的官方 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
- 从百度网盘官方流程取得的 Access Token
官方资料:
- [百度网盘 MCP](https://github.com/baidu-netdisk/mcp)
- [DeepSeek Harness MCP 客户端](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/mcp/mcp-client)
## 安装
```powershell
git clone https://github.com/MarenV-narrative/deepseek-harness-baidu-netdisk-audit.git
Set-Location '.\deepseek-harness-baidu-netdisk-audit'
npm install
```
`npm install` 只安装公开声明的 MCP SDK 依赖,不安装或覆盖 DeepSeek Harness。
## 1. 安全保存 Access Token
按照百度官方 README 的“使用准备”完成授权。不要把 token 写进源码、Git、命令行参数或聊天内容。
Windows 推荐使用隐藏输入脚本:
```powershell
& '.\scripts\set-token-user.ps1'
```
它把 token 保存为当前 Windows 用户的 `BAIDU_NETDISK_ACCESS_TOKEN` 环境变量。保存后关闭并重新打开 Harness。
## 2. 生成 Harness 配置片段
```powershell
npm run generate-config
```
脚本会生成 `config/harness-cordis-entry.generated.yml`,其中只有本机 Node 和项目的绝对路径,没有 token。把整个 patch 操作追加到:
```text
%USERPROFILE%\.dsh\profiles\web\cordis.patch.yml
```
先备份原文件,不要覆盖已有 patch。重启 Harness 后,模型侧应出现 `mcp__baidu-netdisk__...` 工具。
可先运行一个不读取私人文件名的连接测试:
```powershell
npm run smoke
```
它只获取桥接器公开的工具清单,并确认其中没有下载或写入工具。
## 3. 指定自己的网盘目录
编辑 `config/audit.json`:
```json
{
"target_dir": "/网络安全教程",
"dir_encoding": "urlencoded",
"max_pages_per_directory": 10000,
"document_content_preview_chars": 2000
}
```
也可以只在本次测试覆盖目标:
```powershell
& '.\scripts\run-readonly-test.ps1' --target '/网络安全教程'
```
## 4. 最小只读验证
```powershell
& '.\scripts\run-readonly-test.ps1'
```
该测试会:
1. 用 `file_list` 分页列出目标目录;
2. 递归取得子目录树;
3. 选择一个文档,用 `file_meta` 检查 metadata、content 和 abstract;
4. 把私人结果写入本地 `inventory/` 与 `reports/`。
这两个输出目录默认被 Git 忽略。测试脚本没有任何下载、上传或写入网盘的调用。
## 5. 在 Harness 中整理教程
复制 [prompts/course-audit.zh.md](prompts/course-audit.zh.md) 的提示词,并把目标目录换成自己的路径。
如果 `content` 或 `abstract` 为空,它通常表示百度尚未生成解析结果,不代表文件为空。先根据路径、文件名、扩展名、大小和相邻课程推断;只对会影响学习顺序或安装安全的低置信度文件建立按需检查队列。
本项目故意不实现下载工具。若以后增加按需下载,建议放在独立、需要人工确认的工具中,并限制单文件大小和本地落盘目录。
## 隐私与安全
- 远程地址固定为百度官方域名,避免环境变量把 token 转发到任意服务器。
- token 只通过环境变量传给桥接子进程。
- 错误信息会尝试遮蔽 token。
- 只读权限由代码 allowlist 强制执行,不只依赖提示词。
- `inventory/` 和 `reports/` 可能含私人文件名、路径、摘要和内容预览,禁止提交。
- 运行 `npm run privacy-check` 可检查常见 token 形状、Windows 用户路径和已知私人路径。
## 兼容性说明
本项目最初验证组合:DeepSeek Harness `0.1.0-rc.6`、MCP SDK `1.30.0`、Windows 11。上游传输方式、工具名称或配置格式变化时,应优先参考百度网盘和 DeepSeek Harness 的官方文档。
## 免责声明
本项目不是百度或 DeepSeek 官方项目,与其不存在隶属、合作或背书关系。使用者应遵守百度网盘服务条款,仅访问自己拥有或获授权的数据。
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues