Install
$ agentstack add mcp-tuaris-keepassxc-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
KeePassXC MCP Server
MCP (Model Context Protocol) server for KeePassXC password manager. Uses the same browser integration protocol as the KeePassXC Firefox/Chrome extension — communicating over Unix domain sockets or TCP with NaCl box encryption.
Features
- get_logins — Look up credentials by URL
- get_totp — Retrieve TOTP codes for entries
- set_login — Save or update credentials
- generate_password — Generate a password via KeePassXC's generator
- lock_database — Lock the database remotely
- getdatabasegroups — List the group/folder tree
- getdatabasehash — Get database hash (detect changes)
- associate — Manually (re-)associate with the database
Prerequisites
- KeePassXC running with Browser Integration enabled:
- Settings → Browser Integration → Enable browser integration
- The database must be unlocked for most operations
- Python ≥ 3.10
Setup
Install
cd keepassxc-mcp
pip install .
Or for development:
pip install -e .
Local (KeePassXC on same machine)
The server auto-detects the Unix socket path:
- Linux:
$XDG_RUNTIME_DIR/kpxc_serveror/run/user//kpxc_server - macOS:
$TMPDIR/kpxc_serveror/tmp/kpxc_server
Remote (KeePassXC on a different machine)
When KeePassXC runs on a host and the MCP server runs in a VM/container, forward the socket over TCP.
On the host (where KeePassXC runs):
macOS:
socat TCP-LISTEN:19455,reuseaddr,fork UNIX-CONNECT:${TMPDIR}kpxc_server
Linux:
socat TCP-LISTEN:19455,reuseaddr,fork UNIX-CONNECT:${XDG_RUNTIME_DIR}/kpxc_server
Windows (native bridge — no dependencies):
A native C bridge is included in bridge/kpxc-bridge.c. It runs as a system tray application, forwarding TCP connections to the KeePassXC named pipe (\\.\pipe\org.keepassxc.KeePassXC.BrowserServer).
Install via the Windows installer (recommended):
Download kpxc-bridge-VERSION-setup.exe from Releases. The installer:
- Installs the bridge to
Program Files\KeePassXC Bridge - Adds a Start Menu shortcut
- Registers the bridge to start on login (HKCU Run key)
- Creates a Windows Firewall rule for the configured TCP port
- Starts the tray app immediately
Or run the standalone binary:
Download kpxc-bridge.exe from Releases.
kpxc-bridge.exe Run as tray app (default)
kpxc-bridge.exe -console Run in console mode (Ctrl+C to stop)
kpxc-bridge.exe -port 19455 Set TCP listen port (default: 19455)
kpxc-bridge.exe -bind 192.168.0.1 Bind to specific interface
kpxc-bridge.exe install Add to user startup (login)
kpxc-bridge.exe uninstall Remove from user startup
The tray icon indicates connection status (idle vs active) and logs to kpxc-bridge.log next to the executable.
Build from source (cross-compile from any OS with Zig):
zig cc -O2 -target x86_64-windows-gnu bridge/kpxc-bridge.c bridge/resources/kpxc-bridge.rc \
-lws2_32 -ladvapi32 -lshell32 -luser32 -Wl,--subsystem,windows -o kpxc-bridge.exe
Then configure the MCP server to connect via TCP (see environment variables below).
Windsurf Configuration
Add to ~/.codeium/windsurf/mcp_config.json:
Local socket
{
"mcpServers": {
"keepassxc": {
"command": "keepassxc-mcp",
"env": {}
}
}
}
Remote via TCP
{
"mcpServers": {
"keepassxc": {
"command": "keepassxc-mcp",
"env": {
"KEEPASSXC_HOST": "192.168.0.1",
"KEEPASSXC_PORT": "19455"
}
}
}
}
Environment Variables
| Variable | Default | Description | |---|---|---| | KEEPASSXC_HOST | (unset) | TCP host (enables TCP mode instead of Unix socket) | | KEEPASSXC_PORT | (unset) | TCP port | | KEEPASSXC_SOCKET | auto-detected | Unix domain socket path | | KEEPASSXC_IDENTITY | ~/.local/share/keepassxc-mcp/identity.json | Path to persistent association identity | | KEEPASSXC_TIMEOUT | 30000 | Response timeout in milliseconds |
First Use
On the first tool call, the server will:
- Connect to KeePassXC (socket or TCP)
- Exchange ephemeral session keys
- Request association — a dialog will appear in KeePassXC asking you to confirm
- Store the association identity for future sessions
Subsequent connections reuse the stored identity (validated via test-associate).
Security Notes
- All messages (except the initial key exchange) are encrypted with NaCl box (X25519 + XSalsa20-Poly1305)
- The identity file at
~/.local/share/keepassxc-mcp/identity.jsonis created with mode0600 - Session keys are ephemeral — regenerated on every connection
- The identity key is equivalent to what the browser extension stores; protect it accordingly
- If using TCP forwarding, the NaCl encryption protects the payload, but consider using SSH tunneling for defense in depth
Donations
If you find this project useful, consider a small donation:
| Currency | Address | |---|---| | BTC | 1B6eyXVRPxdEitW5vWrUnzzXUy6o38P9wN | | LTC | MCrnhTAHA3n6X8jUJQj9hed5CT585sJExQ | | PEPE (Ᵽ) | Pk3WZshXxi656RNNoVuZTCERVhhv4pyPJS | | DOGE | DQgDGexy5tJ4StbMdyGwgfyxhcAGTRrPVB |
Known Limitations
The keepassxc-browser protocol has no search-by-title, list-all-entries, or filter-by-group action. get_logins requires a URL and only returns entries whose URL field matches. Entries without a URL, or with a URL you don't know, cannot be discovered programmatically.
This is a protocol-level constraint — the browser integration was designed for browser extensions that always operate in the context of a URL. keepassxc-cli supports richer queries but requires direct access to the database file, which is incompatible with remote/TCP deployments.
If you need to look up an entry, you must know (or guess) the URL stored on it.
Protocol Reference
This server implements the keepassxc-browser protocol.
License
BSD 2-Clause. See [LICENSE](LICENSE).
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: tuaris
- Source: tuaris/keepassxc-mcp
- License: BSD-2-Clause
- Homepage: https://pacyworld.dev/daniel/keepassxc-mcp
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.