Enpass MCP server
MCP server for Enpass vaults: entries, passwords and TOTP/2FA codes, keychain-backed.
1 stars29 downloads/wk
Reviews
Write oneNobody has reviewed Enpass yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Enpass tools (10, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
create_itemwrite actionCreates a new entry in an unlocked vault. The vault file is backed up automatically before writing. Enpass picks up the new entry on its next sync.
export_attachmentDecrypts a file attachment from an unlocked vault. By default it writes the file to disk and returns the path (works for any size). Set inline=true to get small files as base64 instead.
get_itemReturns a full entry from an unlocked vault including sensitive field values (password, TOTP, etc.). Use this when the user explicitly wants the credentials.
get_otpGenerates the current TOTP / two-factor one-time code for an entry that stores an OTP secret. Returns the code and how many seconds until it rotates, so it can be entered for 2FA.
get_passwordReturns just the password (and TOTP if present) of an entry in an unlocked vault.
list_attachmentsLists the file attachments of an entry in an unlocked vault (name, size, MIME). Use export_attachment to get the file itself.
list_itemsLists entries in an unlocked vault. Returns titles, usernames and URLs but no passwords or other sensitive values. Supports optional search, category and folder filters.
list_vaultsLists the Enpass vaults registered on this machine, whether their file exists, whether a master password is stored in the OS keychain, and whether they are currently unlocked in this session.
lock_vaultLocks a vault and clears its derived key from memory for this session.
unlock_vaultUnlocks a registered vault using the master password stored in the OS keychain. The password is never passed as an argument and never reaches the model. Must be called before listing or reading entries.
Public scan report
scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it
- Code scan7 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 60 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Enpass compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 88/100
- higher than 75% of 48,255 servers
- Tools
- 10
- the typical server has 7
- Tools that change things
- 10%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 28,688 servers
- Downloads a week
- 29
- more than 16% of 12,191 servers with a package
What its tools let an agent do: 9 read · 1 create
Install Enpass in Claude Code, Cursor or VS Code
Runs npx -y enpass-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add enpass-mcp -- npx -y enpass-mcp
What the publisher says
From the Enpass repository's README, as published. We do not edit it. Read it on GitHub
enpass-mcp
A Model Context Protocol (MCP) server that gives an AI assistant controlled, local access to your Enpass password vaults: unlock a vault, list vaults, and list and read entries. Creating and deleting entries is possible too, but switched off until you enable it.
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.
Why this is safe
Manager, Linux Secret Service), not in config files, not in environment variables, and never as a tool argument. The unlockvault tool deliberately takes no password parameter**, so the password can never end up in the model's context or in logs.
- Master passwords live in the OS keychain (macOS Keychain, Windows Credential
directly with SQLCipher. Nothing is uploaded anywhere.
- The vault stays local. The server reads the encrypted vault.enpassdb file
returned by getitem / getpassword, when you explicitly ask for them.
- Reads are explicit. Listing entries never returns passwords. Secrets are only
anything: the writing tools are not even advertised. Set ENPASSMCPALLOW_WRITES=1 to enable them (see Writing).
- Read-only unless you say otherwise. Out of the box the server cannot change
Entry passwords are, by design, returned to the assistant when you ask for them, so only connect this to an assistant and vaults you trust.
Requirements
- 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.
Install
git clone https://github.com/bitterdev/enpass-mcp.git
cd enpass-mcp
npm install
npm link # optional: makes the `enpass-mcp` command available globallyRegister your vaults (do this once, in a terminal)
This is the secure step that keeps the master password away from the model. You run it yourself; the password is typed into a hidden prompt and stored in the OS keychain.
# Find your vault files automatically
enpass-mcp discover
# Register a vault (you will be prompted for the master password)
enpass-mcp add-vault personal --path "/Users/you/Documents/Enpass/Vaults/primary/vault.enpassdb"
enpass-mcp add-vault work --path "/path/to/work/vault.enpassdb"
# With a keyfile
enpass-mcp add-vault personal --path "/path/vault.enpassdb" --keyfile "/path/vault.keyfile"
# Manage
enpass-mcp list-vaults
enpass-mcp test-unlock personal
enpass-mcp remove-vault workadd-vault verifies the password can actually unlock the vault before saving it.
The vault file is usually found at:
If you sync via Dropbox / OneDrive / WebDAV, point --path at the synced copy.
Connect it to your assistant
The server speaks MCP over stdio. Point your MCP client at enpass-mcp serve.
Claude Desktop (claudedesktopconfig.json):
{
"mcpServers": {
"enpass": {
"command": "enpass-mcp",
"args": ["serve"]
}
}
}If you did not run npm link, use the absolute path instead:
{
"mcpServers": {
"enpass": {
"command": "node",
"args": ["/absolute/path/to/enpass-mcp/src/cli.js", "serve"]
}
}
}Claude Code:
claude mcp add enpass -- enpass-mcp serveTools
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Enpass: common questions
- Is Enpass MCP server safe?
- Yes, by our scan: it is graded A (88/100). Read the Enpass safety report
- How do I install Enpass?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Enpass need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Enpass maintained?
- The last commit was 100 days ago (2026-07-27). The latest release is v0.1.0.
- How does Enpass compare with other MCP servers?
- safety score 88/100 (higher than 75% of 48,255 servers); tools 10 (the typical server has 7); tools that change things 10% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.