Skip to main content
Glama
andykair55-byte

netdisk-organizer-mcp

netdisk-organizer-mcp

官方是地基,本 MCP 是二楼。

百度官方已把"碰网盘"做成了标准 MCP 数据层(baidu-netdisk,SSE: https://mcp-pan.baidu.com/sse)。 本项目不重新实现任何网盘协议,只在官方数据层之上叠加三层整理智能:

  • 语义层pan_scan / pan_events / pan_ask —— 事件聚类 + 跨目录认领孤儿照片,补官方 file_keyword_search 答不了"去年暑假度假的照片在哪"的缺口

  • 安全层:不提供 delete tool;pan_move 内置 protect_patterns 拦截(珍藏/合同/发票直接拒绝);journal 自动留痕 + pan_undo 可回滚

  • 个性化层pan_profile + 可移植的 profiles/ 偏好文件,各用户各改各的,互不干扰


目录


Related MCP server: Better Finder MCP

1. 快速开始

# 1. 安装
git clone <your-repository-url>          # 替换为你的仓库地址
cd netdisk-organizer-mcp
pip install -e .

# 2. 配置 token(见「获取 Access Token」)
export BAIDU_NETDISK_ACCESS_TOKEN="你的AccessToken"
export NETDISK_BACKEND="official"        # 默认值,可省略

# 3. 启动 MCP server(stdio)
python server.py

然后在你的 MCP 客户端(WorkBuddy / Trae / Claude / Cursor 等)里注册连接器,即可开始使用。


2. 架构

┌─────────────────────────────────────────────────────────────┐
│  你的 agent(WorkBuddy / Trae / 任何标准 MCP 客户端)          │
└───────────────┬─────────────────────────────────────────────┘
                │  stdio MCP
┌───────────────▼─────────────────────────────────────────────┐
│  netdisk-organizer-mcp  (本仓库 · 二楼 · 整理智能)          │
│   pan_scan/events/ask/stat/issues  ·  pan_move/undo/history  │
│   pan_profile  ·  pan_mkdir/save/quota/semantic              │
└───────────────┬─────────────────────────────────────────────┘
                │  委托(OfficialDataClient / BaiduBackend)
┌───────────────▼─────────────────────────────────────────────┐
│  官方数据层(地基 · 百度维护 · 标准 MCP)                     │
│   file_list / file_move / upload_by_url / get_quota /        │
│   file_semantics_search / make_dir ...                       │
└─────────────────────────────────────────────────────────────┘

边界原则:本仓库只做"整理",绝不复刻"增删改查"。任何纯数据 I/O 都委托给官方数据层。

模块

职责

server.py

MCP stdio server 入口,工具路由

index.py

语义层:扫描 → 打标 → 事件聚类 → 结构化检索

ops.py

安全层:move / undo / history,journal 留痕

io_ops.py

数据层薄封装:委托官方 file_* 工具

backend.py

后端抽象:OfficialDataClient / BaiduBackend / LocalBackend

profiles/

可移植整理偏好(JSON),加载 + 严格校验


3. 环境要求

依赖

版本

Python

≥ 3.12

mcp

≥ 1.0.0

httpx

≥ 0.27.0

anyio

≥ 4.0.0

python-dotenv

≥ 1.0.0

sdk 兜底后端(NETDISK_BACKEND=sdk)额外需要:urllib3 / certifi / six / python-dateutil


4. 安装

git clone <your-repository-url>
cd netdisk-organizer-mcp
pip install -e .          # 或 uv sync
# 若用 sdk 兜底后端(NETDISK_BACKEND=sdk):
pip install -e ".[sdk]"

5. 配置

本 server 是标准 MCP stdio servermcpServers 的 JSON schema 所有客户端通用 —— 差异只在配置文件存放路径(各客户端约定),不在本项目的分叉。

{
  "mcpServers": {
    "netdisk-organizer": {
      "command": "python",
      "args": ["/absolute/path/to/netdisk-organizer-mcp/server.py"],
      "env": {
        "BAIDU_NETDISK_ACCESS_TOKEN": "你的AccessToken",
        "NETDISK_BACKEND": "official",
        "NETDISK_DATA_MCP_URL": "https://mcp-pan.baidu.com/sse"
      }
    }
  }
}

客户端

配置文件位置

WorkBuddy

设置 → 连接器 → 添加自定义连接器(stdio 模式)

Trae

项目根 .trae/mcp.json~/.trae/mcp.json

Claude

.mcp.json

Cursor

~/.cursor/mcp.json

其他标准 MCP 客户端

同一段 JSON,仅文件路径不同

若用 uv 管理:把 command 改为 uvargs 改为 ["--directory","/absolute/path/to/netdisk-organizer-mcp","run","python","server.py"]

环境变量

变量

取值

说明

NETDISK_BACKEND

official(默认)/ sdk

official=连官方数据层;sdk=vendored BaiduBackend 兜底

NETDISK_DATA_MCP_URL

URL

官方数据层端点,默认 https://mcp-pan.baidu.com/sse

BAIDU_NETDISK_ACCESS_TOKEN

token

official 模式必填;个人用户 OAuth 令牌,非应用凭证

NETDISK_SDK_PATH

目录

仅 sdk 模式可指定自定义 SDK 位置

NETDISK_PROFILE

名称/路径

指定整理偏好(见第 7 节),缺省用内置 default

无 token 又传 backend_rootLocalBackend(本地测试 / mock,无需账号)。


6. 工具清单(21 个)

语义层(6 · 独有护城河,官方零覆盖)

工具

作用

改写官方

pan_scan

扫描网盘/目录建语义索引(事件聚类+标签传播)

pan_scan_status

查看索引状态(已扫文件数/最后扫描时间/覆盖)

pan_events

列出识别出的事件(旅行/节日/纪念/集中拍摄)

pan_ask

结构化检索(时间窗+类别+标签+关键词)

pan_stat

全盘体检报告(类别/来源/风险分级)

pan_issues

扫描已索引数据返回发现(孤儿/垃圾/重复/命名混乱/大文件)

安全层(3 · 独有护城河)

工具

作用

改写官方

pan_move

移动文件(内置 protect_patterns 拦截)

✅ 包官方 file_move

pan_undo

回滚指定批次的 move(LIFO)

pan_history

查看可回滚的操作历史(按批次聚合)

个性化层(1 · 独有护城河)

工具

作用

改写官方

pan_profile

读取当前生效的整理偏好(只读)

数据层薄封装(11 · 官方对等,零逻辑复刻)

工具

作用

改写官方

pan_mkdir

建整理用目标目录

委托 make_dir

pan_save

转存外链资源进收件箱

委托 upload_by_url

pan_quota

读取容量使用

委托 get_quota

pan_semantic

透传官方语义检索

委托 file_semantics_search

pan_search_keyword

按文件名关键词搜索

委托 file_keyword_search

pan_meta

获取文件详情(按 fs_id,最多 10)

委托 file_meta

pan_upload_text

把一段文本直接写成网盘文件

委托 file_upload_by_content

pan_copy

复制文件(ondup=newcopy 防覆盖)

委托 file_copy

pan_share_link

创建文件分享链接

委托 file_sharelink_set

pan_user

获取已鉴权用户信息(头像/会员/UID)

委托 user_info

pan_del

删除/移入回收站

委托 file_del(⚠️ 见下)

pan_del 使用警示:官方 SSE 数据层未暴露删除(仅 vendored sdk 后端可用),且删除风险系数高。作者立场:不把它作为默认分发能力 —— 清理请走隔离目录 /_待清理_/(profile 的 quarantine_dir)+ 用户手动删除;pan_del 仅保留后端完整性,使用需自担风险,且 pan_undo 不支持回滚删除(回收站无恢复 API)。

官方 16 个数据工具已覆盖 15 个;唯一刻意不提供的是 file_upload_stdio(本地文件直传,web 场景用不到)。

使用示例

用户意图

工具调用

扫描我的网盘

pan_scan

2025年夏季时间段的照片在哪

agent 解析为 {years:[2025], months:[7,8], category:"照片", scene:"旅行"}pan_ask

把截图归档到 /整理后/截图/

pan_move(每个 move 自动写 journal)

刚才那批撤回

pan_undo(batch=...)

转存这个链接

pan_save({url, to_folder})


7. 个性化

整理偏好是纯 JSON,放在 profiles/

  • profiles/default.profile.json —— 内置默认(保护规则 + 隔离目录 + 软偏好)

  • profiles/schema.json —— JSON Schema,加载时严格校验(配置非法宁可失败,不带病动用户文件)

自定义:复制 default.profile.json 改名,运行时设 NETDISK_PROFILE=我的.profile.json

可改项:额外 protect_patterns(永不移动的路径/关键词)、never_touch(前缀黑名单)、quarantine_dir(清理隔离区)、preferences(软偏好,如默认按事件聚类)。

内置保护规则不可被 profile 关闭 —— 这是铁律,防止误配把重要文件挪走。


8. 安全模型

  1. 永不删除:不暴露 delete tool,清理只能 move 到隔离目录

  2. move 内置保护protect_patterns / never_touch 命中直接拒绝(珍藏/纪念/毕业/合同/发票/身份证/微信备份…)

  3. journal 自动留痕:每次 move 记录,undo 一键回滚(LIFO)

  4. 凭证不入库:token 走 env / .env.gitignore 屏蔽),绝不提交

  5. 防提示注入:不提供读取文件内容的工具,文件名当不可信数据


