MCP server for Proton suite — Mail via Bridge (IMAP/SMTP) + Pass via CLI + Drive via rclone + VPN status + Calendar via CalDAV
Proton MCP has 35 tools with consistent naming (verb_noun pattern) and basic descriptions. However, critical gaps undermine quality: (1) Output schemas are completely undocumented, no tool declares what fields it returns, forcing LLMs to guess at response structure. (2) Many parameter descriptions are minimal (10-30 chars) and lack constraints, ranges, or format guidance. (3) No error handling guidance, tools return raw JSON errors without recovery hints. (4) Sensitive operations (delete_message, delete_event, trash_item) lack confirmation/dry-run patterns. (5) Tool composition issues: mail__send_message and mail__reply_message both accept attachments but with slightly different schemas; no pagination on list tools despite potentially large result sets. Naming is solid (mail__*, pass__*, drive__*, calendar__*), but descriptions average ~80 chars, below the 194-char baseline for A+ tools. Schema validation is present (Zod) but output documentation is absent.
Create a new calendar event
Delete a calendar event
Get a specific calendar event
List calendar events within a date range
Update an existing calendar event
Delete a file or folder from Proton Drive
Download a file from Proton Drive
Output schemas completely undocumented. No tool declares return type, field names, or structure. LLMs cannot plan downstream calls or extract data reliably.
Destructive operations (mail__delete_message, drive__delete, calendar__delete_event) lack confirmation or dry-run patterns. Agents can permanently delete data without safeguards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
List files in Proton Drive
Create a folder in Proton Drive
Upload a file to Proton Drive
Upload a folder to Proton Drive
Permanently delete an email from inbox
Forward an email to another recipient
Get attachments from a message
Get a single email by message ID (sequence number). Includes threading headers.
Fetch the full email chain (thread) for a message
Get unread emails from Proton Mail inbox
List all mail folders (INBOX, Sent, Drafts, Archive, custom labels, etc.)
List recent emails from Proton Mail inbox
List messages in a specific folder
Mark an email as read or unread
Move an email to a different folder (e.g. Trash, Archive, a label)
Reply to an email, preserving the thread. Set reply_all=true to include all original recipients.
Search emails by keyword in subject and body
Send an email via Proton Mail. Supports CC, BCC, HTML, and file attachments.
Star or unstar an email
Create a new login item in a vault
Get TOTP code for an item
List all items in a vault
List all Proton Pass vaults
Search for items in a vault by title, username, or URL
Move an item to trash
Update an existing item in a vault
View a specific item in a vault
Check current VPN connection status via external IP lookup
List tools (mail__list_messages, calendar__list_events, pass__list_items, drive__list_files) lack pagination parameters (limit, offset, cursor). Large result sets will blow context windows.
Parameter descriptions are minimal (10-30 chars) and lack constraints, ranges, or format guidance. E.g., 'folder' in mail__move_message has no enum of valid folders; 'query' in mail__search_messages lacks syntax hints.
Error responses return raw JSON errors without recovery guidance. LLMs cannot determine if errors are retryable, user-fixable, or fatal.