Skip to main content
Glama
mhbxyz

protonmail-mcp

by mhbxyz

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PROTONMAIL_MCP_MODENoCapability preset: read, draft, organize, send, deleteread
PROTONMAIL_MCP_POLICYNoOptional policy file with capability overrides and limits~/.config/protonmail-mcp/policy.toml
PROTONMAIL_BRIDGE_HOSTNoBridge host127.0.0.1
PROTONMAIL_BRIDGE_TIMEOUTNoSocket timeout in seconds30
PROTONMAIL_BRIDGE_PASSWORDYesBridge mailbox password (required)
PROTONMAIL_BRIDGE_USERNAMEYesYour Proton address (required)
PROTONMAIL_BRIDGE_IMAP_PORTNoBridge IMAP port1143
PROTONMAIL_BRIDGE_VERIFY_TLSNoBridge uses a self-signed certificatefalse
PROTONMAIL_BRIDGE_IMAP_SECURITYNostarttls (Bridge 3.x on 1143) or ssl (direct TLS)starttls

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_foldersA

List every folder and label of the mailbox. Use this first when you do not know where a message lives; the returned names are valid values for other tools.

list_emailsA

List the most recent messages of a folder, newest first.

Args: folder: Folder or label name, as returned by list_folders. limit: Maximum number of messages to return (1-100). unread_only: Only return unread messages when true. since_days: Only return messages from the last N days when set. sender: Only return messages whose From header contains this text. subject: Only return messages whose Subject header contains this text. before: Cursor from a previous page's next_cursor to continue listing.

search_emailsA

Search messages, newest first. All filters combine with AND.

Args: query: Full-text across headers and body; empty matches everything. folder: Folder or label name to search in, as returned by list_folders. limit: Maximum number of messages to return (1-100). sender: Substring match on the From header. recipient: Substring match on the To header. subject: Substring match on the Subject header. since_days: Only messages received in the last N days. before_days: Only messages received before N days ago. unread_only: Only unread messages when true. has_attachment: Only messages carrying an attachment. IMAP cannot search on this, so up to 200 newest candidates are checked with BODYSTRUCTURE; the result reports how many were scanned and whether the set was truncated.

read_emailA

Read one full message, identified by the Message-ID returned by list_emails or search_emails. Returns headers, decoded text body, attachment names, and flags.

Args: message_id: Full Message-ID header value, including angle brackets. folder: Folder the message is in. max_chars: Maximum body characters to return; longer bodies are truncated.

get_statusA

Counts of total and unread messages per folder, without fetching messages.

Args: folder: A single folder name, or omit to get every selectable folder.

daily_digestA

Compact digest of a folder: unread count plus recent message summaries (subjects and senders only, no bodies).

Args: folder: Folder to summarize. days: Window in days (default 1). limit: Maximum messages in the digest (1-100).

get_threadA

Reconstruct a conversation around a message using References/In-Reply-To, searching All Mail. Returns messages in chronological order.

Args: message_id: Message-ID of any message in the thread. folder: Folder containing that message (used as a fallback if All Mail is absent). limit: Maximum messages in the thread (1-100).

list_attachmentsA

List a message's attachments (names, content types, sizes) without saving anything to disk.

Args: message_id: Message-ID of the message. folder: Folder containing the message.

save_attachmentA

Save one attachment into the local sandbox directory. Files are never overwritten and never leave the sandbox.

Args: message_id: Message-ID of the message. folder: Folder containing the message. filename: Exact attachment filename; omit when the message has exactly one. index: Attachment position (0-based) when filenames are ambiguous.

export_emailA

Export a full message as .eml into the local sandbox directory.

Args: message_id: Message-ID of the message. folder: Folder containing the message. filename: Optional target filename; defaults to the Message-ID plus .eml.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
foldersEvery folder and label, with IMAP flags and selectability
statusTotal and unread counts per selectable folder

TDQS

A3.9/5.0

Scored across 10 tools

Disambiguation4/5

Tools mostly target distinct actions or resources, but list_emails and search_emails overlap in filtering, and get_status and daily_digest both report unread counts. An agent can infer the difference from descriptions, but there is mild potential for misselection.

Naming Consistency4/5

Names mostly follow a verb_noun pattern: list_folders, list_emails, search_emails, read_email, get_status, get_thread, list_attachments, save_attachment, export_email. daily_digest is the only noun-phrase outlier, a minor inconsistency.

Tool Count5/5

10 tools is well-scoped for an email access server; each tool covers a distinct capability without obvious redundancy. The count is neither too thin nor too heavy.

Completeness3/5

The surface covers read-oriented mailbox operations well: folders, listing, search, read, threads, attachments, and export. However, it lacks send/compose, delete, move, and label/mark-read operations, which are notable gaps for a full email lifecycle.

Maintenance

ActivityMaintained
ResponsivenessResponsive