@aiwerk/mcp-server-vault
Provides tools for interacting with a Bitwarden vault, including listing items, retrieving metadata, revealing secrets via Bitwarden Sends, getting TOTP codes, and saving generated secrets or login items.
Provides tools for interacting with a Vaultwarden vault, including listing items, retrieving metadata, revealing secrets via Bitwarden Sends, getting TOTP codes, and saving generated secrets or login items.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@aiwerk/mcp-server-vaultlist vault items"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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-vaultRelated MCP server: VaultBridge
Configure
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
Available Tools
7 toolsget_totp_codeARead-only
Get the current TOTP code for a vault login item with TOTP configured. Returns the 6-digit code, the remaining seconds in the current period, and the algorithm. Use the remaining_seconds field to decide whether to use the code immediately or wait for a fresh period.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact item name (case-sensitive) of a vault login item with TOTP configured. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful context about the return values and how to interpret remaining_seconds, but beyond that it mainly restates the read-only nature already captured by readOnlyHint=true. No hidden side effects, permissions, or rate limits are disclosed, so it adds limited extra value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core function and includes only actionable information. It is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with readOnlyHint and no output schema, the description adequately covers the return values and provides actionable guidance on using remaining_seconds. It lacks error handling details, but that is not critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the name parameter with details on exact, case-sensitive matching. The description reinforces this but does not add new meaning beyond the schema, aligning with the baseline for 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the current TOTP code for a vault login item with TOTP configured,' specifying the verb, resource, and condition. It also lists the return fields, distinguishing it from sibling tools like save_login_item or reveal_secret_via_send.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for vault login items with TOTP configured, and advises using remaining_seconds to decide when to use the code. However, it does not explicitly mention alternatives or when-not-to-use, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vault_metadataARead-only
Get full metadata for a named vault item. Returns name, type, username (for login items), URIs, custom fields, scope, expiry. Password, TOTP seed, and api-key values are NEVER returned — use reveal_secret_via_send or get_totp_code instead.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact item name (case-sensitive) as it appears in the vault. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations (readOnlyHint=true, openWorldHint=true) already indicating a safe read-only operation, the description adds valuable behavioral context: it enumerates the exact metadata fields returned and explicitly states that sensitive values (password, TOTP seed, api-key) are never included. This is a significant transparency addition beyond the annotations, with no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, front-loaded with the primary action and return list, followed by a clear exclusion and alternative. Every word earns its place, with zero redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully carries the burden of explaining return values and limitations. It comprehensively covers what is returned, what is never returned, and directs to appropriate sibling tools. For the tool's simplicity, this is complete and actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single 'name' parameter, including case-sensitivity and exact match semantics. The description does not add further parameter-level detail beyond referencing a 'named vault item,' so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get full metadata for a named vault item.' It lists specific returned fields (name, type, username, URIs, custom fields, scope, expiry) and explicitly differentiates itself from sibling tools by noting secrets are not returned. This is a specific verb+resource with strong sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance by naming alternatives: 'use reveal_secret_via_send or get_totp_code instead' for password, TOTP seed, and api-key values. It also states what the tool does not return, giving clear exclusions. This goes beyond a simple context hint to full usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkARead-only
Check connectivity and configuration of the Bitwarden/Vaultwarden vault. Authenticates, syncs, and reports: auth status, API version, collection visibility, item counts, latency. Run this first after a new install or after rotating credentials.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows it is a safe read operation that may access external systems. The description adds behavioral details beyond annotations: it 'Authenticates, syncs, and reports' specific metrics, implying network calls and credential verification. It doesn't describe error behavior or side effects, but for a health check with annotations, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states what it does and what it reports, the second gives when to use it. Every word earns its place; there is no filler, redundancy, or irrelevant detail. The structure is front-loaded with the core purpose and outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description covers the necessary context: what it checks, what it reports, and when to run it. It could be slightly more explicit about interpreting results or potential error states, but it is sufficient for an agent to understand the tool's role and invocation timing. The list of reported metrics adds completeness beyond a generic 'health check'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully covers them (coverage 100%). Per the baseline for no params, a score of 4 is appropriate; the description doesn't need to document parameters. It does not add any param-specific semantics, but that's not a gap given there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks connectivity and configuration of the Bitwarden/Vaultwarden vault, with a specific verb ('Check') and resource. It enumerates concrete outputs (auth status, API version, collection visibility, item counts, latency), which distinguishes it from sibling tools that list, get, reveal, generate, or save items. This is a focused diagnostic tool, easily differentiated from the other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Run this first after a new install or after rotating credentials,' giving clear when-to-use guidance. Although it doesn't name alternatives, it establishes a recommended ordering (run first) and the context (new install, credential rotation), which is sufficient for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vault_itemsARead-only
List vault items from the mcp-exposed and mcp-agent-created collections. Returns metadata only — secret values are NEVER included. Use reveal_secret_via_send to obtain the actual value through a secure Bitwarden Send URL.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Case-insensitive substring filter on item names. Omit to return all items. | |
| collection | No | Restrict to one collection. Omit to return items from both mcp-exposed and mcp-agent-created. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds important behavioral context: the tool returns metadata only and never includes secret values. This goes beyond the annotation hint and clarifies the safety boundary, though it does not specify pagination or output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states the action and scope, and the second provides an essential safety caveat and pointer to the alternative tool. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with no required parameters and no output schema, the description adequately covers what the tool does, what it returns, and how to get the actual secret values. Additional details would be marginal for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers both parameters fully with descriptions for filter and collection (100% coverage). The description restates the collection names and the filter concept but adds no new parameter-level detail beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with the specific verb 'List vault items' and clearly specifies the resource scope (mcp-exposed and mcp-agent-created collections). It also distinguishes this tool from the sibling reveal_secret_via_send by stating that metadata only is returned and secret values are never included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when not to use this tool—when actual secret values are needed—and names the alternative tool, reveal_secret_via_send. It also clarifies the collection scope and that filtering is available, giving context for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reveal_secret_via_sendA
Reveal a vault secret through a Bitwarden Send — an E2E-encrypted one-time URL. Creates a temporary Send with a configurable TTL and max-views limit. The secret value is encrypted client-side; only the URL fragment (never sent to server) can decrypt it. Blocked when READ_ONLY=1. Logs to DRY_RUN without creating a real Send when DRY_RUN=1.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact item name (case-sensitive) of the vault item to reveal. | |
| field | No | Field to reveal. Defaults to "value" (notes for api-key/password/note items, password for login items). Other options: "username", "password", "totp", "uri0" (or uri1, uri2, ...). | |
| max_views | No | Maximum number of times the Send URL can be accessed. Default 1, range [1, 100]. | |
| ttl_seconds | No | Bitwarden Send TTL in seconds. Default 300 (5 min), range [30, 86400]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical behavioral traits beyond annotations: client-side encryption, URL fragment never sent to the server, READ_ONLY blocking, and DRY_RUN logging. This adds substantial value beyond the sparse annotations (readOnlyHint=false, openWorldHint=true) and fully informs the agent of side effects and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the core purpose, and each sentence delivers meaningful behavioral or operational detail without redundancy. It is concise yet comprehensive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly covers behavior, restrictions, and encryption details, but it omits any mention of the tool's output or return value (e.g., the Send URL or confirmation). Since there is no output schema, this is a notable gap that prevents full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete parameter descriptions with defaults, ranges, and field options (100% coverage). The description only generically mentions 'configurable TTL and max-views limit' without adding any new semantic detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Reveal') and resource ('vault secret through a Bitwarden Send'), clearly distinguishing it from sibling tools like get_totp_code or list_vault_items. The purpose is immediately understandable and unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool (creating a one-time E2E-encrypted URL to reveal a secret) and even notes edge cases like READ_ONLY and DRY_RUN. However, it does not explicitly mention alternatives or when not to use it, so it lacks full exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_generated_secretA
Save an agent-generated secret into the mcp-agent-created collection. CREATE-only — cannot overwrite an existing item (name collision returns an error). The secret is E2E-encrypted with the vault org key before transmission. Sets mcp-created-by, mcp-created-at, mcp-expires-at, and mcp-used-in custom fields automatically. Blocked when READ_ONLY=1. Logs to DRY_RUN without creating a real cipher when DRY_RUN=1.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Unique name for this secret within the mcp-agent-created collection. Case-sensitive. Name collision returns an error — pick a distinct name. | |
| type | Yes | Logical type of this secret. "password" for user passwords, "api-key" for API tokens and keys. | |
| notes | No | Optional non-sensitive annotation (e.g. where this key is used). Not the secret itself. | |
| value | Yes | The secret value to store (max 4096 chars). Assumed already generated by the agent. | |
| used_in | No | Free-form context string, e.g. "publish_protected_html @ aiwerk.ch/press/2026-05". Stored as mcp-used-in custom field. | |
| expires_in_days | No | Days until the secret expires (sets mcp-expires-at). Default 30, max 365. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond annotations by disclosing E2E encryption, automatic custom field setting, collision errors, READ_ONLY blocking, and DRY_RUN logging. This gives rich behavioral context that annotations alone do not provide. No contradiction with annotations (readOnlyHint=false matches write operation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a well-structured paragraph that front-loads the primary purpose, then efficiently adds constraints and side effects. Every sentence adds value, with no filler or redundancy. It is concise yet comprehensive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers most important aspects: purpose, constraints, side effects, and error behavior. It lacks explicit mention of return value or success response, which is notable since no output schema exists. However, for a save tool, the return value may be implicitly understood, so this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so per rubric baseline is 3. The description adds some context about automatic custom fields (mcp-expires-at, mcp-used-in) but does not significantly enhance parameter understanding beyond the schema. It repeats some schema info but does not compensate for any missing details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves an agent-generated secret into the mcp-agent-created collection, with specific resource scope. However, it does not explicitly distinguish itself from the sibling tool 'save_login_item', so it lacks explicit sibling differentiation. The verb 'Save' and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is CREATE-only and cannot overwrite, and it mentions conditions like READ_ONLY=1 and DRY_RUN=1. It does not explicitly name alternatives but implies usage for new secrets only, which is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_login_itemA
Save login credentials (username, password, URL, optional TOTP seed) as a Vaultwarden login item in the mcp-agent-created collection. Use this instead of save_generated_secret when the credential is a sign-in (username + password), so it surfaces as a real login item with get_totp_code support. CREATE-only — cannot overwrite an existing item (name collision returns an error). At least one of username or password is required. All fields are E2E-encrypted with the vault org key before transmission. Sets mcp-created-by, mcp-created-at, mcp-expires-at, and mcp-used-in custom fields automatically. Blocked when READ_ONLY=1. Logs to DRY_RUN without creating a real cipher when DRY_RUN=1.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | Optional login URL (e.g. "https://app.example.com/login"). Stored as the login URI. | |
| name | Yes | Unique name for this login within the mcp-agent-created collection. Case-sensitive. Name collision returns an error — pick a distinct name. | |
| totp | No | Optional TOTP seed (otpauth:// URI or raw base32 secret). Enables get_totp_code on this item. | |
| notes | No | Optional non-sensitive annotation. Not the credential itself. | |
| used_in | No | Free-form context string, e.g. "smallinvoice portal login". Stored as mcp-used-in custom field. | |
| password | No | Login password (max 4096 chars). Optional, but at least one of username or password is required. | |
| username | No | Login username / account identifier. Optional, but at least one of username or password is required. | |
| expires_in_days | No | Days until the item expires (sets mcp-expires-at). Default 30, max 365. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits: it is CREATE-only and cannot overwrite, it requires at least one of username/password, it sets custom fields automatically, it encrypts all fields E2E, it is blocked under READ_ONLY, and it logs to DRY_RUN without creating a real cipher. The readOnlyHint: false annotation is consistent with the description's CREATE-only nature, and the description adds significant context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured. It front-loads the core purpose, then provides usage guidance, constraints, security context, and environmental behavior in a logical order. It is slightly longer than ideal but every sentence adds value, covering purpose, sibling differentiation, CREATE-only limitations, field requirements, encryption, custom fields, and mode-specific behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and no output schema, the description covers all essential aspects: what it does, when to use it, what constraints apply, what happens in different modes (READ_ONLY, DRY_RUN), and how it integrates with other tools (get_totp_code). It also explains the custom fields it sets automatically, which is valuable context for the agent. No significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description enriches the parameters further. For example, it explains that 'uri' is the login URL, 'totp' enables get_totp_code support, and 'expires_in_days' sets the mcp-expires-at field. It also clarifies constraints like case-sensitive uniqueness for 'name' and the mutual exclusivity/requirement of username/password. The description also mentions automatic custom fields, which adds meaning to parameters like 'used_in'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: saving login credentials as a Vaultwarden login item. It specifies the resource (Vaultwarden, mcp-agent-created collection), the verb (save), and the exact field types (username, password, URL, TOTP seed). It also explicitly distinguishes itself from the sibling tool save_generated_secret.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Use this instead of save_generated_secret when the credential is a sign-in (username + password), so it surfaces as a real login item with get_totp_code support.' It also mentions constraints such as CREATE-only and name collision behavior, and notes that it is blocked when READ_ONLY=1.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v0.2.2- First observed
get_totp_code - First observed
get_vault_metadata - First observed
health_check - First observed
list_vault_items - First observed
reveal_secret_via_send - First observed
save_generated_secret - First observed
save_login_item
TDQS
Each tool has a distinct purpose: listing, metadata retrieval, secret reveal, TOTP generation, and two clearly separated creation tools for generic secrets vs. login items. The health check is also unique, and the detailed descriptions remove any ambiguity.
Most tool names follow a consistent verb_noun snake_case pattern (list_vault_items, get_vault_metadata, get_totp_code, save_login_item). Minor deviations are health_check (noun-only) and reveal_secret_via_send (includes 'via'), but they remain readable and consistent in style.
Seven tools is a well-scoped size for a vault server, covering core operations (list, get, reveal, create, health) without bloat. Each tool earns its place, and the count is within the ideal range.
The tool surface covers reading and creating vault items but lacks update and delete operations, preventing agents from modifying or removing existing secrets. This is a notable gap for full lifecycle management, though the read and create workflows are well covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for Vaultwarden/Bitwarden vault management. Enables AI agents to securely create, search, read, and update vault items via the official Bitwarden CLI, with safe-by-default redaction and support for both stdio and SSE transports.5390414MIT
- AlicenseNot gradedqualityDmaintenanceSecret management MCP server for AI coding agents that prevents secrets from entering the LLM context window by returning metadata only and using side-channel injection. Integrates with Bitwarden and offers hooks for auto-capture and leak prevention.1MIT
- AlicenseAqualityBmaintenanceAn MCP server for using Bitwarden Secrets Manager as durable credential storage for agent workflows, enabling secure secret storage, retrieval, and injection into trusted executables.7MIT
- AlicenseNot gradedqualityCmaintenanceMCP server enabling AI agents to use secrets (API keys, tokens) via encrypted vault, executing HTTP/shell/SSH actions server-side while never exposing secret values to the AI.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIWerk/mcp-server-vault'
If you have feedback or need assistance with the MCP directory API, please join our Discord server