9. 获取 Access Token

MCP 配置里要的是**「用户」令牌**(代表某百度账号授权访问其网盘),不是开放平台的「应用」凭证(AppKey/SecretKey 不能直接当 token 用)。 个人使用:用你自己的 AppKey + SecretKey 走一次 OAuth,把你自己的网盘授权给应用。

pip install requests
python tools/get_baidu_token.py --app-key 你的AppKey --app-secret 你的SecretKey
# 打开打印的验证 URL,登录百度账号授权 → 脚本自动拿到 access_token / refresh_token

token 约 30 天有效;过期用 --refresh 续期。(个人应用最多授权 10 个账号,自用绰绰有余。)

⚠️ 脚本会在终端打印 access_token / refresh_token。请勿把终端输出截图发给他人,token 等同于你的网盘访问权限。


10. 项目结构

netdisk-organizer-mcp/
├── server.py                 # MCP stdio server 入口,工具路由
├── index.py                  # 语义层:扫描/事件聚类/检索/体检
├── ops.py                    # 安全层:move/undo/history + journal
├── io_ops.py                 # 数据层薄封装(委托官方)
├── backend.py                # 后端抽象(Official/Baidu/Local)
├── tools/
│   └── get_baidu_token.py    # OAuth 设备码取 token 脚本
├── profiles/
│   ├── __init__.py           # profile 加载器 + 严格校验
│   ├── default.profile.json  # 内置默认偏好
│   └── schema.json           # JSON Schema
├── openapi_client/           # vendored 官方 SDK(sdk 兜底模式用)
├── pyproject.toml
├── .env.example              # 环境变量模板
└── .gitignore

11. 开发与测试

pip install -e ".[dev]"
python -m pytest -q

说明:当前分享版为精简裁剪,未包含测试套件与 CI 配置。若需完整开发环境,请基于 backend.pyFakeDataClient 注入点自行补充单元测试(可离线验证代理逻辑,无需真实 token / 网络)。


12. License

MIT

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

UpdatingMaintainers
UpdatingResponse time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    A powerful, security-hardened MCP server for intelligent file organization. Provides high-level atomic tools for organizing files into categories, detecting duplicates, extracting EXIF/ID3 metadata, scheduling automatic organization, and more — for use with Claude, Cursor, and Gemini CLI.
    4
    26
    32
    43
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables intelligent file search with Git-like staging and indexing, offering semantic and hybrid search for documents, and integrates with Claude Desktop via MCP.
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to analyze, rename, categorize, and organize local documents using OCR, metadata extraction, and batch processing, with preview mode and undo support.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP-native collaborative markdown editor with real-time AI document editing

  • Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.

  • Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/andykair55-byte/baidunetdisk-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server