VeraCrypt MCP
Monta y desmonta contenedores de VeraCrypt para que el asistente pueda trabajar con los archivos descifrados, con la contraseña enviada por stdin en lugar de por la línea de comandos.
Documentación
veracrypt-mcp
Servidor MCP (Model Context Protocol) para montar y desmontar contenedores VeraCrypt, con un enfoque de seguridad primero en el manejo de contraseñas.
Una vez que un contenedor está montado, tu cliente MCP (por ejemplo, Claude Code) puede leer y editar los archivos dentro de él con sus herramientas de archivos normales. Di "monta mi bóveda", trabaja en los archivos y luego "desmonta mi bóveda".
mcp-name: io.github.bitterdev/veracrypt-mcp
Características
- mount_container: montar un contenedor VeraCrypt (punto de montaje opcional, PIM, solo lectura)
- unmount_container: desmontar por ruta del contenedor o punto de montaje
- list_mounted_containers: mostrar todos los volúmenes VeraCrypt montados
- Bóveda predeterminada: configura tu contenedor una vez mediante variables de entorno; "monta mi bóveda" funciona entonces sin argumentos
Modelo de seguridad
La contraseña del volumen nunca se pasa como argumento de línea de comandos. Los argumentos de línea de comandos son visibles para todos los procesos de la máquina (ps aux), por lo que este servidor siempre envía la contraseña a VeraCrypt a través de stdin usando la opción oficial --stdin de VeraCrypt.
Hay dos fuentes de contraseña:
1. Llavero del sistema operativo (recomendado)
Guarda la contraseña una vez en el llavero del sistema operativo. La herramienta MCP recibe entonces solo un nombre de cuenta del llavero, por lo que la contraseña nunca entra en el contexto del LLM, los registros de chat ni las transcripciones.
macOS (Llavero):
security add-generic-password -s veracrypt-mcp -a my-container -w
# you will be prompted for the password interactively
Linux (libsecret / GNOME Keyring, requiere libsecret-tools):
secret-tool store --label="veracrypt-mcp my-container" service veracrypt-mcp account my-container
Luego monta con keychain_account: "my-container".
2. Contraseña directa (alternativa)
Puedes pasar password directamente a la herramienta. Aún se envía a través de stdin a VeraCrypt (nunca visible en la lista de procesos), pero pasa a través de la conversación del LLM y puede almacenarse en los registros de chat. Usa la fuente del llavero siempre que sea posible.
Notas adicionales:
- Las contraseñas nunca se registran ni se incluyen en los resultados de las herramientas ni en los mensajes de error.
- Python no puede borrar cadenas de forma segura de la memoria; para máxima seguridad, usa la fuente del llavero y una contraseña de contenedor dedicada.
Requisitos
- Python >= 3.10
- VeraCrypt con el binario de línea de comandos disponible (
veracrypten PATH, el paquete de aplicación de macOS, o estableceVERACRYPT_PATH) - macOS: macFUSE (requerido por VeraCrypt para montar)
- Fuente de llavero Linux:
libsecret-tools(secret-tool)
Instalación
pip install git+https://github.com/bitterdev/veracrypt-mcp.git
O desde un clon local:
git clone https://github.com/bitterdev/veracrypt-mcp.git
cd veracrypt-mcp
pip install .
Configuración
Claude Code
claude mcp add veracrypt -- veracrypt-mcp
Con una bóveda predeterminada (recomendado):
claude mcp add veracrypt \
-e VERACRYPT_MCP_CONTAINER="/path/to/vault.hc" \
-e VERACRYPT_MCP_KEYCHAIN_ACCOUNT="my-vault" \
-- veracrypt-mcp
Claude Desktop / cliente MCP genérico
{
"mcpServers": {
"veracrypt": {
"command": "veracrypt-mcp",
"env": {
"VERACRYPT_MCP_CONTAINER": "/path/to/vault.hc",
"VERACRYPT_MCP_KEYCHAIN_ACCOUNT": "my-vault"
}
}
}
}
El servidor se ejecuta a través de stdio.
Ejemplos de uso
Con una bóveda predeterminada configurada:
Monta mi bóveda
Desmonta mi bóveda
Explícito, sin valores predeterminados:
Monta el contenedor /Users/me/secret.hc usando la cuenta de llavero "my-container"
Montar solo lectura en un punto de montaje específico:
Monta /Users/me/secret.hc en modo solo lectura en ~/mnt/secret, cuenta de llavero "my-container"
Variables de entorno
| Variable | Descripción |
|---|---|
VERACRYPT_MCP_CONTAINER | Ruta de contenedor predeterminada utilizada cuando no se proporciona container_path |
VERACRYPT_MCP_KEYCHAIN_ACCOUNT | Cuenta de llavero predeterminada utilizada cuando no se proporciona una fuente de contraseña |
VERACRYPT_MCP_MOUNT_POINT | Directorio de montaje predeterminado (de lo contrario, VeraCrypt lo selecciona automáticamente) |
VERACRYPT_PATH | Ruta absoluta al binario de VeraCrypt si no está en PATH |
Licencia
MIT, consulta LICENSE.
Autor
Fabian Bitter (fabian@bitter.de)