# veracrypt-mcp [Health: Active]

**Category:** 🔑 Cryptography  
**Repository:** https://github.com/bitterdev/veracrypt-mcp  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/veracrypt-mcp

## Description
MCP server to mount and unmount VeraCrypt containers with secure stdin password handling.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "veracrypt-mcp": {
    "command": "uvx",
    "args": ["veracrypt-mcp"],
    "env": {
      "VERACRYPT_MCP_CONTAINER": "",
      "VERACRYPT_MCP_KEYCHAIN_ACCOUNT": "",
      "VERACRYPT_MCP_MOUNT_POINT": "",
      "VERACRYPT_PATH": ""
    }
  }
}
```

**Requires environment variables:** `VERACRYPT_MCP_CONTAINER`, `VERACRYPT_MCP_KEYCHAIN_ACCOUNT`, `VERACRYPT_MCP_MOUNT_POINT`, `VERACRYPT_PATH` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What veracrypt-mcp does

The veracrypt-mcp MCP server lets an MCP client manage VeraCrypt containers without requiring a separate shell workflow. It provides three operations:

- `mount_container` mounts a container, with optional mount point, PIM, and read-only settings.
- `unmount_container` dismounts a volume using either its container path or mount point.
- `list_mounted_containers` reports mounted VeraCrypt volumes.

After a container is mounted, the client can use its normal file tools to read and edit files at the mounted location. A default container can be configured so a request such as “mount my vault” does not need a path each time.

The server is intended for local use with VeraCrypt containers. It does not provide file operations of its own; file access comes from the MCP client after the volume is mounted.

## How it works

The server runs as a stdio MCP process and calls the VeraCrypt command-line program. The executable must be available as `veracrypt`, provided by the macOS application bundle, or specified with `VERACRYPT_PATH`.

Password handling is designed to avoid exposing secrets in process arguments. The server passes the password to VeraCrypt through stdin using VeraCrypt’s `--stdin` option. Passwords are not written to logs or returned in tool results and error messages.

The preferred source is an operating-system keyring. A tool call supplies a keyring account name, rather than the password itself, so the secret does not enter the model context, chat transcript, or tool input. Direct passwords are also supported, but they can remain in conversation history even though they are not visible in the process list. Python strings cannot be securely wiped from memory, so the keyring method is the safer choice.

## Setup and configuration

Install with `pip install git+https://github.com/bitterdev/veracrypt-mcp.git`, or install from a local clone with `pip install .`. Python 3.10 or newer is required.

On macOS, VeraCrypt mounting also requires macFUSE. Linux users who choose the keyring method need `libsecret-tools` and its `secret-tool` command.

The server accepts these environment variables:

- `VERACRYPT_MCP_CONTAINER`: default container path.
- `VERACRYPT_MCP_KEYCHAIN_ACCOUNT`: default keyring account.
- `VERACRYPT_MCP_MOUNT_POINT`: default mount directory.
- `VERACRYPT_PATH`: VeraCrypt executable path when it is not discoverable automatically.

Claude Code can register the executable with `claude mcp add`. Generic MCP clients can launch `veracrypt-mcp` as a stdio server and pass the same environment settings.

## Tools and capabilities

The veracrypt-mcp MCP server supports both configured and explicit workflows. With defaults set, the client can mount or unmount the configured vault without repeating its path or keyring account. Without defaults, a mount request can identify the container and keyring account directly.

Mounting supports a custom mount directory, a PIM value, and read-only mode. Dismounting can target either the original container path or the mount point. The listing operation is useful for checking which VeraCrypt volumes are currently mounted before or after a task.

## Limitations and notes

VeraCrypt must be installed separately, and its command-line binary must be available to the server. macOS mounting depends on macFUSE. The server does not replace the MCP client’s ordinary file tools, so file editing becomes available only after a successful mount.

Direct password input is a fallback rather than the preferred configuration because the value passes through the LLM conversation. Use an OS keyring account where possible, especially for containers accessed through chat-driven workflows. The material does not describe remote transport, automatic volume creation, or secure memory erasure beyond the stated stdin handling and keyring guidance.

_Full upstream README: https://allmcps.com/mcp/veracrypt-mcp/readme_

