Enpass MCP Server

MCP server for Enpass vaults: entries, passwords and TOTP/2FA codes, keychain-backed.

Local serverstdio

What is the Enpass MCP server?

If you already use Enpass, the enpass mcp server is the piece that lets your assistant work with it directly. MCP server for Enpass vaults: entries, passwords and TOTP/2FA codes, keychain-backed.

What the server does

Runs locally over stdio. Your Enpass vault never leaves your machine, and your master password never passes through the model: it is stored in your operating system's keychain and read directly by the server.

  • Master passwords live in the OS keychain — (macOS Keychain, Windows Credential
  • The vault stays local. — The server reads the encrypted vault.enpassdb file
  • Reads are explicit. — Listing entries never returns passwords. Secrets are only
  • Read-only unless you say otherwise. — Out of the box the server cannot change

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • list_vaults — List registered vaults, whether their file exists, whether a password is stored, and whether they are unlocked
  • unlock_vault — Unlock a vault using the master password from the OS keychain. Takes only a vault name, never a password
  • lock_vault — Lock a vault and clear its derived key from memory
  • list_items — List entries (title, username, URL). Never returns passwords. Supports query, category, folder, limit
  • get_item — Return a full entry including all field values (password, TOTP, etc.) and its attachment list
  • get_password — Return the password and, if present, the current TOTP code of an entry
  • get_otp — Generate the current TOTP / 2FA one-time code for an entry, with seconds until it rotates
  • list_attachments — List an entry's file attachments (name, size, MIME)
  • export_attachment — Decrypt an attachment; writes it to disk and returns the path (or base64 inline for small files)
  • sync_status — List the vaults that use Enpass folder sync and whether the copy in the sync folder is newer
  • create_item — Create an entry, including custom fields; sensitive values are encrypted the way Enpass does it
  • delete_item — Delete an entry, or move it to the trash, leaving the tombstone Enpass uses so the deletion syncs

Installation

npm on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.

Credentials and setup notes

  • Node.js 18 or newer - An Enpass 6 / 7 / 8 vault (vault.enpassdb, SQLCipher format) - On Linux: a Secret Service provider (GNOME Keyring or KWallet) for password storage Native dependencies (better-sqlite3-multiple-ciphers, @napi-rs/keyring) ship prebuilt binaries for common platforms, so no compiler is required in the normal case.

Where it fits

Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Enpass's toolset — list_vaults, unlock_vault, lock_vault and 10 more — is a fair guide to whether it matches your workflow. It is maintained by bitterdev; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 13 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Enpass.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
list_vaultsList registered vaults, whether their file exists, whether a password is stored, and whether they are unlocked.
unlock_vaultUnlock a vault using the master password from the OS keychain. Takes only a vault name, never a password.
lock_vaultLock a vault and clear its derived key from memory.
list_itemsList entries (title, username, URL). Never returns passwords. Supports query, category, folder, limit.
get_itemReturn a full entry including all field values (password, TOTP, etc.) and its attachment list.
get_passwordReturn the password and, if present, the current TOTP code of an entry.
get_otpGenerate the current TOTP / 2FA one-time code for an entry, with seconds until it rotates.
list_attachmentsList an entry's file attachments (name, size, MIME).
export_attachmentDecrypt an attachment; writes it to disk and returns the path (or base64 inline for small files).
sync_statusList the vaults that use Enpass folder sync and whether the copy in the sync folder is newer.
create_itemCreate an entry, including custom fields; sensitive values are encrypted the way Enpass does it.
delete_itemDelete an entry, or move it to the trash, leaving the tombstone Enpass uses so the deletion syncs.
sync_pullTake in a newer copy from the sync folder, after backing up the local vault.

How to install the Enpass MCP server

{
  "mcpServers": {
    "enpass": {
      "command": "npx",
      "args": ["-y", "npm"]
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

  • Node.js 18 or newer - An Enpass 6 / 7 / 8 vault (vault.enpassdb, SQLCipher format) - On Linux: a Secret Service provider (GNOME Keyring or KWallet) for password storage Native dependencies (better-sqlite3-multiple-ciphers, @napi-rs/keyring) ship prebuilt binaries for common platforms, so no compiler is required in the normal case.

Example prompts to try

  • Use Enpass to list vaults.
  • Use Enpass to unlock vault.
  • Use Enpass to lock vault.

Frequently asked questions

It connects Enpass to MCP-compatible AI assistants such as Claude and Cursor, exposing 13 tools (list_vaults, unlock_vault, lock_vault, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Enpass directly.