Skip to main content
Glama
googlarz
by googlarz

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
drive_auth_statusA

Check whether the Proton Drive CLI has an active authenticated session. Returns {authenticated: boolean}. The underlying CLI has no dedicated status command — this probes by resolving /my-files, which makes a real (lightweight) call. 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 expose the signed-in account's email — the CLI provides no way to query it.

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 proton-drive auth login again. Use on shared machines to prevent session persistence. Do not call during an active workflow — it will break all subsequent drive_* calls. Idempotent: safe to call even if already logged out.

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_infoA

Get full metadata for a single Proton Drive file or folder, including latest revision details. Requires authentication. Returns the raw CLI node object — richer than drive_list's trimmed per-item fields, but its exact shape is not guaranteed. Use when you need details drive_list doesn't return (e.g. revision info) for one specific known path. Do not use to enumerate a folder's children — use drive_list 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'. Values: 'skip' (leave existing remote file unchanged), 'replace' (permanently overwrite — confirm with user first), 'keep-both' (upload with a unique name), 'merge' (folders only — merge contents instead of failing). 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. conflictStrategy defaults to 'skip' — pass 'replace' to overwrite an existing local file, or 'keep-both' to save under a unique name. 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_renameA

Rename a file or folder in place on Proton Drive, without moving it to a different parent folder. Requires authentication. Equivalent to calling drive_move with the same parent and a new filename, but cheaper — one CLI call instead of drive_move's internal composition. Do not use to relocate to a different folder — use drive_move for that (or when unsure which applies).

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) — or use drive_rename directly. 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 while keeping the original (use drive_copy) or to download to local storage (use drive_download).

drive_deleteA

Permanently delete a file or folder that is already in the Proton Drive trash — irreversible. Requires authentication. The underlying CLI only allows permanent deletion of items already inside /trash or /photos-trash; it rejects live paths. Use drive_trash first to move a live item into trash, then pass its trash path here — or drive_empty_trash to clear everything at once. Requires confirmed=true; always show the exact path to the user and get explicit confirmation before calling.

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_copyA

Copy a file or folder to another location on Proton Drive. Requires authentication. The original is preserved — this is not a move. Use drive_move when you want to relocate without keeping the original. Do not use to duplicate large folder trees without user awareness of the storage cost.

drive_list_invitationsA

List all pending sharing invitations from other Proton Drive users. Requires authentication. Returns [{uid, role, invitedByEmail, invitedAt?, nodeName, nodeType}]. Use the uid from this list to accept or reject with drive_invitation_accept / drive_invitation_reject. Do not use to list members of folders you own — use drive_share_status instead.

drive_invitation_acceptA

Accept a pending Proton Drive sharing invitation. Requires authentication. Get the invitation uid from drive_list_invitations first. The shared folder becomes accessible in your Drive after accepting. Do not guess the uid — always fetch it from drive_list_invitations.

drive_invitation_rejectA

Reject a pending Proton Drive sharing invitation. Requires authentication. Get the invitation uid from drive_list_invitations first. The invitation is permanently declined — the sender is not notified. Do not guess the uid — always fetch it from drive_list_invitations.

drive_share_leaveA

Leave a Proton Drive folder that was shared with you by another user. Requires authentication. Removes your access to the shared folder — the owner and other members are not affected. To remove someone else's access to your own folder, use drive_share_revoke instead. Do not use on folders you own — use drive_share_revoke to remove individual members.

drive_share_set_urlA

Create or update a public share link for a Proton Drive file or folder. Requires authentication. Anyone with the link can access the item at the given role — no invitation or Proton account required. Calling this again on the same path updates the existing link's role/password/expiration rather than creating a duplicate. Returns {url?, role?, expirationTime?} — the exact shape depends on the CLI/SDK response and fields may be absent. The password, if set, is passed as a CLI argument and will appear in shell history/process list on the machine running this server. Do not use for private sharing with specific people — use drive_share_invite instead.

drive_share_remove_urlA

Remove the public share link from a Proton Drive file or folder. Requires authentication. The link stops working immediately — direct member access (from drive_share_invite) is not affected. Do not use to remove a specific person's access — use drive_share_revoke instead.

drive_share_remove_allA

Remove access for every member and every pending invitation (Proton and non-Proton) on a shared Proton Drive path, in a single call. Requires authentication and confirmed=true. Use drive_share_status first to show the user who currently has access. For removing one specific person, use drive_share_revoke instead — it is cheaper and less error-prone.

photos_list_albumsA

List all photo albums in Proton Photos. Requires authentication. Returns [{name, photoCount, isShared, creationTime?}]. Album paths are /albums/ — use the name from this list to build paths for other album tools. Do not use to list regular Drive folders — use drive_list instead.

photos_create_albumA

Create a new empty photo album in Proton Photos. Requires authentication. Pass the album name (not a path) — the album is created at /albums/. Fails if an album with that name already exists.

photos_update_albumA

Rename an album or change its cover photo in Proton Photos. Requires authentication. At least one of name or coverPhotoUid must be provided. Use photos_list_album_photos to find a nodeUid to set as the cover.

photos_delete_albumA

Delete a Proton Photos album. Requires authentication and confirmed=true. By default refuses to delete an album that still contains photos — pass force=true to override. By default photos are removed from the album but kept in your timeline — pass save=true to explicitly preserve them in your timeline before deleting. albumPath must start with /albums/. Always show the user the album name and photo count (from photos_list_albums) before calling.

photos_list_album_photosA

List the photos in a Proton Photos album. Requires authentication. Returns [{nodeUid}] — photo node UIDs. albumPath must start with /albums/. To add or remove photos, use their Drive path under /photos/ (not the nodeUid).

photos_add_to_albumA

Add a photo from your Proton Photos library to an album. Requires authentication. albumPath must start with /albums/; photoPath must start with /photos/. The photo must already exist in your library — this does not upload new photos. Use photos_list_albums to find album paths.

photos_remove_from_albumA

Remove a photo from a Proton Photos album without deleting it from your library. Requires authentication. albumPath must start with /albums/; photoPath must start with /photos/. The photo is removed from the album only — it stays in your timeline.

photos_list_timelineA

List photos in your Proton Photos timeline (your full photo library, not scoped to an album). Requires authentication. Returns [{nodeUid}] by default — pass loadDetails=true for full node metadata (slower; buffers the whole list in memory first). Use photos_download to download items by path, or photos_add_to_album to add them to an album.

photos_downloadA

Download one or more photos from Proton Photos (timeline, an album, or shared-with-me) to a local folder. Requires authentication. Multiple timeline photos can share the same filename — with conflictStrategy 'replace' or 'skip' only one copy survives locally; use 'keep-both' to keep all. Fails if any item fails to download. Do not use for regular Drive files — use drive_download instead.

photos_uploadA

Upload one or more local photo or video files directly into your Proton Photos library (My Photos timeline). Requires authentication. Non-photo/video files are silently skipped. Folders are recursed but flattened into My Photos — folder structure is not preserved. Never overwrites — duplicates (matched by name + content hash) resolve to 'keep-both' or 'skip' only. Do not use for regular Drive files — use drive_upload instead.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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