Python Proton Mail, Calendar, Contacts and Drive client with an MCP server. Free plan, no Bridge.
MCPpedia last refreshed this data
io.github.Maytrella007/protonlite is an MCP server that python Proton Mail, Calendar, Contacts and Drive client with an MCP server. Free plan, no Bridge. Its tool list has not been published yet over stdio and sse, requires no API key, and scores 86/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"proton": {
"env": {
"PROTONLITE_SESSION": "/home/you/you@proton.me.json"
},
"command": "protonlite-mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Python Proton Mail, Calendar, Contacts and Drive client with an MCP server. Free plan, no Bridge.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
uvx 'protonlite' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked protonlite against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in other
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.
SQL for Android APK and DEX files: classes, methods, strings, references and smali.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
A curated list of skills, tools, tutorials, and capabilities for AI coding agents (Claude, Codex, Antigravity, Copilot, VS Code)
MCP Security Weekly
Get CVE alerts and security updates for io.github.Maytrella007/protonlite and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A small, dependency-light Python client and API for Proton Mail (ProtonMail) -- Mail, Calendar, Contacts and Drive, with no Proton Mail Bridge and no paid plan. Ships an optional MCP server so an agent (Claude Code, Cursor) can use your mailbox.
Proton has no IMAP or SMTP. The official way in is Proton Mail Bridge, which needs a paid
plan. protonlite talks to Proton's web API directly, so it works on a free account, and the
end-to-end crypto is ported from Proton's own MIT-licensed Go libraries
(go-srp,
go-proton-api). It stays MIT-licensed and
dependency-light: just OpenPGP (PGPy13, a maintained fork of PGPy), bcrypt and requests. No CAPTCHA solver, no
computer-vision stack -- a person completes Proton's verification page the same way Proton's
own apps do.
Unofficial. This project is not affiliated with, endorsed by, or supported by Proton AG. "Proton", "Proton Mail", "Proton Calendar" and "Proton Drive" are trademarks of Proton AG. It talks to a private, undocumented API that can change at any time, and using it may be subject to Proton's terms of service. Use it at your own risk, on accounts you own.
All of it is end-to-end: keys are unlocked locally with the account password and messages, events, contacts and files are decrypted on your machine.
pip install protonlite
Requires Python 3.10+.
import os
import datetime as dt
from protonlite import ProtonMail
# --- Signing in -------------------------------------------------------------
# The recommended way is the CLI `protonlite login`, which reads the password
# with getpass so it never lives in a script. For automation, read it from the
# environment rather than hard-coding it. Proton usually asks a human to
# complete a verification page; login raises HumanVerificationRequired with
# that URL -- open it, then call again passing verification_token (see
# "Signing in" below). Sign in each account once; every login saves its own
# session file.
ProtonMail.login(
"you@proton.me",
password=os.environ["PROTON_PASSWORD"].encode(),
session_path="you@proton.me.json",
)
# --- More than one account --------------------------------------------------
# Reopen each saved session independently -- no password needed. The two
# clients are fully independent mailboxes.
client = ProtonMail.from_session(session_path="you@proton.me.json") # personal
client1 = ProtonMail.from_session(session_path="work@proton.me.json") # work
# (after a CLI `protonlite login`, ProtonMail.for_account("work") finds it by name)
print(client.addresses()[0]["Email"], "/", client1.addresses()[0]["Email"])
# --- Mail -------------------------------------------------------------------
for msg in client.list_messages(unread_only=True):
print(msg.time, msg.sender.address, msg.subject)
full = client.read_message(msg.id)
print(full.text) # HTML flattened to prose
client.send(to=["friend@example.com"], subject="Hi", body="Hello")
client1.send(to=["teammate@work.com"], subject="Hi from work", body="Hello")
# --- Calendar ---------------------------------------------------------------
cal_id = client.list_calendars()[0]["ID"]
begins = dt.datetime.now(dt.timezone.utc) + dt.timedelt
... [View full README on GitHub](https://github.com/maytrella007/protonlite#readme)