Skip to main content
Glama
de-Blanck

protonmail-mcp-server

by de-Blanck

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PROTON_BRIDGE_HOSTNoBridge host127.0.0.1
PROTON_BRIDGE_PORTNoBridge IMAP port1143
PROTON_BRIDGE_USERYesBridge IMAP username (your email)
PROTON_BRIDGE_PASSWORDYesBridge-generated IMAP password

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": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
proton_list_foldersA

List all mailbox folders in the Proton Mail account with message counts and unread counts.

Use this tool to discover available folders before listing or searching emails.

Args:

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: A list of folders with path, message count, and unread count.

Examples:

  • "What folders do I have?" -> proton_list_folders()

  • "How many unread emails do I have?" -> proton_list_folders()

proton_list_emailsA

List emails in a folder, sorted newest first, with pagination support.

Returns email summaries (subject, from, date, snippet) — not full bodies. Use proton_get_email to read an individual email's full content.

Args:

  • folder (string): Mailbox folder path (default: 'INBOX')

  • limit (number): Maximum emails to return, 1–100 (default: 20)

  • offset (number): Skip this many emails for pagination (default: 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Paginated list of email summaries with total count and pagination metadata.

Examples:

  • "Show my latest emails" -> proton_list_emails({ folder: "INBOX" })

  • "What's in my Sent folder?" -> proton_list_emails({ folder: "Sent" })

  • "Show me the next page" -> proton_list_emails({ folder: "INBOX", offset: 20 })

proton_get_emailA

Retrieve a single email's full content by its IMAP UID, including body text and attachment metadata.

Use proton_list_emails or proton_search_emails first to find the UID of the email you want to read.

Args:

  • folder (string): The folder containing the email (default: 'INBOX')

  • uid (number): The IMAP UID of the email

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Full email with headers, body text, and attachment list. Does NOT return attachment binary data.

Examples:

  • "Read email 1234" -> proton_get_email({ folder: "INBOX", uid: 1234 })

  • "Show me that email from Alice" -> first search, then get by UID

proton_search_emailsA

Search emails in a folder using IMAP search criteria. Supports filtering by sender, recipient, subject, body text, date range, and read/flagged status.

Returns email summaries — use proton_get_email to read the full content of a specific result.

Args:

  • folder (string): Folder to search in (default: 'INBOX')

  • from (string, optional): Filter by sender email or name

  • to (string, optional): Filter by recipient email or name

  • subject (string, optional): Filter by subject text

  • body (string, optional): Search within email body

  • since (string, optional): Emails after this date (ISO 8601, e.g., '2025-01-01')

  • before (string, optional): Emails before this date (ISO 8601)

  • unseen (boolean, optional): Only unread emails

  • flagged (boolean, optional): Only starred/flagged emails

  • limit (number): Max results, 1–100 (default: 20)

  • offset (number): Pagination offset (default: 0)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Paginated list of matching email summaries.

Examples:

  • "Find emails from Alice" -> proton_search_emails({ from: "Alice" })

  • "Unread emails about quarterly report" -> proton_search_emails({ subject: "quarterly report", unseen: true })

  • "Emails from acme.com in March" -> proton_search_emails({ from: "acme.com", since: "2025-03-01", before: "2025-04-01" })

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.3/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: listing folders, listing emails, searching emails, and retrieving full email content. No overlap, even between list and search due to search's advanced filtering.

Naming Consistency5/5

All tools follow a consistent 'proton_verb_noun' snake_case pattern (list_folders, list_emails, search_emails, get_email). No deviation in style or convention.

Tool Count4/5

With 4 tools, the set is small but appropriate for a read-only email interface. It covers essential reading operations without unnecessary bloat, though some users might expect a few more common actions.

Completeness3/5

The tools cover the core read workflow (list folders, list/search emails, read full email) well, but completely lack write operations like send, delete, move, or mark as read. This is a notable gap for full email management.

Maintenance

ActivityInactive
ResponsivenessNo issues