mcpField
P
proton-mail-mcp

proton-mail-mcp

Local
github.com/AlexendrosCommunication0Updated 4d ago

About proton-mail-mcp

proton-mail-mcp is an MCP server for operating Proton Mail, Pass, and Drive through local Bridge and CLI components; Calendar is currently a stub. It supports local stdio and authenticated HTTP, with approval required for write, delete, and credential operations.

Key features

  1. 01Read, search, send, and organize mail
  2. 02Manage Pass entries without exposing values
  3. 03List, transfer, and organize Drive files
  4. 04Dry-run agent workflows by default
  5. 05Require terminal approval for changes
  6. 06Offer stdio and authenticated HTTP transports

Use cases

  1. 01Review and organize a Proton Mail inbox
  2. 02Audit password strength and duplicates
  3. 03Inspect or organize Proton Drive files
  4. 04Deploy MCP access through an HTTP proxy

MCP support

The server exposes product-dependent tools for Proton Mail, Pass, Drive, and Calendar status to MCP clients. It supports stdio and streamable HTTP; changes require approval from the terminal.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"alexendros-proton-mail": {
"command": "npx",
"args": [
"-y",
"@alexendros/proton-mail-mcp"
],
"env": {
"PROTON_BRIDGE_HOST": "<PROTON_BRIDGE_HOST>",
"PROTON_IMAP_PORT": "<PROTON_IMAP_PORT>",
"PROTON_SMTP_PORT": "<PROTON_SMTP_PORT>",
"PROTON_USERNAME": "<PROTON_USERNAME>",
"PROTON_PASSWORD": "<PROTON_PASSWORD>"
}
}
}
}
Run commandnpx -y @alexendros/proton-mail-mcp
Environment variables to set
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_USERNAMEBridge username (your Proton Mail address).
PROTON_PASSWORDSecretBridge-generated app password (NOT your Proton account password).

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@alexendros/proton-mail-mcp0.1.2

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project 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 [email protected]
export PROTON_BRIDGE_PASS=your-bridge-password
export [email protected]
3. Conectar tu cliente MCP
{
  "mcpServers": {
    "protonsuite": {
      "command": "npx",
      "args": ["-y", "@alexendros/protonsuite-agent", "protonsuite-mcp"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "PROTON_BRIDGE_USER": "[email protected]",
        "PROTON_BRIDGE_PASS": "your-bridge-password",
        "PROTON_MAIL_FROM": "[email protected]",
        "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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.