Proton Mail (unofficial)
Unofficial Proton Mail MCP — send, read, search & organize email over SMTP and IMAP
The record the registry holds
There is no address to call. This one is a package you install and run yourself, wherever your assistant runs.
{
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.sethbang/proton-mail-mcp",
"description": "Unofficial Proton Mail MCP — send, read, search & organize email over SMTP and IMAP",
"title": "Proton Mail (unofficial)",
"repository": {
"url": "https://github.com/sethbang/proton-mail-mcp",
"source": "github"
},
"version": "1.0.2",
"websiteUrl": "https://sethbang.github.io/proton-mail-mcp/",
"packages": [
{
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"identifier": "proton-mail-mcp",
"version": "1.0.2",
"runtimeHint": "npx",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "Your Proton Mail email address",
"isRequired": true,
"name": "PROTONMAIL_USERNAME"
},
{
"description": "Your Proton Mail SMTP password (not your login password; generate one in Proton settings)",
"isRequired": true,
"isSecret": true,
"name": "PROTONMAIL_PASSWORD"
},
{
"description": "SMTP host",
"default": "smtp.protonmail.ch",
"name": "PROTONMAIL_HOST"
},
{
"description": "SMTP port",
"format": "number",
"default": "587",
"name": "PROTONMAIL_PORT"
},
{
"description": "Use TLS for SMTP (true for port 465)",
"default": "false",
"name": "PROTONMAIL_SECURE"
},
{
"description": "Proton Mail Bridge IMAP host (required for read/search tools)",
"default": "127.0.0.1",
"name": "IMAP_HOST"
},
{
"description": "Proton Mail Bridge IMAP port",
"format": "number",
"default": "1143",
"name": "IMAP_PORT"
},
{
"description": "Use TLS for IMAP",
"default": "false",
"name": "IMAP_SECURE"
},
{
"description": "Proton Mail Bridge username (falls back to PROTONMAIL_USERNAME)",
"name": "IMAP_USERNAME"
},
{
"description": "Proton Mail Bridge password (falls back to PROTONMAIL_PASSWORD)",
"isSecret": true,
"name": "IMAP_PASSWORD"
},
{
"description": "Disable all mutating tools (send, move, delete, flags, labels, bulk ops, folder/label management)",
"default": "false",
"name": "READONLY"
},
{
"description": "Refuse live sends to any recipient other than PROTONMAIL_USERNAME (for throwaway/QA accounts)",
"default": "false",
"name": "RESTRICT_OUTBOUND_TO_SELF"
},
{
"description": "Allowlist directory enabling download_attachment.saveTo; when unset, attachments return as inline base64",
"name": "ALLOW_FILE_DOWNLOAD_DIR"
},
{
"description": "Register the empty_folder tool (not recommended)",
"default": "false",
"name": "ALLOW_EMPTY_FOLDER"
},
{
"description": "Enable verbose logging to stderr",
"default": "false",
"name": "DEBUG"
}
]
}
]
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"statusChangedAt": "2026-05-30T13:42:09.382637Z",
"publishedAt": "2026-05-30T13:42:09.382637Z",
"updatedAt": "2026-05-30T13:42:09.382637Z",
"isLatest": true
}
}
}
Draft an Agent Plugin from this
An MCP server is raw capability: some tools, wired to something. An Agent Plugin is the packaging that says what job it does, what it leaves behind and where it stops. The prompt below carries this record and asks for the packaging; your own assistant writes it, and nothing here is sent anywhere.
MCP server
These are the publisher's own words, filed by them with the official MCP registry and mirrored here. This catalog did not read them from the publisher and has not run, called or installed anything.
Somebody else's record
This listing was indexed rather than published here, so nobody has signed anything and this catalog cannot sign on their behalf. Treat it as a pointer to the publisher, not as terms.
The publisher's own address
https://sethbang.github.io/proton-mail-mcp/
The address the publisher put in their registry record, printed as they wrote it. Nobody here has opened it.