Common errors and their fixes, ordered by frequency.
#Troubleshooting
Common issues, in order of how often they hit people.
#"command not found: mcpvault"
The npm global bin directory isn't on your PATH.
macOS / Linux: run npm config get prefix. Add <prefix>/bin to your PATH in ~/.zshrc or ~/.bashrc:
bashexport PATH="$(npm config get prefix)/bin:$PATH"
Windows (PowerShell): run npm config get prefix. Add that path (no /bin suffix on Windows) to your user PATH:
powershell[Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$(npm config get prefix)", "User")
Then open a fresh terminal.
#Vault prompts for password every command
The OS keyring isn't accessible. mcpvault falls back to a single-session prompt.
macOS: should "just work". If it doesn't, check that the binary is signed (codesign -dv $(which mcpvault)). Unsigned npm-installed binaries can't write to Keychain on some macOS versions; reinstall via npm install -g @elraian/mcpvault --force.
Linux: install libsecret and either gnome-keyring or kwallet. On headless servers, set MCPVAULT_KEYRING=none to skip the cache and re-prompt every time on purpose.
Windows: should "just work" via DPAPI. If it doesn't, you're likely on a domain-joined account with restrictive policy; ask IT or use MCPVAULT_KEYRING=none.
#Client doesn't see mcpvault tools after mcpvault setup
The client wasn't fully restarted, or it's looking in a different config file than mcpvault wrote to.
- 1Quit the client completely — Cmd+Q on macOS, "Quit" from the tray icon on Windows. "Reload window" is not enough for most clients.
- 2Run
mcpvault doctor --client <name>to confirm the file mcpvault wrote is the one your client reads. - 3Check the client's MCP / "tools" panel for the actual error — most clients log "failed to spawn mcpvault" if the binary isn't on PATH.
If you're on Windows and the client is launched from a GUI shortcut, the client may not inherit the PATH from your shell. Reboot once after install, or reference mcpvault by absolute path in the config ("command": "C:\\Users\\you\\AppData\\Roaming\\npm\\mcpvault.cmd").
#"wrong token format" when adding an account
mcpvault validates tokens live against the upstream API. Common causes:
- Supabase: must be a Personal Access Token (
sbp_...), NOT the project's anon or service-role key. - GitHub: fine-grained PATs (
github_pat_...) and classic tokens (ghp_...) both work, but the token must haverepoandread:orgscopes at minimum. - Vercel: any token works, but if you select the wrong team scope, lookups will be empty.
- Stripe: must be a Restricted Key (
rk_live_...orrk_test_...). Secret keys (sk_...) are rejected by the wrapper.
See Services for the exact token URL and scopes per provider.
#"permission denied" on ~/.mcpvault (Linux / WSL)
The directory was created by sudo at some point. Reclaim ownership:
bashsudo chown -R "$USER:$USER" ~/.mcpvault chmod 700 ~/.mcpvault chmod 600 ~/.mcpvault/vault.enc
Never run mcpvault with sudo. The vault belongs to your user, not root.
#Vault locked after reboot
By design, the OS keyring sometimes evicts the cached key — for example, after a Windows feature update or a macOS keychain reset. Run mcpvault unlock to re-prompt for the master password and re-cache the key.
If this happens every boot, your OS isn't persisting keyring entries across sessions. On Linux, ensure gnome-keyring-daemon is autostarted. On macOS, check that you're logging into the same account that created the entry.
#Tools work, but agent picks the wrong account
Two causes:
- 1Active label isn't what you think. Run
mcpvault activeto see what's currently selected per service. - 2Description is too generic. Fuzzy search matches against the description field. If three accounts have description "production", the agent will guess. Make descriptions specific: "Acme Corp prod (us-east-1)" beats "production".
#Resetting everything
Delete the vault and start over (you will lose all stored credentials):
bashmcpvault lock rm -rf ~/.mcpvault mcpvault init
The OS keyring entry is named mcpvault.session; remove it manually if you want a truly clean slate.
#Still stuck
Open an issue with the output of mcpvault doctor --verbose: github.com/Elraian/mcpvault/issues.