@aiwerk/mcp-server-vault
@aiwerk/mcp-server-vault
Bitwarden / Vaultwarden MCP server — BYOK vault access for AI agents.
Exposes 6 tools over stdio. Secret values are never sent in plaintext through list_vault_items or get_vault_metadata — secrets are delivered only through Bitwarden Sends (E2E-encrypted one-time URLs).
Install
npx -y @aiwerk/mcp-server-vaultConfigure
Variable | Required | Default | Description |
| ✅ | — | Base URL of your Bitwarden/Vaultwarden instance (no trailing slash), e.g. |
| ✅ | — | Personal API key |
| ✅ | — | Personal API key |
| ✅ | — | Vault master password (used for E2E decryption key derivation) |
| — |
| Name of the collection visible to agents |
| — |
| Name of the collection for agent-created secrets |
| — |
| HTTP timeout in milliseconds |
| — |
| Set |
| — |
| Set |
Auth — Personal API Key
Log in to your Bitwarden/Vaultwarden instance
Go to Account Settings → Security → Keys → API Key
Note the
client_idandclient_secretReference: https://bitwarden.com/help/personal-api-key/
Vault Setup
Before using this server, create two collections in your Vaultwarden organization:
mcp-exposed— items you want to expose to agents (your existing secrets: API keys, passwords, etc.)mcp-agent-created— items written by agents viasave_generated_secret
Add items to mcp-exposed via the Vaultwarden web UI.
Custom fields
Optionally add these custom fields to items in mcp-exposed for fine-grained control:
Field | Type | Purpose |
| text | Comma-separated glob list of tool/server names allowed to use this item (e.g. |
| text |
|
| text |
|
Tools
Tool | Description |
| List items from |
| Get full metadata for a named item (name, type, username, URIs, custom fields, expiry). No password/secret. |
| Reveal a secret via a Bitwarden Send (E2E-encrypted one-time URL with configurable TTL and max-views). |
| Get the current TOTP code for a login item, including remaining seconds in the period. |
| Save an agent-generated secret (password / api-key) into |
| Save sign-in credentials (username + password + optional URL + TOTP seed) into |
| Check connectivity: auth status, API version, collection visibility, item counts, latency. |
Security model
Opt-in exposure: only items in
mcp-exposedormcp-agent-createdare accessible; all other items returnitem_not_visibleRead-only existing items: no
update_*,delete_*, orchange_*tools existSecret value delivery via Send only:
list_vault_itemsandget_vault_metadatanever return passwords, TOTP seeds, or api-key valuesE2E encryption preserved: the server decrypts vault data locally (master password stays in env vars, never sent over the wire)
Constrained agent writes:
save_generated_secretandsave_login_itemare CREATE-only into the dedicatedmcp-agent-createdcollection
Note: Actual
{{vault:NAME}}placeholder resolution in tool call arguments happens in the AIWerk hosted bridge, not in this server. The bridge's resolution uses the same BYOC credentials. See the bridge-patch companion document for details.
License
MIT — AIWerk kontakt@aiwerk.ch
Homepage: https://aiwerkmcp.com