correo-despacho-mcp
README.md
# correo-despacho-mcp
MCP de correo **IMAP/SMTP** para el despacho **De la Torre** (`abogadosdelatorre.com`). Permite a Claude leer, buscar, organizar y (opcionalmente) enviar email. Multi-cuenta, con **candados** de seguridad. Mismo patrón que `dolibarr-despacho-mcp` y `centralita-vpbx-mcp`.
## Herramientas
### Lectura (siempre disponible)
| Tool | Qué hace |
|---|---|
| `mail_list_accounts` | Cuentas configuradas (sin contraseñas) |
| `mail_list_folders` | Carpetas/buzones de una cuenta |
| `mail_list_messages` | Lista mensajes de una carpeta (recientes primero, paginado) |
| `mail_search` | Busca por remitente/destinatario/asunto/texto/fechas |
| `mail_get_message` | Lee un mensaje completo + adjuntos |
| `mail_download_attachment` | Descarga un adjunto a disco |
| `mail_unread_overview` | "¿Qué hay nuevo?" en todas las cuentas |
### Escritura de buzón — candado `MAIL_ENABLE_WRITES`
| Tool | Qué hace |
|---|---|
| `mail_mark_read` / `mail_mark_unread` | Marca leído / no leído |
| `mail_flag` / `mail_unflag` | Destaca / quita destacado |
| `mail_move` | Mueve a otra carpeta |
| `mail_delete` | **Envía a la Papelera (reversible)** — nunca borra de forma permanente |
| `mail_create_draft` | Crea un borrador (no lo envía) |
### Envío — candado `MAIL_ENABLE_SEND`
| Tool | Qué hace |
|---|---|
| `mail_send` | Envía un correo nuevo |
| `mail_reply` | Responde a un mensaje (mantiene hilo) |
## Configuración (variables de entorno)
- `MAIL_ACCOUNTS` — JSON con las cuentas (inline), **o**
- `MAIL_CONFIG_PATH` — ruta a un `accounts.json` (recomendado, fuera del config).
- `MAIL_ENABLE_WRITES` — `true`/`false` (def. false).
- `MAIL_ENABLE_SEND` — `true`/`false` (def. false).
- `MAIL_ATTACHMENT_DIR` — carpeta donde guardar adjuntos descargados.
- `MAIL_TLS_STRICT` — `true` para validar el certificado TLS (def. false; cPanel compartido suele tener el cert del servidor, no del dominio).
- `MCP_TRANSPORT` — `stdio` (local, def.) o `http`.
Formato de cada cuenta en `accounts.json` (ver `accounts.example.json`):
```json
[
{ "name": "juridico", "email": "juridico@abogadosdelatorre.com",
"password": "…", "host": "abogadosdelatorre.com",
"imap_port": 993, "smtp_port": 465, "default": true }
]
```
`host` se usa para IMAP y SMTP; si se omite, se deriva del dominio del email. Puertos por defecto: IMAP 993 (SSL), SMTP 465 (SSL).
## Build y prueba
```bash
npm install
npm run build # compila a dist/
npm run smoke # arnés: arranca, lista tools y prueba mail_list_accounts
```
## Instalar en Claude Desktop
```bash
node add-to-claude.cjs # hace backup del config y registra "correo-despacho"
```
Luego reinicia Claude Desktop. Las credenciales se leen de `MAIL_CONFIG_PATH`.
## Seguridad
- **Borrado = Papelera**: `mail_delete` mueve a Trash; nunca hace expunge permanente.
- **Envío OFF por defecto**: enviar correos de un despacho es delicado; actívalo con `MAIL_ENABLE_SEND=true` cuando quieras.
- Contraseñas fuera del repo (`accounts.json` está en `.gitignore`).
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing