Proton Drive MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| drive_auth_statusA | Check whether the Proton Drive CLI has an active authenticated session. Returns {authenticated: boolean, email?: string}. Use before any file operation when you need to confirm the session is valid — all other drive_* tools (except drive_version) require authentication. Does not make a network call if the session token is already cached locally. |
| drive_auth_logoutA | Clear the stored Proton Drive session from the OS keychain. After logout all file and sharing operations will fail until the user runs |
| drive_versionA | Return the installed proton-drive CLI version and SDK version as {cli: string, sdk: string}. Does not require authentication — use to confirm the correct binary is in PATH before other operations, or to diagnose compatibility issues. Do not use to check auth state; use drive_auth_status instead. |
| drive_listA | List the immediate children of a Proton Drive folder. Requires authentication. Returns [{name, path, type ('file'|'folder'), size?, modifiedAt?, mimeType?}]. Not recursive — one directory level only. Use before drive_upload to confirm the destination exists, or before drive_download to verify the remote path. Do not use to list trash — use drive_list_trash instead. |
| drive_uploadA | Upload a local file or folder to Proton Drive with end-to-end encryption. Requires authentication. For folders, uploads recursively and preserves directory structure. Returns {uploaded, skipped, failed} counts — fails the call if failed > 0 (common causes: quota exceeded, destination path not found, permission denied). conflictStrategy defaults to 'skip' — only use 'overwrite' with explicit user confirmation since it permanently replaces the remote file. Do not use to move files already on Drive (use drive_move) or to write text content directly (use drive_write_file if PROTON_DRIVE_SYNC_PATH is set). Ensure destination folder exists first with drive_list; create it with drive_mkdir if needed. |
| drive_downloadA | Download a file or folder from Proton Drive to the local filesystem. Requires authentication. For folders, downloads recursively. Silently overwrites any existing local file at localPath — verify the destination before calling. Fails if the local parent directory does not exist. Returns {downloaded} count. Do not use to move files within Drive (use drive_move) or to read a small text file's contents (use drive_read_file if PROTON_DRIVE_SYNC_PATH is set). |
| drive_mkdirA | Create a new empty folder on Proton Drive. Requires authentication. Fails if the folder already exists or if the parent folder does not exist — use drive_list to check first. Does not create intermediate directories; create each level separately. Do not use to upload files (use drive_upload) or to create nested folder trees in one call. |
| drive_moveA | Move or rename a file or folder on Proton Drive. Requires authentication. To rename: keep the same parent, change only the filename (e.g. /my-files/old.pdf → /my-files/new.pdf). To move: provide a different parent folder. Fails if destinationPath is already occupied or if its parent folder does not exist. Do not use to copy a file (no copy operation exists — upload again instead) or to download to local storage (use drive_download). |
| drive_deleteA | Permanently delete a file or folder from Proton Drive — no trash step, no recovery possible. Requires authentication. Requires confirmed=true; always show the exact path to the user and get explicit confirmation before calling. Do not use when reversible deletion is acceptable — use drive_trash instead so the item can be recovered with drive_restore. |
| drive_share_statusA | Return the current sharing state of a Proton Drive path. Requires authentication. Returns {isShared: boolean, members: [{email, role, addedAt?}], shareUrl?}. Always call this before drive_share_invite (to avoid duplicate invitations) and before drive_share_revoke (to confirm the member email). Do not call this to modify sharing — it is read-only. |
| drive_list_trashA | List all files and folders currently in the Proton Drive trash. Requires authentication. Returns [{name, path, type, size?, modifiedAt?}]. Use before drive_restore to find a trashed item's exact path, or before drive_empty_trash to show the user what will be permanently deleted. Do not use to list active (non-trashed) files — use drive_list instead. |
| drive_share_inviteA | Invite a person to access a Proton Drive file or folder by email. Requires authentication. Immediately sends an email notification to the invitee — always confirm the email address and role with the user before calling. role values: 'viewer' (read-only), 'editor' (read + write), 'admin' (read + write + reshare). Do not call without first running drive_share_status — duplicate invitations may silently overwrite the existing role. To remove access, use drive_share_revoke. |
| drive_share_revokeA | Remove a specific person's access to a Proton Drive file or folder. Requires authentication. The revoked user receives no notification. Always call drive_share_status first to confirm the email and current role before revoking. To revoke all members, call this once per member listed by drive_share_status. Do not use to modify a role — revoke and re-invite with the new role instead. |
| drive_trashA | Move a file or folder to the Proton Drive trash. Requires authentication. The item disappears from its original path immediately but is not permanently deleted — recover it with drive_restore or list it with drive_list_trash. Prefer this over drive_delete whenever permanent removal is not explicitly required by the user. Do not use when the item must be permanently gone immediately — use drive_delete with confirmed=true instead. |
| drive_restoreA | Restore a trashed file or folder back to its original Proton Drive path. Requires authentication. Use drive_list_trash first to find the item's current path in trash. Fails if the original parent folder no longer exists or if a new item with the same name was created at that path since it was trashed. Do not use for items not currently in trash — it will return an error. |
| drive_empty_trashA | Permanently delete ALL items in the Proton Drive trash — irreversible, no recovery. Requires authentication. Requires confirmed=true. Always call drive_list_trash first to show the user exactly what will be deleted, then ask for explicit confirmation. Do not call if the user only wants to delete specific items — use drive_delete or drive_trash for individual files. |
| drive_read_fileA | Read the text contents of a file from the local Proton Drive sync folder. Requires the PROTON_DRIVE_SYNC_PATH environment variable to point to the root of the synced folder (e.g. /Users/alice/Proton Drive). The Proton Drive desktop app must be running and the file must be synced locally. Limited to text files up to 1 MB — returns an error for binary files or larger files (use drive_download instead). Do not use for files not yet synced locally, binary files, or files over 1 MB — use drive_download instead. |
| drive_write_fileA | Write text content to a file in the local Proton Drive sync folder. Requires authentication. Requires the PROTON_DRIVE_SYNC_PATH environment variable to point to the sync folder root. The Proton Drive desktop app must be running to sync the written file to the cloud. Creates parent directories locally if they do not exist. Overwrites the file if it already exists — confirm with the user before overwriting. Do not use for binary content or files that need to be uploaded without the desktop app running — use drive_upload instead. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/googlarz/proton-drive-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server