Back to Browse

Proton Mail MCP Server

Developer ToolsUse Caution4.8MCP RegistryLocal
Free

Server data from the Official MCP Registry

Proton Mail MCP via Bridge (IMAP/SMTP) · 13 tools · dual transport stdio + HTTP.

About

Proton Mail MCP via Bridge (IMAP/SMTP) · 13 tools · dual transport stdio + HTTP.

Security Report

4.8
Use Caution4.8High Risk

Well-architected MCP server for Proton Mail with strong security practices including timing-safe token comparison, per-session HTTP transport, rate limiting, and origin allowlist. Code is well-tested with 39 tests, strict TypeScript, and comprehensive CI/CD. Permissions align appropriately with purpose (network access to Bridge, environment variables for credentials). Minor findings around logging practices and input validation do not materially impact security. Supply chain analysis found 4 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.

3 files analyzed · 9 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

file_system

Check that this permission is expected for this type of plugin.

process_spawn

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Hostname or IP of the Proton Mail Bridge (default: 127.0.0.1 for local, or container hostname in compose).Optional

Environment variable: PROTON_BRIDGE_HOST

IMAP port exposed by Proton Mail Bridge (default: 1143).Optional

Environment variable: PROTON_IMAP_PORT

SMTP port exposed by Proton Mail Bridge (default: 1025).Optional

Environment variable: PROTON_SMTP_PORT

Bridge username (your Proton Mail address).Optional

Environment variable: PROTON_USERNAME

Bridge-generated app password (NOT your Proton account password).Required

