Proton Drive MCP
The Proton Drive MCP server gives you full control over your Proton Drive with end-to-end encryption intact, covering authentication, file management, sharing, trash, and local sync operations.
๐ Authentication & Info
Check auth status, log out, and retrieve CLI/SDK version info.
๐ File & Folder Management
List folder contents, create folders, upload local files/folders (with conflict strategies: skip, overwrite, or rename), download files/folders, move/rename items, and permanently delete files/folders.
๐ฅ Sharing & Collaboration
Check sharing status (members, roles, share URL), invite users by email with a role (viewer, editor, or admin), and revoke access.
๐๏ธ Trash Management
Move items to trash, list trash contents, restore items from trash, and permanently empty the trash.
๐ Local Sync Folder (requires PROTON_DRIVE_SYNC_PATH and desktop app running)
Read text files (up to 1 MB) and write/overwrite text files in the local sync folder, which the Proton Drive desktop app then syncs to the cloud.
๐ Privacy & Security
Zero credential exposure (OS keychain authentication), shell injection safe, and all cryptography is handled locally by the official Proton Drive CLI.
Provides tools for managing files and folders on Proton Drive, including listing, uploading, downloading, moving, deleting, sharing, and trash operations with end-to-end encryption.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Proton Drive MCPList files in /my-files"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
____ ____ ___ _____ ___ _ _ ____ ____ _____ _______
| _ \| _ \ / _ \_ _/ _ \| \ | | | _ \| _ \|_ _\ \ / / ____|
| |_) | |_) | | | || || | | | \| | | | | | |_) || | \ \ / /| _|
| __/| _ <| |_| || || |_| | |\ | | |_| | _ < | | \ V / | |___
|_| |_| \_\\___/ |_| \___/|_| \_| |____/|_| \_\___| \_/ |_____|
MCP server and CLI ยท Full Proton Drive control for Claude
Give Claude Desktop (or any MCP client) full access to your Proton Drive and Proton Photos: list folders, upload and download files, invite collaborators, manage sharing, handle trash, and manage photo albums โ all with end-to-end encryption intact. The same capabilities are available as a full CLI for scripting, backups, and cron.
What you get
Claude manages your Proton Drive โ list, upload, download, move, share, trash, restore
Proton Photos album management โ list albums, create/delete albums, add and remove photos
Full CLI โ same 38 operations, scriptable and pipeable, works in cron and shell scripts
100% CLI coverage โ every scriptable Proton Drive CLI command has a matching tool (verified against the CLI's own source;
auth loginis the one command excluded, since it's an interactive browser flow)Zero credential exposure โ auth is handled entirely by the official Proton Drive CLI; this MCP never touches your password or session token
Shell injection safe โ all CLI calls use
execFilewith discrete argument arrays, never string interpolationPrivacy-native โ end-to-end encryption is handled by Proton's own CLI; this server is just a thin MCP wrapper
Related MCP server: vulcan-file-ops
Privacy model
Your files travel: Proton Drive (cloud, E2E encrypted) โ Proton Drive CLI (local, decrypts) โ this MCP server (local) โ your AI client.
The Proton Drive CLI handles all cryptography locally. This MCP server calls the CLI as a subprocess and forwards results โ it never receives your password, never stores credentials, and never touches the raw encrypted data. Authentication state lives in your OS keychain (macOS Keychain, Windows Credential Manager, Linux libsecret), managed exclusively by the official Proton CLI.
If you use Claude Desktop with the default Anthropic API, file content you ask Claude to act on is sent to Anthropic per their privacy policy.
Prerequisites
1. Proton Drive CLI โ download from proton.me/download/drive/cli and add to your PATH.
2. Authenticate the CLI โ run once in your terminal:
proton-drive auth loginThis opens a browser for Proton's standard sign-in flow. Credentials are stored in your OS keychain โ not on disk, not in config files.
3. Node.js 20 or later โ node --version to check.
Install
Via npx (no install needed):
# Used directly in Claude Desktop config โ no global install required
npx -y proton-drive-mcpGlobal install:
npm install -g proton-drive-mcpConnect to Claude Desktop
Add to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"proton-drive": {
"command": "npx",
"args": ["-y", "proton-drive-mcp"]
}
}
}Restart Claude Desktop. Check + โ Connectors โ proton-drive to confirm the server is connected.
Tip: Make sure
proton-drive auth loginhas been run at least once before starting Claude Desktop.
If installed globally
{
"mcpServers": {
"proton-drive": {
"command": "proton-drive-mcp"
}
}
}Try it: example Claude prompts
Backup a build artifact
"Upload ./dist/app-v2.zip to /my-files/Releases and tell me if it succeeded."
Morning file triage
"List everything in /my-files. Tell me what's larger than 10MB and what was modified most recently."
Share a folder with a colleague
"Share /my-files/Q2-Reports with alice@proton.me as editor. Add a message: 'Please review before Friday.'"
Offboarding
"Revoke bob@company.com's access from /my-files/Projects and /shared/Design. Confirm when done."
Automated download
"Download /my-files/contracts/nda-2026.pdf to ~/Documents/Legal/."
Trash cleanup
"List what's in the trash and empty it once I confirm."
CLI
proton-drive-cli <command> [args]Auth & info
proton-drive-cli auth status # probes /my-files; the CLI has no dedicated status command
proton-drive-cli auth logout # log out (clears OS keychain session)
proton-drive-cli version # CLI and SDK versionFiles & folders
proton-drive-cli list /my-files
proton-drive-cli list /my-files/Reports
proton-drive-cli info /my-files/report.pdf # full metadata, incl. revision details
proton-drive-cli mkdir /my-files/NewFolder
proton-drive-cli upload ./report.pdf /my-files/Reports
proton-drive-cli upload ./dist /my-files/Releases --conflict replace
proton-drive-cli download /my-files/report.pdf ./local/report.pdf
proton-drive-cli download /my-files/Reports ./local/Reports --conflict keep-both
proton-drive-cli rename /my-files/old-name.pdf new-name.pdf # in place, no move
proton-drive-cli move /my-files/old-name.pdf /my-files/new-name.pdf
proton-drive-cli copy /my-files/report.pdf /my-files/Archive
proton-drive-cli delete /trash/obsolete-draft.pdf --confirm # only works on items already in trash
# Machine-readable output (pipe-friendly)
proton-drive-cli list /my-files --json | jq '.[].name'Sharing
proton-drive-cli share status /my-files/Reports
proton-drive-cli share invite /my-files/Reports alice@pm.me editor
proton-drive-cli share invite /my-files/Reports bob@pm.me viewer --message "FYI"
proton-drive-cli share revoke /my-files/Reports alice@pm.me
proton-drive-cli share remove-all /my-files/Reports --confirm # strip every member + pending invite
proton-drive-cli share set-url /my-files/Reports --role viewer --expiration 2026-06-06
proton-drive-cli share remove-url /my-files/ReportsTrash
proton-drive-cli trash /my-files/old-draft.pdf # move to trash
proton-drive-cli trash list # see what's in trash
proton-drive-cli restore /my-files/old-draft.pdf # restore from trash
proton-drive-cli trash empty --confirm # permanently delete all trashed itemsPhotos
proton-drive-cli album list
proton-drive-cli album create "Summer 2026"
proton-drive-cli album update /albums/Summer2026 --name "Summer Trip"
proton-drive-cli album add-photo /albums/Summer2026 /photos/IMG_001.jpg
proton-drive-cli photo timeline
proton-drive-cli photo download /photos/IMG_001.jpg ./local/photos --conflict keep-both
proton-drive-cli photo upload ./camera-roll --conflict skipPipe and script
# Backup build output after CI
proton-drive-cli upload ./dist /my-files/Releases/$(date +%Y-%m-%d) --conflict keep-both
# Download all contracts for audit
proton-drive-cli download /my-files/Contracts ./audit/contracts
# Nightly backup via cron
0 2 * * * proton-drive-cli upload ~/Documents /my-files/Backups/$(date +%Y-%m-%d) --conflict skip
# Check who has access before a team change
proton-drive-cli share status /my-files/ProjectsTool surface
Auth
drive_auth_status ยท drive_auth_logout ยท drive_version
Filesystem
drive_list ยท drive_info ยท drive_mkdir ยท drive_upload ยท drive_download ยท drive_rename ยท drive_move ยท drive_delete
Sharing
drive_share_status ยท drive_share_invite ยท drive_share_revoke ยท drive_share_remove_all ยท drive_share_set_url ยท drive_share_remove_url
Trash
drive_list_trash ยท drive_trash ยท drive_restore ยท drive_empty_trash
Local sync (requires PROTON_DRIVE_SYNC_PATH)
drive_read_file ยท drive_write_file
Copy
drive_copy
Invitations
drive_list_invitations ยท drive_invitation_accept ยท drive_invitation_reject ยท drive_share_leave
Photos
photos_list_albums ยท photos_create_album ยท photos_update_album ยท photos_delete_album ยท photos_list_album_photos ยท photos_add_to_album ยท photos_remove_from_album ยท photos_list_timeline ยท photos_download ยท photos_upload
Tool reference
Tool | Description | Key parameters |
| Check if authenticated (probes | โ |
| Log out (clear session) | โ |
| CLI and SDK version info | โ |
| List files and folders at a path |
|
| Get full metadata for one file/folder, including revision details |
|
| Create a new empty folder |
|
| Upload local file or folder |
|
| Download to local path |
|
| Rename in place, no move |
|
| Move and/or rename |
|
| Copy file or folder to another Drive location |
|
| Permanently delete an item already in trash โ ๏ธ |
|
| List items currently in trash | โ |
| Get sharing members and URL |
|
| Invite a user |
|
| Revoke one person's access |
|
| Remove every member + pending invitation at once โ ๏ธ |
|
| Create/update a public share link |
|
| Remove the public share link โ ๏ธ |
|
| Move to trash |
|
| Restore from trash |
|
| Permanently delete all trash โ ๏ธ |
|
| Read text file from local sync folder |
|
| Write text file to local sync folder โ ๏ธ |
|
| List pending sharing invitations received | โ |
| Accept a pending invitation |
|
| Reject a pending invitation โ ๏ธ |
|
| Leave a shared folder shared with you โ ๏ธ |
|
| List all Proton Photos albums | โ |
| Create a new empty album |
|
| Rename an album or change its cover photo |
|
| Delete an album โ ๏ธ |
|
| List photos in an album |
|
| Add a photo from your library to an album |
|
| Remove a photo from an album (keeps it in library) โ ๏ธ |
|
| List photos in your full library timeline |
|
| Download photos to a local folder |
|
| Upload local files directly into your Photos library |
|
โ ๏ธ Destructive tools require
confirmed: true. Usedrive_list_trashfirst so you know what will be deleted, then passconfirmed: trueto proceed.
Compared with other Drive MCPs
Capability | Generic S3/GDrive MCPs | proton-drive-mcp |
End-to-end encryption | No | Yes (via Proton CLI) |
Credential exposure | API keys in config | Zero โ OS keychain only |
Sharing & invitations | Rarely | Full (invite, revoke, status) |
Trash & restore | Rarely | Full |
CLI parity | No | Full CLI mirrors all MCP tools |
Shell injection safe | Varies | Yes โ |
Operational notes
drive_uploadpasses--skip-thumbnailsby default. Remove it from the subprocess args if you want WebP preview generation (requires Bun 1.3.14+ installed).drive_moveaccepts a full destination path (parent + new name) for a familiar interface, but the underlying CLI only has separatemove(change parent) andrename(change name) commands โ this MCP translates automatically, issuing one or both as needed.drive_deleteonly works on items already in/trashor/photos-trashโ the CLI rejects live paths. Trash an item first withdrive_trash, or usedrive_empty_trashto clear everything at once.drive_auth_statushas no native CLI equivalent โ it probes by resolving/my-filesand reports authenticated based on whether that succeeds.Paths are always Drive-absolute:
/my-files/folder/file.pdf. Relative paths are not supported.All calls include
--jsonautomatically, exceptdrive_version, whose underlying CLI command ignores--jsonand always prints plain text โ this MCP parses it directly.
Environment variables
Variable | Required | Description |
| Optional | Absolute path to your local Proton Drive sync folder root (e.g. |
| Optional | Override the |
Troubleshooting
"PROTON_DRIVE_SYNC_PATH is not set"
Add "PROTON_DRIVE_SYNC_PATH": "/absolute/path/to/your/Proton Drive" to your Claude Desktop MCP config env block. The path must point to the root folder that the Proton Drive desktop app syncs to.
"proton-drive CLI not found"
Download from proton.me/download/drive/cli and ensure the binary is in your PATH. Verify with which proton-drive.
"Not authenticated"
Run proton-drive auth login in your terminal. Auth state is stored in your OS keychain and persists across sessions.
Claude can't see the connector
Restart Claude Desktop fully after changing the MCP config. Check + โ Connectors โ proton-drive. The Proton Drive CLI must be in the PATH that Claude Desktop inherits (on macOS this may differ from your shell PATH โ use the full binary path in config if needed).
Upload fails on image files
The CLI generates WebP thumbnails by default using Bun's image API. If Bun isn't installed or doesn't support thumbnails on your platform, the MCP passes --skip-thumbnails to bypass this. No action needed.
Custom binary path
If the proton-drive binary is installed under a non-standard name or location, set PROTON_DRIVE_BIN in your environment:
PROTON_DRIVE_BIN=/usr/local/bin/proton-drive npx proton-drive-mcpOr in Claude Desktop config:
{
"mcpServers": {
"proton-drive": {
"command": "npx",
"args": ["-y", "proton-drive-mcp"],
"env": { "PROTON_DRIVE_BIN": "/usr/local/bin/proton-drive" }
}
}
}Windows PATH issues
Use the full path to the proton-drive.exe binary in your Claude Desktop config if npx can't find it:
{
"mcpServers": {
"proton-drive": {
"command": "C:\\path\\to\\proton-drive-mcp.cmd"
}
}
}Development
git clone https://github.com/googlarz/proton-drive-mcp.git
cd proton-drive-mcp
npm install
npm run build
npm testChangelog
See CHANGELOG.md for release history.
Contributing
Bug reports and pull requests welcome: github.com/googlarz/proton-drive-mcp/issues
License
MIT
Maintenance
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
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants to interact with Proton Drive files, supporting operations like listing, reading, creating, and deleting files and folders.743116MIT
- AlicenseAqualityCmaintenanceMCP server that gives Claude Desktop and other desktop MCP clients filesystem powersโread, write, edit, and manage files like AI coding assistants.17879MIT
- Alicense-qualityDmaintenanceMCP server for the Proton privacy suite โ Mail, Pass, Drive, Calendar, and VPN. 36 tools for Claude and other MCP-compatible AI agents.14MIT
- Alicense-qualityCmaintenanceMCP server for iCloud Drive on macOS, enabling Claude to browse, read, search, tag, write, and trash files with safe defaults and automatic handling of iCloud placeholder files.18MIT
Related MCP Connectors
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Cloud-hosted MCP server for durable AI memory
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/googlarz/proton-drive-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server