Connects Claude to Proton Mail via the local Bridge client, exposing 13 tools over IMAP and SMTP. You get read ops (list folders, search with filters, fetch full messages and attachments up to 50MB), writes (send with threading headers, move, flag, delete), and folder management. Runs dual transport: stdio for local CLI work, HTTP with bearer auth and rate limiting for remote clients like Routines. The crypto boundary stays at Bridge on your machine, so end-to-end encryption holds and nothing leaks plaintext to third parties. Ships with connection pooling, retry logic, and a full CI suite. Reach for this when you need Claude to manage a privacy-focused inbox without OAuth handoffs to SaaS providers.
MCP server multi-producto para Proton Suite: Mail (Bridge IMAP/SMTP), Pass (pass-cli), Drive (CLI oficial) y Calendar (CalDAV stub). Un agente puede operar el buzón, gestionar contraseñas, sincronizar archivos y clasificar correo — todo sin salir de tu máquina.
| Modo | Descripción |
|---|---|
| stdio (default) | Sin exponer nada a la red. Ideal para agentes IA locales. |
| streamable HTTP | Bearer auth + origin allowlist. Para despliegue con Docker. |
Prerrequisitos: Node ≥ 22, Proton Mail Bridge corriendo en local, pass + gpg para contraseñas.
git clone https://github.com/Iniciativas-Alexendros/protonmail-agent.git
cd protonmail-agent
npm install && npm run build && npm run smoke
export PROTON_BRIDGE_USER=you@proton.me
export PROTON_BRIDGE_PASS=your-bridge-password
export PROTON_MAIL_FROM=you@proton.me
{
"mcpServers": {
"protonsuite": {
"command": "npx",
"args": ["-y", "@alexendros/protonsuite-agent", "protonsuite-mcp"],
"env": {
"MCP_TRANSPORT": "stdio",
"PROTON_BRIDGE_USER": "you@proton.me",
"PROTON_BRIDGE_PASS": "your-bridge-password",
"PROTON_MAIL_FROM": "you@proton.me",
"PROTON_BRIDGE_TLS_INSECURE": "true",
"PROTON_PASS_ENABLED": "true",
},
},
},
}
Seguridad: usa
PROTON_PASS_BRIDGE_PATH=proton/bridge/passwordo el wrapper JIT enconnectors/stdio-wrapper.sh.examplepara no dejar el bridge password en disco.
AGENT_DRY_RUN=true npx -y @alexendros/protonsuite-agent organize
El agente analiza el inbox y presenta un plan de carpetas, etiquetas y alertas sin aplicar cambios. Desactiva AGENT_DRY_RUN para ejecutar.
25 tools organizadas por producto. Todas aceptan response_format: "markdown" | "json".
| Producto | Tools | Resumen |
|---|---|---|
| 14 | List, search, read, send, reply, forward, flag, move, delete, attachments | |
| Pass | 4 | List, get (sin exponer valores), generate, health |
| Drive | 8 | Status, list, download, upload, share, audit, organize, format report |
| Calendar | stub | Registradas pero {available: false} hasta CalDAV vía Bridge |
| Suite | 1 | Estado unificado de todos los productos |
Ver tabla completa en
docs/agent-quickstart.md.
| Goal | Pipeline |
|---|---|
setup | Verifica Bridge (IMAP + SMTP), envía email de prueba |
organize | Clasifica inbox, propone carpetas/etiquetas, detecta amenazas |
monitor | Solo lectura — presenta alertas sin modificar |
alert | Inspecciona amenazas de seguridad |
pass-audit | Fortaleza de contraseñas, duplicados, rotación |
suite-status | Reporte unificado cross-producto |
discover / check-imap | Verificación rápida de conectividad |
# Instalar (opcional)
sudo wget -q 'https://proton.me/download/drive/cli/linux/proton-drive' \
-O /usr/local/bin/proton-drive && sudo chmod +x /usr/local/bin/proton-drive
proton-drive auth login
Requiere DRIVE_ENABLED=true (default). Ver docs/drive-audit.md para configuración completa.
docker compose up -d
Ver docs/deployment-http-docker.md para auth, allowlist y healthcheck.
bash scripts/install.sh
Ver scripts/install.sh para la instalación interactiva completa.
| Documento | Para quién | Qué cubre |
|---|---|---|
docs/human-quickstart.md | Usuarios no técnicos | Instalación paso a paso, Bridge, Pass, primer uso |
docs/agent-quickstart.md | Agentes IA | Tools, formatos de respuesta, ejemplos |
docs/bridge-core.md | Todos | Bridge headless, puertos, vault, troubleshooting |
docs/deployment-http-docker.md | DevOps | Docker, auth, allowlist, healthcheck |
docs/local-stdio-secrets.md | Operadores | Wrapper stdio sin secretos en disco |
docs/alerting.md | Operadores | Alertas de contenido, webhook, logs |
docs/knowledge-base.md | Todos | Clasificación profesional y categorías |
docs/drive-audit.md | Operadores | Drive CLI, persistencia token, auditoría |
ARCHITECTURE.md | Desarrolladores | Capas internas, modelo de amenazas |
SECURITY.md | Auditores | Controles activos y threat model |
CONTRIBUTING.md | Contribuidores | Convenciones, PRs, tests |
| Archivo | Uso |
|---|---|
connectors/stdio-npx.json | Config stdio genérica para cualquier cliente MCP |
connectors/stdio-wrapper.sh.example | Wrapper seguro con resolución JIT de secretos |
connectors/http-curl.sh.example | Handshake HTTP con curl |
playbooks/ — workflows predefinidos: onboarding, organize inbox, triage, fraud detection, pass audit, daily briefing, setup checklist.
npm run typecheck # TypeScript strict
npm test # 218 tests (Vitest)
npm run build # Compilación
npm run smoke # Verificación stdio
npm run knip # Unused deps/exports
{found: true}.AGPL-3.0 — Copyright 2026 Alejandro Domingo Agustí (Alexendros). Sin afiliación a Proton AG.
Ver NOTICE.md para dependencias y compatibilidad de licencias.
PROTON_BRIDGE_HOSTHostname or IP of the Proton Mail Bridge (default: 127.0.0.1 for local, or container hostname in compose).
PROTON_IMAP_PORTIMAP port exposed by Proton Mail Bridge (default: 1143).
PROTON_SMTP_PORTSMTP port exposed by Proton Mail Bridge (default: 1025).
PROTON_USERNAME*Bridge username (your Proton Mail address).
PROTON_PASSWORD*secretBridge-generated app password (NOT your Proton account password).