Environment variable: PROTON_PASSWORD

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-alexendros-proton-mail-mcp": {
      "env": {
        "PROTON_PASSWORD": "your-proton-password-here",
        "PROTON_USERNAME": "your-proton-username-here",
        "PROTON_IMAP_PORT": "your-proton-imap-port-here",
        "PROTON_SMTP_PORT": "your-proton-smtp-port-here",
        "PROTON_BRIDGE_HOST": "your-proton-bridge-host-here"
      },
      "args": [
        "-y",
        "@alexendros/proton-mail-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Proton Suite Agent

Propósito de este documento

  • Objetivos: Orientar el pulso del repo, el quickstart y el enrutado a los documentos canónicos.
  • Estructura: Ficha → pulso → mapa de lectura → instalación, tools, agente, calidad.
  • Contenido a integrar según contexto: Stack TypeScript/MCP, frontera Bridge, dry-run por defecto, Makefile fachada.

Abrir cuando: Orientación, pulso y enrutado. Aprobado: 15 de agosto de 2026 Audiencia: Agente, Dirección, Usuarios Autoridad: Lectura Clase: Obligatorio Días para revisión: 14 En repo: Sí Estado: Vigente Orden: 1 Propósito: Punto de entrada: pulso, quickstart y qué leer después. Reforma: Operativa Responsable: Alexendros Revisión: 29 de agosto de 2026 Rol: Entrada Ruta: ./README.md

CI CodeQL OpenSSF Scorecard Coverage License: AGPL-3.0 Node npm

Propósito

Punto de entrada de lectura. Te dice el pulso, cómo arrancar y qué documento abrir después. Lo no negociable vive en CONSTITUTION.md.


Estado en una mirada

Pulso: 24 de septiembre de 2026 · v1.4.0

Fase activa: Fase 1 (Pass / agente / DX) checklist cerrada · siguiente: Fase 2 (Calendar, bloqueada). Ver ROADMAP.md.

Métricas: 47 tools por defecto (50 con Calendar experimental) · 965 tests · cobertura ~98% (gate 95%).

CapaEstado
Mail (Bridge IMAP/SMTP)Operativo
Pass (pass / gopass)Operativo
Drive (proton-drive CLI)Operativo (ADR-006)
CalendarStub hasta CalDAV en Bridge (ADR-005)
Documentación canónicaSubfase 0 completada

MCP server multi-producto para Proton Suite: Mail, Pass, Drive y Calendar (stub). Un agente opera el buzón, gestiona contraseñas y sincroniza archivos — local, sin exfiltrar contenido E2E.

ModoDescripción
stdio (default)Sin exponer red. Ideal para agentes IA locales.
streamable HTTPBearer auth + origin allowlist. Docker / reverse proxy.

Qué leer a continuación

Si necesitasAbreAún no
Lo no negociableCONSTITUTION.mdROADMAP entero
Orden de trabajo y fasesROADMAP.mdCódigo
Implementar como agenteAGENTS.mdARCHITECTURE completo
Capas y flujosARCHITECTURE.mdCódigo
Threat modelSECURITY.md—
Contribuir / PRCONTRIBUTING.md—
Contrato de tools MCPdocs/api/mcp-tools.md—
Decisiones (por qué)docs/adr/—
Índice de guíasdocs/README.md—
Playbooks + promptsplaybooks/README.md—

Primera sesión: este README → AGENTS.md §§ TL;DR + ficha → fase activa en ROADMAP.md → ADR/ancla citada.


Quickstart

Prerrequisitos: Node ≥ 22, pnpm, Proton Mail Bridge en local, pass o gopass + gpg para contraseñas.

1. Instalar y compilar

git clone https://github.com/Soluciones-Alexendros/protonsuite-tools.git
cd protonsuite-tools
pnpm install && pnpm build && pnpm run smoke

2. Configurar variables de entorno

export PROTON_BRIDGE_USER=you@proton.me
export PROTON_BRIDGE_PASS=your-bridge-password
export PROTON_MAIL_FROM=you@proton.me

3. Conectar tu cliente MCP

{
  "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/password o el wrapper JIT en connectors/stdio-wrapper.sh.example para no dejar el bridge password en disco.

4. Organizar el buzón (dry-run)

AGENT_DRY_RUN=true pnpm exec protonsuite-agent organize
# o: npx -y @alexendros/protonsuite-agent organize

El agente analiza el inbox y presenta un plan sin aplicar cambios. Desactiva AGENT_DRY_RUN solo tras revisión.


Tools MCP

El inventario depende de qué productos estén habilitados: un producto apagado no registra ni anuncia sus herramientas.

ConfiguraciónTools
Por defecto (Mail + Drive)39
+ Pass y Calendar (PROTON_PASS_ENABLED=true, PROTON_CALENDAR_ENABLED=true)47
+ Calendar experimental (PROTON_CALENDAR_EXPERIMENTAL=true)50
Todos los productos apagados5 (solo proton_suite_status y proton_ecosystem_*)

Lectura: response_format: "markdown" | "json".

ProductoToolsResumen
Mail14List, search, read, send, reply, forward, flag, move, delete, attachments
Pass4+List, get (sin valores), generate, health; audit vía agente
Drive8+Status, list, download, upload, share, audit, organize
Calendarstub{available: false} hasta CalDAV vía Bridge (ADR-005)
Suite / Bridge / Ecosystem / AgentrestoEstado unificado, Bridge, binarios, plan de agente

Contrato generado: docs/api/mcp-tools.md. Guía: docs/agent-quickstart.md.

Escribir requiere tu aprobación

Leer no pide nada. Escribir, borrar o tocar credenciales no se ejecuta: el servidor deja una solicitud y te la enseña.

protonsuite-agent pending          # qué espera aprobación, con los campos sensibles tachados
protonsuite-agent approve <id>     # lo autorizas
protonsuite-agent reject <id>      # lo deniegas

Después de aprobar, repite exactamente la misma llamada. Si cambias un destinatario o una letra del cuerpo, la aprobación ya no vale y habrá que aprobar otra vez.

Aprobar solo se puede desde tu terminal: no hay forma de hacerlo por MCP ni pidiéndoselo al modelo. Detalles en ADR-0009.


Agente

GoalPipeline
setupVerifica Bridge (IMAP + SMTP)
organizeClasifica inbox, carpetas/etiquetas, amenazas
monitor / alertSolo lectura — alertas
pass-auditFortaleza, duplicados y plan de rotación. Solo lectura: nunca escribe en el store.
suite-statusReporte cross-producto
discover / check-imapConectividad
Drive goalsdrive-audit, drive-organize, …

Drive CLI

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.


Despliegue

docker compose up -d

Ver docs/deployment-http-docker.md. Instalador: scripts/install.sh.

Interfaz local

SPA estática en apps/web (ADR-0007): landing y panel de estado. No forma parte del proceso MCP. pnpm run build la genera en apps/web/dist. Se abre sin Bridge; el panel usa el adaptador local «datos de ejemplo» y no pide credenciales. Calendar sigue en stub.


Documentación

DocumentoPara quiénQué cubre
CONSTITUTION.mdTodosNo negociables
ROADMAP.mdDirección / agenteFases y criterios de salida
AGENTS.mdAgentes IAContrato operativo
docs/human-quickstart.mdUsuariosInstalación paso a paso
docs/agent-quickstart.mdAgentes IATools y ejemplos
docs/bridge-core.mdOperadoresBridge headless
docs/deployment-http-docker.mdDevOpsDocker, auth, Pass en compose
docs/local-stdio-secrets.mdOperadoresWrapper JIT
docs/alerting.mdOperadoresWebhook, ntfy, logs
docs/drive-audit.mdOperadoresDrive CLI
ARCHITECTURE.mdDesarrolladoresCapas y flujos
SECURITY.mdAuditoresThreat model
CONTRIBUTING.mdContribuidoresPRs, pnpm, tests
SUPPORT.mdUsuariosCanales de ayuda
CODE_OF_CONDUCT.mdComunidadConducta
docs/Todosarchitecture / guides / runbooks
playbooks/OperadoresWorkflows + prompts

Calidad

Fachada canónica (Makefile): make lint, make test, make smoke, make validate.

make validate        # lint + typecheck + test + build + smoke
pnpm run typecheck   # TypeScript strict
pnpm test            # Vitest (953+)
pnpm run coverage    # Coverage v8 — gate 95%, objetivo ≥98%
pnpm run build       # tsc → dist/ y SPA apps/web (tokens, contraste, vite)
pnpm run smoke       # stdio initialize + tools/list
pnpm run knip        # Unused deps/exports
pnpm docs:check      # mcp-tools.md en sync

Seguridad (resumen)

  • Bearer timing-safe, origin allowlist, rate-limit 120/min/token.
  • HTTP per-session; idle eviction 30 min.
  • Pass nunca expone valores — solo {found: true}.
  • Dry-run por defecto en el agente (CONSTITUTION.md §4).

Progreso de cobertura

FechaStatementsBranchesTestsNotas
Ago 2026~98%~95%953Subfase 0 + Fase 1
Jul 202698.07%93.63%864Branch hunt
Jun 202661.7%—258Base

Conteo canónico: pnpm test 2>&1 | grep -E 'Test Files|Tests'.

Licencia

AGPL-3.0 — Copyright 2026 Alejandro Domingo Agustí (Alexendros). Sin afiliación a Proton AG.

Ver NOTICE.md para dependencias.

Reviews

No reviews yet

Be the first to review this server!