关于 Proton Drive Cli Mcp
Proton Drive Cli Mcp 将 Proton 官方 CLI 封装为 MCP 服务,供 Claude、Codex、VS Code/Copilot 等客户端管理 Drive。认证和加密行为交由官方 CLI 处理,并为破坏性操作设置确认要求。
主要功能
- 01浏览、上传和下载文件
- 02创建、移动、复制和恢复文件
- 03管理分享与邀请
- 04处理异步任务
- 05破坏性操作需确认
适用场景
- 01从 MCP 客户端管理 Proton Drive 文件
- 02上传文件并跟踪后台任务
- 03读取和修改小型文本文件
- 04管理 Drive 分享和邀请
MCP 相关
它以本地 stdio MCP 服务连接客户端,提供结构化的 Proton Drive 工具,并将操作委托给官方 CLI。凭据、登录会话和加密 Drive 行为由 Proton CLI 管理。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
37收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| fresh | boolean | 否 | 绕过缓存的身份验证和版本检查。 |
| includeAuth | boolean | 否 | 通过让 CLI 列出 /my-files 来检查身份验证。 |
详细介绍
Proton Drive CLI MCP
通过 Proton 官方命令行工具,从 Claude、Codex、VS Code/Copilot 及任何 MCP 客户端管理 Proton Drive。 身份验证和 Drive 加密行为均由 Proton 的工具处理。
安装 | 首次运行 | 工具 | 安全性 | 工具参考 | 最新版本
为何创建此项目
AI Agent 已经可以运行 Shell 命令,但 Drive 操作不应依赖根据提示词编写的命令行。此服务将 Proton Drive 封装为具有类型定义的 MCP 工具,同时将敏感操作委托给 Proton 官方的 proton-drive CLI。
| 你将获得 | 工作方式 |
|---|---|
| Proton 支持的 Drive 行为 | 调用 Proton 官方 Drive CLI,而不是重新实现身份验证或加密的 Drive API。 |
| 结构化 MCP 工具 | Agent 可以通过 schema 列出、上传、下载、共享和移至回收站,还能查看 Drive 路径。 |
| 更安全的变更流程 | 具有破坏性或会更改账户的工具需要 confirm: true。 |
| 轻松配置 | 通过 npm 和 npx 运行;也可以通过 SHA-512 验证,将官方 CLI 安装到受管理的用户本地目录。 |
| 降低常规 token 使用量 | 文件夹列表和后台任务状态响应默认设有大小限制;完整文件仍通过上传/下载或文本辅助工具处理。 |
说明
本项目是一个独立的互操作封装项目,与 Proton AG 没有关联。
安装
将服务作为本地 stdio 服务添加到 MCP 客户端:
{
"mcpServers": {
"proton-drive": {
"command": "npx",
"args": ["-y", "@borealstack/proton-drive-cli-mcp"],
"env": {}
}
}
}
此命令运行的是 stdio 服务。若直接在终端中运行,不会显示提示或横幅;它会等待通过 stdin 接收 MCP JSON-RPC 消息。
客户端快捷方式
| 客户端 | 配置 |
|---|---|
| Claude Code | claude mcp add --transport stdio proton-drive -- npx -y @borealstack/proton-drive-cli-mcp |
| Claude Desktop | 使用上方的 JSON 配置,或安装 MCPB bundle。 |
| Codex | 使用 plugins/proton-drive-cli-mcp 中的插件元数据。 |
| VS Code | code --add-mcp "{\"name\":\"proton-drive\",\"command\":\"npx\",\"args\":[\"-y\",\"@borealstack/proton-drive-cli-mcp\"]}" |
| npm | npx -y @borealstack/proton-drive-cli-mcp |
首次运行
先进行诊断。服务会报告是否找到了官方 CLI、受管安装路径是否存在、可用的版本,以及 CLI 是否能够访问 /my-files。
Call proton_drive_diagnose
如果缺少 CLI,请运行设置:
Call proton_drive_setup with installIfMissing=true
如果缺少身份验证,请启动浏览器登录流程:
Call proton_drive_auth_login
Finish Proton sign-in in the browser
Call proton_drive_diagnose again
提示
服务不会请求或存储 Proton 凭据。登录、会话存储和加密 Drive 行为仍由 Proton 官方 CLI 负责。
要求
- 已发布的软件包需要 Node.js 22+。
- 仓库开发和 Bun 测试覆盖率需要 Bun 1.3+。
- Proton Drive 官方 CLI,或可访问 Proton CLI 下载索引的网络,以便进行受管安装。
- 可访问浏览器,以使用 Proton 官方登录流程。
CLI 按以下顺序解析:
PROTON_DRIVE_CLI_PATH- 用户本地受管安装路径
- 当前目录或常见下载路径中的
proton-drive或proton-drive.exe PATH中的proton-drive- 从 Proton CLI 下载索引进行受管安装
实用的环境开关:
| 变量 | 作用 |
|---|---|
PROTON_DRIVE_CLI_PATH | 使用指定的 Proton Drive CLI 二进制文件。 |
PROTON_DRIVE_CLI_AUTO_INSTALL=0 | 禁用受管 CLI 安装。 |
PROTON_DRIVE_CLI_INSTALL_DIR | 覆盖受管安装目录。 |
PROTON_DRIVE_CLI_MANAGE_PATH=0 | 跳过受管 PATH 更新。 |
PROTON_DRIVE_AUTH_STATUS_CACHE_MS | 调整成功的身份验证状态缓存。 |
PROTON_DRIVE_VERSION_CACHE_MS | 调整 CLI 版本缓存。 |
Agent 可以执行的操作
| 范围 | 工具 |
|---|---|
| 设置和身份验证 | proton_drive_diagnose、proton_drive_setup、proton_drive_auth_status、proton_drive_auth_login、proton_drive_auth_login_status、proton_drive_auth_login_cancel、proton_drive_auth_logout |
| CLI 元数据 | proton_drive_cli_install、proton_drive_cli_version、proton_drive_cli_help |
| 文件 | proton_drive_list、proton_drive_info、proton_drive_create_folder、proton_drive_upload、proton_drive_download |
| 长时间运行的任务 | proton_drive_list_async、proton_drive_upload_async、proton_drive_download_async、proton_drive_job_status、proton_drive_job_cancel |
| 小型文本文件 | proton_drive_read_text、proton_drive_write_text |
| 修改操作 | proton_drive_rename、proton_drive_copy、proton_drive_move、proton_drive_trash、proton_drive_restore、proton_drive_delete、proton_drive_empty_trash |
| 共享 | proton_drive_sharing_status、proton_drive_sharing_invite、proton_drive_sharing_remove、proton_drive_sharing_set_url、proton_drive_sharing_remove_url |
| 邀请 | proton_drive_invitation_list、proton_drive_invitation_accept、proton_drive_invitation_reject |
完整的架构和示例请参阅 docs/TOOLS.md。
常见 Agent 工作流
List the top 20 items in /my-files/Reports.
使用 proton_drive_list,并提供有界输出和分页元数据。
Upload these local files to /my-files/Reports, then poll until done.
使用 proton_drive_upload_async,然后调用 proton_drive_job_status。
Read /my-files/Notes/todo.txt, update the text, and write it back.
使用 proton_drive_read_text 和 proton_drive_write_text 处理较小的 UTF-8 文件。完整的二进制文件或大型文件操作应使用 proton_drive_download 和 proton_drive_upload。
安全模型
本项目经过专门设计,让 MCP 层能够协调 Drive 操作,同时不充当凭证中介。
| 防护措施 | 行为 |
|---|---|
| 凭证处理 | Proton 登录和会话存储始终由官方 CLI 负责。 |
| 破坏性操作 | 删除、清空回收站、注销、移除共享以及邀请决定都需要 confirm: true。 |
| 公共链接密码 | 不会通过 MCP 参数传递自定义密码,因为 CLI 参数可能会被本地进程检查工具看到。 |
| 输出大小 | 列表工具设有输出上限;后台 JSON 输出会附带字节数和截断元数据摘要。 |
| 来源证明 | npm 发布包带有来源证明;发布资源包含校验和以及由 Sigstore 支持的证明。 |
重要
proton_drive_delete和proton_drive_empty_trash是永久性操作。 除非用户明确要求删除,否则请优先使用proton_drive_trash。
发布渠道
| 渠道 | 资源 |
|---|---|
| npm | @borealstack/proton-drive-cli-mcp |
| GitHub 发布 | 最新发布资源 |
| MCP Registry 清单 | server.json |
| Claude Desktop | proton-drive-cli-mcp.mcpb |
| Codex 插件 | plugins/proton-drive-cli-mcp |
发布资源包含:
- npm 包归档文件
- MCPB 程序包
SHA256SUMS- Sigstore JSON 证明包
本地开发
bun install
bun run typecheck
bun test
bun run build
npm test
通过 Bun 运行开发服务器:
{
"mcpServers": {
"proton-drive-dev": {
"command": "bun",
"args": ["run", "<path-to-repo>/src/index.ts"],
"env": {}
}
}
}
只有在确实要操作已登录的 Proton Drive 账户时,才运行真实账户冒烟测试。生成的冒烟测试文件请保留在本地,不要提交到 git。
项目结构
| 路径 | 用途 |
|---|---|
| src/index.ts | stdio MCP 服务入口点 |
| src/server.ts | MCP 工具注册接口 |
| src/cli.ts | 共享的 Proton Drive CLI 行为 |
| src/installer.ts | 官方 CLI 的托管下载和校验和验证 |
| docs/TOOLS.md | 工具输入、输出和示例 |
| server.json | MCP Registry 元数据 |
| mcpb/manifest.json | Claude MCPB 元数据 |
| plugins/proton-drive-cli-mcp | Codex 插件包 |
参考资料
- Proton:使用 Proton Drive CLI
- Proton 博客:推出 Proton Drive CLI
- Proton Drive CLI 官方 README
- Model Context Protocol TypeScript SDK
帮助他人发现项目
如果本项目帮助你将 Proton Drive 连接到 MCP 客户端,请为仓库点亮星标,让其他用户也能找到这个维护中的官方 CLI 封装: borealstack/proton-drive-cli-mcp。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。