vaultwarden-mcp
This MCP server exposes a Vaultwarden/Bitwarden-compatible interface for account, vault, organization, admin, and maintenance operations.
Use action-routed tools (
vaultwarden_*) with anactionand JSONparams_json; callaction='list_actions'on many tools to discover operations.Manage account profile, two-factor methods, emergency access, and audit/event feeds via
vaultwarden_accounts.Read/write vault items (ciphers), including decrypted list/get/create/edit actions and soft-delete
move_to_trash, viavaultwarden_ciphers.Read/write personal-vault folders via
vaultwarden_folders.Manage organizations, collections, members, groups, policies, LDAP import, and misc server settings/HIBP routes via
vaultwarden_organizations.Create, list, update, and remove text/file Bitwarden Sends via
vaultwarden_sends.Administer instance users, config, diagnostics, identity, and icons via
vaultwarden_admin(requires admin token).Plan/apply vault deduplication and rotate/generate passwords via
vaultwarden_maintenance; destructive apply/rotate requiresconfirm: true.Serve a metadata-only knowledge-graph snapshot via
vaultwarden_metadata(identifiers/types/counts/relationships only; no secrets).Read server liveness, version, and public config via
vaultwarden_system.Supports condensed/action-routed, verbose 1:1 API-mapped (281 operations), and intent tool modes, with per-domain enable/disable toggles.
Provides a standardized interface to a Vaultwarden (Bitwarden-compatible) server, enabling management of accounts, ciphers, folders, organizations, sends, two-factor, emergency access, events, and admin operations, plus decrypted vault access, deduplication, and password rotation.
Click on "Deploy 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., "@vaultwarden-mcpList all my login items for GitHub"
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.
Vaultwarden Mcp
CLI or API | MCP
Documentation — Installation, deployment, and usage across the API, CLI, MCP, and A2A agent interfaces are maintained in the official documentation.
Related MCP server: Warden MCP Server
Table of Contents
Overview
vaultwarden-mcp exposes a standardized interface to a Vaultwarden (Bitwarden-compatible)
server via the Model Context Protocol — 281 REST operations across 13 domains (accounts,
ciphers, folders, organizations, sends, two-factor, emergency access, events, admin,
identity, icons, misc, public), a decrypted-vault layer for item/folder read and edit, and
vault maintenance (deduplication, password rotation). It is built on the shared
scion-sdk framework (auth, the
action router, telemetry, governance) for fleet consistency.
Action-routed MCP tools — eight domain tools (
vaultwarden_system,vaultwarden_accounts,vaultwarden_ciphers,vaultwarden_folders,vaultwarden_organizations,vaultwarden_sends,vaultwarden_admin,vaultwarden_maintenance) each route to multiple underlying operations via anactionargument, keeping the tool surface small. SettingMCP_TOOL_MODE=verbosealso registers one fully-typed tool per API operation from the generated operation manifest.Two interfaces, one package — use it as a Python API client, an MCP server (
stdio/streamable-http/sse).Destructive operations require
confirm: true. Bulk item removal is soft by default — see Architecture for the remove-route trap.Two crypto backends — a pure-Python native implementation, or delegation to an installed Bitwarden CLI. See Architecture.
Metadata-only knowledge-graph ingestion — a Wire-First
vaultwarden_maintenanceingest action pushes identifiers, types, dates, counts, and relationships into the epistemic-graph Knowledge Graph as typed OWL nodes. Item names, usernames, passwords, notes, URIs, and every key stay out of the graph.Per-tool toggles — enable or disable each tool domain with environment switches.
Enterprise-ready — OTEL/Langfuse telemetry and optional Eunomia access governance.
Installation
Install with uvx (no install — run on demand)
uvx --from "vaultwarden-mcp[mcp]" vaultwarden-mcp # MCP server + full graph engineEvery supported install includes
epistemic-graph[full]. The[mcp]extra adds
Install with pip
python -m pip install vaultwarden-mcp # core (API client)
python -m pip install "vaultwarden-mcp[all]" # + MCP server + A2A agent + telemetryExtra | Installs | Use when |
| Connector-focused MCP server ( | The operator only run the MCP server (smallest install / image) |
| Everything ( | Development / both surfaces |
Console scripts
After installation the following entry points are available on the operator's PATH:
Command | Description |
| Start the MCP server |
Container images (:mcp)
One multi-stage docker/Dockerfile builds the MCP-only image (--target mcp):
Local build tag | Build target | Contents | Entrypoint |
|
|
|
|
docker build --target mcp -t vaultwarden-mcp:mcp-local docker/Usage
As a Python API client
from vaultwarden_mcp.auth import get_client, get_vault_crypto
client = get_client() # resolves provider_configs.vaultwarden from AgentConfig
print(client.server_version())
vault = get_vault_crypto() # unlocks the decrypted-vault backend on demand
for item in vault.list_items():
print(item["id"], item["type"])As an MCP server (CLI)
# Local stdio (for IDEs)
vaultwarden-mcp
# Networked streamable-http
vaultwarden-mcp --transport streamable-http --host 127.0.0.1 --port 8000Calling an MCP tool
Tools are action-routed — pass an action plus a JSON params_json string:
{
"tool": "vaultwarden_system",
"arguments": {
"action": "version",
"params_json": "{}"
}
}Destructive actions (bulk trash, permanent removal, disabling a user) also
require "confirm": true in params_json.
Architecture
vaultwarden_mcp/api/api_client_base.py (VaultwardenApiBase) owns HTTP transport and
authentication: it never follows redirects, stays pinned to the configured origin, bounds
response size and time, and distinguishes three auth modes per request —
user— a bearer token from the account's personal API key (grant_type=client_credentials), cached until shortly before expiry and renewed once on a401;admin— theVW_ADMINsession cookie issued after posting the instance admin token to/admin;none— public endpoints (/alive,/api/version,/api/config, prelogin).
vaultwarden_mcp/api/_routes.py is a committed, data-only catalog of all 281 Vaultwarden
1.37.3 API operations (accounts 39, ciphers 58, organizations 77, two-factor 26, admin 20,
emergency access 18, sends 14, folders 7, identity 6, misc 9, icons 2, events 4, public 1),
normalized from the server's own Rocket route attributes. api/_operation_manifest.py
derives a fully-typed parameter schema per operation from that catalog, consumed when
MCP_TOOL_MODE=verbose to synthesize one MCP tool per operation instead of a generic
params_json fallback.
The soft-remove trap: PUT /api/ciphers/delete moves items to trash (recoverable for
30 days) — this is the only bulk-remove route this package's tools ever call.
POST /api/ciphers/delete and DELETE /api/ciphers are permanent in Vaultwarden and
are deliberately not wired to any bulk-remove tool action.
Decrypted vault access (vaultwarden_mcp/crypto/) is a pluggable VaultCrypto
backend, selected by selector_refs.CRYPTO_BACKEND:
native(default) — pure-Python key derivation (PBKDF2-SHA256 or Argon2id) and HKDF stretching (crypto/keys.py), AES-256-CBC + HMAC-SHA256 EncStrings with the MAC checked before any decryption, and RSA-OAEP unwrap of organization and per-item keys (crypto/encstring.py). Only strict type-2 EncStrings are decrypted; anything else passes through unchanged. Validated against Bitwarden's own published SDK test vectors.bw_cli— delegates key handling to an installed Bitwarden CLI (bw), driving a private, per-instance CLI data directory rather than the invoking user's real login state, with credentials passed only through the child process environment.
Both backends produce and accept records in the Bitwarden CLI JSON shape, so
vaultwarden_mcp/vault/dedupe.py (exact or loose duplicate matching, keep-newest
selection, bulk soft-remove apply) behaves identically in either case of backend.
vaultwarden_mcp/kg_ingest.py projects vault entities as typed OWL nodes
(:VaultwardenItem subclasses, :VaultwardenFolder, :VaultwardenCollection,
:VaultwardenServer) and relationships (:vaultwardenInFolder,
:vaultwardenInOrganization, :vaultwardenInCollection) through the certified
vaultwarden-metadata source preset. Scion SDK source_sync is the sole
graph commit, checkpoint, and reconcile authority. Only
identifiers, type codes, lifecycle dates, counts, and relationships are accepted — every
item name, username, password, note, URI, TOTP seed, custom field, attachment, folder
name, collection name, send content, and key is rejected before it ever reaches the graph
(vaultwarden_mcp/ontology/vaultwarden.ttl). See
docs/ingestion.md for the exact envelope and lifecycle.
MCP
Using as an MCP Server
The MCP Server can be run in stdio (local), streamable-http (networked), or
sse mode.
Runtime configuration
Keep provider_configs.vaultwarden endpoint, credential, selector, and TLS
references in AgentConfig; do not place resolved values in MCP client JSON. See
Environment Variables for the shape of that profile.
MCP Configuration Examples
Install the connector-focused
[mcp]extra. Examples usevaultwarden-mcp[mcp]to add FastMCP / FastAPI throughscion-sdk; the required Scion SDK core still carriesepistemic-graph[full]. The[agent-runtime]extra additionally enables model orchestration.
stdio Transport (local IDEs — Cursor, Claude Desktop, VS Code)
{
"mcpServers": {
"vaultwarden-mcp": {
"command": "uvx",
"args": [
"--from",
"vaultwarden-mcp[mcp]",
"vaultwarden-mcp"
],
"env": {
"MCP_TOOL_MODE": "intent",
"ACCOUNTSTOOL": "True",
"ADMINTOOL": "True",
"CIPHERSTOOL": "True",
"FOLDERSTOOL": "True",
"MAINTENANCETOOL": "True",
"ORGANIZATIONSTOOL": "True",
"SENDSTOOL": "True",
"SYSTEMTOOL": "True"
}
}
}
}Runtime references require an alias-aware launcher such as Arbora. Other launchers must omit those entries and inject the resolved values through their own runtime secret boundary.
Streamable-HTTP Transport (networked / production)
{
"mcpServers": {
"vaultwarden-mcp": {
"command": "uvx",
"args": [
"--from",
"vaultwarden-mcp[mcp]",
"vaultwarden-mcp",
"--transport",
"streamable-http",
"--port",
"8000"
],
"env": {
"TRANSPORT": "streamable-http",
"HOST": "127.0.0.1",
"PORT": "8000",
"MCP_TOOL_MODE": "intent",
"ACCOUNTSTOOL": "True",
"ADMINTOOL": "True",
"CIPHERSTOOL": "True",
"FOLDERSTOOL": "True",
"MAINTENANCETOOL": "True",
"ORGANIZATIONSTOOL": "True",
"SENDSTOOL": "True",
"SYSTEMTOOL": "True"
}
}
}
}Alternatively, connect to a pre-deployed Streamable-HTTP instance by url:
{
"mcpServers": {
"vaultwarden-mcp": {
"url": "http://localhost:8000/vaultwarden-mcp/mcp"
}
}
}Run a reviewed container image as a least-privilege stdio child (no listener or published port):
docker run -i --rm \
--read-only \
--cap-drop=ALL \
--security-opt=no-new-privileges \
--pids-limit=256 \
--tmpfs /tmp:rw,noexec,nosuid,nodev,size=64m \
-e TRANSPORT=stdio \
-e MCP_TOOL_MODE=intent \
-e ACCOUNTSTOOL=True \
-e ADMINTOOL=True \
-e CIPHERSTOOL=True \
-e FOLDERSTOOL=True \
-e MAINTENANCETOOL=True \
-e ORGANIZATIONSTOOL=True \
-e SENDSTOOL=True \
-e SYSTEMTOOL=True \
registry.example.invalid/vaultwarden-mcp@sha256:<digest> vaultwarden-mcpFor containerized network HTTP, supply an authenticated TLS ingress (or
direct server TLS), exact MCP_ALLOWED_HOSTS, and an exact trusted-proxy
CIDR policy through the operator-owned deployment profile. The generator
does not emit an unauthenticated non-loopback listener.
Auto-generated from the code-read env surface (MCP_TOOL_MODE + package vars) — do not edit.
Additional Deployment Options
vaultwarden-mcp can also run as a local container (Docker / Podman / uv) or be
consumed from a remote deployment. The
Deployment guide has full,
copy-paste mcp_config.json for all four transports — stdio, streamable-http,
local container / uv, and remote URL:
Local container — launch a reviewed immutable image as a least-privilege stdio child with no listener or published port.
Remote URL — connect through an operator-supplied authenticated HTTPS ingress. Keep the URL, outbound identity references, trust profile, and exact
MCP_ALLOWED_HOSTSinAgentConfig.
Knowledge-graph database (epistemic-graph)
Every image embeds the epistemic-graph[full] engine. For production — or to share one knowledge graph across multiple agents — run epistemic-graph as its own database container and point the agent at it. Deployment recipes (single-node + Raft HA), connection config, and the full database architecture (with diagrams) are in the epistemic-graph deployment guide. Local engine autostart or an operator-configured remote engine is selected through AgentConfig.
Environment Variables
Package environment variables
Variable | Example | Description |
|
| |
|
| |
|
| options: stdio, streamable-http, sse |
|
| network listeners outside loopback require configured authentication |
|
| |
|
| |
|
| options: none, embedded, remote |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
| — | e.g. registry.example.invalid/vaultwarden-mcp@sha256: |
| — | e.g. registry.example.invalid/vaultwarden-mcp@sha256: |
Inherited scion-sdk variables (apply to every connector)
Variable | Example | Description |
| — | Comma-separated tool allow-list |
| — | Comma-separated tool deny-list |
| — | Comma-separated tag allow-list |
| — | Comma-separated tag deny-list |
| — | Remote Eunomia authorization server URL |
| — | OTLP collector endpoint |
| — | Outbound MCP child auth: |
| — | OIDC client id (service-account auth) |
|
| Runtime secret reference for the OIDC service account |
| — | HTTP Basic username ( |
|
| Runtime secret reference for HTTP Basic auth ( |
|
| Verbose logging |
|
| Unbuffered stdout (recommended in containers) |
|
| URL of the MCP server the agent connects to |
| — | Operator-configured LLM provider for the agent |
| — | Operator-configured model id for the agent |
|
| Serve the AG-UI web interface |
18 package + 17 inherited variable(s). Auto-generated from .env.example + the shared scion-sdk set — do not edit.
The provider_configs.vaultwarden profile referenced above (see vaultwarden_mcp/auth.py)
carries reference-only configuration through AgentConfig:
Field | Notes |
| Toggles the profile. |
| Must resolve to an HTTPS or loopback origin. |
| Exactly one of the two — a named trust policy, e.g. |
| The account's personal API key ( |
| Only needed for decrypted vault operations ( |
| The plaintext instance admin token, only needed for |
|
|
References are env://NAME, vault://…, or secret://…, resolved only at runtime — never
a literal value.
Available MCP Tools
Each tool is action-routed: pass an action and a JSON params_json payload. Tool
domains can be toggled on or off with the listed environment variable. The table below is
auto-generated from the live server by the mcp-readme-table pre-commit hook
(python -m scion_sdk.mcp.readme_tools) — do not edit it by hand.
Condensed action-routed tools (MCP_TOOL_MODE=condensed)
MCP Tool | Toggle Env Var | Description |
|
| Operate the account profile, two-factor methods, emergency access, |
|
| Administer the instance (users, config, diagnostics), plus |
|
| Read and write vault items (ciphers). |
|
| Read and write personal-vault folders. |
|
| Plan/apply vault deduplication and rotate or generate passwords. |
|
| Serve the certified metadata-only source projection. |
|
| Manage organizations, collections, members, groups, and policies, |
|
| Create, list, update, and remove Bitwarden Sends (text or file). |
|
| Read Vaultwarden server liveness, version, and public configuration. |
Verbose 1:1 API-mapped tools (MCP_TOOL_MODE=verbose or both)
MCP Tool | Toggle Env Var | Description |
|
| Generate/rotate the personal API key (client_credentials login secret) |
|
| Get KDF type/iterations for an email before login (also mounted at /identity/accounts/prelogin) |
|
| Rotate the personal API key |
|
| Enable TOTP 2FA by confirming a generated code |
|
| Enable TOTP 2FA (PUT alias) |
|
| Enable/update Duo (or Duo OIDC) 2FA |
|
| Enable/update Duo 2FA (PUT alias) |
|
| Register a new WebAuthn security key for 2FA |
|
| Register a WebAuthn key (PUT alias) |
|
| Enable YubiKey OTP 2FA |
|
| Enable YubiKey OTP 2FA (PUT alias) |
|
| Permanently delete an organization and all its data |
|
| Liveness/health check (also verifies DB connectivity) |
|
| Grantor approves an in-progress request early (skips wait) |
|
| Archive one cipher (hide from default view, distinct from trash) |
|
| Bulk archive ciphers |
|
| Trigger an on-demand database backup (sqlite only) |
|
| Bulk confirm accepted invites, delivering the org key to each new member |
|
| Bulk delete groups |
|
| Bulk remove members from the org |
|
| Bulk delete collections by id |
|
| Bulk-fetch public keys for a list of user ids |
|
| Bulk resend pending invites |
|
| Bulk restore revoked members |
|
| Bulk revoke members |
|
| Return server config/feature-flags/environment URLs used by clients on startup |
|
| Grantor confirms the grantee, delivering the grantor’s vault key encrypted for the grantee |
|
| Confirm one accepted invite |
|
| Create a new organization |
|
| Force-logout a user (invalidate all sessions/security stamp) |
|
| Delete own account (REST DELETE alias) |
|
| Delete an attachment |
|
| Delete an attachment (admin path) |
|
| Delete an attachment (POST alias) |
|
| Delete an attachment (admin path, POST alias) |
|
| Permanently delete a cipher (REST DELETE) |
|
| Permanently delete via admin path (REST DELETE) |
|
| Permanently delete a cipher (POST alias) |
|
| Permanently delete a cipher via admin path |
|
| Soft-delete (move to trash) a cipher |
|
| Soft-delete via admin path |
|
| Bulk permanently delete ciphers by id list |
|
| Bulk permanent delete via admin path |
|
| Bulk permanent delete (POST alias) |
|
| Bulk permanent delete via admin path (POST alias) |
|
| Bulk soft-delete (move to trash) |
|
| Bulk soft-delete via admin path |
|
| Reset configuration overrides back to defaults |
|
| Delete/revoke an emergency-access relationship |
|
| Delete a folder |
|
| Delete a folder (POST alias) |
|
| Delete a group |
|
| Remove one member from the org |
|
| Delete a collection |
|
| Delete a Send |
|
| Unlink a user’s SSO identity (force back to password login) |
|
| Permanently delete an instance user account |
|
| Remove a registered WebAuthn security key |
|
| Disable TOTP 2FA |
|
| Disable a specific 2FA provider |
|
| Disable a specific 2FA provider (PUT alias) |
|
| Disable (lock) a user account instance-wide |
|
| Anonymous: download the actual (still-encrypted) Send file bytes |
|
| Edit a member (POST alias) |
|
| Confirm email-2FA setup with the emailed code |
|
| Grantee accepts a pending emergency-access invite |
|
| Grantor invites another user (by email) as emergency contact |
|
| Re-enable a disabled user account |
|
| Generate a new TOTP secret + provisioning QR data |
|
| Generate a WebAuthn registration challenge |
|
| Get current YubiKey OTP 2FA configuration (masked) |
|
| List current user devices |
|
| Stub empty passkey list (prevents client errors; Vaultwarden does not support WebAuthn passwordless login) |
|
| Get attachment metadata + a short-lived download URL |
|
| Poll status of one auth request by id |
|
| Anonymous poll for approval + encrypted key once approved |
|
| List all pending/approved auth requests for current user |
|
| List only pending auth requests |
|
| Check whether org auto-enrolls new members into password-reset admin recovery |
|
| Get org billing metadata |
|
| Get org billing warning banners |
|
| Get one cipher by id |
|
| Get one cipher with admin-view fields (org admin bypassing normal access) |
|
| Get one cipher with full details incl. collection ids |
|
| List audit-log events for one cipher |
|
| List all ciphers owned by or shared with the user |
|
| List users/groups with access to one collection |
|
| List people the caller has granted emergency access to (as grantor) |
|
| Get one device by identifier |
|
| Get/return device-verification (new-device email) settings |
|
| Get sanitized server config as JSON for diagnostics |
|
| Diagnostic HTTP echo/status-code test endpoint |
|
| Return an empty master-password-policy stub for a placeholder org id |
|
| Get current Duo 2FA configuration (masked) |
|
| Check whether email 2FA is set up / request setup email |
|
| Get one emergency-access record by id |
|
| Get one folder by id |
|
| List all folders |
|
| List people who have granted the caller emergency access (as grantee) |
|
| Get one group |
|
| Get one group with members + collections |
|
| List members of a group |
|
| List org groups (collections of members for access assignment) |
|
| List groups with member/collection details |
|
| Check whether a device identifier is already known for an email |
|
| Get the effective master-password-complexity policy for the org |
|
| List organization members ("users") |
|
| Get one collection’s details |
|
| List all collections in an org |
|
| List collections with per-collection access details |
|
| Get org-scoped cipher listing with per-cipher collection membership |
|
| Check whether an org’s SSO domain claim is verified |
|
| List audit-log events for an organization |
|
| Export all org cipher data (admin-triggered org vault export) |
|
| List members with minimal fields (id/name/email) for UI pickers |
|
| Get organization details |
|
| Get the org’s public key + (if authorized) encrypted private key |
|
| Get the org’s public RSA key |
|
| List available subscription plans |
|
| Get one policy by type |
|
| Get another user public RSA key by user id |
|
| Get the 2FA recovery code (used if all 2FA devices are lost) |
|
| Get the data needed to perform admin password reset for a member (their reset_password_key + KDF settings) |
|
| Get self-host billing metadata |
|
| Get one of the caller’s own Sends by id |
|
| List the caller’s own Sends |
|
| Get the user’s configured equivalent-domains list (for autofill matching) |
|
| List pending security tasks (at-risk password / admin-assigned tasks) for the current device |
|
| List enabled 2FA methods for the user |
|
| Get one member’s full details |
|
| Look up one instance user by email |
|
| List collections the current user has access to (across all orgs) |
|
| List audit-log events for one org member |
|
| Get one instance user by id |
|
| List all instance users (JSON, for the admin table) |
|
| List registered WebAuthn/FIDO2 2FA security keys |
|
| Proxy a Have I Been Pwned breach lookup for a username |
|
| Fetch/cache a site favicon by hostname from the internet |
|
| Serve a favicon from local cache without external fetch (used when icon fetching is disabled) |
|
| Get a user’s KDF type/iterations/memory/parallelism by email before attempting login |
|
| Register a new account (email, name, master-password hash, encrypted keys, KDF params) |
|
| Grantee starts the takeover/view waiting period |
|
| Create/invite a new instance user from the admin panel |
|
| Bulk-provision/deprovision org members + groups from an external directory (SCIM/LDAP-style) |
|
| Current user leaves an organization |
|
| List all policies configured for the org |
|
| List policies visible to an not-yet-member using their invite token |
|
| Bulk move ciphers into a folder (or remove from folder) |
|
| Bulk move ciphers into a folder (PUT alias) |
|
| Return current server time |
|
| Invited user accepts the org invite |
|
| Delete an organization |
|
| Generate/rotate the org’s API key (for client_credentials / public API access) |
|
| Rotate the org’s API key |
|
| Invite a user to the organization by email |
|
| Grantee completes takeover: uploads the grantor’s user key re-encrypted under a NEW master key/password chosen by the grantee |
|
| Request password hint be emailed |
|
| Get org policies applicable to the emergency-access relationship |
|
| Anonymous: fetch a Send’s metadata by access id (for viewing/decrypting) |
|
| Anonymous: get a download URL for a Send file |
|
| Anonymous: legacy get-download-URL path |
|
| Anonymous: legacy path for fetching a Send by access id |
|
| Upload attachment (legacy single-phase) |
|
| Upload attachment via admin path |
|
| Re-key an attachment when its cipher is shared to an org |
|
| Begin attachment upload (v2): register metadata, get upload URL |
|
| Upload the encrypted attachment bytes (v2 second phase) |
|
| Create a new device "login with device" auth request |
|
| Bulk-set which users/groups can access a set of collections |
|
| Bulk-assign a set of ciphers to collections |
|
| Update a cipher |
|
| Update a cipher via the admin path (POST alias) |
|
| Partial update: only folder assignment / favorite flag (no re-encryption needed) |
|
| Move a personal cipher into an organization ("share") |
|
| Create a cipher (personal or org, no collections in this call) |
|
| Create a cipher as an org admin on behalf of the org (unassigned/admin path) |
|
| Create a cipher, optionally assigning collections in the same call |
|
| Bulk import ciphers + folders in one call |
|
| Clear a device push token (POST alias) |
|
| Set collections (v2, POST alias) |
|
| Set collections via admin path (POST alias) |
|
| Set collections (legacy v1, POST alias) |
|
| Persist configuration overrides (the settings normally set via env vars) |
|
| Delete own account (password/OTP confirmation in body) |
|
| Delete/revoke (POST alias) |
|
| Delete a group (POST alias) |
|
| Remove one member from a group |
|
| Delete an organization (POST alias) |
|
| Request account-deletion email (forgot-password-style deletion init) |
|
| Complete account deletion using emailed token |
|
| Set/update device push token |
|
| Confirm email change with token + new encrypted keys |
|
| Request email-change verification token (send code to new address) |
|
| Update an emergency-access grant (POST alias) |
|
| Client-side telemetry/event ingestion endpoint used by web-vault to batch-report UI events |
|
| Rename a folder (POST alias) |
|
| Create a folder |
|
| Update a group (POST alias, id in path) |
|
| Create a group |
|
| Change KDF algorithm/parameters (PBKDF2↔Argon2id, iterations, memory, parallelism) |
|
| Upload/set the user RSA keypair (encrypted private key + public key) |
|
| Bulk import ciphers directly into an organization (personal-vault-style import scoped to an org) |
|
| Upload the organization’s RSA keypair at org-creation time |
|
| Update organization settings (POST alias) |
|
| Delete a collection (POST alias) |
|
| Update a collection (POST alias) |
|
| Create a collection |
|
| Change master password |
|
| Update profile fields (legacy POST alias of PUT) |
|
| Full account key rotation: re-encrypt user key, private key, and every cipher/folder/send key |
|
| Create a text-type (or metadata-only) Send |
|
| Create a file-type Send (legacy single-phase upload) |
|
| Begin a file-type Send (v2): register metadata, get upload URL |
|
| Upload the encrypted Send file bytes (v2 second phase) |
|
| Set initial master password (post-SSO/key-connector account provisioning) |
|
| Set equivalent-domains list |
|
| Rotate security stamp (invalidates all other sessions/JWTs) |
|
| Request email verification (resend verify link) for current email |
|
| Verify current email address ownership via emailed token |
|
| Variant prelogin returning the newer MasterPasswordUnlockData shape |
|
| Pre-validate an SSO organization identifier before redirecting to the IdP |
|
| Get own user profile (email, name, org memberships, premium status) |
|
| Irreversibly delete ALL ciphers in an organization |
|
| Irreversibly delete ALL of the caller’s personal ciphers (and folders) |
|
| Approve/deny an auth request from an already-approved device |
|
| Set avatar color |
|
| Update a cipher (PUT alias) |
|
| Update a cipher via the admin path |
|
| Partial update (PUT alias) |
|
| Share a cipher (PUT alias) |
|
| Bulk share multiple ciphers to an org |
|
| Clear a device push token (public, used by push relay callbacks) |
|
| Set the collections a cipher belongs to (v2, returns updated cipher) |
|
| Set collections via admin path |
|
| Set the collections a cipher belongs to (legacy v1) |
|
| Set/update device push token (PUT alias) |
|
| Update wait-time/type of an emergency-access grant |
|
| Rename a folder |
|
| Update a group |
|
| Set which members belong to a group |
|
| Edit a member (role, collection access, groups) |
|
| Update organization settings (name, billing email, etc.) |
|
| Update a collection (rename, reassign users/groups) |
|
| Update one policy by type |
|
| Update one policy by type (newer response shape) |
|
| Update profile fields (name, avatar color) |
|
| Admin completes account-recovery: submits a brand-new master key for a member using the org-held reset_password_key |
|
| Remove the password requirement from a Send |
|
| Alias/step of admin-initiated password reset |
|
| Member opts in/out of admin password-reset recovery |
|
| Update a Send (name/notes/text/expiry/password/max access count) |
|
| Set equivalent-domains list (PUT alias) |
|
| Finish registration after email verification (submits the same keyset payload as identity_register) |
|
| Send the registration email-verification code |
|
| Resend one pending invite |
|
| Grantor rejects/cancels an in-progress request |
|
| Strip all 2FA methods from a user (admin recovery action) |
|
| Request an OTP (emailed) to re-verify identity before a sensitive action |
|
| Grantor resends a pending emergency-access invite |
|
| Resend a pending registration invite email |
|
| Restore one cipher from trash |
|
| Restore one cipher from trash via admin path |
|
| Bulk restore from trash |
|
| Bulk restore from trash via admin path |
|
| Restore a revoked member |
|
| Restore a revoked member (newer response shape) |
|
| Get last vault revision timestamp (used by clients to decide whether to sync) |
|
| Revoke one member’s access without removing them (keeps external_id/history) |
|
| Send/resend the email-2FA setup verification code |
|
| Send the 2FA email code during login (pre-auth, device-scoped) |
|
| Full vault sync: ciphers, folders, collections, sends, org/policy/domain metadata in one payload |
|
| Grantee begins password takeover: server returns grantor’s KDF settings + encrypted key |
|
| Send a test email to verify SMTP configuration |
|
| Unarchive one cipher |
|
| Bulk unarchive ciphers |
|
| Change a user’s org role from the admin panel |
|
| Force a client-sync revision bump for one/many users |
|
| Verify the OTP from request_otp |
|
| Verify current master password hash (used before sensitive UI actions) |
|
| Return server version string |
|
| Grantee views the grantor’s vault (read-only) after approval/wait elapses |
9 action-routed tool(s) · 281 verbose 1:1 tool(s). Each is enabled unless its <DOMAIN>TOOL toggle is set false; MCP_TOOL_MODE selects the surface (intent default — the six verb-tools, granular set loaded on demand · condensed action-routed · verbose 1:1 · both). Auto-generated — do not edit.
The tool domains this package registers (final names, once every domain module lands):
vaultwarden_system, vaultwarden_accounts, vaultwarden_ciphers, vaultwarden_folders,
vaultwarden_organizations, vaultwarden_sends, vaultwarden_admin, and
vaultwarden_maintenance. Destructive operations require "confirm": true.
Documentation
Full documentation is published to the GitHub Pages site and mirrored under docs/:
See AGENTS.md for domain-specific traps (the soft-vs-hard remove routes, the upper-case
credential alias rule, and the KG metadata-only boundary).
Repository Owners
Contribute
Contributions are welcome! Please ensure code quality by running local checks before submitting pull requests:
Format code using
ruff format .Lint code using
ruff check .Validate type-safety with
mypy .Run test suites using
pytest
Governed capability contract
This package ships a compact canonical skill surface with specialist procedures
kept as referenced workflows. The current MCP tools, skill metadata,
connector_manifest.yml, ontology, mappings, shapes, fixtures, migrations,
tool-schema fingerprints, and certification metadata form one versioned
capability contract. Validate them together; do not rely on stale tool names or
historical per-task skill wrappers.
Runtime endpoints, credentials, certificate trust, tenant identity, retention, and observability policy are deployment inputs and are never packaged values. See Configuration, trust, and privacy before enabling a network transport, connector ingestion, Arbora delegation, or trace export.
Available Tools
298 toolsvaultwarden_accountsVaultwarden AccountsB
Operate the account profile, two-factor methods, emergency access, and audit event feeds.
Dispatches to every Vaultwarden accounts, two_factor,
emergency_access, and events API route by its route name.
CONCEPT:VW-ECO.mcp.account-operations
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Vaultwarden accounts/two_factor/emergency_access/events operation name (a Route.name). Call with action='list_actions' to list every available operation. | |
| params_json | No | JSON object of path/query parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it largely fails to. It says it dispatches by route name but does not disclose that some dispatched routes are mutating/destructive (2FA disable, emergency access grants, account deletion), any permission or auth requirements, or rate limits. Naming the dispatch pattern is mildly useful, but the safety profile of a multi-domain router is undisclosed.
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?
Three compact lines, front-loaded with the verb and resource list before the dispatch explanation. The trailing 'CONCEPT:VW-ECO.mcp.account-operations' token is non-prose noise that costs a bit of polish but the core text is efficient.
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?
An output schema exists, so return values need not be explained. However, for a router spanning four distinct API domains, the description stops short of clarifying how route names map to actions or which sub-domains carry destructive operations, leaving an agent to discover that via list_actions. Minimally adequate for the complexity.
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 the schema already documents both parameters and the action='list_actions' discovery path, making 3 the baseline. The description adds no syntax, format, or naming-convention detail for 'action' or 'params_json' beyond what the schema states, so it neither compensates nor detracts.
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 clear verb ('Operate') and enumerates the specific resources it covers: account profile, two-factor methods, emergency access, and audit event feeds. It also explains the dispatch mechanism ('Dispatches to every Vaultwarden accounts, two_factor, emergency_access, and events API route by its route name'), which distinguishes it from siblings like vaultwarden_ciphers or vaultwarden_organizations. The domain scoping gives a competent agent enough to tell it apart from the other module tools.
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?
Usage is only implied by the domain listing: the agent infers it should pick this tool for account/2FA/emergency/audit operations. There is no explicit when-to-use framing, no named alternative among the eight siblings, and no mention in the description that action='list_actions' is the discovery entry point (that hint lives only in the schema). Adequate but with a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_accounts_post_api_keyAccounts post api keyC
Generate/rotate the personal API key (client_credentials login secret)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world mutation, so safety signaling is covered. The description adds that the output is a client_credentials login secret, which is genuinely useful, but it omits the critical behavioral fact that rotating invalidates the previous key and that the plaintext key is only returned once.
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?
A single compact sentence with the key fact front-loaded and no filler. It is arguably too terse for a credential-mutating operation, but nothing is wasted.
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 credential rotation endpoint with an opaque schema, no output schema, and zero annotation detail on side effects, the description says nothing about what gets invalidated, whether the new key is returned in the response, or what the three body parameters are for. An agent cannot call this safely on the strength of the description alone.
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 0% and the three parameters (form, params, json_body) are untyped with 'default: null', so the schema provides essentially no guidance. The description does not mention any parameter at all — not even whether a name, expiration, or scope can be supplied.
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?
Names a specific verb pair (generate/rotate) and a precise resource (the personal API key), and the parenthetical 'client_credentials login secret' clarifies what the key is actually used for. The qualifier 'personal' distinguishes it from the organization-level key tools, though the sibling vaultwarden_accounts_rotate_api_key is left un-differentiated.
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?
No statement of when to call this versus vaultwarden_accounts_rotate_api_key or vaultwarden_organizations_rotate_api_key, both of which appear in the sibling list and overlap in intent. The word 'personal' only weakly implies account-scope, and there are no prerequisites or exclusions given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_accounts_post_preloginAccounts post preloginB
Get KDF type/iterations for an email before login (also mounted at /identity/accounts/prelogin)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, so the safety profile is covered. The description adds the login-context and the alternate mount path, but does not explain the mild tension between the retrieval wording ('Get') and the non-read-only annotation, nor return/pagination behavior. With annotations present, this adds modest value beyond structured data.
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?
A single front-loaded sentence with the purpose stated first and the mount alias in a compact parenthetical. Efficient with little waste, though the parenthetical is secondary detail that could be trimmed.
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 prelogin lookup with no output schema, the description conveys what is returned (KDF type/iterations) and its login context, which is the core need. However, with three undocumented body parameters and no guidance on how to supply the email, it is only adequately complete.
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 0% across three parameters (form, params, json_body), and the description does not compensate. It implies an 'email' input exists but never says which parameter carries it or what form/params mean, so there is little guidance beyond the bare opaque schema.
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 gives a specific verb and resource: 'Get KDF type/iterations for an email before login.' That is concrete enough for an agent to know it retrieves key-derivation config. It does not explicitly distinguish itself from the near-identical sibling vaultwarden_identity_post_prelogin, though the parenthetical about the alternate mount provides partial 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?
'Before login' implies the timing context in which to use it, but the description never names or rules out alternatives such as vaultwarden_identity_post_prelogin or vaultwarden_prelogin_password. Usage is therefore implied rather than stated, leaving the agent to infer which prelogin tool to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_accounts_rotate_api_keyAccounts rotate api keyC
Rotate the personal API key
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, consistent with a rotate operation, so there is no contradiction. But the description adds nothing beyond the annotations: it does not say whether the prior key is immediately invalidated, whether clients using the old key break, or what credentials the caller must present for such a security-sensitive mutation. For a write tool touching credentials, this is a significant disclosure gap.
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?
A single front-loaded sentence with zero padding, so there is nothing to trim. The problem is under-specification rather than verbosity: the brevity costs the agent information it needs.
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?
A credential-rotating mutation with three opaque, undocumented parameters, no output schema, and only minimal annotations cannot be described in five words. Nothing tells the agent what the call returns (the new key?), whether confirmation is required, or what side effects occur.
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?
Three parameters (form, params, json_body) with 0% schema description coverage and no types or enums, and the description mentions none of them. The schema and the description together leave the agent with no idea what to supply, so the description fails to compensate for the coverage gap.
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?
States a specific verb and resource ("rotate the personal API key"), and the word "personal" implicitly distinguishes it from the sibling vaultwarden_organizations_rotate_api_key. However, it never names or contrasts that alternative explicitly, so the agent must infer the scope distinction rather than being told it.
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?
There is no guidance on when to rotate (e.g., key compromise, scheduled rotation), no prerequisites such as authentication or master password confirmation, and no mention of the organization-key alternative. The agent gets no criteria for selecting this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_activate_authenticatorActivate authenticatorB
Enable TOTP 2FA by confirming a generated code
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the meaningful prerequisite that a code must already be generated, but says nothing about what happens on an invalid code, whether an existing authenticator is replaced, or what auth/permissions are required for this mutation.
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?
A single front-loaded sentence with no filler. It is efficient, but for a mutation tool with three opaque parameters this brevity borders on under-specification rather than tight writing.
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?
A state-changing 2FA mutation with no output schema, 0% schema coverage, and three opaque parameters needs far more than one sentence. The description omits parameter mapping, error behavior, and side effects, so an agent cannot reliably construct a correct call from the definition alone.
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 0% and all three parameters (form, params, json_body) are untyped and undocumented. The description mentions a 'generated code' but never says which parameter carries it or in what format, leaving the agent to guess at the entire call shape.
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?
States a specific verb and resource: enabling TOTP 2FA by confirming a generated code. This clearly separates it from a generic 'verify' or 'get' tool, though it does not name the sibling it pairs with (generate_authenticator) or distinguish itself from activate_authenticator_put.
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 phrase 'confirming a generated code' implies the prerequisite workflow (generate first, then activate), which is useful. However, it gives no explicit when-to-use guidance, no exclusions, and no pointer to the near-duplicate _put variant or the alternative activate_duo/webauthn/yubikey tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_activate_authenticator_putActivate authenticator putC
Enable TOTP 2FA (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is known. The description adds that it specifically enables TOTP 2FA, which is useful context beyond the generic title. However, it does not disclose side effects, required permissions, or what happens upon activation.
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 single, front-loaded sentence with no wasted words. It is efficient, though given the tool's complexity (3 undocumented params), a bit more detail could be warranted without sacrificing conciseness.
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 mutation tool with 3 parameters at 0% schema coverage and no output schema, the description is too brief. It does not explain how to use the parameters, what the response looks like, or any prerequisites, leaving the agent with significant gaps.
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 0% for the three parameters (form, params, json_body). The description mentions none of them, so it provides no meaning beyond the bare schema names. This is inadequate for a tool with undocumented parameters.
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 and resource: 'Enable TOTP 2FA'. It also notes '(PUT alias)', hinting at the HTTP method, but does not differentiate this tool from its sibling `vaultwarden_activate_authenticator` (non-PUT version).
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?
There is no indication of when to use this tool versus alternatives. It does not mention prerequisites, side effects, or when to choose the PUT alias over the regular activate authenticator tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_activate_duoActivate duoC
Enable/update Duo (or Duo OIDC) 2FA
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is partly covered. The description adds that this may update existing Duo setup and supports Duo OIDC, but it does not disclose permissions, side effects, or authentication requirements.
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 single sentence is front-loaded, direct, and free of filler. However, it is arguably too terse for a configuration mutation with opaque parameters.
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 non-read-only, open-world 2FA configuration tool with three undocumented parameters and no output schema, the description leaves major gaps. It does not explain expected input shape, authorization, effects on existing Duo configuration, or return behavior.
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?
There are 3 parameters with 0% schema description coverage, and the description says nothing about what form, params, or json_body should contain. It does not compensate for the schema's lack of type or field-level detail.
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 uses a specific verb+resource: 'Enable/update Duo (or Duo OIDC) 2FA.' It is clear what the tool does, but it does not distinguish itself from close siblings such as vaultwarden_activate_duo_put or vaultwarden_get_duo.
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 phrase 'Enable/update' implies activation or update, but there is no explicit guidance on when to use this tool versus get_duo or activate_duo_put, nor any prerequisites or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_activate_duo_putActivate duo putC
Enable/update Duo 2FA (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-readOnly, openWorld, non-destructive mutation. The description adds that the mutation enables or updates Duo 2FA, but it does not disclose authentication requirements, side effects, or what happens to existing Duo configuration.
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 very short and front-loaded, but it is a terse fragment rather than a sufficient explanation. The cryptic '(PUT alias)' parenthetical does not earn its place without clarifying the alternative it refers to.
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?
This is a mutation tool with three opaque parameters, no output schema, and only generic safety annotations. The description says what the operation does broadly, but it omits prerequisites, parameter guidance, and behavioral effects needed to invoke it correctly.
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 defines three parameters (form, params, json_body) with zero percent description coverage, and the description provides no meaning, format, or examples for any of them. An agent cannot determine what to put in these fields from the definition alone.
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 and resource: 'Enable/update Duo 2FA'. It also hints at a PUT-specific alias, but it does not explain how this differs from the sibling vaultwarden_activate_duo tool.
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?
There is no explicit guidance on when to use this tool versus vaultwarden_activate_duo or other 2FA activation methods. The '(PUT alias)' phrase implies a transport variant but does not provide usable selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_activate_webauthnActivate webauthnC
Register a new WebAuthn security key for 2FA
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the agent knows this is a non-destructive write. The description adds only that it concerns 2FA key registration. It does not state whether existing keys are replaced, whether re-authentication is required, or what the call returns.
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 single sentence is front-loaded and free of waste. It is, however, under-specified rather than appropriately concise, given how opaque the schema is.
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 mutation tool with three undocumented parameters, no output schema and no annotation detail beyond the safety hints, the description leaves critical gaps. It is unclear what payload to supply or what a successful response looks like.
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?
All three parameters (form, params, json_body) have 0% schema description coverage and are entirely generic. The description supplies no information about what the request body must contain, such as credential payload or challenge response, so parameter meaning is not recoverable from the definition.
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 names a specific verb and resource: registering a new WebAuthn security key for 2FA. An agent can grasp the action. However, it offers no differentiation from the sibling vaultwarden_activate_webauthn_put, so a choice between the two still requires opening the schemas.
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 no when-to-use context, no prerequisites and no exclusions. It does not mention the vaultwarden_generate_webauthn_challenge or get_api_webauthn steps that normally precede activation, nor when to choose this tool over vaultwarden_activate_webauthn_put or vaultwarden_delete_webauthn.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_activate_webauthn_putActivate webauthn putC
Register a WebAuthn key (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write nature is known. The description adds nothing about what registration does, whether an existing key is replaced, what auth or prior challenge is required, or what happens on failure.
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 single sentence is front-loaded and waste-free, but it is under-specified rather than appropriately concise for a three-parameter mutation with no documented schema.
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 mutation tool with three undocumented parameters, no output schema, and openWorldHint=true, the description is far too thin. It leaves an agent without enough context to construct the request or understand the effect.
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?
All three parameters (form, params, json_body) have 0% schema description coverage, and the description mentions none of them. It provides no syntax, format, or meaning for the opaque payload objects, so it fails to compensate for the coverage gap.
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 names a specific verb ('Register') and resource ('WebAuthn key'), and the '(PUT alias)' parenthetical separates it from the non-PUT sibling vaultwarden_activate_webauthn. However, 'Register' conflicts slightly with the name's 'activate', and the HTTP-method framing doesn't clarify user-level intent.
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?
No guidance on when to use this versus vaultwarden_activate_webauthn, activate_authenticator, or generate_webauthn_challenge. The '(PUT alias)' note implies a variant but gives no condition for selecting it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_activate_yubikeyActivate yubikeyC
Enable YubiKey OTP 2FA
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is known. The description adds nothing beyond them: no statement of required permissions, whether the change is reversible, whether an existing 2FA method is replaced, or what happens on failure. For a security-setting mutation this is a thin contribution.
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?
Four words with zero filler and the action front-loaded, but the brevity crosses into under-specification rather than efficient conciseness.
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?
A mutation tool with no output schema, three wholly undocumented parameters, and no annotation detail about the auth/permission model needs more than this. The description leaves the agent unable to construct a correct call with confidence.
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?
Three parameters (form, params, json_body) exist with 0% schema description coverage and no types, only default null. The description mentions no parameters at all, so the agent gets no help on what to supply to activate a YubiKey (e.g. an OTP or key identifier).
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 pairs a specific verb ('Enable') with a specific resource ('YubiKey OTP 2FA'), so the agent knows exactly what capability is being turned on. It does not, however, distinguish this tool from the near-identical sibling vaultwarden_activate_yubikey_put, nor from generate_yubikey, leaving ambiguity about which to call.
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?
There is no guidance on when to use this versus vaultwarden_activate_yubikey_put, vaultwarden_generate_yubikey, or the other activate_* 2FA tools. No prerequisites (e.g. a YubiKey must already be generated) or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_activate_yubikey_putActivate yubikey putC
Enable YubiKey OTP 2FA (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say what state is changed, whether an existing 2FA method is replaced, what credentials/permissions are needed, or that the body content drives the activation.
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?
A single front-loaded phrase with no filler, but it is terse to the point of under-specification rather than efficient. Nothing is wasted, but almost nothing is delivered.
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?
This is a state-changing 2FA endpoint with three opaque body parameters, no output schema, and no annotations covering semantics beyond safety hints. The description does not supply the missing details an agent needs to construct a correct call, so it is materially incomplete.
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?
All three parameters (form, params, json_body) have 0% schema description coverage, no types, and null defaults. The description mentions none of them, and for a body-driven activation endpoint the agent is left with no idea what belongs in json_body.
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?
"Enable YubiKey OTP 2FA" gives a recognizable verb and resource, and "(PUT alias)" hints this is the PUT form of the same operation. But it never distinguishes this from the sibling vaultwarden_activate_yubikey (or activate_authenticator/duo/webauthn variants), so an agent cannot tell which one to pick from the description alone.
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 parenthetical "PUT alias" implies equivalence with another activate_yubikey tool but does not say when to prefer this one, what the alternative is called, or what prerequisites (existing YubiKey, 2FA state) apply. No when/when-not guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_adminVaultwarden AdminB
Administer the instance (users, config, diagnostics), plus identity-server and favicon routes.
Admin routes require the instance admin token (VW_ADMIN cookie
auth). When it is not configured, or is rejected, the server's error
is surfaced as a clear {"error", "status"} dict rather than a
raw exception.
CONCEPT:VW-ECO.mcp.admin-operations
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Vaultwarden admin/identity/icons operation name (a Route.name). Call with action='list_actions' to list every available operation. | |
| params_json | No | JSON object of path/query/body parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose two genuinely useful behavioral facts: admin routes require the instance admin token (VW_ADMIN cookie auth), and rejected/missing credentials surface as a {"error","status"} dict rather than a raw exception. It stops short of describing the read/write/destructive nature of the underlying actions, which matters for a multi-action admin tool.
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 opening sentence front-loads the purpose cleanly, but the trailing "CONCEPT:VW-ECO.mcp.admin-operations" line is internal taxonomy that adds no value for an agent and dilutes the structure.
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?
An output schema exists, so return shapes needn't be explained, and the auth/error notes cover the operational essentials. However, for a dispatcher across many admin actions the description gives only category labels (users, config, diagnostics) with no sense of what those actions change.
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% — both action and params_json are well documented in the schema, including the list_actions discovery pattern. The description adds no additional parameter meaning, so the baseline 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?
States a clear verb+resource ("Administer the instance") and scopes it to users, config, diagnostics, plus identity-server and favicon routes. This distinguishes it from the narrower siblings like vaultwarden_accounts or vaultwarden_ciphers, though the mixed scope (admin + identity + favicon) is slightly muddled.
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 never says when to reach for this tool versus siblings such as vaultwarden_system or vaultwarden_maintenance; the reader must infer it from the word "Administer." The action='list_actions' discovery hint lives in the schema, not the description, so the description itself offers no routing guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_admin_delete_organizationAdmin delete organizationCDestructive
Permanently delete an organization and all its data
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is known. The description adds real value by disclosing the cascade ('all its data'), but says nothing about required admin privileges, whether confirmation is expected, or whether the deletion is recoverable in any way.
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?
A single front-loaded sentence with no filler — the destructive scope leads. It is efficient, though the terseness borders on under-specification for a high-impact operation.
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 high-blast-radius admin operation with 4 undocumented parameters and no output schema, the description omits permissions, confirmation expectations, post-deletion effects on members/collections, and the identity of competing delete endpoints. 'Permanently delete … and all its data' is accurate but far from sufficient.
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 0% and four parameters exist. The description never mentions org_id or the three generic wrapper params (form, params, json_body), leaving their meaning and expected formats entirely to inference. Only the required-parameter list in the schema hints that org_id is mandatory.
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 gives a specific verb ('Permanently delete') and resource ('an organization'), plus the scope of what is removed ('all its data'). It does not, however, distinguish this from near-identical siblings such as vaultwarden_organizations_delete_organization, vaultwarden_post_delete_organization, or vaultwarden_leave_organization, so an agent must guess which delete variant is the admin one.
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?
There is no guidance on when to use this versus the many other organization-removal siblings (leave_organization, purge_org_vault, organizations_delete_organization). No prerequisites, no admin-permission note, and no 'do not use if…' exclusion is given despite the tool being destructive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_aliveAliveB
Liveness/health check (also verifies DB connectivity)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-destructive, open-world behavior, so the bar is lower. The description adds one genuinely useful behavioral fact — that a response also exercises DB connectivity — but says nothing about auth requirements, expected response shape, or what a failure indicates.
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?
A single short clause with the core purpose front-loaded and no filler. It is arguably too terse rather than padded, but nothing is wasted.
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?
No output schema exists, so the description could reasonably say what a healthy vs unhealthy result looks like and whether arguments are needed. For a trivial probe this is close to adequate, but the undocumented parameters leave a real hole.
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 0% across three generic parameters (form, params, json_body), and the description supplies no parameter meaning at all. An agent cannot tell from either source whether these should be left empty for a plain health ping.
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?
States a specific verb+resource: liveness/health check, plus the extra detail that it verifies DB connectivity. That distinguishes it from pure version/status siblings like vaultwarden_version or vaultwarden_now, though it never names an alternative explicitly.
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?
Usage is only implied — an agent can infer this is the 'is the server up and can it reach the DB' probe. There is no explicit when-to-use vs vaultwarden_version, vaultwarden_config, or the diagnostics tools, and no failure-handling guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_approve_emergency_accessApprove emergency accessB
Grantor approves an in-progress request early (skips wait)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is a non-read-only, non-destructive, open-world operation; the description adds real value beyond that by stating the concrete behavior — the normal waiting period is bypassed — and that the caller must be the grantor. It does not say what state the request ends in on failure or what is returned.
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?
A single front-loaded sentence with no filler; the key qualifier (skips wait) is placed prominently. It is efficient but so terse that it borders on under-specification rather than conciseness.
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 state-mutating tool with 4 parameters (three of them undocumented polymorphic envelopes) and no output schema, the description should at least identify the required request identifier and note the permission model. It supplies the semantic effect but leaves the entire calling contract unstated.
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 0% across 4 parameters, including three opaque fields (form, params, json_body), so the description carries the full burden — yet it never mentions emer_id or any other parameter. An agent cannot tell from the text what identifier to supply or what the form/params/json_body envelopes are for.
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?
States a specific verb (approves), resource (emergency access request), the actor (grantor) and the effect (skips wait). This clearly separates it from sibling emergency-access tools such as reject_emergency_access or takeover_emergency_access, though it does not name any sibling explicitly.
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 phrase 'in-progress request' implies a precondition (a pending request must already exist) and 'grantor' implies who may call it. However, it never states when to prefer it over confirm_emergency_access or when the wait should be allowed to elapse instead, so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_archive_cipher_putArchive cipher putB
Archive one cipher (hide from default view, distinct from trash)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-read-only, non-destructive, and open-world. The description adds useful context that archiving hides the cipher from the default view and is distinct from trash, but it does not explain reversibility, permissions, effects on collections or folders, or what the response contains.
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 single front-loaded sentence with no wasted words. The parenthetical distinction from trash is compact and directly useful.
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?
This is a mutation tool with four parameters, no output schema, and zero schema description coverage. The one-line description does not explain the optional parameters, required identifiers, permissions, or what archiving changes, so it is not complete enough for confident 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?
Schema description coverage is 0%, so the description must compensate for four undocumented parameters. It implies that one cipher is targeted, loosely mapping to cipher_id, but it says nothing about form, params, or json_body, nor does it use the actual parameter name.
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 and resource: archive one cipher. It also explicitly distinguishes archiving from trashing, which is helpful. However, it does not name nearby siblings such as vaultwarden_archive_cipher_selected or vaultwarden_unarchive_cipher_put, so sibling differentiation is incomplete.
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?
It implies when to use this tool by contrasting archiving with trash: use this to hide a cipher from the default view rather than deleting it. It does not specify when to choose this over vaultwarden_archive_cipher_selected or when to use the unarchive sibling instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_archive_cipher_selectedArchive cipher selectedC
Bulk archive ciphers
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this mutates state without being classified destructive. The description adds nothing beyond that — it doesn't say what happens to already-archived items, whether archiving is reversible (unarchive sibling exists but isn't referenced), or what permissions are required. Given three opaque parameters, this is a significant gap.
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?
Three words, zero waste, but under-specification rather than efficiency — the description is too short to carry any of the needed information. Nothing is front-loaded because there is nothing to front-load.
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 mutating bulk operation with zero schema coverage and no output schema, the description should explain the selection mechanism and the effect of archiving. It leaves all of that unstated, though the name plus annotations at least convey it is a non-destructive bulk write.
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 0% and the three parameters ('form', 'params', 'json_body') are completely generic containers with no types or descriptions. The description does not mention how the cipher selection is expressed, so the agent has no way to know what to pass.
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 names a specific verb and resource ('archive ciphers') and adds scope ('bulk'), which distinguishes it from the single-cipher archive variant. However, it never explains what 'selected' means — presumably a set of cipher IDs — and does not differentiate it from vaultwarden_archive_cipher_put or vaultwarden_unarchive_cipher_selected beyond the word 'bulk'.
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?
There is no guidance on when to use this versus vaultwarden_archive_cipher_put or the newer ciphers_* tools. No prerequisites (authentication, ownership/admin rights) or exclusions are stated; the agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_backup_dbBackup dbB
Trigger an on-demand database backup (sqlite only)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive, open-world operation, so the safety profile is partly covered. The description adds the sqlite-only precondition, which is real context, but says nothing about admin privileges required, whether the backup is synchronous or async, where the file is written, or what the response contains.
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?
A single eight-word sentence with the constraint parenthesized at the end — zero waste and front-loaded. It is defensibly efficient, though bordering on under-specified for a mutating admin operation.
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 state-changing backup trigger with no output schema, three undocumented parameters, and no stated auth or async behavior, the description leaves too much unknown. An agent cannot predict the effect, the wait time, or the return value from this text alone.
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 0% and the three parameters (form, params, json_body) are opaque generic passthrough wrappers with no explanation anywhere. The description does not mention parameters at all; at best 'on-demand trigger' implies the call is effectively parameterless, but it never clarifies what the passthrough fields mean or whether any are needed.
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?
States a specific verb (Trigger) and resource (on-demand database backup) plus an environment constraint (sqlite only), so an agent immediately knows what happens. It is clear but does not position itself relative to any of the many sibling administrative tools, though none of them appear to be backups.
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 '(sqlite only)' qualifier is a genuine applicability condition that tells the agent when this tool will work. However, there is no explicit when-to-use guidance versus alternatives (e.g. scheduled/automatic backups, or the other maintenance tools like vaultwarden_maintenance_plan_deduplication), and no prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_bulk_confirm_inviteBulk confirm inviteB
Bulk confirm accepted invites, delivering the org key to each new member
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive operation, and the description usefully adds that the org key is delivered to each member. It does not disclose whether this affects all accepted invites in the org, what permissions are required, or whether the action is idempotent.
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?
A single front-loaded sentence with no wasted words. The key effect and scope are conveyed efficiently.
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 bulk mutation with four undocumented parameters and no output schema, the description is too thin. It omits target selection, permission requirements, expected response, and failure behavior, leaving the agent with significant unknowns.
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 0% across four parameters, including the required org_id, and the description does not compensate. It only vaguely implies organizational scope through 'org key' and gives no meaning for form, params, or json_body.
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?
States a specific verb and resource: bulk-confirm accepted invites, plus the effect of delivering the org key. The word 'Bulk' differentiates it from the sibling vaultwarden_confirm_invite, though it does not name that sibling explicitly.
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 phrase 'accepted invites' implies the precondition for use, but there is no explicit guidance on when to choose this over confirm_invite, bulk_reinvite_members, or other invite-related siblings, and no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_bulk_delete_groupsBulk delete groupsDDestructive
Bulk delete groups
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is known. However, the description adds nothing beyond the destructive framing — it does not say what 'bulk' means (selected IDs? all groups in org?), whether deletion is reversible, or what authorization is required.
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?
Three words, but this is under-specification rather than conciseness — there is no information to front-load. Nothing is wasted because nothing is said.
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 destructive bulk mutation with four undocumented parameters, no output schema, and no annotation detail beyond the hint flags, the definition is wholly inadequate. An agent could not safely construct a call from this.
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 0% across four parameters, including the opaque 'form', 'params', and 'json_body' fields, and the description provides zero compensation. An agent cannot determine how to specify which groups to delete or what org_id format is expected.
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?
Tautological: description restates name/title.
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?
There is no guidance whatsoever on when to use this versus the numerous single-delete and other bulk-delete siblings. No prerequisites (org admin rights, group selection mechanism) are stated, leaving the agent to infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_bulk_delete_memberBulk delete memberCDestructive
Bulk remove members from the org
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds only the org scoping, and says nothing about whether member data is permanently removed, what happens to vaults/collections they owned, or whether admin privileges are required — all critical for a destructive bulk 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?
A single short sentence with no filler, but it is under-specified rather than concise; nothing is front-loaded because there is almost nothing to front-load.
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?
A destructive bulk mutation with four opaque parameters, no output schema, and no annotations beyond the destructive hint. The description should at minimum explain the member-selection input and any irreversible consequences; it does neither.
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 0%: org_id, form, params, and json_body have no types or descriptions. 'From the org' hints that org_id scopes the operation, but nothing explains how the target members are specified (presumably json_body) — the most important parameter semantics for this tool are missing.
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?
States a specific verb ('Bulk remove') and resource ('members from the org'), which is clear. However, it does not differentiate from nearby siblings like vaultwarden_bulk_revoke_members or vaultwarden_delete_member, so an agent cannot tell which one to pick from the description alone.
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?
No guidance on when to use this versus bulk_revoke_members, delete_member, or bulk_restore_members. No prerequisites, no consequences stated, no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_bulk_delete_organization_collectionsBulk delete organization collectionsCDestructive
Bulk delete collections by id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is known. The description adds nothing beyond that: no mention that deletion is irreversible, whether it requires elevated org permissions, or how many collections the bulk payload can contain.
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?
A single front-loaded sentence with no filler, but its brevity comes from omission rather than efficiency. There is no wasted text, yet almost nothing is said.
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?
A destructive bulk mutation with an undocumented four-parameter schema, no output schema, and a large ambiguous sibling surface. The description leaves the critical question (how ids are supplied) unanswered, which is well short of complete.
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 0% across four parameters, so the description must compensate and does not. It refers to 'id' that does not exist as a named parameter and never explains whether the id list belongs in form, params, or json_body.
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?
States a recognizable verb+resource (bulk delete collections), which is enough to distinguish it from the single-item vaultwarden_delete_organization_collection. However, 'by id' is misleading: the schema exposes no 'id' parameter, only org_id plus opaque form/params/json_body containers, so an agent cannot tell where the ids actually go.
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?
No statement of when to use this versus the single-collection delete sibling or vaultwarden_bulk_delete_groups, and no prerequisites such as admin/owner role or org scoping. The agent must infer everything from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_bulk_public_keysBulk public keysC
Bulk-fetch public keys for a list of user ids
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'fetch', implying a read operation, yet annotations declare readOnlyHint=false, a mismatch an agent must resolve. Beyond this inconsistency it says nothing about authorization requirements, whether keys of deleted/locked users are included, or behavior for missing ids, though openWorldHint and destructiveHint=false are separately provided in 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?
A single efficient sentence with no filler, front-loading the operation and resource. It is appropriately short, though that brevity contributes to the semantic gaps noted elsewhere.
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, 0% parameter coverage, and four opaque parameters, the description does not provide enough to call the tool correctly. An agent cannot determine where to pass user ids, what the response shape is, or how partial failures are handled.
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 0% and the properties (form, params, json_body) are opaque untyped blobs. The description mentions 'a list of user ids' but never maps that to any parameter (only org_id is required and undocumented), leaving the actual user-id payload location ambiguous.
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?
States a specific verb (bulk-fetch) and resource (public keys) with scope (for a list of user ids). However, it does not distinguish itself from sibling read tools like vaultwarden_get_public_keys, vaultwarden_get_organization_public_key, and vaultwarden_get_organization_keys, so an agent cannot easily tell which key-fetching tool to choose.
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 no guidance on when to use this bulk variant versus the singular get_public_keys or the organization-scoped key tools. No prerequisites, no when-not conditions, and no alternatives are named despite many closely related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_bulk_reinvite_membersBulk reinvite membersC
Bulk resend pending invites
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is not read-only, is open-world, and is non-destructive. The description adds almost no behavioral context beyond that: it does not clarify which members are selected, whether emails are actually sent, what permissions are required, or whether there are rate limits or side effects.
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 single front-loaded phrase with no wasted words, which is structurally efficient. However, it is so terse that it omits essential information rather than being appropriately sized for a bulk operation with four parameters.
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?
This is a bulk mutation-style operation with no output schema and four parameters at 0% schema description coverage. The four-word description does not explain selection criteria, required permissions, expected outcome, or how to invoke it correctly, so it is not complete enough for confident use.
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 0% and the description mentions none of the four parameters. The required org_id is not explained, and the meanings or expected formats of form, params, and json_body are completely absent, leaving an agent unable to infer parameter usage.
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 ('resend') and resource ('pending invites') with a bulk scope, so the general action is clear. However, it does not distinguish this tool from closely related siblings such as vaultwarden_reinvite_member, vaultwarden_resend_invite, vaultwarden_resend_user_invite, or vaultwarden_bulk_confirm_invite.
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 phrase 'Bulk resend pending invites' implies the tool is used when several pending invitations need to be resent, but it gives no explicit when-to-use versus single-member alternatives, no prerequisites, and no exclusions or warnings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_bulk_restore_membersBulk restore membersD
Bulk restore revoked members
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the agent knows this is a non-destructive mutation against an external system. The description adds nothing beyond that: no statement of which members are affected, how they are identified, whether it requires an admin token, or what happens to already-active members.
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 four-word phrase is concise and technically front-loaded, but it is under-specification rather than concision; every sentence that would earn its place is missing.
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?
A mutation tool with four undocumented parameters, no output schema, and no annotations covering semantics beyond safety hints. The description leaves the agent unable to determine required authorization, the shape of json_body, or the effect/return of the operation.
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 0% and the four properties (form, org_id, params, json_body) have no types or descriptions. The description supplies no parameter meaning at all — not even which identifier selects the members to restore, beyond the required org_id.
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?
"Bulk restore revoked members" is essentially a restatement of the title "Bulk restore members" with one qualifier added. It names a verb and resource, but gives no clue how it differs from sibling tools like vaultwarden_restore_member, vaultwarden_restore_member_vnext, or vaultwarden_bulk_revoke_members (the inverse operation).
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?
There is no guidance on when to use this bulk endpoint versus the singular vaultwarden_restore_member/vaultwarden_restore_member_vnext, nor any prerequisite (admin role, org scope, whether members must already be revoked). An agent facing a dozen restore/revoke siblings has nothing to route on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_bulk_revoke_membersBulk revoke membersD
Bulk revoke members
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, but the description adds no context about what revocation does to the affected members (access removal? data retention?), whether it requires admin/owner rights, or whether it is reversible. For a bulk mutation on an org, this is a significant transparency gap.
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?
Three words is not wasteful but is severe under-specification rather than conciseness. There is no front-loaded explanation of effect or scope to anchor the call.
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?
A bulk, open-world, mutation tool with four undocumented parameters, no output schema, and a three-word description leaves an agent with essentially nothing to act on. The description is completely inadequate for the tool's complexity.
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 0% and all four parameters (form, org_id, params, json_body) are undocumented and largely untyped, with only org_id required. The description offers no meaning for any of them, leaving an agent unable to construct a valid request.
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?
Tautological: description restates name/title.
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?
Nothing states when to use this versus the many adjacent siblings such as vaultwarden_revoke_member (single), vaultwarden_bulk_delete_member, or vaultwarden_bulk_restore_members. The only implicit signal is the word "bulk," which comes from the name, not from guidance about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_ciphers_create_itemCreate ItemA
Create item (vaultwarden_ciphers). Read and write vault items (ciphers).
The decrypted actions (list_items, get_item, create_item,
edit_item) return or accept plaintext item contents because the
caller explicitly asked for them — never log, echo, or otherwise
surface that content elsewhere. move_to_trash soft-deletes items
by id (recoverable). Every other ciphers API route is reachable
by its route name via call_operation.
CONCEPT:VW-ECO.mcp.cipher-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true. The description adds valuable behavioral context beyond that: create_item accepts plaintext item content, which must never be logged or echoed elsewhere, and it is part of the decrypted cipher actions. It does not contradict the 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 front-loads the tool purpose, but it mixes in family-level security guidance and notes about unrelated actions such as move_to_trash. Those warnings are relevant context, but the paragraph is not tightly focused on how to invoke create_item.
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?
Annotations and an output schema are present, and the description covers the plaintext handling caveat, so the agent knows the action is a write involving sensitive content. However, for a create operation whose only input is params_json, the description does not explain what item fields are expected, leaving a meaningful invocation 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?
The tool has a single params_json parameter with 100% schema description coverage, but the schema only says it is a JSON object of parameters for the action. The description adds no detail about what fields should go inside params_json for a create-item operation, so it does not improve parameter understanding beyond the generic schema.
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 names a specific action and resource: "Create item (vaultwarden_ciphers)" and frames it within vault item cipher operations. It is clear what the tool does, but it does not explicitly distinguish this high-level create action from the many sibling create-cipher routes such as vaultwarden_post_cipher or vaultwarden_post_ciphers_create.
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 implies that create_item is one of the high-level decrypted cipher actions and says every other ciphers route is reachable via call_operation. However, it does not explicitly state when to choose this tool over alternatives, nor does it give prerequisites or exclusions for creating an item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_ciphers_edit_itemEdit ItemC
Edit item (vaultwarden_ciphers). Read and write vault items (ciphers).
The decrypted actions (list_items, get_item, create_item,
edit_item) return or accept plaintext item contents because the
caller explicitly asked for them — never log, echo, or otherwise
surface that content elsewhere. move_to_trash soft-deletes items
by id (recoverable). Every other ciphers API route is reachable
by its route name via call_operation.
CONCEPT:VW-ECO.mcp.cipher-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and non-idempotent, so safety basics are covered. The description adds genuinely useful non-obvious context: this action handles plaintext item contents that must never be logged or echoed, and that soft-delete lives on move_to_trash rather than here. It does not say whether an edit replaces or merges fields, which matters for a non-idempotent write.
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 first sentence is front-loaded and useful, but several sentences describe other actions (list_items, get_item, create_item, move_to_trash) rather than this one, and the CONCEPT tag adds no operational value. Proportions are only partly appropriate for a single-action 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?
An output schema exists, so return values need not be explained. But for a non-idempotent mutation taking an arbitrary JSON parameter bag, the definition omits what an edit requires, whether partial updates are allowed, and what happens to unspecified fields — significant gaps the agent cannot resolve from structured data.
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 advertises 100% coverage but only documents an opaque 'params_json' JSON blob with no field breakdown, so real parameter semantics are effectively undocumented. The description does not name a single expected key (id, name, login, notes, folderId) or explain the JSON structure an agent must construct, leaving the caller to guess.
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 opens with 'Edit item (vaultwarden_ciphers)' and then describes cipher read/write generally, so the agent can infer it modifies an existing vault item. However, the bulk of the text is collection-level boilerplate and never distinguishes edit_item from the many sibling write routes (put_cipher, post_cipher_partial, put_cipher_partial, edit_member). The specific action is stated but not meaningfully differentiated.
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?
No guidance on when to use edit_item versus the numerous other cipher mutation tools in the sibling list, nor any prerequisites (item id, ownership, org/collection membership). The only routing hint given ('every other ciphers API route is reachable via call_operation') is generic and does not help select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_ciphers_get_itemGet ItemBRead-onlyIdempotent
Get item (vaultwarden_ciphers). Read and write vault items (ciphers).
The decrypted actions (list_items, get_item, create_item,
edit_item) return or accept plaintext item contents because the
caller explicitly asked for them — never log, echo, or otherwise
surface that content elsewhere. move_to_trash soft-deletes items
by id (recoverable). Every other ciphers API route is reachable
by its route name via call_operation.
CONCEPT:VW-ECO.mcp.cipher-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/non-destructive, but the description adds material context the annotations cannot: get_item returns plaintext (decrypted) item contents and the caller must not log or echo them. That is a genuine, decision-relevant disclosure. It falls short of 5 because it says nothing about required access, behavior when the item is missing, or trash state.
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 tool-specific content is a single short line; the remainder is concept-level boilerplate about create_item, edit_item, move_to_trash and call_operation that does not earn its place in a get_item definition. It is front-loaded with the name, but the payload is diluted by unrelated actions.
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 an output schema present, return structure need not be described, and the plaintext handling warning covers the main risk. Still missing for a read tool: what identifier form to pass in params_json and what happens on a missing or trashed item, which the caller must infer.
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 single parameter is an opaque params_json blob whose schema description ("JSON object of parameters for the action") gives no key-level detail; schema coverage is nominally 100%, so the baseline of 3 applies. However, the description does not compensate by naming the cipher id that get_item presumably requires, leaving the caller to guess the payload shape.
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 name and first sentence ("Get item (vaultwarden_ciphers). Read and write vault items (ciphers)") imply retrieval of a single cipher, but the body is family-level boilerplate that lumps get_item with list/create/edit/move_to_trash. It never differentiates this tool from close siblings such as vaultwarden_get_cipher, vaultwarden_get_cipher_details, or vaultwarden_ciphers_list_items, so an agent must infer which retrieval tool to pick.
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 never says when to use this tool rather than the list or other get variants, nor what condition selects it. The only routing statement ("Every other ciphers API route is reachable by its route name via call_operation") is about the escape hatch, not about choosing get_item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_ciphers_list_itemsList ItemsBRead-onlyIdempotent
List items (vaultwarden_ciphers). Read and write vault items (ciphers).
The decrypted actions (list_items, get_item, create_item,
edit_item) return or accept plaintext item contents because the
caller explicitly asked for them — never log, echo, or otherwise
surface that content elsewhere. move_to_trash soft-deletes items
by id (recoverable). Every other ciphers API route is reachable
by its route name via call_operation.
CONCEPT:VW-ECO.mcp.cipher-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description is not carrying the safety burden, yet it still adds real value: it discloses that decrypted actions return plaintext item contents, warns never to log or echo them, and notes that move_to_trash is a recoverable soft-delete. The one gap is that it does not describe listing behavior such as paging or result limits.
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 plaintext warning is valuable and correctly front-loaded, but the opening two sentences mix this tool's purpose with family-level read/write semantics, and the trailing CONCEPT tag and backticked route enumeration are payload-free for an invoking agent. Roughly half the text serves the tool group rather than this call.
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 an output schema present, the description need not explain return shape, and it does cover the sensitive-plaintext aspect well. It is still incomplete for a listing tool: no guidance on the params_json contents or on how listing results are scoped, which is the main decision an agent faces here.
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 single parameter is a free-form params_json bag whose schema text ('JSON object of parameters for the action') conveys no field-level meaning, so the nominal 100% coverage is formal rather than substantive. The description does not say which keys the list action accepts (search terms, organization/folder filters, pagination), leaving the agent to guess the pass-through schema.
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 first sentence names the resource ('List items (vaultwarden_ciphers)'), but the following sentence 'Read and write vault items (ciphers)' describes the whole cipher family rather than this read-only action, blurring what the tool actually does. Nothing distinguishes it from close siblings such as vaultwarden_get_ciphers, vaultwarden_get_cipher, or vaultwarden_ciphers_get_item, which an agent could easily pick instead.
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?
Usage is only implied: the name and 'list_items' phrase suggest a listing call, and the note that other ciphers routes are reachable via call_operation is a partial routing hint. There is no statement of when to choose this over get_item (single item) or get_ciphers, nor any prerequisites or filter conventions for listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_ciphers_move_to_trashMove To TrashA
Move to trash (vaultwarden_ciphers). Read and write vault items (ciphers).
The decrypted actions (list_items, get_item, create_item,
edit_item) return or accept plaintext item contents because the
caller explicitly asked for them — never log, echo, or otherwise
surface that content elsewhere. move_to_trash soft-deletes items
by id (recoverable). Every other ciphers API route is reachable
by its route name via call_operation.
CONCEPT:VW-ECO.mcp.cipher-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=false and readOnlyHint=false, and the description corroborates this by explaining the delete is soft and recoverable — useful context beyond the flags. It also adds a genuine operational constraint (never log or echo decrypted item contents), though that note is domain-wide boilerplate rather than specific to this action.
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 action-specific sentence is short and front-loaded, but the surrounding text is shared ciphers-domain boilerplate about decrypted actions and call_operation that does little for an agent choosing this specific tool. Roughly half the description is not about moving to trash.
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?
An output schema and annotations are present, so the description doesn't need to explain returns or the safety profile. It covers recoverability, the id-based targeting, and the confidentiality constraint — enough for correct invocation, with only the payload structure for params_json left thin.
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%, but the single parameter is an opaque params_json blob documented only as "JSON object of parameters for the action." The description's "by id" is the only hint that an item id belongs inside that object, which adds some value but leaves the payload shape underspecified.
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 names a concrete verb and resource — "move_to_trash soft-deletes items by id (recoverable)" — which tells an agent exactly what happens to the target item. The "recoverable" qualifier implicitly separates it from the many hard-delete siblings (delete_cipher, delete_item), but no sibling is named explicitly, so the differentiation still requires inference.
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?
Usage is only implied: "soft-deletes... (recoverable)" suggests this is the non-permanent alternative to deletion, and the closing sentence points at call_operation for other ciphers routes. There is no explicit when-to-use/when-not statement or named alternative such as vaultwarden_delete_cipher for permanent removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_configConfigB
Return server config/feature-flags/environment URLs used by clients on startup
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=true, but the description does not explain why a seemingly read-oriented 'Return' operation is marked non-read-only, nor does it mention auth requirements, rate limits, or possible side effects. It adds only the startup-use context, leaving important behavioral traits unaddressed.
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 single front-loaded sentence with no filler. Every phrase contributes to identifying the resource and the client-startup use case.
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 config retrieval tool, it gives a reasonable high-level indication of returned content (config, feature flags, environment URLs) and startup context. However, with no output schema and opaque optional parameters, it leaves the agent without enough detail about the response shape, auth needs, or how parameters affect the result.
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 has three parameters (form, params, json_body) with 0% description coverage, and the tool description says nothing about what they are for or when they should be supplied. An agent gets no guidance on how to populate them or whether the tool can be called with no arguments despite all parameters being optional.
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 ('Return') and resource ('server config/feature-flags/environment URLs'), making the tool's scope clear. It does not explicitly name sibling tools such as vaultwarden_post_config or vaultwarden_get_diagnostics_config, but the read-oriented framing distinguishes it from delete/config mutation variants.
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 phrase 'used by clients on startup' implies the context in which this tool is appropriate, but there is no explicit when-to-use guidance, no exclusions, and no comparison to alternatives like vaultwarden_get_diagnostics_config or vaultwarden_get_settings_domains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_confirm_emergency_accessConfirm emergency accessB
Grantor confirms the grantee, delivering the grantor’s vault key encrypted for the grantee
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly=false, destructive=false and openWorld=true; the description adds the non-obvious side effect that the grantor's vault key is transmitted encrypted to the grantee, which is exactly the kind of security-relevant behavior structured fields do not convey. It stops short of saying what state the grant moves to or whether the action is reversible.
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?
A single sentence with no filler, and the actor ('grantor') and effect are front-loaded. It is terse to the point of leaving required gaps, but nothing in it is wasted.
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 non-read-only mutation with no output schema, three undocumented optional parameters, and a crowded emergency-access sibling family, the description omits required inputs, preconditions, result state, and caller identity. Only the cryptographic side effect is covered, leaving the definition materially incomplete.
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 0% across four parameters, and the description explains none of them. It never mentions emer_id (the sole required argument) or what form/params/json_body carry, so an agent gets no help mapping intent to arguments.
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?
States a specific verb ('confirms') and resource ('the grantee' of emergency access), plus the mechanical effect of delivering the grantor's encrypted vault key. An agent can tell this is a confirmation step in the emergency-access flow, though it is not explicitly distinguished from close siblings like approve_emergency_access or emergency_access_accept_invite.
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?
No statement of when this step should be invoked versus the other emergency-access tools (initiate, approve, accept_invite, takeover, reject), nor any precondition such as which party must call it or what state the request must be in. The agent must infer the call ordering from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_confirm_inviteConfirm inviteC
Confirm one accepted invite
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare that this is a non-read-only, non-destructive, open-world operation. The description adds only that the invite must be 'accepted', without explaining side effects, permissions, reversibility, or what confirmation changes about the membership.
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 single front-loaded sentence with no wasted words. However, for a five-parameter mutation tool it is too terse to be considered appropriately sized.
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 tool has five parameters with no schema descriptions and no output schema. Annotations give a basic safety profile, but the description leaves essential parameter and behavioral details missing for a mutation operation.
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?
With five parameters and 0% schema description coverage, the description provides no meaning for org_id, member_id, form, params, or json_body. It does not compensate for the schema's lack of parameter documentation.
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 and resource: 'Confirm' an 'invite'. The phrase 'one accepted invite' distinguishes it from the sibling bulk_confirm_invite by indicating single-item scope, though it does not name the alternative explicitly.
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?
There is no explicit guidance on when to use this tool versus alternatives such as bulk_confirm_invite, resend_invite, or reinvite_member. The word 'one' implies single-item scope, but prerequisites and exclusions are left unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_create_organizationCreate organizationD
Create a new organization
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, and the description adds nothing further — no mention of required admin/owner privileges, whether the creator becomes an owner, billing/plan implications, or what happens on name collision. For a state-changing, open-world creation call this is a substantial gap, though not a contradiction.
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?
Four words with nothing wasted, but this is under-specification rather than conciseness — there is no front-loaded content beyond the obvious restatement of the name.
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?
A three-parameter mutation tool with zero parameter documentation, no output schema, and no behavioral detail is completely inadequate; the description conveys nothing an agent needs in order to call it correctly.
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?
All three parameters are named generically ('form', 'params', 'json_body') with 0% schema description coverage, and the description says nothing about what any of them should contain. An agent has literally no signal about required payload shape for creating an organization.
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 restates the tool name and title verbatim ('Create a new organization'), adding no differentiating information. Among siblings such as vaultwarden_post_organization, vaultwarden_organizations_post_api_key, and vaultwarden_get_organization, an agent has no way to tell which is the intended creation endpoint.
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?
There is no guidance on when to use this tool versus the many other organization-related siblings, no prerequisite or permission context, and no exclusions. The agent must guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_deauth_userDeauth userB
Force-logout a user (invalidate all sessions/security stamp)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description usefully discloses the side effect (all sessions and the security stamp are invalidated), which is more than the annotations say. However it doesn't mention required admin privileges, whether the user can immediately re-login, or reversibility, and the annotations already flag this as a non-read-only open-world 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?
A single front-loaded sentence with the action first and the effect in parentheses; no 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?
For a mutating admin operation with four parameters, zero schema coverage and no output schema, the description leaves the agent without the detail it needs: which parameter identifies the user, what auth/role is required, and what the call returns.
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 0% across 4 parameters, and the description says nothing about any of them. Only 'user_id' is inferable from the wording; the form/params/json_body parameters are undocumented in both schema and description.
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?
States a specific verb ('Force-logout') and resource (a user), plus the mechanism (invalidate all sessions/security stamp), which separates it from delete_user or disable_user at a conceptual level. It doesn't name those siblings explicitly, so an agent must still infer the boundary.
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?
No when-to-use or when-not-to-use guidance is given. With siblings like vaultwarden_disable_user, vaultwarden_delete_user and vaultwarden_delete_sso_user in the same family, the description never says when session revocation is preferable to disabling or deleting the account.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_accountDelete accountCDestructive
Delete own account (REST DELETE alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is covered. The description adds only the "REST DELETE alias" hint, which is mildly useful for method semantics but says nothing about irreversibility, what data is removed alongside the account, or whether the operation is reversible. Given how consequential this call is, that is a meaningful gap.
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 single sentence is front-loaded and wastes no words, but it is terse to the point of under-specification for a destructive tool. Brevity here comes from omission rather than efficiency.
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 three undocumented generic parameters, no output schema, and a destructive annotation, the description leaves an agent without the information needed to invoke this safely or correctly. At minimum it should explain the payload shape and confirm the deletion is permanent.
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 0% and the three parameters (form, params, json_body) are declared with no titles beyond their names and a null default. The description supplies no information about what any of them should contain, so an agent has no way to populate them correctly.
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?
States a specific verb and resource ("Delete own account") and the word "own" scopes it away from admin variants like vaultwarden_delete_user. It does not distinguish itself from the sibling vaultwarden_post_delete_account, which appears to be the same operation over a different HTTP method.
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?
No guidance on when to choose this over vaultwarden_post_delete_account, and no prerequisites stated (password/2FA confirmation, purge of vault data). A destructive self-service deletion call with an equivalent sibling deserves explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_attachmentDelete attachmentCDestructive
Delete an attachment
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No | ||
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not mention permissions, irreversibility, or side effects, leaving no extra behavioral context.
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 phrase is short and front-loaded, but its brevity reflects under-specification rather than efficient communication. It has no wasted words but also almost no content.
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 five parameters at 0% description coverage, no output schema, and numerous near-identical delete_attachment siblings, the description is not complete enough to guide correct selection or 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?
Schema description coverage is 0% for five parameters, including required cipher_id and attachment_id plus unexplained form, params, and json_body. The description provides no parameter meaning whatsoever.
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 'Delete an attachment' merely restates the tool name and title. It gives no scope, no distinction from sibling variants such as vaultwarden_delete_attachment_admin, vaultwarden_delete_attachment_post, or vaultwarden_delete_attachment_post_admin.
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?
There is no guidance on when to use this tool versus the many other attachment-deletion or attachment-retrieval siblings. The agent must infer selection entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_attachment_adminDelete attachment adminCDestructive
Delete an attachment (admin path)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No | ||
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, and readOnlyHint=false, so the destructive nature is covered. The description adds only 'admin path' as extra context; it does not say whether deletion is permanent, what permissions are required, or what happens to the parent cipher. With annotations carrying the main safety signal, this is adequate but thin.
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 single short phrase with no wasted text, and the action is front-loaded. However, its brevity leaves important context unstated rather than making every sentence earn its place.
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?
This is a destructive administrative mutation with five parameters, no schema descriptions, and no output schema. The description provides only the minimal action and admin-path note, which is not enough to help an agent call it correctly or understand its scope.
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 0%, and the description does not explain the five parameters. It implies attachment_id via 'attachment' but never explains cipher_id or the form/params/json_body fields, so an agent must infer required parameter meanings entirely from names.
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 and resource: deleting an attachment, with an 'admin path' qualifier. It clearly distinguishes the operation from generic attachment retrieval, though it does not explain how it differs from the many other delete-attachment variants such as vaultwarden_delete_attachment or vaultwarden_delete_attachment_post.
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 phrase 'admin path' hints that this is for an administrative endpoint, but there is no explicit guidance on when to use this versus the non-admin vaultwarden_delete_attachment or the POST variants. No prerequisites, exclusions, or alternative-selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_attachment_postDelete attachment postCDestructive
Delete an attachment (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No | ||
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true. The description adds nothing about irreversibility, required permissions, or side effects, so it does not enrich the behavioral picture beyond the 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 a single fragment with no wasted words, but it is under-specified for a destructive mutation with five parameters. Brevity here costs clarity rather than serving it.
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 destructive, open-world mutation with five mostly undocumented parameters and no output schema, the description is far too thin. It leaves the agent without enough information to invoke the tool correctly or safely.
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 0% across five parameters, including required cipher_id and attachment_id. The description just says 'attachment' and does not explain what those identifiers mean, nor the role of form, params, or json_body.
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 and resource ('Delete an attachment') and hints at a POST variant, but the parenthetical '(POST alias)' is vague and does not explain how it differs from the sibling vaultwarden_delete_attachment.
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?
There is no guidance on when to use this POST alias instead of vaultwarden_delete_attachment, nor any prerequisites or exclusions. The agent must infer the choice from the sibling name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_attachment_post_adminDelete attachment post adminCDestructive
Delete an attachment (admin path, POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No | ||
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is covered. Beyond that, the description adds nothing: it doesn't say whether deletion is irreversible, what admin privileges are required, or what happens to the parent cipher's attachment references.
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 single parenthetical sentence is front-loaded and free of filler, which is good. But the brevity crosses into under-specification for a destructive admin tool, so it's efficient without being sufficient.
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?
A destructive admin mutation with 5 undocumented parameters, no output schema, and four look-alike siblings needs far more than eight words. Essential information — admin auth requirement, irreversibility, path/alias selection — is absent.
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 0% across five parameters, including opaque ones (form, params, json_body) that an agent cannot interpret without help. The description mentions no parameters at all, so it fully fails to compensate for the coverage gap on a destructive call.
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?
States a specific verb and resource ('Delete an attachment') and adds a routing qualifier ('admin path, POST alias') that distinguishes it from the plain sibling vaultwarden_delete_attachment. It doesn't explain what 'admin path' implies for the caller, but the operation itself is unambiguous.
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?
There are four near-identical siblings (delete_attachment, delete_attachment_admin, delete_attachment_post, delete_attachment_post_admin), yet the description gives no rule for choosing this one over them. 'POST alias' hints at transport duplication but doesn't tell an agent when it matters or what prerequisites (admin credentials) apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipherDelete cipherCDestructive
Permanently delete a cipher (REST DELETE)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so safety profile is covered. The description adds 'Permanently', meaningfully clarifying that this is not a soft-delete to trash, which is useful context beyond annotations. It does not mention auth requirements or irreversible side effects beyond the single word.
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?
A single concise sentence with the key 'Permanently' qualifier front-loaded. It is efficient but borders on under-specification given the namespace complexity.
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 destructive mutation with no output schema and 0% parameter documentation, the description is too thin. It doesn't explain the cipher_id parameter or the mystery form/params/json_body parameters, nor how this differs from its many siblings, leaving an agent under-equipped to call it correctly.
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 0% across 4 parameters (cipher_id, form, params, json_body), and the description says nothing about any of them. With three undocumented optional parameters and no explanation of cipher_id format, the description does not compensate for the coverage gap.
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?
Clear verb+resource ('delete a cipher') with 'Permanently' and '(REST DELETE)' specifying the method, which partially distinguishes it from the _post/_put siblings. However, it does not distinguish it from the many other delete variants (delete_cipher_admin, delete_cipher_selected, etc.), leaving ambiguity in a crowded namespace.
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?
No guidance on when to use this vs. the numerous sibling delete variants, nor any mention of softer alternatives like vaultwarden_ciphers_move_to_trash or the archive tools. No prerequisites or auth requirements are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_adminDelete cipher adminCDestructive
Permanently delete via admin path (REST DELETE)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is covered. The word 'permanently' reinforces irreversibility but adds little beyond that, and '(REST DELETE)' is implementation detail rather than agent-relevant behavior such as auth requirements or side effects on shared collections.
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?
It is a single short sentence with no filler, so nothing is wasted. But the terseness is under-specification rather than efficiency, given the many near-identical siblings it must be distinguished from.
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?
A destructive, four-parameter tool with zero parameter documentation, no output schema, and a large family of look-alike siblings requires far more context than one fragment. It leaves the agent without enough to invoke it confidently or reliably.
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 0% across four parameters, and only cipher_id is required. The description says nothing about cipher_id requirements or what the opaque form/params/json_body fields are for, so it fully fails to compensate for the schema gap.
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?
It states the verb (permanently delete) and the distinguishing qualifier (via admin path), which separates it from the many non-admin delete_cipher siblings. However, the resource (a cipher) is only identifiable from the tool name, not the description text itself.
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?
There is no guidance on when to use this admin-path delete versus vaultwarden_delete_cipher or the half-dozen other delete_cipher variants, nor any prerequisites (admin privileges, ownership). The agent must infer selection purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_postDelete cipher postCDestructive
Permanently delete a cipher (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is covered. The word 'Permanently' is the only behavioral detail and largely restates the destructive hint. Nothing is said about auth requirements, whether deletion is reversible, cascading effects on attachments/shares, or what the response looks like.
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?
A single short phrase with zero waste and the essential verb+resource front-loaded. Its brevity is appropriate in form, though the tightness comes at the cost of the missing detail noted elsewhere.
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?
This is a destructive mutation with four undocumented parameters, no output schema, and only default annotations. The description does far too little to prepare an agent for invoking it correctly, leaving key behavior and parameter usage unexplained.
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 0%, with four parameters (cipher_id required, plus unexplained 'form', 'params', and 'json_body'), and the description mentions none of them. With zero documentation in both schema and description, the agent gets no guidance on what form/params/json_body are for or how cipher_id should be formatted.
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?
States a specific verb and resource: 'Permanently delete a cipher'. However, the parenthetical '(POST alias)' is the only differentiation effort, and it does not explain how this differs from the many sibling delete variants (vaultwarden_delete_cipher, delete_cipher_put, delete_cipher_selected, delete_cipher_admin, etc.). An agent cannot tell from this which delete to pick.
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?
There is no indication of when to use this tool versus alternatives. 'POST alias' hints that it is an HTTP-method variant of another tool, but the description never tells the agent when the POST version applies or what distinguishes it from the DELETE/PUT siblings in the list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_post_adminDelete cipher post adminBDestructive
Permanently delete a cipher via admin path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds useful context by saying the deletion is permanent and admin-path scoped, but it does not explain required admin permissions, auth flow, or side effects beyond deletion.
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 single short sentence with the key action and scope front-loaded. Every word contributes and there is no 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?
For a destructive admin deletion with four parameters, 0% schema description coverage, and no output schema, the definition is too sparse. The annotations cover destructiveness, but the description leaves admin requirements, parameter usage, and method-specific behavior unexplained.
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 0%, and four parameters exist. The description implies that a cipher is targeted, which helps infer cipher_id, but it gives no meaning for the other parameters such as form, params, or json_body.
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 gives a specific verb, resource, and scope: permanently delete a cipher via the admin path. It distinguishes the admin variant from non-admin siblings, but does not clarify how it differs from other admin deletion variants such as POST vs PUT or selected-cipher deletions.
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 states what the tool does but gives no explicit guidance on when to use it instead of sibling deletion tools. 'via admin path' implies an administrative context, but there are no exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_putDelete cipher putBDestructive
Soft-delete (move to trash) a cipher
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the main safety profile is covered. The description adds meaningful behavioral context by specifying that this is a soft-delete, not a permanent deletion, though it does not mention permissions, idempotency, or response behavior.
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 single efficient sentence with the key effect front-loaded. It contains no redundant wording 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?
For a four-parameter mutation tool with no output schema and no schema descriptions, the definition is too thin. It clarifies soft-delete behavior but omits parameter meaning, sibling routing, and operational prerequisites.
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 0% across four parameters, so the description must carry the burden. It only implies that the target is a cipher, without explaining cipher_id, form, params, or json_body, leaving most parameter semantics opaque.
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 and resource: soft-delete a cipher, and clarifies that it moves the item to trash. This distinguishes it from a permanent-delete interpretation, but it does not differentiate it from many similarly named sibling variants such as POST-based deletes or selected-cipher deletes.
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 implies the tool is for trashing a single cipher, but it gives no explicit guidance on when to use it instead of the many sibling delete, archive, restore, or move-to-trash tools. There are no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_put_adminDelete cipher put adminCDestructive
Soft-delete via admin path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is known. The description adds one meaningful fact beyond them — 'soft-delete', implying the cipher is recoverable (restorable) rather than purged — which is genuinely useful and not contradicted by the annotations. It still omits admin/auth requirements and side effects.
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?
A single four-word fragment. It is not verbose, but it is under-specified rather than concise; no sentence establishes scope, prerequisites, or effect, so the brevity costs the agent necessary information.
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 destructive, open-world mutation with four undocumented parameters and no output schema, the description should state what gets soft-deleted, what admin context means, and what the body/form parameters are for. Only 'soft-delete via admin path' is provided, leaving major gaps.
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 0% across 4 parameters; form, params, json_body, and even cipher_id have no documented meaning. The description adds nothing about parameters, only the word 'cipher' implicitly pointing at cipher_id. Far below the baseline 3 reserved for well-documented schemas.
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 phrase 'Soft-delete via admin path' gives a verb (soft-delete) and a route (admin path), but never names the resource (cipher) — that only comes from the tool name. Among dozens of delete_cipher siblings (delete_cipher, delete_cipher_put, delete_cipher_admin, delete_cipher_selected_put_admin, etc.), the description does not explain what 'put' or 'admin' distinguishes.
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?
There is no when-to-use guidance, no exclusion of alternatives, and no mention of the many sibling delete/restore variants. 'Admin path' is the only hint at context, and it is not explained (admin privilege requirement, difference from the non-admin delete_cipher_put).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_selectedDelete cipher selectedCDestructive
Bulk permanently delete ciphers by id list
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is clear. The description adds 'permanently' and 'bulk,' reinforcing that this is an irreversible multi-item mutation, but it does not disclose authorization requirements, confirmation behavior, or whether deletion is soft/hard beyond the adjective 'permanently.'
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 single sentence is front-loaded and wastes no words. Its terseness is efficient, though it leaves important detail unstated rather than being bloated.
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 destructive bulk-delete operation with three undocumented parameters and no output schema, the description is too thin. It omits prerequisites, id-list format, expected behavior on partial failure, and distinctions from the many sibling delete variants.
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 0% and all three parameters (form, params, json_body) are opaque. The description says deletion happens 'by id list,' which gives minimal semantic context, but it does not indicate which parameter carries the id list or what the other two parameters do.
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 (delete), resource (ciphers), and scope (bulk, permanently, by id list). It is clear enough to distinguish from a single-cipher delete, but it does not differentiate among the many near-duplicate siblings such as delete_cipher_selected_post, _put, or _admin.
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 implies bulk deletion but gives no explicit guidance on when to use this tool versus the singular delete_cipher or the numerous post/put/admin variants. No conditions, prerequisites, or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_selected_adminDelete cipher selected adminCDestructive
Bulk permanent delete via admin path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered. The description adds two genuinely useful facts beyond that: the delete is 'permanent' (i.e. bypasses the normal soft-delete/trash path) and it is 'bulk' rather than single-item. It omits how selection is expressed and whether admin privileges or confirmation are required, so it is additive but not rich.
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?
Six words with zero waste and the most important qualifier ('bulk permanent delete') front-loaded. At the same time it is so terse that the terseness becomes a liability — there is no room for the selection or privilege detail a destructive bulk tool needs.
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?
This is a destructive, bulk, admin-scoped mutation with three undocumented parameters and no output schema. The description supplies neither the payload shape nor any admin/permission prerequisite nor any confirmation of what is returned. Given the complexity and the dense sibling set, it leaves too much unexplained.
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 0% across three entirely opaque parameters (form, params, json_body) that look like generic request wrappers. The description's 'bulk' hints that multiple cipher IDs must be supplied, but never says which parameter carries them or what shape they take. With low coverage the description must compensate and it does not.
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 names a specific verb (delete) and resource (cipher), qualified by three meaningful modifiers: bulk, permanent, and admin path. Against a sibling set crowded with delete_cipher_selected, _post, _put and their _admin variants, those qualifiers do real disambiguating work. It stops short of naming the non-admin counterpart that an agent would need to compare against.
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?
There is no when-to-use or when-not-to-use guidance. 'via admin path' hints at a privilege context but never states that an agent should prefer this only in admin scope, nor points to vaultwarden_delete_cipher_selected as the non-admin alternative. The agent must infer the routing decision entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_selected_postDelete cipher selected postCDestructive
Bulk permanent delete (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The one genuine addition is "permanent" (as opposed to soft-delete/trash), which is valuable, but there is no mention of auth requirements, irreversibility confirmation, or selection mechanics.
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?
It is short and front-loaded, but the parenthetical "POST alias" is cryptic and the brevity comes at the cost of any actionable information.
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?
A destructive bulk-delete operation with three undocumented opaque parameters and no output schema requires far more explanation than one four-word phrase. The description leaves the selection mechanism and required inputs entirely unspecified.
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?
Three parameters with 0% schema description coverage and generic names (form, params, json_body). The description says nothing about them, so the agent has no information on how to specify which ciphers get deleted.
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 the verb and scope ("Bulk permanent delete") plus the HTTP-method qualifier ("POST alias"), which is somewhat more than the name alone. But it never names the resource (ciphers) or explains what "selected" means, leaving the agent to reconstruct the target from the tool name.
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?
No guidance on when to pick this over the many near-identical siblings (delete_cipher_selected, delete_cipher_selected_put, delete_cipher_selected_admin, etc.). "POST alias" hints at a method variant but does not state the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_selected_post_adminDelete cipher selected post adminCDestructive
Bulk permanent delete via admin path (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is known. The description adds genuine value by stating the deletion is 'permanent' and 'bulk', distinguishing it from soft-delete/archive paths, but it says nothing about required admin authorization, irreversibility confirmation, or response behavior.
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?
It is a single short, front-loaded phrase with no wasted filler, but the terseness comes at the cost of under-specification rather than efficiency; the fragmentary parenthetical reads like internal routing notation.
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 an irreversible bulk destructive operation with zero parameter documentation, no output schema, and dozens of near-identical siblings, the description is far too thin. An agent cannot determine the payload shape or confirm it is calling the correct admin POST variant.
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 0% and all three parameters (form, params, json_body) are generically named with no titles or descriptions. The only hint the description offers is 'bulk', implying a multi-ID payload, but it gives no syntax or format for identifying the selected ciphers.
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 names a specific action (bulk permanent delete) and identifies the variant via 'admin path (POST alias)', which does distinguish it from the many other delete_cipher_selected siblings. However, it never clarifies what 'selected' means (e.g. a set of cipher IDs submitted in the body) or what is being deleted, leaving the resource only inferable from the name.
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?
There is no guidance on when to use this over vaultwarden_delete_cipher_selected, vaultwarden_delete_cipher_selected_put_admin, or the archive/restore siblings beyond the cryptic 'admin path' tag. The agent must infer admin scope and POST-vs-PUT semantics on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_selected_putDelete cipher selected putCDestructive
Bulk soft-delete (move to trash)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's contribution is the qualification that this is a soft-delete moving items to trash, i.e. recoverable. That is genuinely additive, but it omits what identifies the selection, whether evidence/attachments survive, and any scoping limits.
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?
A single short fragment with no waste, but it is under-specified rather than concise: the one clause present omits the resource, and there is no front-loaded detail about inputs or effect.
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?
A destructive bulk mutation with three undocumented parameters, no output schema, and a dense set of sibling variants demands more than this one clause. How to specify the selected ciphers and what happens on partial failure are missing entirely.
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?
All three parameters (form, params, json_body) have 0% schema description coverage and are generically named, and the description adds nothing about how the list of ciphers to delete is supplied. The main semantic question the caller has is left completely unanswered.
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?
"Bulk soft-delete (move to trash)" states the operation and its recoverability, but never names the resource being deleted (ciphers); the agent must infer it from the tool name. With ~11 near-identical delete_cipher* siblings, it does nothing to distinguish itself.
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?
No guidance on when this PUT-based bulk-selected delete should be chosen over delete_cipher_selected, delete_cipher_selected_post, or the _admin variants. The only implicit signal is 'soft-delete' implying a recoverable alternative to a hard delete, which is not stated as a selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_cipher_selected_put_adminDelete cipher selected put adminCDestructive
Bulk soft-delete via admin path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered. The description does add real value by specifying 'soft-delete', meaning items move to trash rather than being permanently destroyed, and 'admin path' signals elevated-privilege scope — both facts annotations cannot express.
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?
Five words with no wasted phrasing, but the brevity reflects missing content rather than disciplined editing. What remains is front-loaded yet too thin to guide selection or invocation.
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 destructive, admin-scoped bulk mutation with no output schema and three undocumented parameters, the definition leaves critical gaps: selection payload shape, required privileges, confirmation semantics, and per-item failure behavior are all unstated.
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?
All three parameters (form, params, json_body) have 0% schema description coverage, are untyped with default null, and carry no enums — the description compensates for none of this. It never indicates where the list of selected cipher IDs goes, so an agent cannot construct a correct call from either source.
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?
'Bulk soft-delete via admin path' names a specific action (bulk soft-delete) and a scope (admin path), but never states the resource — ciphers — relying on the tool name to supply it. It also doesn't differentiate from the many near-identical siblings (delete_cipher_selected, delete_cipher_selected_put, delete_cipher_selected_post_admin) beyond the vague words 'admin path'.
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?
No statement of when to use this over the non-admin or POST variants, no prerequisites, and no mention that admin/org-level privileges are implied. The only hint toward selection is the word 'bulk', which tells the agent it acts on multiple ciphers but not how the selection is passed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_configDelete configCDestructive
Reset configuration overrides back to defaults
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, so safety and scope are covered structurally. The description adds genuine value by disclosing the concrete effect: overrides revert to defaults rather than data being hard-deleted. It still omits who can call it, whether the change is reversible or audited, and which configuration layer is affected.
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?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity reflects under-specification rather than disciplined density.
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 destructive, open-world mutation with three undocumented parameters and no output schema, the description should say which config is reset, who may do it, and what happens on success. None of that is present, so the definition is not sufficient on its own.
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 0% across three parameters (form, params, json_body) that have no titles or types beyond defaults of null. The description provides zero guidance on what these carry or which configuration overrides are targeted, so an agent cannot construct a valid call from the definition alone.
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 verb 'reset' plus the object 'configuration overrides' gives a workable action, and 'back to defaults' clarifies the effect of the deletion. However, it is not distinguished from sibling tools like vaultwarden_config or vaultwarden_admin, and the tool name (delete_config) uses a different verb than the description (reset), which can confuse an agent about whether state is removed or restored.
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?
There is no indication of when this should be invoked versus vaultwarden_config or vaultwarden_admin, nor any prerequisites (admin rights, which configuration scope, environment impact). Usage must be inferred entirely from the tool name and annotations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_emergency_accessDelete emergency accessCDestructive
Delete/revoke an emergency-access relationship
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is known before the description is read. The description adds only the gloss 'revoke' and says nothing about irreversibility, what happens to the grantee's access, whether pending or confirmed relationships can both be removed, or required permissions.
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?
A single short sentence with the operation front-loaded and no filler. It is efficient but borders on under-specification rather than tight, purposeful writing.
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?
This is a destructive delete with no output schema and zero parameter documentation; the description supplies none of the missing identifier semantics, permission requirements, or consequences of deletion. It is not complete enough for an agent to invoke this safely without inspecting the underlying API.
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 0% across four parameters, and the description never mentions emer_id or explains the identity of the emergency-access record, let alone the opaque form/params/json_body fields. With no documentation in either the schema or the description, an agent has to guess which identifier to supply.
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?
States a specific verb and resource ('Delete/revoke an emergency-access relationship'), which is clear enough to distinguish it from read/update emergency-access siblings. However, it does not distinguish it from the near-identical sibling vaultwarden_post_delete_emergency_access, nor from vaultwarden_reject_emergency_access, so an agent must infer the difference from names alone.
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?
No guidance on when this should be used versus alternatives such as vaultwarden_post_delete_emergency_access, vaultwarden_reject_emergency_access, or vaultwarden_put_emergency_access. The word 'revoke' hints at a use case but there are no explicit conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_folderDelete folderDDestructive
Delete a folder
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| folder_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so safety is covered structurally. The description contributes nothing beyond that—no statement that the folder and its contents are permanently removed, no permission or cascading-effect notes.
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 single sentence is short and front-loaded, but it carries no information beyond the tool name, so its brevity is under-specification rather than conciseness.
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 destructive, open-world mutation with four undocumented parameters, no output schema, and a near-identical sibling, this description supplies nothing an agent needs to invoke it correctly or safely.
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 0% across 4 parameters, including opaque ones like 'form', 'params', and 'json_body', and the description explains none of them. Only 'folder_id' is required, but nothing tells the agent what the other fields are for or when to supply them.
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 'Delete a folder' merely restates the tool name and title with no additional specificity. It does not distinguish this tool from the near-duplicate sibling vaultwarden_delete_folder_post, nor from vaultwarden_folders_create_folder or vaultwarden_put_folder, so an agent cannot tell which delete variant to pick.
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?
No when-to-use guidance, no prerequisites, and no mention of the alternative vaultwarden_delete_folder_post. Given the crowded sibling set of delete endpoints, silence here leaves the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_folder_postDelete folder postCDestructive
Delete a folder (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| folder_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as destructive, non-read-only, and open-world. The description restates "delete" and notes the POST alias but adds no context about what exactly is destroyed, whether contents are affected, permission requirements, or confirmation behavior.
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 single front-loaded sentence with no wasted text. Its brevity is efficient, though it contributes to the completeness gaps captured elsewhere.
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 destructive folder-deletion operation with four parameters and no output schema, the description is too thin. It identifies the action but does not explain the alias choice, parameter usage, or behavioral consequences beyond what annotations already state.
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?
With 0% schema description coverage and four parameters, the description provides almost no parameter guidance. "Folder" loosely implies folder_id, but the roles of form, params, and json_body are completely undocumented.
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 clear verb and resource: "Delete a folder," and adds "(POST alias)" to signal an HTTP-method variant. It is distinguishable from the primary delete-folder sibling, though it does not fully explain when to prefer this alias over the standard one.
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?
There is no explicit guidance on when to use this tool versus vaultwarden_delete_folder or other folder operations. The only usage signal is the parenthetical "POST alias," leaving the agent to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_groupDelete groupDDestructive
Delete a group
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| group_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, and readOnlyHint=false, so the safety profile is covered structurally. The description adds no consequence detail such as irreversibility, required admin rights, effect on members, or confirmation needs, and it does not contradict the 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 only three words, so it is not verbose, but it is under-specified rather than appropriately sized. It has no structure or front-loaded constraints to help an agent invoke the tool correctly.
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 destructive mutation with five undocumented parameters and no output schema, "Delete a group" is not enough to invoke confidently. Annotations cover the safety hint, but the definition omits scope, required IDs, optional payload fields, and side effects.
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?
There are five parameters with 0% schema description coverage, and the description mentions neither org_id/group_id nor the optional form/params/json_body fields. It provides no meaning, format, or constraints to compensate for the missing schema documentation.
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 says "Delete a group", which is a clear verb and resource but exactly restates the tool title/name. It gives no boundary versus vaultwarden_bulk_delete_groups or vaultwarden_post_delete_group, so it is tautological rather than informative.
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?
There is no when-to-use, when-not-to-use, or alternative routing. An agent cannot tell from this line whether to use single-group delete instead of the bulk-delete or POST siblings; the description is not misleading, but it provides no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_memberDelete memberCDestructive
Remove one member from the org
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is known. Beyond that, the description adds nothing: it does not say whether removal is permanent, what happens to the member's vault data or shared collections, whether re-invite is possible, or what authorization is needed — context that matters for an irreversible org mutation.
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?
A single short sentence with no filler and the core action front-loaded. It is efficient, though efficiency here partly reflects under-specification rather than disciplined editing.
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 destructive, open-world mutation in a very large sibling set, with 0% parameter documentation and no output schema, the description is far too thin. An agent lacks the information needed to confirm scope (single member), required permissions, and side effects before invoking.
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 0% across five parameters. The words "member" and "org" weakly imply org_id and member_id, but the three additional parameters (form, params, json_body) are entirely undocumented in both schema and description, so the description fails to compensate for the coverage gap.
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?
"Remove one member from the org" gives a clear verb and resource and the word "one" hints at single-target scope versus vaultwarden_bulk_delete_member. However, it does not distinguish itself from close siblings such as vaultwarden_revoke_member, vaultwarden_remove_2fa, or vaultwarden_delete_user, so an agent still has to guess which removal tool applies.
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?
There is no guidance on when to use this versus the many adjacent member tools (bulk_delete_member, revoke_member, restore_member, edit_member), no prerequisites, and no mention of required admin/owner permissions. The only implied usage is 'delete a member', which the name already conveys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_organization_collectionDelete organization collectionCDestructive
Delete a collection
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| col_id | Yes | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is covered. However, the description adds no behavioral detail beyond the annotations: it does not say what happens to collection contents, whether deletion is reversible, or what authorization is required.
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?
At three words, it is obviously concise, but this is under-specification rather than effective conciseness. A destructive operation needs at least a short qualifier or warning, and none is present.
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 a destructive delete tool with five parameters, zero schema descriptions, no output schema, and many sibling deletion tools, the description is materially incomplete. It does not explain what is deleted, what the required parameters mean, or what an agent should expect after 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?
Schema description coverage is 0% for five parameters, including required org_id and col_id, and the description says nothing about any parameter. It does not clarify which collection identifier is needed, what form/params/json_body are for, or how the organization scope is supplied.
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 and resource ('Delete a collection'), but it omits the organization scope implied by the tool name and required org_id parameter. It does not distinguish this from sibling tools such as vaultwarden_bulk_delete_organization_collections or other collection deletion endpoints.
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?
There is no when-to-use guidance, no mention of prerequisites or permissions, and no indication of when to prefer a sibling bulk-delete or admin variant. The agent must infer usage entirely from the tool name and annotations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_sendDelete sendDDestructive
Delete a Send
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| send_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare `destructiveHint: true`, `readOnlyHint: false`, and `openWorldHint: true`, so the agent knows this is an irreversible mutation. The description adds nothing beyond that: no mention of whether the Send is permanently purged, whether the deletion can be undone, what permissions or ownership are required, or how the API responds. It is consistent with the annotations but contributes no behavioral context of its own.
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?
It is a single short phrase with no wasted words, but that is under-specification rather than conciseness. There is nothing front-loaded because there is effectively nothing to front-load.
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 destructive, open-world tool with four undocumented parameters, no output schema, and dozens of similarly named siblings, this definition is wholly inadequate. An agent cannot determine the ID format, the effect on shared/expired Sends, or the expected response from the description alone.
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 0% and the description supplies no parameter information at all. Four parameters (`send_id`, `form`, `params`, `json_body`) are entirely undocumented, and even the required `send_id` has no type or format stated anywhere, so the agent must guess how to identify the Send.
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 restates the tool name and title almost verbatim: "Delete a Send" against `vaultwarden_delete_send` / "Delete send". It confirms the resource is a Vaultwarden Send rather than a cipher or folder, but adds no scope, permanence, or ownership information that would distinguish it from the many other delete siblings.
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?
There is no statement of when to use this tool versus alternatives such as `vaultwarden_put_send` (revoke/update) or `vaultwarden_get_sends`/`vaultwarden_download_send`. The only implied guidance comes from the verb 'delete', leaving the agent to infer prerequisites and consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_sso_userDelete sso userBDestructive
Unlink a user’s SSO identity (force back to password login)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is carried. The description adds real value with the post-condition that the account reverts to password login (i.e., the user is not deleted and remains accessible), but it omits permission requirements and whether the SSO link can be re-established.
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?
A single short clause with the key effect front-loaded and no filler. Nothing is wasted.
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 destructive, admin-level mutation with four undocumented parameters and no output schema, the description is too thin: it says what happens but not who may call it, what the arguments mean, or what to do if the user has no SSO link.
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 0% for 4 parameters. The description never mentions user_id or explains the opaque form/params/json_body properties, so it leaves the agent to guess at the shape of every argument.
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?
States a specific verb+resource ('Unlink a user's SSO identity') with a clarifying outcome ('force back to password login') that disambiguates it from the many sibling delete tools such as vaultwarden_delete_user. Does not name siblings explicitly, so not a 5.
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?
No when-to-use or when-not-to-use guidance, no mention of required privileges, and no pointer to alternatives like deauth_user or delete_user. The agent must infer selection criteria from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_userDelete userCDestructive
Permanently delete an instance user account
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, and 'Permanently' reinforces irreversibility, which is real added value. But the description says nothing about what data is destroyed alongside the account (ciphers, attachments, org memberships), whether admin privilege is required, or whether the action is logged/auditable.
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?
A single front-loaded sentence with no wasted words; the destructive qualifier is placed first. It is efficient but so terse that the brevity comes at the cost of missing guidance rather than being a virtue.
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 destructive, irreversible, admin-scoped operation with four parameters, zero schema description coverage, and no output schema, one sentence is not enough. An agent cannot tell what will be cascaded, what identifier form user_id expects, or how this differs from the several other user-deletion tools.
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 0% — user_id is an untyped property and the three optional wrapper fields (form, params, json_body) are undocumented. The description only implies that a user account must be identified, adding no format, ID-type, or sourcing information to compensate for the empty schema.
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?
States a specific verb and resource ('Permanently delete an instance user account'), and the word 'instance' usefully scopes it to a server-level account rather than an org membership. However, it does not distinguish itself from close siblings such as vaultwarden_delete_account, vaultwarden_delete_sso_user, vaultwarden_disable_user, or vaultwarden_bulk_delete_member, so an agent must infer the difference.
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?
No guidance on when to use this versus disable_user (reversible) or delete_sso_user/delete_account, and no prerequisites stated. The only usage signal is the adverb 'Permanently', which implies irreversibility but not a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_delete_webauthnDelete webauthnCDestructive
Remove a registered WebAuthn security key
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true and openWorldHint=true, so the safety profile is partly covered. However, the description adds no behavioral context such as irreversibility, authentication requirements, or what happens to the user's account after removal.
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 single front-loaded sentence with no wasted words. It is appropriately sized for the stated purpose.
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 destructive WebAuthn deletion tool with three undocumented wrapper parameters and no output schema, the description is far too thin. It does not explain parameter usage, required identifiers, permissions, or post-deletion effects.
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 0% and the three parameters (form, params, json_body) are completely untyped and undocumented. The description does not compensate by explaining how to identify the WebAuthn key to delete, making correct invocation difficult.
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 and resource: removing a registered WebAuthn security key. It is clear what the tool does, though it does not distinguish this tool from nearby WebAuthn management siblings such as get_webauthn or activate_webauthn.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no note about whose security key can be removed. The intended use is only implied by the word "Remove."
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_disable_authenticatorDisable authenticatorC
Disable TOTP 2FA
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds only the 'TOTP' qualifier and does not disclose auth requirements, whether disabling is reversible, what user target is affected, or other operational side effects beyond the 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 only a short phrase and is front-loaded, but it is underspecified for a security-sensitive mutation tool rather than appropriately concise. It does not use the available space to add required context.
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 a mutation tool with three undocumented parameters, no output schema, and minimal annotations, the description is not complete enough. It omits target-user details, permission requirements, and the effect of disabling TOTP.
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 has 3 parameters with 0% description coverage, all generic fields named form, params, and json_body. The description does not explain any parameter's meaning, format, or which values are expected.
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 and resource: 'Disable TOTP 2FA'. It is clear what operation is performed, but it does not distinguish this tool from adjacent siblings such as vaultwarden_disable_twofactor, vaultwarden_disable_twofactor_put, or vaultwarden_remove_2fa.
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?
There is no guidance on when this tool should be used versus alternatives like disable_twofactor or remove_2fa. No prerequisites, scope, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_disable_twofactorDisable twofactorC
Disable a specific 2FA provider
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already say readOnlyHint=false and destructiveHint=false, so the mutation profile is partially covered. The description adds nothing about authorization requirements, irreversibility, whether the user is notified, or what happens to backup codes/sessions when a 2FA provider is disabled.
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 single short sentence is front-loaded and free of filler. It is not verbose, though it is so terse that it omits useful structure rather than being overlong.
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, no parameter documentation, and no meaningful annotation explanation, the description is not complete enough for a security-sensitive mutation tool. It does not tell an agent how to specify the provider or what changes result from the call.
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 0% and the three parameters (form, params, json_body) are opaque and untyped beyond null defaults. The description does not identify a provider parameter, nor explain how the provider is specified, so it fails to compensate for the empty schema.
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 and resource ("Disable a specific 2FA provider"), but it does not distinguish this tool from close siblings such as vaultwarden_disable_twofactor_put, vaultwarden_disable_authenticator, or vaultwarden_remove_2fa. An agent cannot tell which of those to use from the description alone.
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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The phrase "specific 2FA provider" implies selection but never says how that selection is supplied or when this tool is preferred over related disable/remove tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_disable_twofactor_putDisable twofactor putC
Disable a specific 2FA provider (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true; the description adds nothing about permissions required, whether the change is reversible, or whether re-enabling is a separate call. For a security-lowering mutation, that silence is a real gap, and "disable" sits awkwardly beside destructiveHint=false without any explanation.
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?
It is a single, front-loaded sentence with no filler, but at this level of underspecification the brevity is a liability rather than a virtue.
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, a fully opaque request body, and only weak annotations, the description needs to carry auth requirements, provider identification, and side effects. It delivers none of these, leaving an agent able to understand the intent but not to invoke the tool safely.
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 0% and the three parameters (form, params, json_body) are untyped and undocumented. The description only implies that one of them identifies the 2FA provider; it never says which key carries the provider type or what values are accepted, so an agent cannot construct the call from this text.
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?
"Disable a specific 2FA provider" gives a clear verb and resource, and "(PUT alias)" distinguishes it from the sibling vaultwarden_disable_twofactor. What is missing is what "specific" means operationally (which provider field), but the agent can still tell what this tool does and how it differs from its non-PUT twin.
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 parenthetical "PUT alias" hints that a sibling exists, but there is no statement of when to pick this over vaultwarden_disable_twofactor, vaultwarden_disable_authenticator, or vaultwarden_remove_2fa. No preconditions, no exclusions, no prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_disable_userDisable userB
Disable (lock) a user account instance-wide
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose that the tool is not read-only and not destructive, and the description adds that it locks an account instance-wide. However, it omits important behavioral context for a mutation operation, such as reversibility, session effects, permission requirements, and what specifically happens to the account. With annotations lowering the bar, this is adequate but incomplete.
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 single front-loaded sentence with no filler. It states the action, object, and scope immediately.
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 an administrative mutation tool with no output schema and zero schema description coverage, the definition is too sparse. An agent lacks enough information about permissions, expected effects, reversibility, and how to provide the required user identifier.
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 0%, and the tool has four parameters including the required user_id. The description only implies that a user is targeted; it does not explain user_id or the form, params, and json_body parameters, so it fails to compensate for the schema gap.
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 names a specific verb and resource: disable/lock a user account. It also states scope with "instance-wide," which helps distinguish it from narrower account or session actions. It does not explicitly distinguish itself from close siblings such as vaultwarden_deauth_user or vaultwarden_delete_user, so it falls short of a 5.
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 no guidance on when to use this tool versus alternatives such as vaultwarden_enable_user, vaultwarden_deauth_user, or vaultwarden_delete_user. It only implies an admin-style user-management operation and does not state prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_download_sendDownload sendC
Anonymous: download the actual (still-encrypted) Send file bytes
| Name | Required | Description | Default |
|---|---|---|---|
| t | No | ||
| form | No | ||
| params | No | ||
| file_id | Yes | ||
| send_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds useful context—anonymous access and that the returned bytes remain encrypted—but it does not address whether a Send password is needed, the response format, or how the bytes are delivered. With annotations covering safety partially, a 3 is appropriate.
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 single sentence is front-loaded and every phrase carries meaning: 'Anonymous' and 'still-encrypted' both add information. It is concise, though it omits necessary detail rather than wasting 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 six-parameter tool with 0% schema coverage and no output schema, the description is too thin. It does not explain required IDs, optional request parameters, authentication expectations, or the return format, leaving the agent to infer too much.
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 0% and the tool has six parameters, including opaque ones like t, form, params, and json_body. The description says nothing about send_id, file_id, or any of the undocumented parameters, so it does not compensate for the schema gap at all.
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 (download) and resource (Send file bytes), and the phrase 'actual (still-encrypted) Send file bytes' distinguishes it from metadata-oriented siblings like vaultwarden_get_send. It does not explicitly name the sibling it complements, so it falls short of full 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?
There is no explicit guidance on when to use this tool versus vaultwarden_get_send or vaultwarden_get_sends, nor any conditions or prerequisites beyond the word 'Anonymous'. The agent must infer that this is the byte-retrieval counterpart to metadata retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_edit_memberEdit memberD
Edit a member (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, but the description adds no behavioral context. It does not say which member attributes can be edited, whether the operation requires org admin permissions, or what happens to unspecified fields.
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 short and front-loaded, but under-specification is not conciseness. The parenthetical '(POST alias)' is cryptic and does not earn its place without explaining the alias.
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 5-parameter mutation tool with no output schema and sparse annotations, this description is completely inadequate. It leaves essential parameter semantics and behavioral effects undocumented.
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 has 5 parameters with 0% description coverage, and the description does not explain any of them. In particular, the opaque 'form', 'params', and 'json_body' parameters are left entirely undocumented, and even org_id/member_id are only implicitly hinted by the verb.
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 effectively restates the title ('Edit member') and adds only the cryptic parenthetical '(POST alias)'. It does not specify what a member edit includes or distinguish this tool from close siblings like vaultwarden_put_member, vaultwarden_update_membership_type, or vaultwarden_bulk_reinvite_members.
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?
There is no guidance on when to use this tool versus alternatives such as vaultwarden_put_member or update_membership_type. The '(POST alias)' note hints at an HTTP method alias but provides no actionable selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_emailEmailC
Confirm email-2FA setup with the emailed code
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the safety profile is partly covered. The description adds that this is a confirmation step in a 2FA setup flow, but says nothing about authentication requirements, whether the code is single-use or expires, or what account state changes on success.
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?
A single short, front-loaded sentence with no filler. It is efficient, though its brevity borders on under-specification for a three-parameter mutation.
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 three undocumented parameters, no output schema, and an open-world mutation, the description leaves too much unspecified — no payload shape, no success/failure semantics, no indication of which sibling begins the flow it completes.
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 0% and all three parameters are opaque passthrough blobs (form, params, json_body) with no titles or types. The phrase 'with the emailed code' hints at the payload content but never says which parameter carries the code or what the surrounding payload must contain.
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 names a specific action (confirm) tied to a specific flow (email-2FA setup) and the required input (the emailed code), so an agent knows roughly what it does. It does not distinguish itself from near-duplicate siblings such as vaultwarden_post_email_token, vaultwarden_verify_otp, or vaultwarden_post_verify_email, so routing still requires schema inspection.
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?
There is no statement of when to call this versus the many other token/verification siblings, and no prerequisites are given (e.g. that an email-2FA setup must already have been initiated and a code sent). The agent must infer the flow position from the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_emergency_access_accept_inviteEmergency access accept inviteB
Grantee accepts a pending emergency-access invite
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the mutation and safety profile are known. The description adds the role context (grantee) and the precondition (pending invite), but does not explain side effects, authentication requirements, or what acceptance entails.
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 single, front-loaded sentence with no wasted words. It is appropriately concise for a simple action, though its terseness contributes to gaps in other dimensions.
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 a mutating tool with four undocumented parameters, no output schema, and only minimal annotations, the description is too thin. It should explain what acceptance does, what emer_id identifies, and what the other parameters are for, but it does none of that.
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 0% for four parameters, including the required emer_id. The description implies an invite identifier is needed but does not name or explain emer_id, form, params, or json_body, leaving the agent without parameter-level guidance.
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 and resource: "Grantee accepts a pending emergency-access invite." This clearly distinguishes it from siblings like send_invite, reject_emergency_access, and approve_emergency_access, though it does not explicitly name those alternatives.
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?
Usage is implied by the phrase "accepts a pending emergency-access invite" — an agent can infer it should be used when a grantee has a pending invite. However, there is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_emergency_access_send_inviteEmergency access send inviteC
Grantor invites another user (by email) as emergency contact
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=true, so the agent knows this mutates state and reaches outside the system. The description adds only the 'by email' mechanism and the actor role ('grantor') — it does not say that an email is actually dispatched, what happens to pending invites, or what permissions/plan the grantor needs.
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?
A single compact sentence with no filler and the actor/mechanism front-loaded. It is terse almost to the point of under-specification, but nothing in it is wasted.
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 mutation tool with no output schema and three undocumented parameters, the description is too thin: it omits the multi-step flow (invite → accept → confirm → approve/takeover) and any statement about what a successful call produces or requires. An agent could invoke it but not confidently.
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 0% with three opaque parameters (form, params, json_body), and the description only hints that an email address is needed without mapping it to any parameter or indicating where the contact email/access level goes. It does not compensate for the documentation gap.
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?
States a specific verb and resource: a grantor inviting another user by email as an emergency contact. This is clearly distinguishable from the invitee-side sibling vaultwarden_emergency_access_accept_invite, but the description never names siblings explicitly.
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?
No guidance on when to use this versus vaultwarden_initiate_emergency_access, vaultwarden_confirm_emergency_access, or vaultwarden_organizations_send_invite. No prerequisites stated (grantor must be an existing user, likely a premium/plan-gated feature, and the invitee must not already be a contact).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_enable_userEnable userC
Re-enable a disabled user account
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is not read-only and not destructive; the description adds only that the target account must be disabled. It omits admin permission requirements, idempotency, side effects, reversibility, and what happens if the account is already enabled.
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 single front-loaded sentence with no wasted words. It is as concise as possible while still naming the core operation.
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 an admin mutation tool with four undocumented parameters and no output schema, the definition is too sparse. It gives the basic intent but lacks permissions, parameter mapping, and behavioral details needed for reliable 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?
Schema description coverage is 0%, with four parameters and no descriptions. The definition says 'user account' but does not explain user_id or the generic form, params, and json_body fields, so it does not compensate for the schema gap.
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 ('re-enable') and resource ('disabled user account'), making the operation clear. It implicitly contrasts with disabling a user but does not explicitly differentiate from siblings such as vaultwarden_disable_user or vaultwarden_delete_user.
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?
Usage is only implied by 'disabled user account': the agent can infer this applies to accounts that are currently disabled. There is no explicit when-not guidance, prerequisite, or named alternative for re-enabling versus other user-management actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_folders_create_folderCreate FolderB
Create folder (vaultwarden_folders). Read and write personal-vault folders.
list_folders and create_folder (name) return decrypted
folder names because the caller explicitly asked for them. Every
other folders API route is reachable by its route name via
call_operation.
CONCEPT:VW-ECO.mcp.folder-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true). The description adds genuinely useful context beyond them: this is a write to the personal vault and it returns decrypted folder names, which is an important data-sensitivity disclosure. It omits what happens on duplicate names, permission requirements, and error behavior for a non-idempotent write.
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 core purpose is front-loaded, but the body mixes in tool-family routing notes and a CONCEPT identifier that do not directly help invoke this specific tool. The single-sentence first paragraph is efficient; the remaining text is partially reusable boilerplate rather than create_folder-specific instruction.
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?
An output schema exists, so return shape need not be explained, and the description usefully notes that returned names are decrypted. For a non-idempotent write against a personal vault, however, nothing is said about duplicates, confirmation, or side effects, leaving the agent without enough to predict outcome beyond success/failure.
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%, so the schema already documents params_json fully; baseline is 3. The description adds a small amount of value by revealing that the meaningful field inside params_json is 'name' ('create_folder (name)'), which the generic schema does not convey. No format, constraint, or encoding guidance is given for the JSON blob.
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 opening line names a concrete verb+resource ('Create folder') and scopes it to personal-vault folders, so the agent knows what will be produced. It also routes the agent away from the raw-route family ('every other folders API route is reachable via call_operation'). It stops short of naming the closest siblings (post_folder, put_folder, delete_folder) explicitly, so differentiation is only partially achieved.
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 tool-family routing implied by 'every other folders API route is reachable by its route name via call_operation' tells the agent this wrapper is the preferred path for creating folders, and list_folders is identified as the read counterpart. However, there is no explicit statement of when to choose create_folder over post_folder/post_folders, and no prerequisites (auth, vault unlock, duplicate-name behavior) are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_folders_list_foldersList FoldersBRead-onlyIdempotent
List folders (vaultwarden_folders). Read and write personal-vault folders.
list_folders and create_folder (name) return decrypted
folder names because the caller explicitly asked for them. Every
other folders API route is reachable by its route name via
call_operation.
CONCEPT:VW-ECO.mcp.folder-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds a genuinely non-obvious trait: folder names are returned decrypted. It does not cover authorization requirements or pagination/result-size behavior for what could be a large personal vault.
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 core statement is front-loaded and short, but the definition is cluttered by the 'CONCEPT:VW-ECO.mcp.folder-operations' tag and a parenthetical restating the internal group name, neither of which helps an agent decide or invoke. The middle sentence about create_folder is scoped to a different 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?
An output schema exists, so return-shape explanation is not required, and the decrypted-names note is a valuable addition. Still, for a list operation on a large sibling set, the definition omits any mention of filtering, ordering, or whether the personal vault requires an authenticated session.
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?
There is a single optional parameter (params_json) with 100% schema description coverage, so the schema carries the load and baseline 3 applies. The description mentions 'name' but only in the context of create_folder, not this tool's own params_json payload, so it adds little parameter-level meaning.
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?
States a concrete verb+resource ('List folders') and names the domain (personal-vault folders, vaultwarden_folders). It also explains how the rest of the folder API surface is reached, which helps place it among a very large sibling set. The phrase 'Read and write personal-vault folders' is slightly ambiguous for a list-only tool but the following sentence clarifies the listing behavior.
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?
It tells the agent that only list_folders and create_folder return decrypted names and that every other folders route is reached via call_operation, which is useful routing guidance. However, it never states when to choose this tool over similarly named siblings like vaultwarden_get_folders or vaultwarden_get_folder, leaving the primary selection decision implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_generate_authenticatorGenerate authenticatorC
Generate a new TOTP secret + provisioning QR data
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and openWorldHint=true, so the agent knows this is a state-changing, externally-visible operation. The description adds that a secret and QR provisioning payload are produced, but says nothing about whether the secret is single-use, whether it is returned once only, whether it is stored server-side, or what happens to an already-enabled authenticator.
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?
A single short line with no waste, but it is under-specified rather than concise. For a state-changing security-sensitive endpoint, one sentence leaves too much unsaid.
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?
There is no output schema and no parameter documentation, so the description is the only place an agent could learn about the returned secret/QR payload and the enrollment flow — and it doesn't. For an open-world, non-read-only tool with three undocumented parameters this is a substantial 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 0% across three untyped parameters (form, params, json_body), and the description supplies no information about what any of them accept. Since the schema provides no compensating detail, the description would need to carry the burden and does not.
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?
States a specific verb and resource ('generate a new TOTP secret') and adds the concrete output artifact ('provisioning QR data'), which distinguishes it from peers like get_twofactor or verify_otp. It doesn't explicitly distinguish itself from activate_authenticator, which is the nearest sibling.
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?
There is no guidance on when to call this versus alternatives. An agent cannot tell from the description that this is a pre-enrollment step that must be followed by activate_authenticator, nor whether it replaces an existing authenticator or fails if one is already configured.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_generate_webauthn_challengeGenerate webauthn challengeC
Generate a WebAuthn registration challenge
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is partly covered. The description adds nothing beyond them—no mention that this initiates stateful registration, whether authentication is required, whether the challenge expires, or what happens on repeat calls—leaving meaningful behavioral gaps for a flow-starting endpoint.
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 single sentence is efficient and front-loaded with the action, but its brevity reflects under-specification rather than disciplined conciseness. There is no wasted wording, but also almost no content.
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 tool that presumably starts a stateful WebAuthn registration flow, with three undocumented generic parameters and no output schema, the description is far too thin. It should at minimum identify the required payload shape and the follow-up call that consumes the challenge.
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 0% and all three parameters (form, params, json_body) are opaque, but the description says nothing about them. With low coverage the description is required to compensate, and it does not; an agent has no idea what belongs in json_body versus form or params.
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 and resource ("Generate a WebAuthn registration challenge"), which does narrow it somewhat against siblings like vaultwarden_get_webauthn and vaultwarden_activate_webauthn. However, it offers no differentiation from those siblings and does not clarify what the generated challenge is or how it is used, so the purpose remains only minimally clear.
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?
There is no guidance on when this tool should be called versus alternatives such as vaultwarden_get_webauthn, vaultwarden_activate_webauthn_put, or vaultwarden_register_finish. No prerequisites, no sequencing, no exclusions are stated; the agent must infer that this begins a WebAuthn registration flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_generate_yubikeyGenerate yubikeyC
Get current YubiKey OTP 2FA configuration (masked)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Get current ... configuration', implying a read operation, but annotations set readOnlyHint=false. The name/title says 'Generate yubikey', further contradicting the read-oriented description. No behavior, side effects, or auth requirements are disclosed.
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 single short sentence with no wasted wording and is front-loaded. Its conciseness is undermined by being misleading, but structurally it is efficient.
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 tool with 3 undocumented parameters, no output schema, and contradictory annotations, the description is drastically incomplete. It does not explain what is returned, what the parameters do, or how the operation behaves.
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 has 3 parameters (form, params, json_body) with 0% description coverage, and the description mentions none of them. With no parameter meaning provided anywhere, an agent cannot know what to supply for this tool.
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 and resource: 'Get current YubiKey OTP 2FA configuration (masked)'. However, this directly conflicts with the tool name and title 'Generate yubikey', making the actual purpose ambiguous to an agent. It also does not distinguish this tool from siblings such as activate_yubikey or get_twofactor.
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?
There is no guidance on when to use this tool versus alternatives like vaultwarden_activate_yubikey or vaultwarden_get_twofactor. The description gives no prerequisites, no context about whether generation is required first, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_all_devicesGet all devicesCRead-onlyIdempotent
List current user devices
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorld, so the safety profile is covered. The description adds the meaningful scoping detail that results are limited to the authenticated user's own devices rather than an admin-wide listing, but says nothing about result shape, ordering, or pagination.
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?
A single short sentence with the resource front-loaded and no filler. It is efficient, though efficiency here is partly achieved by omitting information rather than by tight editing.
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 and three undocumented parameters, the description should carry the burden of explaining the call shape and what comes back. Instead it is four words, leaving the agent without enough to invoke the tool correctly beyond the bare endpoint meaning.
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?
All three parameters (form, params, json_body) have 0% schema description coverage, and the description says nothing about them. These appear to be generic HTTP wrapper fields, which is exactly the case where the description should explain how to supply them, yet it is silent.
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?
States a verb (List) and resource (devices) with a scope qualifier (current user), which is better than a restated title. However, it does not distinguish this from close siblings like vaultwarden_get_device or vaultwarden_get_known_device, so an agent cannot confidently pick among them from the text alone.
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?
There is no when-to-use guidance, no exclusion of alternatives, and no mention of prerequisites such as authentication. The only hint is the phrase 'current user', leaving the agent to infer the choice against get_device by name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_api_webauthnGet api webauthnBRead-onlyIdempotent
Stub empty passkey list (prevents client errors; Vaultwarden does not support WebAuthn passwordless login)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuine value by disclosing the tool is a stub returning an empty list, so the agent knows not to expect real passkeys. Limited further detail, but annotations carry the rest.
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?
A single compact parenthetical with the key fact (stub, empty list) front-loaded and the reason immediately following. Efficient, no 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?
For a stub endpoint the description explains what it returns and why it exists, which is the essential context. The only omission is parameter handling, but the tool is a no-op shim where params are likely irrelevant.
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?
Three parameters (form, params, json_body) at 0% schema description coverage, and the description says nothing about them. The agent gets no guidance on what to pass or whether they are ignored for this stub – a real gap since 0% coverage means the description should compensate.
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?
States a specific outcome: a stub that returns an empty passkey list, with the reason (Vaultwarden does not support WebAuthn passwordless login). An agent can infer it differs from the real vaultwarden_get_webauthn, though the sibling is not named explicitly.
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?
'Prevents client errors' implies when to use it (client compatibility shims expecting a webauthn endpoint), but no explicit when/when-not guidance and no named alternative vs vaultwarden_get_webauthn or the activate_webauthn siblings. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_attachmentGet attachmentCRead-onlyIdempotent
Get attachment metadata + a short-lived download URL
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No | ||
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the safety profile is known. The description adds useful behavioral context by saying it returns metadata plus a 'short-lived download URL,' but it does not explain the URL's lifetime, permission requirements, or rate limits.
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 single, front-loaded sentence with no wasted words. It immediately states the action and the returned artifacts.
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 and 0% schema description coverage across five parameters, the description is too thin. It names the return value broadly but leaves the meaning and use of the required IDs and optional fields unexplained, making correct invocation harder.
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 0% and the description mentions none of the five parameters. It does not explain cipher_id, attachment_id, or the optional form/params/json_body fields, so an agent gets no semantic help beyond the bare parameter names.
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 and resource ('Get attachment') and adds what is returned ('metadata + a short-lived download URL'). It does not explicitly distinguish itself from nearby siblings such as delete_attachment or the cipher retrieval tools, but the purpose is clear.
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 no guidance on when to use this tool versus alternatives, nor does it state prerequisites such as authentication or required cipher/attachment IDs. It only implies the operation through the name and return description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_auth_requestGet auth requestBRead-onlyIdempotent
Poll status of one auth request by id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No | ||
| auth_request_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which fully covers the safety profile for polling. The description adds only that this polls status, without describing return behavior, authorization requirements, or eventual-consistency expectations beyond what the annotations imply.
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 single front-loaded sentence with no wasted words. It immediately states the action, the resource, and the lookup key.
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 read-only lookup, the annotations convey safety and idempotency, and the description states the core operation. However, with no output schema and 0% schema description coverage, the description leaves the three non-required parameters unexplained and does not clarify the relationship to the auth-request response siblings.
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 0% across four parameters, so the description must compensate. It explains only the auth_request_id parameter via "by id" and gives no meaning for the form, params, or json_body parameters.
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 and resource: poll the status of one auth request by id. It distinguishes the singular by-id operation from the plural list operations implicitly, but does not explicitly distinguish it from close siblings such as vaultwarden_get_auth_request_response or vaultwarden_get_auth_requests.
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 phrase "Poll status" implies the intended use case, so there is some usage guidance. However, it does not state when to use this instead of vaultwarden_get_auth_requests, vaultwarden_get_auth_requests_pending, or vaultwarden_get_auth_request_response, nor does it mention polling intervals or preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_auth_request_responseGet auth request responseCRead-onlyIdempotent
Anonymous poll for approval + encrypted key once approved
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| form | No | ||
| params | No | ||
| json_body | No | ||
| auth_request_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description does add real behavioral context beyond that: calls are anonymous (no session), and the payload differs by state – nothing sensitive until approved, encrypted key afterwards. It stops short of describing the polling cadence or the actual response 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?
Only one short fragment, so nothing is wasted, but it is an under-specified phrase rather than a front-loaded sentence with a clear subject. Brevity here costs information rather than buying clarity.
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, 5 undocumented parameters, and no explanation of the response states beyond a passing 'encrypted key once approved', the description leaves too much for an agent to guess about a non-obvious asynchronous approval flow.
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 0% across 5 parameters and the description mentions none of them. The required auth_request_id is only inferable from the tool name, and code/form/params/json_body are completely unexplained in either the schema or the description.
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 fragment 'Anonymous poll for approval + encrypted key once approved' hints at a polling endpoint returning a key after approval, but never states the verb+resource (get the response for a given auth request). An agent has to infer the capability from the tool name and the sibling pair get_auth_request / put_auth_request, which the description does not reference.
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?
'Poll for approval' implies a repeated-call/until-approved pattern, which is a slice of usage guidance, but there is no statement of when to call this instead of vaultwarden_get_auth_request or after vaultwarden_put_auth_request, and no prerequisites or termination condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_auth_requestsGet auth requestsBRead-onlyIdempotent
List all pending/approved auth requests for current user
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the useful scope detail that results are limited to the current user's requests, but says nothing about pagination, ordering, or result volume for what could be an unbounded list.
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?
A single front-loaded sentence with no filler; the scope and status filter come before any implied alternative. Nothing extraneous and nothing padded.
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?
There is no output schema, so the description is the only place a caller could learn what comes back (list shape, fields, pagination), and it stays silent. It is minimally sufficient to identify the operation but not to call it confidently or interpret the response.
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 0% across all three parameters (form, params, json_body), and the description supplies no information about what any of them accept or how to shape a request. For a tool whose schema is entirely undocumented, the description should have compensated and does not.
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?
States a specific verb and resource ('List all ... auth requests') plus the scope ('for current user') and the statuses covered ('pending/approved'). This differentiates it implicitly from siblings like vaultwarden_get_auth_request (singular), vaultwarden_get_auth_requests_pending, and vaultwarden_get_auth_request_response, though it never names them.
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 phrase 'pending/approved' implies this is the broad listing tool versus the pending-only sibling, but the description never states when to use this instead of vaultwarden_get_auth_requests_pending or vaultwarden_get_auth_request. Usage is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_auth_requests_pendingGet auth requests pendingBRead-onlyIdempotent
List only pending auth requests
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered elsewhere. The description contributes only the pending-only filter; it says nothing about ordering, pagination, or how pending is determined.
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?
A single, front-loaded sentence with no filler. Brevity is appropriate for a narrow filtered-list tool, though the terseness borders on under-specification given the opaque parameters.
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 read-only list with full annotation coverage and no output schema, the description covers purpose and filter adequately. However, with three undocumented, untyped parameters and no mention of them, the definition is not complete enough for confident 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?
Schema description coverage is 0% and all three parameters (form, params, json_body) are untyped and undocumented, so the description must compensate — but it mentions no parameters at all. An agent has no way to know what to put in these fields from either source.
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?
States a specific verb (List) and resource (auth requests) plus an explicit scope qualifier (only pending), which implicitly distinguishes it from the sibling vaultwarden_get_auth_requests that presumably returns all requests. It stops short of naming that sibling or describing what fields come back.
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 word 'only pending' implies this is the filtered variant of a broader list, but the description never names vaultwarden_get_auth_requests as the alternative or states when to prefer one over the other. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_auto_enroll_statusGet auto enroll statusBRead-onlyIdempotent
Check whether org auto-enrolls new members into password-reset admin recovery
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No | ||
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered structurally. The description adds the domain meaning (password-reset admin recovery enrollment) but says nothing about what the status value looks like (boolean vs enrollment policy object) or whether it varies per organization.
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?
A single front-loaded sentence with no filler; the key object of the check appears immediately. It is arguably too terse rather than too long, so no penalty for verbosity.
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 read tool with annotations covering safety and no output schema, the description is minimally sufficient to know what is being queried. However, it leaves the meaning of the required identifier and the shape of the returned status unexplained, which an agent needs to call it correctly.
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 0% across four parameters, and the description never mentions 'identifier' or what it should be (org ID, org name, email?). Since the schema provides no guidance, the description needed to compensate and does not.
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?
Names a specific verb ('Check whether') and a specific resource (org auto-enroll of new members into password-reset admin recovery), which is far more specific than the title. It doesn't explicitly contrast with any sibling (e.g. get_policy or get_reset_password_details), but the domain object is clear enough to distinguish it.
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?
No guidance on when to use this versus alternatives such as vaultwarden_get_policy or vaultwarden_get_reset_password_details, and no prerequisites (admin auth, which org scope) are stated. The agent must infer the use case entirely from the purpose sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_billing_metadataGet billing metadataCRead-onlyIdempotent
Get org billing metadata
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| _org_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=true, so safety is covered structurally. The description adds nothing beyond that — no note on required admin/org scope, what metadata fields come back, or why it is openWorld.
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?
Four words with no waste and the resource is front-loaded, but brevity here is under-specification rather than efficiency — there is room to say more without bloat.
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?
A tool with an undocumented required org id, three undocumented optional pass-through params (form/params/json_body), no output schema, and an openWorld annotation needs far more guidance than one phrase. An agent cannot confidently construct a call from this.
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 0% across 4 parameters, so the description carries the whole burden and fails. Only the word "org" loosely implies _org_id is the organization identifier; form, params, and json_body remain entirely unexplained.
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?
It states a verb and resource ("Get org billing metadata"), so the basic operation is inferable. But it does nothing to distinguish this from near-identical siblings like vaultwarden_get_self_host_billing_metadata and vaultwarden_get_billing_warnings, leaving scope ambiguity.
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?
No indication of when this tool applies versus the self-host billing metadata variant or billing warnings tool. The agent must guess which billing endpoint matches its intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_billing_warningsGet billing warningsCRead-onlyIdempotent
Get org billing warning banners
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| _org_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/openWorldHint/idempotentHint/destructiveHint, so the safety profile is covered. The description adds essentially nothing beyond the name (no return format, no note on what warnings look like or whether they require an admin scope).
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?
A single efficient sentence with no padding. It is appropriately front-loaded, though its brevity leaves gaps rather than being over-long.
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 four-parameter tool with zero schema description coverage and no output schema, the description is too thin. It does not explain parameter usage or result shape, so an agent lacks enough to invoke it confidently.
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 0% for four parameters, including the required _org_id. The description only implies an org context via "org" and gives no detail on _org_id or the form/params/json_body options.
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?
"Get org billing warning banners" states a specific verb (get) and resource (billing warning banners), so the agent can identify the tool. However, there is no differentiation from the many other vaultwarden_get_* read tools, and "banners" is a vague term for what is retrieved.
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?
No indication of when to use this versus related tools such as vaultwarden_get_billing_metadata or vaultwarden_get_self_host_billing_metadata. The context is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_cipherGet cipherCRead-onlyIdempotent
Get one cipher by id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds no behavioral context beyond that, such as error behavior for unknown ids or whether the cipher is returned decrypted or still encrypted.
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?
A single six-word sentence with no filler and the key detail (by id) front-loaded. It is efficient, though the brevity comes at the cost of substance covered in other dimensions.
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 tool with four parameters at 0% schema coverage and no output schema, one sentence is far from sufficient. An agent cannot tell what form/params/json_body mean or how the returned cipher is shaped, so the definition leaves real gaps.
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 0%, so the description must carry the burden, yet it only mentions the id implicitly. Three of the four parameters (form, params, json_body) are undocumented in both the schema and the description, leaving their purpose entirely opaque.
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 and resource ("Get one cipher") and scopes it to a single item by id, so the basic action is unambiguous. However, the sibling set contains several near-identical retrieval tools (vaultwarden_get_cipher_details, vaultwarden_get_cipher_admin, vaultwarden_ciphers_get_item), and the description does nothing to distinguish this one from them.
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?
There is no guidance on when to use this tool versus the other cipher-retrieval siblings or when to use the list variant instead. The agent must guess based on names alone, and no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_cipher_adminGet cipher adminBRead-onlyIdempotent
Get one cipher with admin-view fields (org admin bypassing normal access)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by noting it returns admin-view fields and bypasses normal access restrictions, which tells the agent this is an elevated read requiring org admin privilege. It does not describe response shape or edge cases, but annotations carry much of that burden.
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?
A single front-loaded sentence with no wasted words. The key distinguishing detail (admin-view, org admin bypass) is placed immediately after the core action.
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 tool with four parameters at 0% schema coverage and no output schema, the description is too thin. It clarifies the admin/read nature but does not compensate for the completely undocumented input parameters, so an agent cannot confidently supply form, params, or json_body.
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 0%, and the description only implies that a single cipher is identified (likely via cipher_id). It says nothing about the other three parameters (form, params, json_body), leaving most of the input surface unexplained.
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?
States a specific verb and resource ('Get one cipher') and clearly qualifies it as the admin-view variant, which distinguishes it from sibling get_cipher tools. It does not explicitly name the alternative sibling, but the admin qualifier is sufficient for an agent to understand the core purpose.
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 parenthetical 'org admin bypassing normal access' implies the tool is for org administrators who need elevated fields, but there is no explicit guidance on when to use this versus get_cipher or get_cipher_details, nor any stated exclusions or prerequisites beyond the admin hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_cipher_detailsGet cipher detailsCRead-onlyIdempotent
Get one cipher with full details incl. collection ids
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds one genuinely useful fact beyond that — the response includes collection ids — but says nothing about error behavior for a missing cipher_id, permissions required, or whether deleted/archived ciphers are returned.
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?
One compact sentence with the key scope detail front-loaded and no filler. Its brevity is efficient, though it shades into under-specification given the gaps elsewhere.
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?
In a namespace of 200+ mostly overlapping cipher tools, a single clause is thin: no parameter guidance for an undocumented 4-parameter schema, no output schema to fall back on, and no differentiation from the sibling get tools. Annotations cover safety, but not the disambiguation an agent actually needs here.
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 0% and cipher_id is declared as an untyped empty object, yet the description never mentions it or the three sibling parameters form, params, and json_body. With four undocumented parameters the description would need to compensate and does not.
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?
Specific verb (get) plus resource (one cipher) with a scope hint ('full details incl. collection ids') that separates it from the list tool get_ciphers. It does not, however, distinguish itself from the near-identical siblings vaultwarden_get_cipher and vaultwarden_ciphers_get_item, leaving ambiguity about which retrieval variant to pick.
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?
No statement of when to use this over vaultwarden_get_cipher, vaultwarden_ciphers_get_item, or vaultwarden_get_ciphers, and no prerequisites such as authentication or ownership of the cipher. The agent must infer selection purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_cipher_eventsGet cipher eventsBRead-onlyIdempotent
List audit-log events for one cipher
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, and openWorld=true, so the safety profile is covered. The description adds only the per-cipher scoping; it says nothing about permissions required, pagination, ordering, or what event fields are returned.
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?
A single front-loaded sentence with no waste. It is very terse, but appropriately so for a read-only list operation.
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 list tool with no output schema and 0% parameter documentation, the description leaves out return shape, pagination behavior, event ordering, and permission requirements. It is not sufficient to call the tool confidently beyond knowing it lists events for a cipher.
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 0% with five parameters (data, form, params, cipher_id, json_body). The description only vaguely implies cipher_id via 'for one cipher'; it does not document the other four parameters or the expected cipher_id format, failing to compensate for the schema gap.
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?
States a specific verb ('List') and resource ('audit-log events') scoped to one cipher. It distinguishes scope from broader siblings like vaultwarden_get_org_events and vaultwarden_get_user_events, though it doesn't name them.
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?
Implies usage by scoping to a single cipher, but gives no explicit when-to-use guidance or alternatives (e.g., org-level or user-level event listings). The reader must infer that this is the per-cipher audit view.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_ciphersGet ciphersCRead-onlyIdempotent
List all ciphers owned by or shared with the user
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered without description help. The description adds one genuinely useful behavioral fact — results span both personally owned and shared/org ciphers. It says nothing about archived/deleted items, pagination, or result volume, which for an openWorldHint list endpoint are the remaining unknowns.
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?
A single front-loaded sentence with zero filler — good structure. It is arguably too terse for the tool's complexity, but nothing in it is wasted.
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 three-parameter, open-world list endpoint with no output schema, the description should cover at minimum whether results are filtered/paginated and how the opaque form/params/json_body inputs are used. It covers only scope, leaving the agent guessing how to actually invoke it correctly.
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 0%: 'form', 'params' and 'json_body' are bare, untyped, undescribed properties. The description provides no hint about what any of them accept (filters? pagination? org ID?), so the agent gets no compensating semantics for a fully undocumented schema.
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 uses a specific verb (List) plus the resource (ciphers) and adds a meaningful scope: 'owned by or shared with the user'. That scope distinguishes it from single-item siblings like vaultwarden_get_cipher and vaultwarden_get_cipher_details, though it never names an alternative explicitly.
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?
There is no when-to-use guidance: nothing tells the agent to prefer this over vaultwarden_sync, vaultwarden_ciphers_list_items, or the singular get_cipher tools. The closest thing to guidance is the scope phrase 'owned by or shared with', which only weakly implies the vault-wide listing use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_collection_usersGet collection usersCRead-onlyIdempotent
List users/groups with access to one collection
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| col_id | Yes | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds no behavioral context beyond the basic listing purpose, such as authorization requirements or response/pagination behavior, but it does not contradict the 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 a single front-loaded sentence with no wasted words. Its terseness is efficient, though it leaves out useful scoping details.
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?
This is a simple read operation and annotations cover its safety profile, but with five parameters at 0% schema description coverage and no output schema, the one-line description is not complete enough. It does not clarify required identifiers or what the returned user/group access records contain.
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 0%, so the description must compensate for five undocumented parameters. It only implies the collection being queried and does not explain org_id, col_id, form, params, or json_body, leaving most parameter meaning to be inferred.
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 gives a specific verb ('List') and resource ('users/groups with access to one collection'), so the operation is clear. It does not explicitly distinguish this tool from nearby siblings such as group-member or organization-collection listing tools, which keeps it below a 5.
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 states what the tool returns but gives no guidance on when to use it versus alternatives like get_group_members, get_user_collections, or get_org_collection_detail. There are no prerequisites, exclusions, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_contactsGet contactsBRead-onlyIdempotent
List people the caller has granted emergency access to (as grantor)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description adds useful semantic context that the listing is scoped to the caller as grantor, but says nothing about return format, pagination, or whether it includes pending vs. confirmed grants.
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?
A single sentence, front-loaded with the verb and resource, with zero filler. Nothing could be trimmed without losing meaning.
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 list tool the purpose is reasonably conveyed, but three undocumented parameters at 0% coverage and no output schema leave real gaps. The description doesn't tell an agent what the params do or what shape the contact list returns.
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?
Three opaque parameters (form, params, json_body) at 0% schema description coverage, and the description offers no explanation of any of them. With low coverage, the description should compensate but does not, leaving the agent unable to know what these fields control.
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?
States a specific verb ('List') and resource ('people the caller has granted emergency access to') and clarifies the caller's role as 'grantor'. This distinguishes it from the inverse grantees concept, though the term 'contacts' in the name is less precise than the description body.
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?
No explicit when-to-use guidance or mention of the natural alternative (e.g., vaultwarden_get_grantees, which is the inverse relationship). The agent must infer the distinction from the 'as grantor' parenthetical alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_deviceGet deviceCRead-onlyIdempotent
Get one device by identifier
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| device_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the annotations, such as required permissions, behavior when the device is missing, or scope limitations.
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 single front-loaded sentence with no filler. It is appropriately sized for the minimal purpose it states, though it omits necessary detail elsewhere.
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 tool with four parameters and 0% schema description coverage, the description is too thin to invoke confidently. It identifies the required device_id semantically but leaves the extra request-shaping parameters unexplained, and no output schema exists to clarify the return shape.
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 0%, so the description must carry the burden of explaining parameters. 'By identifier' gives some meaning to device_id, but the three other parameters (form, params, json_body) remain entirely opaque and are not addressed.
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 and resource: get one device by identifier. The 'one device' phrasing distinguishes it from list tools such as vaultwarden_get_all_devices, but it does not explicitly differentiate it from similar single-device siblings like vaultwarden_get_known_device.
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 implies the tool requires an identifier to fetch a single device, but it gives no explicit guidance on when to choose this over vaultwarden_get_all_devices or adjacent device tools. No prerequisites, exclusions, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_device_verification_settingsGet device verification settingsCRead-onlyIdempotent
Get/return device-verification (new-device email) settings
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the useful clarification that this concerns the 'new-device email' feature, but says nothing about return shape, required auth level, or whether settings are server-wide or per-user.
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?
A single compact sentence with the key term front-loaded and no filler. It is efficient, though its brevity is partly the cause of the missing guidance elsewhere.
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?
No output schema exists and the description does not say what settings are returned or in what form, and the three undocumented parameters are left entirely unexplained. For a settings-read tool with openWorld behavior and zero schema coverage, more context is needed.
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 0% and there are three untyped, undescribed parameters (form, params, json_body) all defaulting to null. The description provides no parameter guidance at all, leaving the agent with no idea what these generic wrappers are for on a read-only GET.
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 names a specific verb ('Get/return') and resource ('device-verification (new-device email) settings'), and the parenthetical clarifies what the setting actually controls. It does not explicitly differentiate itself from neighboring get_* siblings, but the resource is narrow enough to be identifiable.
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?
There is no guidance on when to call this versus related settings/device tools, and no mention of prerequisites such as admin privileges. An agent must infer that this is an administrative read of server-level settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_diagnostics_configGet diagnostics configCRead-onlyIdempotent
Get sanitized server config as JSON for diagnostics
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, open-world, and non-destructive. The description adds useful context that the config is "sanitized" and returned as JSON, but it does not explain authentication needs, what fields are sanitized, or how complete the returned config is.
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 single front-loaded sentence with no wasted words. It is appropriately compact, though its terseness contributes to gaps elsewhere.
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 diagnostics-config getter with no output schema and completely undocumented parameters, the description is too thin. It does not explain the return shape beyond "JSON," nor how the three input fields should be used, leaving the agent under-equipped to invoke it correctly.
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 has three parameters at 0% description coverage, with generic names `form`, `params`, and `json_body`. The description provides no parameter guidance at all, so an agent cannot infer what these inputs mean or when to supply them.
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 uses a specific verb and resource: "Get sanitized server config as JSON for diagnostics." It clearly says what the tool returns, but it does not distinguish it from nearby siblings such as `vaultwarden_get_diagnostics_http` or `vaultwarden_config`.
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 phrase "for diagnostics" implies a use case, but there is no explicit guidance on when to use this tool instead of related config or diagnostics endpoints. No prerequisites, exclusions, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_diagnostics_httpGet diagnostics httpCRead-onlyIdempotent
Diagnostic HTTP echo/status-code test endpoint
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds that this is an echo/status-code test endpoint, but it does not describe authentication needs, rate limits, response shape, or what the four input fields actually cause.
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 single sentence is front-loaded and free of filler. However, it is too sparse for a tool with four undocumented parameters, so its brevity trades away completeness.
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 four parameters at 0% schema coverage, no output schema, and no usage guidance, the description leaves an agent unable to confidently construct a call. The annotations cover safety, but the description does not compensate for the invocation and parameter gaps.
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 0% for all four parameters. The phrase 'status-code' weakly hints that code controls an HTTP status, and 'echo' hints that form/params/json_body are echoed payloads, but no parameter is meaningfully explained.
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 clear purpose: a diagnostic HTTP echo/status-code test endpoint. It does not, however, distinguish this tool from the closely related vaultwarden_get_diagnostics_config sibling or explain what 'get' returns.
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?
There is no guidance on when to use this endpoint versus vaultwarden_get_diagnostics_config or other diagnostic/test tools. No prerequisites, exclusions, or alternative-tool routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_dummy_master_password_policyGet dummy master password policyBRead-onlyIdempotent
Return an empty master-password-policy stub for a placeholder org id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive. The description adds the key behavioral detail that the result is an empty stub, so an agent knows it is not retrieving real policy data.
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?
A single short sentence that front-loads the action and result with no wasted words. It is appropriately sized for a simple dummy endpoint.
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 explains the dummy return value, but the three generic input parameters remain undocumented and there is no output schema. For an agent to invoke it confidently, it would need to know whether form, params, and json_body are ignored or required in some form.
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 has three parameters (form, params, json_body) with 0% description coverage, and the description does not explain them. It mentions a placeholder org id, but no such parameter appears in the schema, so it does not compensate for the undocumented inputs.
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?
States a specific verb and resource: returns an empty master-password-policy stub. The words "dummy" and "placeholder" distinguish it from the real policy tool, though it does not explicitly name vaultwarden_get_master_password_policy.
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 phrase "for a placeholder org id" implies this is for dummy/placeholder scenarios, but it does not explicitly say when to use it instead of the real master-password-policy tool or what alternatives exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_duoGet duoCRead-onlyIdempotent
Get current Duo 2FA configuration (masked)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description's real contribution is the '(masked)' note, which tells the agent that returned Duo secrets are redacted — useful, but it says nothing about required permissions or what happens when Duo is not configured.
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?
A single six-word sentence with the resource and the key masking caveat front-loaded; nothing is padded. It is arguably too terse given the undocumented parameters, but nothing in it is wasted.
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?
No output schema exists, so the description should explain the return shape and the meaning of the three loosely-typed parameters; it does neither. For a tool whose schema is essentially opaque, a one-line description leaves significant gaps.
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?
Three parameters (form, params, json_body) exist with 0% schema description coverage, and the description gives no clue what they mean or how to populate them. With this coverage gap the description needs to compensate and does not.
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 and resource ('Get current Duo 2FA configuration') and adds the '(masked)' qualifier, so an agent knows it retrieves Duo-specific 2FA settings rather than generic two-factor data. It never explicitly distinguishes itself from the sibling vaultwarden_get_twofactor, which is the main remaining ambiguity.
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?
There is no statement of when to use this tool versus vaultwarden_get_twofactor, vaultwarden_activate_duo, or vaultwarden_remove_2fa. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_emailGet emailCRead-onlyIdempotent
Check whether email 2FA is set up / request setup email
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, yet the description says the tool may 'request setup email', which implies sending an email and therefore a side effect. That tension is not resolved, and nothing is said about authentication requirements, what gets sent, or side effects. Borderline but not a clean contradiction.
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?
A single front-loaded phrase with no filler, which is efficient. It is terse to the point of ambiguity, though the two-mode structure is at least visible at a glance.
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 three undocumented parameters, no output schema, and an unresolved read-versus-write ambiguity, an agent cannot confidently call this tool. It needs to know where the email address goes and whether invocation triggers a mail send.
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 0% and the three parameters (form, params, json_body) are untyped with no defaults explained. The description makes no attempt to say which of these carries the email address or how a setup request is expressed, so it fails to compensate for the coverage gap.
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 names a concrete resource (email 2FA) but fuses two different operations into one phrase: checking status and requesting a setup email. It never distinguishes itself from nearby siblings such as vaultwarden_get_twofactor, vaultwarden_email, or vaultwarden_post_email, so the agent must guess which one to call.
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?
There is no explicit when-to-use guidance and no named alternative, even though several siblings (vaultwarden_get_twofactor, vaultwarden_disable_twofactor, vaultwarden_send_email) overlap in the 2FA/email space. The slash-separated phrasing hints at two modes but never states which condition selects which.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_emergency_accessGet emergency accessBRead-onlyIdempotent
Get one emergency-access record by id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare that this is a read-only, idempotent, non-destructive operation. The description adds the useful nuance that it returns one record rather than a list, but it does not explain not-found behavior, permissions, or return 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 a single front-loaded sentence with no wasted words. It is appropriately sized for a simple retrieval 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?
The annotations adequately cover the safety profile for a simple read, and the description states the core lookup behavior. However, with four schema parameters at 0% coverage and no output schema, the definition remains thin about parameter handling and what the returned record contains.
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 0%, so the description must compensate for four undocumented parameters. It only clarifies emer_id by saying the record is fetched 'by id' and leaves form, params, and json_body unexplained.
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 gives a specific verb and resource: it retrieves exactly one emergency-access record by id. It is clear enough to distinguish from list-oriented tools, but it does not explicitly differentiate from nearby sibling operations such as vaultwarden_view_emergency_access or the other emergency-access mutation tools.
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?
Mentioning 'by id' implies the tool should be used when the emergency-access id is known. However, it gives no explicit when-to-use guidance, no exclusions, and no alternatives among the many emergency-access siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_folderGet folderCRead-onlyIdempotent
Get one folder by id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| folder_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no note on permissions, error behavior for a missing/invalid folder id, or whether the caller must own the folder.
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?
One short, front-loaded sentence with zero waste, but the brevity is under-specification rather than efficiency — there is no second sentence doing useful work.
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?
There is no output schema, so the description should at least hint at what a folder object contains, and three of four parameters are undocumented in both schema and description. For a 4-param tool with 0% schema coverage this leaves meaningful gaps.
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 0% across 4 parameters, and the description only mentions folder_id while leaving form, params and json_body entirely unexplained. With low coverage the description should compensate, and it does not.
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?
Specific verb+resource ('Get one folder by id') is unambiguous and implicitly contrasts with the plural listing sibling vaultwarden_get_folders. It does not explicitly name that sibling or the folders_list_folders variant, so differentiation is inferred rather than stated.
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?
No guidance on when to use this versus vaultwarden_get_folders (list all) or vaultwarden_folders_list_folders. The 'by id' phrasing hints at the precondition, but the agent must infer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_foldersGet foldersCRead-onlyIdempotent
List all folders
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that - no note about scoping (personal vs. organization folders), pagination, or result shape - so it contributes no behavioral context of its own.
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?
A single front-loaded sentence with no waste, which is good structurally. But the brevity is under-specification rather than disciplined conciseness for a tool with undocumented parameters and no output schema.
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 should describe what the folder list returns (fields, pagination, ordering). It instead says only 'List all folders', and gives no hint about the three wrapper parameters, leaving the agent under-informed for correct 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?
All three parameters (form, params, json_body) have 0% schema description coverage and no meaning is conveyed in the description. Since these are generic wrapper parameters whose purpose is not self-evident, the description should compensate but does not.
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?
States a clear verb ('List') and resource ('all folders'), so an agent knows it returns the folder collection. However, it offers no differentiation from close siblings such as vaultwarden_folders_list_folders, vaultwarden_get_folder, or vaultwarden_get_groups, leaving ambiguity about which listing tool to choose.
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?
There is no guidance on when to use this versus the near-identical vaultwarden_folders_list_folders or the singular vaultwarden_get_folder. No prerequisites, auth context, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_granteesGet granteesCRead-onlyIdempotent
List people who have granted the caller emergency access (as grantee)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds nothing beyond purpose — no note on whether the list is scoped to the authenticated user, whether it requires an unlocked session, or how many results come back.
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?
A single short sentence with the resource front-loaded and zero filler. It is efficient, though the parenthetical qualifier reads awkwardly enough that it takes a second pass to parse.
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, zero-required-parameter list call with strong annotations, the description is minimally adequate about purpose. It is incomplete on the opaque request-wrapper parameters and gives no hint of what fields the grantee entries contain, which matters since there is no output schema.
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?
Three parameters exist (form, params, json_body) with 0% schema description coverage and default null, so the description carries the compensation burden. It says nothing about what any of them do, leaving the agent to guess whether filtering or pagination is even possible.
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?
States a specific verb+resource ('List people who have granted the caller emergency access') and disambiguates the direction of the relationship with '(as grantee)', which separates it from grantor-side tools like vaultwarden_get_emergency_access. The phrasing is slightly convoluted, but an agent can determine the resource returned without opening the schema.
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?
No when-to-use guidance and no alternatives named, despite several emergency-access siblings (vaultwarden_get_emergency_access, vaultwarden_view_emergency_access, vaultwarden_policies_emergency_access) that an agent could easily confuse with this one. The only implicit signal is the 'grantee' parenthetical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_groupGet groupDRead-onlyIdempotent
Get one group
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| group_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds nothing beyond that: no mention of permissions required, what a group object contains, or behavior when the group or org is missing.
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?
Three words is not so much concise as under-specified; there is no front-loaded scope or qualifying clause. The brevity leaves the definition with no informational payload.
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 5-parameter tool with 0% schema coverage, no output schema, and three untyped optional parameters, the description should explain identifiers and the role of form/params/json_body. None of that is present, so an agent cannot confidently call it.
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 0% and 5 parameters exist, including opaque ones like form, params, and json_body with no type or meaning. The description mentions no parameters at all, so org_id and group_id semantics, formats, or sourcing are entirely undocumented.
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 "Get one group" merely restates the tool name and title, adding only the singular-quantity hint. It does not distinguish the tool from siblings like vaultwarden_get_group_details, vaultwarden_get_groups, or vaultwarden_get_group_members.
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?
There is no guidance on when to use this instead of vaultwarden_get_groups (list) or vaultwarden_get_group_details (likely richer detail). The agent must infer the choice from names alone, with no prerequisites or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_group_detailsGet group detailsCRead-onlyIdempotent
Get one group with members + collections
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| group_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds useful behavioral scope by saying the result includes both members and collections, but it does not mention permissions, org scoping, or other execution context.
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 single front-loaded sentence with no wasted words. It communicates the core action and returned scope immediately.
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 states what is returned, but with five undocumented parameters and no output schema it leaves important invocation details unexplained. For this parameter surface, especially org_id versus group_id and the extra request fields, more context is needed.
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 0%, and the description does not explain any of the five parameters. It implies that a group is identified but does not mention org_id, group_id, or the opaque form, params, and json_body fields.
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 and resource: get one group. It also clarifies the returned scope as including members and collections, which helps distinguish it from plain group lookup tools. It does not explicitly differentiate itself from close siblings such as get_group, get_group_members, or get_groups_details.
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?
There is no explicit guidance on when to use this tool versus alternatives, despite many similar sibling tools. The phrase 'one group' implies single-group detail retrieval, but prerequisites and exclusions are not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_group_membersGet group membersCRead-onlyIdempotent
List members of a group
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| group_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the description carries little burden — but it adds nothing: no mention of pagination, result ordering, permission requirements, or whether disabled members are included.
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?
A single short sentence, front-loaded with the verb and resource; efficient though it is more under-specified than genuinely concise.
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 tool with five undocumented parameters, no output schema, and only annotations covering safety, the description is too thin — an agent still cannot tell what org_id/group_id mean or what the mysterious form/params/json_body parameters do.
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 0% across five parameters, including opaque ones (form, params, json_body) with no types or descriptions. The description only implies 'a group' is identified; it never mentions that org_id and group_id are both required.
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?
Specific verb+resource: 'List members of a group'. An agent can tell it retrieves group membership, though it doesn't distinguish itself from close siblings like vaultwarden_get_members (org-level) or vaultwarden_get_group_details.
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?
No statement of when to use this versus vaultwarden_get_group_details, vaultwarden_get_members, or vaultwarden_get_collection_users, and no prerequisites such as requiring org admin scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_groupsGet groupsCRead-onlyIdempotent
List org groups (collections of members for access assignment)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description contributes only the semantic gloss on groups; it says nothing about pagination, return shape, or required org-level permissions. With annotations carrying most of the weight, a 3 is appropriate.
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?
A single short parenthetical sentence with no filler and the key noun front-loaded. Efficient, though the brevity comes at the cost of the missing guidance noted elsewhere rather than being praised for it.
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 four-parameter call with zero schema documentation and no output schema, the description should at minimum name the required org_id and describe what the returned group list contains. Neither is present, so an agent cannot call it confidently from the description alone.
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 0% across four parameters, including the required org_id, and the description never mentions any parameter. Saying "org groups" weakly implies org scoping, but it does not confirm that org_id is mandatory or explain the form/params/json_body pass-through parameters.
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?
Specific verb plus resource ("List org groups") with a useful gloss defining what a group is ("collections of members for access assignment"). It does not, however, distinguish itself from the many closely named siblings such as vaultwarden_get_group_details, vaultwarden_get_groups_details, or vaultwarden_get_group_members.
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 states what the tool returns but gives no guidance on when to pick it over vaultwarden_get_groups_details, vaultwarden_get_group, or vaultwarden_get_group_members. The agent must infer selection from names alone, which is risky given how similar the sibling names are.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_groups_detailsGet groups detailsCRead-onlyIdempotent
List groups with member/collection details
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the response includes member/collection details, which is useful beyond annotations, but it does not disclose org scoping, pagination, or permission requirements.
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 single short phrase with no wasted words and is front-loaded. However, it is under-specified rather than appropriately concise for a tool with four parameters and no schema descriptions.
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 tool with four undocumented parameters, a required org_id, and no output schema, the description is too thin. It omits how the org_id scopes the listing and what the generic form/params/json_body parameters are for, leaving the agent unable to invoke it confidently beyond the required field.
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 0% across four parameters, including the required org_id plus generic form, params, and json_body fields. The description provides no parameter meaning at all, so it does not compensate for the entirely undocumented schema.
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 and resource ('List groups') and adds that results include member/collection details, which helps distinguish it from a plain group list. However, it does not explicitly name or contrast with siblings such as get_groups, get_group_details, or get_group_members.
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?
There is no guidance on when to use this tool versus alternatives like get_groups, get_group_details, or get_group_members. The only implied usage is that it lists groups, but no exclusions, prerequisites, or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_known_deviceGet known deviceCRead-onlyIdempotent
Check whether a device identifier is already known for an email
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds the scoping notion of checking a device identifier for an email, but it does not disclose auth requirements, rate limits, or response behavior. With annotations doing the heavy lifting, a 3 is appropriate.
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?
A single efficient sentence with the scoping condition front-loaded. It is appropriately sized, though it is perhaps too terse for the undocumented parameter surface.
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 tool with three undocumented parameters at 0% schema coverage and no output schema, the description is incomplete. It does not explain how to supply the email and device identifier through the form/params/json_body parameters, nor what the check returns.
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 0% and the three parameters (form, params, json_body) are opaque generic containers. The description mentions 'device identifier' and 'email', giving semantic hints, but it does not map these to the schema parameters or explain what form/params/json_body should contain.
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?
States a specific verb ('Check whether') and resource ('device identifier ... known for an email'), which distinguishes it from siblings like vaultwarden_get_device (retrieve details) and vaultwarden_get_all_devices (list all). It does not explicitly name alternatives, but the purpose is clear enough to select the tool.
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 explains what the tool checks but gives no guidance on when to use it versus alternatives, no prerequisites, and no exclusions. The usage context is only implicitly inferable from the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_master_password_policyGet master password policyCRead-onlyIdempotent
Get the effective master-password-complexity policy for the org
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, open-world, and non-destructive. The description adds some value by saying the policy is 'effective' for the org, implying a resolved or computed policy rather than a raw stored one. It does not cover permissions, error behavior, or response 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 a single front-loaded sentence with no wasted words. It is efficient, though it is arguably too sparse for a tool with four parameters and no schema descriptions.
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?
Annotations cover the safety profile, but the description leaves major gaps for a four-parameter tool with 0% schema description coverage and no output schema. It does not explain the non-obvious parameters or differentiate from closely related policy tools.
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 0%, so the description must compensate for four undocumented parameters. It only implicitly explains org_id via 'for the org' and says nothing about form, params, or json_body.
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 names a specific verb and resource: get the effective master-password-complexity policy for an org. That is clear enough to distinguish it from generic policy tools. However, it does not explicitly differentiate itself from close siblings such as vaultwarden_get_dummy_master_password_policy or vaultwarden_get_policy.
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 no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or the sibling tools that retrieve related policy data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_membersGet membersCRead-onlyIdempotent
List organization members ("users")
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the "users" synonym and says nothing about what is returned (member records with access level/status?), pagination, or permission requirements for this openWorld read.
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?
Five words, front-loaded with the verb and resource, with zero filler. Its brevity is efficient rather than padded, though it comes at the cost of substance.
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?
No output schema exists and four of five parameters are undocumented by both schema and description, so the agent cannot tell what the response contains or how to pass the envelope parameters. For a listing tool on a large org, missing pagination/return-shape information is a real 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 coverage is 0% and there are 5 parameters, only org_id of which is required; the description never explains org_id's format nor what the data/form/params/json_body envelopes do. The word "organization" hints that org_id scopes the listing, but nothing compensates for the coverage gap.
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?
"List organization members" gives a specific verb and resource, and the parenthetical clarifies that members are users. It implicitly distinguishes itself from group-level siblings like vaultwarden_get_group_members, though it never states that scope contrast explicitly.
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?
There is no when-to-use guidance, no prerequisites (e.g. admin privileges), and no reference to alternatives such as vaultwarden_get_users_json or vaultwarden_get_org_user_mini_details. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_organizationGet organizationDRead-onlyIdempotent
Get organization details
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: no note on permissions required, whether missing orgs error vs return empty, or what the response contains.
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?
It is a single short phrase with no waste, but the brevity is under-specification rather than economy — there is nothing front-loaded because there is nothing to front-load.
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?
A 4-parameter lookup tool with no output schema and undocumented parameters needs the description to explain the identifier and return shape; instead it offers four words. An agent cannot confidently invoke it from this definition alone.
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 0% across 4 parameters (org_id required, plus opaque form/params/json_body). The description provides no explanation of what org_id is (organization UUID vs internal ID vs name) or what the generic wrapper parameters are for, so it fails to compensate for the coverage gap.
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 essentially restates the tool name/title ("Get organization" -> "Get organization details") without adding scope, filters, or distinguishing features. It gives no way to tell this apart from near-identical siblings such as vaultwarden_get_org_details, vaultwarden_organizations, or vaultwarden_get_org_collections_details.
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?
There is no when-to-use guidance, no mention of prerequisites (admin/organization context, auth), and no naming of alternatives. The agent is left to guess between this and vaultwarden_get_org_details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_organization_keysGet organization keysBRead-onlyIdempotent
Get the org’s public key + (if authorized) encrypted private key
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, open-world, and non-destructive. The description adds useful context that the encrypted private key is returned only if authorized, but it does not detail what authorization is needed or anything else about the sensitive return behavior beyond that conditional.
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 single front-loaded sentence with no filler. Every phrase contributes to the core purpose and the conditional authorization 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?
The description gives a clear sense of what is returned, including the conditional private key, which helps offset the absence of an output schema. However, with 0% schema parameter coverage and no explanation of form, params, or json_body, it is not complete enough for an agent to invoke the tool robustly.
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 0%, and the description does not explain the four schema parameters (form, org_id, params, json_body). It only implies that an organization identifier is needed via 'the org's,' leaving the remaining parameters undocumented.
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 and resource: retrieving an organization's public key plus, conditionally, its encrypted private key. It meaningfully distinguishes this from public-key-only siblings such as vaultwarden_get_organization_public_key, though it does not explicitly name any alternative.
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 only usage-related signal is '(if authorized),' which hints at a permission condition but does not explain when to choose this tool over related tools like vaultwarden_get_organization_public_key or vaultwarden_get_public_keys. There is no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_organization_public_keyGet organization public keyCRead-onlyIdempotent
Get the org’s public RSA key
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds nothing beyond the name — no note on key format, rotation behavior, or what happens if the org has no key.
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?
A single six-word phrase with no waste, but its brevity reflects under-specification rather than tight writing; front-loading is fine but there is almost no content to structure.
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 4-parameter tool with no output schema and zero schema coverage, the description leaves too much unspecified: identifier format, the role of wrapper params, and the shape of the returned key are all unaddressed.
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 0% on 4 parameters, and the description only implicitly identifies that an org must be specified. It says nothing about the required org_id or the form/params/json_body wrapper parameters, so it fails to compensate for the schema gap.
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?
States a specific verb ('Get') and specific resource ('org's public RSA key'), which is more precise than a generic 'get organization keys'. However, it does nothing to distinguish itself from close siblings such as vaultwarden_get_organization_keys, vaultwarden_get_public_keys, or vaultwarden_bulk_public_keys.
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?
No guidance on when to use this versus the several public-key-related siblings. No prerequisites (e.g., admin rights, org membership) or context for the call are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_org_collection_detailGet org collection detailCRead-onlyIdempotent
Get one collection’s details
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| col_id | Yes | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered structurally. The description adds nothing beyond that — no note on what is returned, permissions required, or visibility scoping for org collections.
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?
A single short sentence with no padding and the resource is front-loaded, but it is under-specified rather than efficient — the brevity costs needed information.
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 5-parameter tool with zero schema coverage and no output schema, the description leaves the agent without the identity of the required identifiers or what detail fields come back. It is not sufficient to call the tool correctly from the description alone.
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 0% and all five parameters (including required org_id and col_id) are completely undocumented in both schema and description. The description does not even hint that an organization ID and a collection ID are required to identify the target.
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?
States a verb (get) and resource (a collection's details), and 'one' implies single-item retrieval versus the list-oriented vaultwarden_get_org_collections. However it never says the collection is organization-scoped, leaving it hard to distinguish from vaultwarden_get_org_collections_details or vaultwarden_get_collection_users.
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?
No guidance on when to use this versus the many sibling collection/org tools; the only implied distinction is singular vs plural. No prerequisites (e.g. admin permissions) or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_org_collectionsGet org collectionsCRead-onlyIdempotent
List all collections in an org
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered structurally. The description adds only the word 'all' to signal unfiltered listing; it says nothing about pagination, result size, or permission scope for org data.
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?
It is a single short sentence with no wasted words, but that brevity comes at the cost of under-specification rather than economy – the one sentence could easily have carried the missing usage and parameter context.
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 0% schema coverage, four undocumented parameters (including three opaque wrapper fields), no output schema, and multiple look-alike siblings, the definition leaves an agent without enough information to call it confidently or to pick it over alternatives.
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 0%, so nothing in the schema explains the four parameters, three of which are opaque generic wrappers ('form', 'params', 'json_body'). The description only implies org_id via 'in an org' and offers no format or semantics for it or the others.
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?
States a specific verb and resource ('List all collections in an org') that an agent can match to a request. It does not distinguish itself from close siblings such as vaultwarden_get_org_collections_details, vaultwarden_get_org_collection_detail, or vaultwarden_get_collection_users, which an agent must resolve by name alone.
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?
There is no when-to-use guidance, no exclusions, and no mention of the near-identical sibling tools that also return org collection data. The agent must infer selection criteria from tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_org_collections_detailsGet org collections detailsCRead-onlyIdempotent
List collections with per-collection access details
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description's 'per-collection access details' is close to a restatement of the title and adds little else — nothing about required org-admin permissions, whether all collections or a subset are returned, or response shape/pagination.
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?
A single short phrase, front-loaded with no filler. It is efficient but borders on under-specification rather than earning its brevity through precision.
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 tool with four undocumented parameters, no output schema, and several near-identically named siblings, one line is not enough to call it correctly. The agent lacks the parameter contract and the disambiguation needed to choose this over its look-alikes.
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 0% and four parameters (org_id, form, params, json_body) are completely undocumented, with org_id having no type or description at all. The description mentions no parameters whatsoever, leaving the single required identifier unexplained.
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?
States a specific verb+resource ('List collections') plus a qualifier ('with per-collection access details') that distinguishes it from a bare collection listing. However, with siblings named vaultwarden_get_org_collections and vaultwarden_get_org_collection_detail, the description does not explicitly say how this 'details' variant differs from those.
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?
No guidance on when to use this instead of vaultwarden_get_org_collections or vaultwarden_get_org_collection_detail, and no prerequisites mentioned (e.g., that org-level access is likely required). Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_org_detailsGet org detailsCRead-onlyIdempotent
Get org-scoped cipher listing with per-cipher collection membership
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds only the note that results include per-cipher collection membership; it does not say what organization must be in scope, whether results are paginated, or whether admin rights are required for org-wide listing. No contradiction with annotations, but thin added value.
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?
A single short sentence fragment with no waste, but it is terse to the point of under-specification rather than genuinely concise. Nothing is front-loaded beyond the resource name, and no second sentence is spent on the information the agent actually needs.
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 tool with four undocumented parameters, no output schema, no annotation gaps filled by prose, and a name/description mismatch, the definition is not complete enough to call reliably. Only the high-level safety profile comes from annotations.
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?
Four parameters (data, form, params, json_body) exist with 0% schema description coverage and no titles beyond generic placeholders, and the description says nothing about any of them. Nothing tells the agent which parameter carries the organization identifier or the request body shape, so the parameter layer is completely undocumented.
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 names a specific resource (org-scoped ciphers) and a specific output attribute (per-cipher collection membership), but it directly conflicts with the tool's own name and title, 'Get org details'. An agent reading the name and the description cannot tell whether this returns organization metadata or a cipher listing, which is a serious ambiguity in a family of ~200 siblings.
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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. With near-identical siblings such as vaultwarden_get_organization, vaultwarden_get_org_collections, vaultwarden_get_org_collections_details and vaultwarden_get_cipher_details, the agent is given nothing to distinguish this tool from them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_org_domain_sso_verifiedGet org domain sso verifiedCRead-onlyIdempotent
Check whether an org’s SSO domain claim is verified
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, covering the safety profile. The description adds nothing further – no indication of what a verified/unverified response looks like, what happens if no domain claim exists, or any auth/permission expectations.
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?
A single tight sentence with no waste and the operation front-loaded. Its brevity is appropriate for the format, though it errs toward under-specification rather than over-verbosity.
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, undocumented wrapper parameters, and only a read-only annotation set, the description is too thin to tell an agent how to form a correct call or interpret the result. It should at minimum identify the org parameter and the boolean/verified outcome.
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?
There are 3 parameters (form, params, json_body) with 0% schema description coverage, so the schema provides no semantics. The description only implies an org identifier is needed via 'an org's' but never explains which parameter carries it or its format, so it does not compensate for the coverage gap.
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?
States a specific verb ('Check whether') and resource ('an org's SSO domain claim is verified'), so the operation is identifiable. It does not name the org identifier or differentiate from related sibling tools such as vaultwarden_get_settings_domains, leaving sibling routing to inference.
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 no explicit when-to-use context, prerequisites, or alternatives. The use case is only implied by the word 'Check', and there is no guidance on when this should be called versus fetching general org settings/domains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_org_eventsGet org eventsCRead-onlyIdempotent
List audit-log events for an organization
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no pagination behavior, event retention window, required role, or response shape for what is an open-world audit query.
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?
One short, front-loaded sentence with no filler. Efficient, though its brevity stems partly from omission rather than tight writing.
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?
A 5-parameter tool with 0% schema description coverage, no output schema, and no annotations explaining the query surface. The description omits event filtering, pagination, and permission requirements an agent needs to call this correctly.
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 0% across 5 parameters, and the description only indirectly hints at org_id via 'for an organization'. It says nothing about data, form, params, or json_body, leaving four parameters entirely opaque.
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?
States a specific verb and resource ('List audit-log events') with an explicit scope ('for an organization'), which distinguishes it from the sibling vaultwarden_get_user_events even though that sibling isn't named. Clear, but no explicit sibling differentiation in the text.
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 no when-to-use guidance, no prerequisite (e.g. org admin rights), and does not mention alternatives such as get_user_events or get_cipher_events. The agent must infer selection from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_org_exportGet org exportCRead-onlyIdempotent
Export all org cipher data (admin-triggered org vault export)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description adds that this is an admin-triggered operation, implying elevated privileges are required, which is useful context. It does not disclose output/download format or whether the export is throttled.
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?
A single compact sentence with the essential verb-resource-scope front-loaded and no filler. It is efficient but arguably too terse given the surrounding complexity.
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 and 0% parameter coverage, the description should compensate by describing the export result (file/download vs JSON) and how org_id is supplied. It leaves these gaps, so an agent cannot confidently invoke it beyond guessing.
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 0% with 4 parameters, and the description explains none of them. The mention of 'org' implies org_id targets a specific organization, but the generic form/params/json_body wrappers and the format of org_id are entirely undocumented in both schema and description.
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 names a specific verb (Export) and resource (org cipher data), and the parenthetical clarifies it is the admin-triggered org vault export, distinguishing it from import (vaultwarden_post_org_import) and DB-level backup (vaultwarden_backup_db). It is clear but does not explicitly say what it is NOT, so it falls short of a 5.
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?
No explicit when-to-use or when-not guidance, and no alternatives are named despite many sibling tools touching org vaults (purge_org_vault, post_org_import, backup_db). The 'admin-triggered' note hints at a prerequisite but is not a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_org_user_mini_detailsGet org user mini detailsBRead-onlyIdempotent
List members with minimal fields (id/name/email) for UI pickers
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds the one thing annotations can't: that the payload is trimmed to id/name/email, which is valuable output-shaping context. It omits org scoping enforcement and any pagination/limit behavior.
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?
A single compact clause with no filler, and the key qualifier (minimal fields) sits before the use case. Slightly terse for the amount of undocumented surface it covers.
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 list tool whose annotations carry the safety profile, the description covers what the tool returns and roughly why. It leaves the required org_id and the three opaque wrapper parameters entirely unexplained, which is a real gap given 0% schema coverage and no output schema.
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 0% across 4 parameters, and the description never mentions org_id (the only required parameter) or explains the generic form/params/json_body wrapper fields. With zero schema help, the description needs to compensate and does not.
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?
A specific verb (List) plus resource (org members) and explicit field scope (id/name/email), which separates it from the heavier member-listing siblings such as vaultwarden_get_members. It stops short of naming that sibling, so the differentiation is inferred rather than stated.
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?
"for UI pickers" implies a use case (lightweight display data) but gives no explicit when-to-use/when-not or named alternative. An agent must infer that vaultwarden_get_members is the choice when full member records are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_plansGet plansCRead-onlyIdempotent
List available subscription plans
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description adds nothing beyond that: it doesn't say whether plans are subscription tiers, what audience/admin role is needed, or whether the result is stable/cached.
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?
A single five-word sentence, front-loaded and waste-free. It is arguably too terse rather than bloated, but structurally there is nothing to trim.
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?
No output schema, no parameter documentation, and no annotation-independent explanation of what a 'plan' is in this system. For a tool sitting next to several billing and maintenance-plan siblings, the definition leaves too much for the agent to guess.
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?
Three parameters with 0% schema description coverage and generic names (form, params, json_body). The description gives no hint about what payload these accept or whether they can be left null, leaving the agent with no compensating information.
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?
States a specific verb and resource ('List available subscription plans'), which is clear enough to act on. It doesn't disambiguate from billing-related siblings (get_billing_metadata, get_billing_warnings) or from maintenance-plan tools (maintenance_plan_deduplication), so 'plans' remains slightly ambiguous in this namespace.
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?
No guidance on when to call this versus the billing metadata or maintenance plan tools, no prerequisites, no exclusions. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_policyGet policyCRead-onlyIdempotent
Get one policy by type
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| pol_type | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds little beyond 'one policy by type' and does not mention auth requirements, behavior for missing policies, or org scoping, making 3 the minimum viable score.
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 single front-loaded phrase with no wasted language. However, it is too terse for a five-parameter tool and omits structure that would help an agent understand scope and invocation requirements.
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 five parameters, zero schema description coverage, and no output schema, the definition relies almost entirely on a four-word description. Annotations cover the safety profile, but the description does not supply enough context about org scoping, policy type values, or alternatives to list_policies.
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 0% across five parameters, and the description only partially clarifies pol_type via 'by type'. It does not explain the required org_id or the roles of form, params, and json_body, leaving most parameter semantics undocumented.
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 uses a specific verb and resource: 'Get' and 'policy'. The phrase 'one policy by type' distinguishes single-policy retrieval from sibling list-style tools such as list_policies, though it does not explicitly name any sibling.
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 no explicit guidance on when to use this tool versus list_policies, list_policies_token, or policy update siblings. The phrase 'by type' implies a lookup pattern, but there are no conditions, exclusions, or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_public_keysGet public keysCRead-onlyIdempotent
Get another user public RSA key by user id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds that the returned value is a public (not private) RSA key scoped to a different user, which is meaningful context. It says nothing about failure behavior for unknown ids or any visibility restrictions, so it stays at the baseline.
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?
A single front-loaded sentence with no filler; the verb and the key scoping come first. It is arguably too terse rather than padded, which is a completeness problem more than a conciseness one.
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 0% parameter coverage, no output schema, and three undocumented wrapper parameters, the definition does not give an agent enough to invoke this confidently. It needs at least a note on which parameters matter and what the response contains.
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 0% across four parameters, so the description carries the full burden — yet it only clarifies user_id as the identifier input. The form, params, and json_body properties are entirely undocumented in both schema and description, leaving half the surface unexplained.
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?
States a specific verb and resource: fetch a public RSA key belonging to another user, keyed by user id. That distinguishes it reasonably from vaultwarden_bulk_public_keys and vaultwarden_get_organization_public_key, though the differentiation is only implied by the singular 'another user' rather than stated outright.
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?
No when-to-use guidance, no prerequisites (e.g., permissions needed to read another user's key), and no mention of the bulk or organization-key siblings it should be chosen over. The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_recoverGet recoverBRead-onlyIdempotent
Get the 2FA recovery code (used if all 2FA devices are lost)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds the meaning of the value returned, but says nothing about the elevated authentication a recovery-code read typically requires, how the secret should be handled, or rate limiting on repeated reads.
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?
One short, front-loaded sentence with a clarifying parenthetical and no filler. It is efficient but arguably under-written for a secret-returning endpoint, so not quite maximal.
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?
Annotations cover the safety profile and there is no output schema, so return-value documentation is not strictly required. Still, for a getter whose payload is a sensitive recovery code, the description gives no indication of what the response contains or its sensitivity.
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?
All three parameters (form, params, json_body) have 0% schema description coverage and generic wrapper-style names. The description supplies no parameter information whatsoever, and with low coverage the description is expected to compensate; it does not.
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?
States a specific verb and resource ('Get the 2FA recovery code') and clarifies what the artifact is with a parenthetical. It does not distinguish itself from the recover-related siblings (vaultwarden_post_delete_recover, vaultwarden_post_delete_recover_token, vaultwarden_put_recover_account), so an agent cannot tell from the description alone whether this reads or regenerates the code.
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 parenthetical '(used if all 2FA devices are lost)' implies the triggering situation, which is useful context. However, there is no explicit when-not guidance and no named alternative among the several recover/2FA siblings, so the agent must infer the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_reset_password_detailsGet reset password detailsBRead-onlyIdempotent
Get the data needed to perform admin password reset for a member (their reset_password_key + KDF settings)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds value by revealing that the response contains sensitive material (reset_password_key, KDF settings), but says nothing about admin-only authorization or what happens if the member has not enrolled in reset.
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?
A single front-loaded sentence with the key payload named up front and no filler. Nothing to trim.
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 correctly covers the main return fields (reset_password_key, KDF settings). However, for a 5-parameter tool with zero schema coverage, leaving the identifiers and passthrough fields unexplained is a meaningful gap in an otherwise adequate definition.
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 0% across 5 parameters. The description never mentions org_id or member_id, the two required identifiers, nor explains the form/params/json_body passthrough fields. It therefore leaves the caller to infer the entire input contract from bare parameter names.
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?
States a specific verb and resource (get the reset-password data for a member) and names the concrete payload returned: reset_password_key plus KDF settings. It clearly differs from the sibling mutation vaultwarden_put_reset_password, though it doesn't name that sibling explicitly.
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 phrase 'needed to perform admin password reset' implies this is a prerequisite read before the reset mutation, but the description never says when to call it, what precondition (admin privilege) is required, or that vaultwarden_put_reset_password is the follow-up.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_self_host_billing_metadataGet self host billing metadataDRead-onlyIdempotent
Get self-host billing metadata
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| _org_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — it does not explain the required _org_id scope, whether the call is org-admin-restricted, or what kind of billing metadata is returned.
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 single short phrase is efficient but is under-specified rather than concise. It does not front-load any useful scoping or usage information beyond repeating the tool title.
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?
There is no output schema, four undocumented parameters at 0% schema coverage, and an open-world read operation. Given this complexity and the description's single-phrase content, the definition is not complete enough for an agent to invoke it confidently.
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 0% and the description mentions no parameters at all. With four parameters, including a required _org_id, the description fails to compensate for the schema's lack of documentation or clarify what form, params, and json_body are for.
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 'Get self-host billing metadata' is essentially a restatement of the tool name and title, adding no distinguishing detail. It does identify the resource and verb, but an agent cannot tell from this text alone how it differs from siblings like vaultwarden_get_billing_metadata or vaultwarden_get_billing_warnings.
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?
There is no guidance on when to use this tool, when not to, or which sibling to prefer. The description provides no context such as prerequisites, org-scoping rationale, or alternatives, leaving all usage decisions to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_sendGet sendBRead-onlyIdempotent
Get one of the caller’s own Sends by id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| send_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. The description contributes the non-obvious access constraint that only the caller's own Sends are visible, but says nothing about what is returned (metadata vs. encrypted payload) or behavior on a Send owned by another user.
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?
A single short sentence with the ownership qualifier up front and no filler. Nothing is redundant or padded.
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 four-parameter tool with no output schema and no documented params, one sentence is not enough. An agent cannot tell whether the result includes the decrypted content, whether access requires the Send's access token, or what the wrapper parameters do.
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 0% and send_id has an empty definition, yet the description only implies 'id' meaning. The other three parameters (form, params, json_body) receive no explanation at all in either the schema or the description, leaving the agent to guess their roles.
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?
Specific verb and resource ('Get one ... Send') plus an ownership scope ('the caller's own'), which distinguishes it from admin variants. It does not name the sibling list tool (vaultwarden_get_sends) or download_send explicitly, so the singularity is only implied by 'one' and 'by id'.
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?
No statement of when to use this versus vaultwarden_get_sends (listing) or vaultwarden_download_send (fetching content). The agent must infer from the tool name that this retrieves metadata for a single Send.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_sendsGet sendsCRead-onlyIdempotent
List the caller’s own Sends
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context — the result is scoped to the authenticated caller only — but says nothing about pagination, ordering, or whether expired sends are included, which matters for an openWorldHint listing.
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?
A single front-loaded sentence with no filler and the scoping qualifier placed where it is read first. It is efficient, though the brevity borders on under-specification rather than crispness.
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, no parameter documentation, and no annotations beyond hints, the description leaves the agent without any picture of the returned shape or how the three wrapper parameters affect it. For a listing tool with 0% schema coverage, more was needed.
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?
Three parameters (form, params, json_body) carry zero schema description coverage, and the description gives no parameter guidance at all. Mitigating factor: all three are optional, so an agent can call it with no arguments, but any filtering behavior is entirely undiscoverable.
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?
"List" + "Sends" is a specific verb and resource, and "the caller's own" narrows scope versus admin/organization-wide variants. It does not, however, disambiguate from near-duplicate siblings like vaultwarden_sends or vaultwarden_get_send, so it stops short of a 5.
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?
There is no explicit statement of when to use this instead of vaultwarden_get_send (single send), vaultwarden_sends, or vaultwarden_download_send. The only implicit cue is "own", which hints at a self-scoped listing but never spells out the alternative or condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_settings_domainsGet settings domainsCRead-onlyIdempotent
Get the user’s configured equivalent-domains list (for autofill matching)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context that the returned list is the user's equivalent-domains configuration for autofill matching, but it does not describe authentication needs, return shape, or edge cases.
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?
A single short sentence, front-loaded with the action and resource, with no filler. It is appropriately sized for a simple read 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?
The tool is a simple read-only GET with no required parameters and rich annotations, and the description explains the core resource. However, it leaves all three generic schema parameters unexplained and gives no return-value context despite there being no output schema.
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 has three parameters (form, params, json_body) with 0% description coverage, and the description says nothing about what they mean or when to supply them. With low schema coverage, the description must compensate, but it provides no parameter semantics at all.
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 and resource: get the user's configured equivalent-domains list. It even clarifies the domain context as autofill matching, which distinguishes it from generic settings retrieval. However, it does not explicitly contrast with sibling mutation tools such as vaultwarden_post_settings_domains or vaultwarden_put_settings_domains, so sibling differentiation is only implicit.
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?
There is no explicit when-to-use guidance, exclusions, or named alternatives. The read verb implies retrieval, but the description does not route the agent away from related write tools like post_settings_domains or put_settings_domains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_tasksGet tasksBRead-onlyIdempotent
List pending security tasks (at-risk password / admin-assigned tasks) for the current device
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the device-scope constraint and the task types returned, but says nothing about pagination, result volume, or whether admin-assigned tasks require elevated privileges.
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?
A single front-loaded sentence with the scope qualifier at the end and no filler. It is efficient, though its brevity is partly under-specification rather than pure economy.
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 tool with three undocumented, untyped parameters and no output schema, the description should explain the expected request payload or at least the response shape. As written, an agent can tell what the tool conceptually does but not how to actually invoke it with meaningful input.
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 0% across three parameters (form, params, json_body) that are generic, opaque wrappers. The description does not explain what any of them carry or how they map to filtering tasks, leaving the caller to guess the payload shape entirely.
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?
States a specific verb (List) and resource (pending security tasks) and clarifies the two task categories in parentheses (at-risk password / admin-assigned). The device scoping further narrows it, so an agent can distinguish it from adjacent read tools like get_auth_requests_pending without opening a schema.
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 phrase 'for the current device' implies a context constraint, which is useful, but the description never says when to prefer this over alternatives or what prerequisites (authenticated session, device identity) are required. Usage is only implied, not directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_twofactorGet twofactorCRead-onlyIdempotent
List enabled 2FA methods for the user
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only that the methods are 'enabled', restating the read nature rather than adding context such as return format or authentication requirements.
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?
A single front-loaded sentence with no filler. It is terse but not padded; the brevity reflects under-specification rather than tightness.
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 listing tool with no output schema, the description should indicate what is returned (method names, types, timestamps) and how the three generic wrapper params operate. Neither is addressed, leaving an agent to infer the call shape.
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?
Three parameters (form, params, json_body) exist with 0% schema description coverage, and the description says nothing about how to use any of them. With coverage this low the description should compensate but does not.
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?
States a specific verb (List) and resource (enabled 2FA methods), which a reader can clearly distinguish from siblings like disable_twofactor, remove_2fa, and activate_authenticator. It does not explain whose 2FA methods ('the user') but the read semantics are unambiguous.
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?
No guidance on when to use this versus alternatives, no prerequisites, no note on whose methods are returned. The read-only listing nature is implied only by the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_userGet userCRead-onlyIdempotent
Get one member’s full details
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds nothing beyond that: no indication of what 'full details' includes, whether it spans org scope only, or what happens when the member is absent or not visible to the caller.
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?
It is a single short sentence with no wasted words and the scope is front-loaded. However, the brevity here is under-specification rather than discipline for a tool with six parameters and a large ambiguous sibling set.
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 would need to convey what 'full details' returns, and it does not. Combined with six undocumented parameters and no disambiguation from the many get_* user/member tools, an agent lacks enough to call this confidently.
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 0% across six parameters, and the description only vaguely implies member_id and org_id via 'one member's'. The four optional passthrough parameters (data, form, params, json_body) are left completely unexplained in both schema and description, so the text does not compensate for the coverage gap.
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?
It states a verb (get) and a resource (one member's full details), so the basic operation is legible. But the tool name says 'user' while the description says 'member', and siblings such as get_members, get_user_json, get_user_by_mail_json and get_org_user_mini_details are not differentiated, leaving real ambiguity about which retrieval this is.
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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives despite a crowded sibling set of adjacent user/member lookups. The agent must infer selection purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_user_by_mail_jsonGet user by mail jsonCRead-onlyIdempotent
Look up one instance user by email
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| Yes | |||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond a restatement of the lookup: no mention of what happens when the email is unknown, whether an admin token is required, or what record shape is returned.
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?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity is partly a symptom of under-specification rather than disciplined editing.
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 four params at 0% schema coverage, no output schema, and a large sibling set of similarly named user-lookup tools, six words cannot adequately prepare an agent to call this correctly. At minimum the undocumented form/params/json_body parameters or the return shape should be addressed.
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 0% across four parameters, so the description carries the full burden and only clarifies 'mail' as an email-based lookup. The three other parameters (form, params, json_body) are completely undocumented in both schema and description, leaving an agent to guess at their purpose.
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 gives a specific verb ('look up'), resource ('user'), and lookup key ('by email'), which distinguishes it in principle from siblings like vaultwarden_get_user_json or vaultwarden_get_users_json that query by other means. It stops short of naming those siblings explicitly, so the differentiation is inferential rather than stated.
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?
There is no statement of when to use this versus vaultwarden_get_user, vaultwarden_get_user_json, or vaultwarden_get_users_json, and no prerequisites such as admin scope are mentioned. The only usage signal is the phrase 'by email', which implies the caller must already have an email address.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_user_collectionsGet user collectionsBRead-onlyIdempotent
List collections the current user has access to (across all orgs)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so safety is covered. The description adds useful scope context ('current user', 'across all orgs'), but says nothing about pagination, result size, or whether archived/inaccessible collections are excluded.
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?
A single front-loaded sentence in a parenthetical scope clause; zero filler. Brevity is a strength here, though it is so terse that it borders on under-specification rather than crispness.
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?
As a read-only list tool with strong annotations and no output schema, the description covers the minimum. But with three undocumented parameters and no result-shape or filtering hints, an agent lacks enough to invoke it confidently versus the many collection-related siblings.
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?
Three parameters with 0% schema description coverage and generic names (form, params, json_body). The description supplies no parameter meaning at all, so an agent gets no help on what to pass for a tool whose schema is entirely opaque.
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?
Specific verb+resource ('List collections') with a scoping qualifier ('the current user has access to, across all orgs') that separates it from org-scoped siblings like vaultwarden_get_org_collections. It stops short of naming any sibling, so an agent must still infer the boundary.
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?
No when-to-use or when-not-to-use guidance, and no alternatives named despite a dense cluster of near-neighbors (get_org_collections, get_org_collections_details, get_org_collection_detail, get_collection_users). The scope phrase implies the difference but never routes the agent explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_user_eventsGet user eventsCRead-onlyIdempotent
List audit-log events for one org member
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds little beyond the purpose: it does not mention pagination, time-range behavior, required permissions, or what the audit log contains.
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 single front-loaded sentence with no filler, so it is concise. Its brevity is not the issue; the problem is that the brevity leaves required information missing, which is captured in other dimensions.
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 six-parameter tool with no output schema and no schema descriptions, this description is far too sparse. It does not explain how to choose between this and related event-listing tools, nor does it clarify the opaque additional parameters.
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 0%, so the description must carry the burden for all six parameters. It only vaguely indicates that org and member context are involved, and says nothing about the undocumented 'data', 'form', 'params', or 'json_body' parameters.
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 ('List') and resource ('audit-log events') scoped to 'one org member,' which gives an agent enough to distinguish this from org-wide or cipher-specific event tools. It stops short of naming the sibling tools that are the closest alternatives.
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?
There is no explicit when-to-use guidance, no exclusions, and no mention of the sibling alternatives such as vaultwarden_get_org_events or vaultwarden_get_cipher_events. The per-member scoping is only implied by the phrase 'one org member.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_user_jsonGet user jsonCRead-onlyIdempotent
Get one instance user by id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is carried by structured data. The description adds only that the lookup is by id and returns a single instance; it says nothing about what the user record contains, whether it is the admin-view or self-view payload, or what happens when the id does not exist.
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?
A single short sentence with no padding, so nothing is wasted, but it is under-specified rather than efficient. There is no front-loaded distinction or constraint to orient the agent.
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?
No output schema exists, so the description should describe the returned user shape, but it does not. Combined with zero parameter coverage on a four-parameter tool and no differentiation from three sibling user-lookup tools, the definition leaves the agent guessing on both invocation and interpretation.
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 0% and four parameters are declared, yet three (form, params, json_body) are undocumented in both schema and description. The phrase "by id" weakly signals that user_id is the meaningful input, but the purpose of the other three remains entirely opaque, which is a real risk given additionalProperties is false.
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?
"Get one instance user by id" names a verb (get) and resource (user) with a lookup key, which is better than a tautology. However, siblings include vaultwarden_get_user, vaultwarden_get_user_by_mail_json, and vaultwarden_get_users_json, and nothing in the description explains what the "_json" variant does differently or why an agent would pick it over the plain get_user.
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?
No when-to-use, when-not-to-use, or alternative routing is stated. An agent facing three near-identical user-lookup tools has no textual basis for choosing among them, and there is no mention of prerequisites or admin authorization needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_users_jsonGet users jsonCRead-onlyIdempotent
List all instance users (JSON, for the admin table)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds only that the result is JSON destined for an admin table; it says nothing about pagination, auth prerequisites, or response shape. Some added context, but not rich.
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?
A single front-loaded phrase with the resource and format immediately clear, followed by a usage qualifier. No waste, though it is perhaps too terse given the undocumented parameters.
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 three undocumented parameters, no output schema, and no explanation of what the JSON admin payload contains, the description is insufficient for an agent to call this correctly. Annotations cover safety but leave the parameter and return gaps unaddressed.
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?
Three parameters (form, params, json_body) exist at 0% schema description coverage, and the description offers no guidance on any of them. For a tool whose structured schema is entirely undocumented, the description does nothing to compensate, making the parameters effectively opaque.
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?
States a specific verb ('List') and resource ('all instance users'), and adds a format/scope qualifier ('JSON, for the admin table'). This distinguishes it from the singular vaultwarden_get_user_json and the org-scoped vaultwarden_get_members. It doesn't explicitly name siblings, so not a full 5.
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?
'for the admin table' hints at intended context, but there is no explicit when-to-use guidance, no exclusions, and no named alternatives such as vaultwarden_get_members or vaultwarden_get_user_json. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_get_webauthnGet webauthnCRead-onlyIdempotent
List registered WebAuthn/FIDO2 2FA security keys
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered by structured data. The description adds only that the keys are 'registered' and FIDO2/2FA in nature; it does not say whether results are scoped to the calling user or an admin-supplied user, nor anything about pagination or ordering.
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?
A single short sentence with the resource front-loaded and no wasted words. It is efficient, though its brevity reflects under-specification rather than disciplined trimming.
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?
No output schema and no annotations explaining return shape, plus three undocumented parameters. For a listing tool the description should at least indicate what a returned key record contains and whose keys are returned; neither is present.
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?
Three parameters (form, params, json_body) with 0% schema description coverage and no mention of them in the description. The description provides no compensating meaning for what these opaque passthrough parameters should contain, so the agent has no basis for populating them correctly.
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?
States a specific verb (list) and specific resource (registered WebAuthn/FIDO2 2FA security keys), which is more precise than the bare title 'Get webauthn'. It separates itself somewhat from siblings like activate_webauthn or generate_webauthn_challenge, though it never explicitly distinguishes itself from vaultwarden_get_api_webauthn.
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?
No when-to-use or when-not-to-use guidance, and no sibling is named as an alternative. The agent must infer from the noun phrase that this is for auditing a user's enrolled security keys rather than enrolling or deleting them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_hibp_breachHibp breachC
Proxy a Have I Been Pwned breach lookup for a username
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| username | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare openWorldHint=true, which the word 'proxy' implicitly reinforces by signaling an external third-party (HIBP) call — useful context. However, the description does not explain why readOnlyHint is false for what reads as a lookup, nor does it disclose rate limits, network dependency, or whether results are cached. With annotations covering the safety profile, a 3 fits.
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?
A single front-loaded sentence with zero padding. It is efficient, though its terseness leaves gaps that a second clause about the external dependency or inputs could have closed.
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 four-parameter, zero-coverage tool with no output schema and no required fields, a one-line description is not enough — the agent cannot tell which parameters matter, what the response contains (breach list, count, error?), or what an external failure looks like.
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 0% across four parameters, and the description only names 'username'. The generic wrapper parameters (form, params, json_body) are completely unexplained, and even the username parameter lacks format details (email vs. account name).
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?
States a specific verb ('proxy ... lookup') and resource ('Have I Been Pwned breach') scoped to a username, which is clearly distinguishable from the surrounding vaultwarden CRUD tools. It stops short of explaining what 'proxy' implies about the underlying request, but an agent can identify the tool's function.
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?
There is no guidance on when to use this versus other lookup tools (e.g. vaultwarden_get_user_by_mail_json, vaultwarden_email), no prerequisites, and no mention of whether the username is an email, localpart, or user ID. The agent must infer the usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_icon_externalIcon externalB
Fetch/cache a site favicon by hostname from the internet
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| host | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare openWorldHint=true and destructiveHint=false, and the description adds useful context that this operation may cache the favicon. This helps explain readOnlyHint=false, since caching can involve a write, but the description does not cover failure behavior, cache invalidation, rate limits, or return format.
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 definition is a single front-loaded sentence with no filler. It communicates the core operation compactly, though its brevity means other dimensions carry the missing detail.
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 favicon-fetch tool, the description plus annotations gives enough context to know it fetches an external favicon by hostname. However, with 4 parameters and 0% schema description coverage, no output schema, and no sibling guidance versus vaultwarden_icon_internal, it remains minimally complete rather than fully informative.
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 0% across 4 parameters, and the description only clarifies the required host parameter as a hostname. The form, params, and json_body parameters are neither documented in the schema nor explained in the description, leaving most parameter semantics uncovered.
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 and resource: fetch/cache a site favicon by hostname from the internet. It is clear what the tool does, but it does not name or distinguish itself from the sibling vaultwarden_icon_internal, so the sibling differentiation is left only to the parent tool name.
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 phrase 'from the internet' implies an external-source favicon fetch, but the description gives no explicit when-to-use guidance, no conditions, and no mention of the vaultwarden_icon_internal alternative. An agent must infer the usage boundary from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_icon_internalIcon internalB
Serve a favicon from local cache without external fetch (used when icon fetching is disabled)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| host | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says the tool serves a favicon from local cache without external fetch, implying a read-only, closed operation. This directly contradicts the annotations readOnlyHint=false and openWorldHint=true, so the behavioral picture is inconsistent rather than transparent.
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 single tight sentence with the action front-loaded and the usage condition in a parenthetical. It is efficient, though its extreme brevity leaves important details uncovered elsewhere.
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 tool with four undocumented parameters and no output schema, the description is too sparse to fully guide invocation. It explains the tool's purpose but omits parameter roles and contradicts the safety annotations.
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 has four parameters (host required, plus form, params, json_body) with 0% schema description coverage, and the description provides no information about any of them. An agent cannot tell what host means or how the other parameters should be used.
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 ('Serve') and resource ('favicon') and scopes it to local cache without external fetch, clearly distinguishing it from the sibling external icon-fetching tool. An agent can immediately understand what this tool does.
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 parenthetical 'used when icon fetching is disabled' gives a clear condition for when to use this tool. It does not explicitly name or compare with vaultwarden_icon_external, but the local-cache vs external-fetch distinction is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_identity_post_preloginIdentity post preloginB
Get a user’s KDF type/iterations/memory/parallelism by email before attempting login
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the description does not need to re-declare safety. It adds value by naming the exact fields returned and the precondition step, but does not mention that this endpoint is typically unauthenticated, what happens for unknown emails, or that the POST is read-only in effect.
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?
One front-loaded sentence naming the action, the returned values, the input key, and the timing. No 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 usefully enumerates the returned KDF fields, which is the most important missing context. The remaining gap is parameter placement (email in json_body vs. form/params), which matters given three undocumented parameters.
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 0% across three generic parameters (form, params, json_body), and the description only hints that an email is involved without saying which parameter carries it. For a tool where all parameters are opaque and undocumented, the description should have specified where the email goes; it adds almost nothing beyond the schema.
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?
States a specific verb and resource: retrieve a user's KDF type/iterations/memory/parallelism by email, framed as a pre-login step. That is far more informative than the tautological name/title, though it does not distinguish itself from near-name siblings such as vaultwarden_accounts_post_prelogin or vaultwarden_prelogin_password.
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?
'before attempting login' implies the usage context and ordering relative to a login attempt. There is no explicit statement of when not to use it, no mention of the sibling prelogin/KDF variants, and no note about whether the email must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_identity_registerIdentity registerB
Register a new account (email, name, master-password hash, encrypted keys, KDF params)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the write/open-world nature is covered. The description adds the important payload semantics — that a pre-hashed master password and KDF parameters must be supplied client-side rather than a plaintext password — but says nothing about authentication requirements, what happens on duplicate email, or whether registration must be completed by a follow-up call.
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?
One parenthetical sentence, front-loaded with the action and immediately followed by the key payload items. No filler or redundancy.
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 security-critical account-creation mutation with three undocumented body parameters and no output schema, the description omits the container mapping, the required/optional split, auth preconditions, and error behavior. The field list is a start but leaves the agent unable to construct a correct call.
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 0% and the three parameters (form, params, json_body) are completely opaque with no types or descriptions. The description names the logical payload fields but never maps them to form/params/json_body, so the agent still cannot tell which container holds the KDF params versus the encrypted keys.
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?
States a specific verb ('Register') and resource ('a new account') and enumerates the credential material involved (email, name, master-password hash, encrypted keys, KDF params). It is clearly distinct from the read-oriented siblings, though it does not distinguish itself from vaultwarden_register_finish or vaultwarden_register_verification_email, which live in the same flow.
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?
No statement of when this endpoint should be invoked versus vaultwarden_register_finish or vaultwarden_register_verification_email, and no prerequisites (e.g. whether the server must allow open registration, whether the email must be pre-verified). The agent must infer the registration sequence entirely from tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_initiate_emergency_accessInitiate emergency accessC
Grantee starts the takeover/view waiting period
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive mutation (readOnlyHint=false, destructiveHint=false), so the safety profile is covered. The description does add real value beyond that by disclosing that the call only opens a waiting period rather than performing the takeover, but it omits waiting-period length, what state changes, and whether the action can be undone or withdrawn.
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?
A single short sentence with the actor and outcome front-loaded; nothing is wasted. The terseness is a completeness problem rather than a verbosity one.
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 mutating tool in a dense cluster of ~15 emergency-access siblings with zero parameter documentation and no output schema, one fragment is not enough. An agent cannot determine prerequisites, expected identifiers, or what to call next (view vs. takeover) from this definition alone.
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 0% and even emer_id is declared as an untyped empty object, so the description carries the full burden — yet it never mentions emer_id or what identifier it expects. The opaque wrapper parameters (form, params, json_body) are similarly unexplained, so an agent gets no help on how to construct the call.
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?
Names a specific actor (the grantee) and a specific action (starting the takeover/view waiting period), which distinguishes the initiation step from the later takeover itself. It does not explicitly name or rule out the many sibling emergency-access tools (takeover, view, approve, confirm), so sibling differentiation is left implicit.
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?
No guidance on when to call this versus vaultwarden_takeover_emergency_access, vaultwarden_view_emergency_access, vaultwarden_approve_emergency_access, or vaultwarden_confirm_emergency_access. Prerequisites such as being the designated grantee, an existing emergency-access record, and any required authentication are unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_invite_userInvite userC
Create/invite a new instance user from the admin panel
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the create-and-outbound nature is covered structurally. The description adds only that this happens via the admin panel; it says nothing about whether an invite email is dispatched immediately, what happens for an already-invited address, required admin permissions, or reversibility of the created account.
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?
A single front-loaded sentence with no filler, so it is concise. However, the brevity is under-specification rather than precision, since the one sentence carries almost no operational detail for a mutation 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?
Given a create operation with openWorldHint, no output schema, and three completely undocumented parameters, the description leaves too much unknown. It does not reveal the payload shape, the expected outcome (invited vs. created user), or what a failure returns.
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 0% and all three parameters (form, params, json_body) are untyped, undocumented, and defaulted to null. The description supplies no indication of what belongs in the body — email, name, permissions, or collections — so an agent cannot construct a valid call from either source.
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?
States a specific verb and resource ("Create/invite a new instance user") and adds the scope qualifier "from the admin panel," which separates it from organization-level invites such as vaultwarden_organizations_send_invite. It does not, however, explicitly distinguish itself from close siblings like vaultwarden_resend_user_invite or vaultwarden_confirm_invite.
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 only usage signal is the phrase "from the admin panel," which implies an admin-privileged context. There is no statement of when to choose this over resend_invite, bulk_reinvite_members, or organizations_send_invite, and no prerequisites (admin role, existing email, etc.) are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_ldap_importLdap importC
Bulk-provision/deprovision org members + groups from an external directory (SCIM/LDAP-style)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds 'bulk' and 'deprovision', but does not clarify whether deprovisioning disables or removes members (a meaningful distinction given destructiveHint=false), what existing data is overwritten, or what auth/directory setup is needed.
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?
A single front-loaded sentence that wastes no words and leads with the operation and scope. It is efficient, though efficiency here comes partly at the cost of substance rather than by distilling rich content.
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?
A bulk mutation tool with three opaque parameters, no output schema, and no annotation-level detail on effects. The description leaves critical gaps: payload shape, idempotency, what is provisioned/deprovisioned, and result reporting, all of which an agent needs before invoking it.
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 0% and all three parameters (form, params, json_body) are null-defaulted with no types or descriptions. The description says nothing to compensate, so the agent has no idea what to put in any of them or that all are apparently optional.
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?
States a specific verb (bulk-provision/deprovision), the resource (org members + groups), and the source (external SCIM/LDAP directory). The purpose is clear, but it does not differentiate from similarly-scoped siblings like vaultwarden_post_org_import or vaultwarden_bulk_delete_member, so an agent must still infer which import path to use.
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?
There is no explicit when-to-use, no prerequisites (e.g. directory connector config, admin scope), and no named alternative among the many bulk_* siblings. The phrase 'from an external directory' implies context but leaves the agent to guess at selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_leave_organizationLeave organizationC
Current user leaves an organization
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is partially covered structurally. The description adds nothing beyond that: it does not say the user loses access to org collections/ciphers, whether the action is reversible (re-invite required), or whether owner/sole-member constraints can block it.
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?
A single short, front-loaded sentence with no waste, but it is under-specified rather than genuinely concise for a tool with four parameters.
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 mutating membership operation with four undocumented parameters, no output schema, and only structural annotations, the description leaves an agent without the information needed to call it safely or correctly.
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 0% and org_id is defined as an empty object with no type or format. The description only implies an organization is identified; it gives no detail about the required org_id or the purpose of form/params/json_body.
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?
States a specific verb and resource ('leaves an organization') and clarifies the actor is the current user, which distinguishes it from admin-side member removal siblings such as revoke_member or delete_member. It is clear but does not explicitly name those siblings.
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?
No guidance on when to use this instead of vaultwarden_revoke_member, vaultwarden_delete_member, or vaultwarden_organizations_delete_organization. No prerequisites are stated, such as the user needing to be a member or restrictions on sole owners.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_list_policiesList policiesBRead-onlyIdempotent
List all policies configured for the org
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety behavior is covered. The description adds only that results are org-scoped and 'all' policies are returned (no pagination or filtering mentioned); it says nothing about permission requirements or return shape, so it adds limited value beyond the 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?
A single short sentence with zero waste and the key scoping information front-loaded. It is efficient but borders on under-specification rather than being genuinely informative.
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?
There is no output schema and four undocumented parameters, and the description does not say what a policy object contains, whether results are paginated, or what permission level is required. For an org-admin listing endpoint this leaves meaningful gaps an agent would need to fill by trial.
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 0% across 4 parameters, but the description does imply that org_id identifies the target org. The generic wrapper parameters (form, params, json_body) are left completely unexplained in both schema and description, so the description only partially compensates.
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?
States a specific verb and resource ('List all policies') scoped to an org, so the agent knows exactly what it returns conceptually. However, it does not distinguish itself from near-siblings such as vaultwarden_list_policies_token or vaultwarden_get_policy, leaving the agent to guess which one to call.
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 no when-to-use guidance, no prerequisites (e.g. admin/owner permission needed to read org policies), and never names an alternative such as vaultwarden_get_policy for a single policy. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_list_policies_tokenList policies tokenBRead-onlyIdempotent
List policies visible to an not-yet-member using their invite token
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| token | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context — that this surfaces a restricted, pre-membership view gated by an invite token — but says nothing about invalid/expired token behavior or what happens if org_id mismatches.
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?
One sentence, front-loaded with the verb and resource, with no filler. It could be tightened (the 'an not-yet-member' phrasing is awkward) but nothing is wasted.
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 tool with five undocumented parameters, no output schema, and a non-obvious token/org_id relationship, a single sentence leaves an agent guessing how to actually invoke it — notably which field carries the invite token. Annotations cover the safety profile, but the invocation contract is incomplete.
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 0% across five parameters, so the description must compensate and does not. The token is central to the description's wording, yet the description never states it is a parameter (nor where it goes — token vs. form vs. json_body), and the required org_id is never mentioned. Only the vague notion that a token is involved is conveyed.
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?
'List policies' is a clear verb+resource, and the qualifier 'visible to a not-yet-member using their invite token' scopes it to the pre-membership invite flow. It implicitly distinguishes itself from the sibling vaultwarden_list_policies via that token context, though the sibling is never named and the grammar ('an not-yet-member') is sloppy.
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 invite-token framing implies when to use it (an unauthenticated/organization-invitee context rather than an authenticated member listing), but it never states an explicit alternative such as vaultwarden_list_policies or any precondition. Usage is inferred rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_maintenance_apply_deduplicationApply DeduplicationA
Apply deduplication (vaultwarden_maintenance). Plan/apply vault deduplication and rotate or generate passwords.
Deduplication and rotation results carry item ids and counts only. Applying deduplication or rotating a password requires confirm: true, and a loose deduplication plan is never applied automatically.
CONCEPT:VW-ECO.mcp.maintenance-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses the confirm gate, a safety guard against auto-applying a loose plan, and the shape of results ('item ids and counts only'). It does not say what happens if confirm is omitted (error vs no-op), which is the one behavior an agent most needs before calling.
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 action and its constraints are front-loaded, but the middle sentence about plan/apply, rotation, and password generation describes sibling tools rather than this one, which dilutes focus. The trailing CONCEPT tag adds no decision value.
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 an output schema present and annotations covering mutability hints, the description supplies the key extras: the confirm requirement, the result shape, and the no-auto-apply guard. Only the failure mode for a missing confirm and the link to the plan tool are absent.
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% but the single params_json field is documented only generically, so the description's mention of 'confirm: true' is the sole hint that a specific key is required inside the JSON blob. That is useful but leaves the rest of the expected payload opaque.
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 first line states a specific verb+resource (apply deduplication on the vault) and scopes it to the maintenance family. However, it then lumps in 'rotate or generate passwords', which are separate sibling tools (vaultwarden_maintenance_rotate_password, vaultwarden_maintenance_generate_password), blurring the boundary of what this tool alone does.
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?
It establishes a real precondition ('requires confirm: true') and a safety rule ('a loose deduplication plan is never applied automatically'), which tells the agent when invocation is legitimate. But it never names vaultwarden_maintenance_plan_deduplication as the required precursor, leaving the plan-then-apply workflow implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_maintenance_generate_passwordGenerate PasswordC
Generate password (vaultwarden_maintenance). Plan/apply vault deduplication and rotate or generate passwords.
Deduplication and rotation results carry item ids and counts only. Applying deduplication or rotating a password requires confirm: true, and a loose deduplication plan is never applied automatically.
CONCEPT:VW-ECO.mcp.maintenance-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true. The description adds family-level notes (item ids and counts only; loose dedup plans never auto-apply) that do not describe this tool's own behavior — whether the generated password is returned, stored in a cipher, or how it interacts with the vault. No tool-specific behavioral disclosure beyond the 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?
Short and front-loaded with the purpose, but a large share of the sentences are spent on sibling operations (dedup plan/apply, rotation confirm) rather than this tool. It is not padded, but the content is misallocated.
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?
An output schema exists so return values need not be explained, yet the description still fails to say what invocation does (generate and return a string? create an item?) and omits any parameter guidance for an opaque JSON blob. For a generator with polymorphic input, this leaves the agent unable to call it confidently.
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% for the single params_json parameter, so the baseline is 3. However, that schema text is generic ("JSON object of parameters for the action") and the description names no accepted keys, so the agent still has no idea what to place in the blob.
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?
Opens with a specific verb+resource ("Generate password") but immediately pivots to describing the maintenance family's deduplication and rotation behavior, which belongs to the sibling tools vaultwarden_maintenance_apply_deduplication and vaultwarden_maintenance_rotate_password. An agent cannot tell from this text what generating a password actually produces or how it differs from rotate_password.
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?
No when-to-use statement for this tool. The only conditional guidance ("requires confirm: true") applies to applying deduplication or rotating a password, i.e. sibling actions, so it actively misroutes rather than helps. Nothing says when to call generate_password versus rotate_password.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_maintenance_plan_deduplicationPlan DeduplicationB
Plan deduplication (vaultwarden_maintenance). Plan/apply vault deduplication and rotate or generate passwords.
Deduplication and rotation results carry item ids and counts only. Applying deduplication or rotating a password requires confirm: true, and a loose deduplication plan is never applied automatically.
CONCEPT:VW-ECO.mcp.maintenance-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the output shape ("item ids and counts only") and a safety gate (confirm: true required before applying or rotating, and no automatic application of a loose plan). This is meaningful behavioral context that the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) do not convey.
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 constraints are front-loaded after the title restatement, and each sentence carries information, but the redundant parenthetical "(vaultwarden_maintenance)" and the trailing CONCEPT tag add no decision value for the agent.
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?
An output schema exists, so return values need not be explained, and the confirm gate is covered. However, for a non-idempotent, open-world mutation orchestrator with an opaque params_json, the description leaves unclear how actions are selected and how it relates to its three maintenance siblings.
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?
With a single params_json blob at 100% schema coverage, the schema only says "JSON object of parameters for the action," so the description should enumerate the keys. It does mention confirm: true, which adds real key-level meaning, but it never documents which other keys select between plan/apply/rotate/generate.
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 first clause names a verb and resource ("Plan deduplication"), but the follow-on sentence, "Plan/apply vault deduplication and rotate or generate passwords," blurs the scope so it now appears to overlap three siblings: apply_deduplication, rotate_password, and generate_password. An agent cannot tell from the description alone whether this tool only plans or also performs those mutations.
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?
It states that applying deduplication or rotating a password requires confirm: true and that a loose plan is never auto-applied, but that is a rule, not routing advice. It never says when to call this tool versus vaultwarden_maintenance_apply_deduplication or rotate_password, even though those siblings exist for exactly that purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_maintenance_rotate_passwordRotate PasswordBDestructiveIdempotent
Rotate password (vaultwarden_maintenance). Plan/apply vault deduplication and rotate or generate passwords.
Deduplication and rotation results carry item ids and counts only. Applying deduplication or rotating a password requires confirm: true, and a loose deduplication plan is never applied automatically.
CONCEPT:VW-ECO.mcp.maintenance-operations
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is known. The description adds non-redundant context: results carry item ids and counts only (so the agent knows there is no rich payload to inspect), and mutation requires confirm: true. The only weakness is that it describes the whole maintenance family rather than this operation specifically.
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 confirm rule is reasonably front-loaded, but the deduplication sentences ('a loose deduplication plan is never applied automatically') belong to a different operation and dilute the single-tool message. Roughly half the text does not earn its place in a rotate-password definition.
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?
Annotations and the output schema mature the gaps around safety and return shape, and the description covers the confirm gate. However, for a destructive credential-rotating operation with only one opaque parameter object, not naming the target item or the generation behavior leaves an agent without enough to invoke it confidently.
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%, but the schema only documents a generic 'params_json' bag, so the description carries the burden of naming keys. It reveals that confirm must be placed inside params_json, which is genuinely useful, but says nothing about which item id to rotate or whether a new password generation is controlled by a flag.
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 title 'Rotate Password' names a specific verb and resource, but the description immediately broadens into 'Plan/apply vault deduplication and rotate or generate passwords,' so an agent cannot tell whether this tool rotates only or also plans/applies dedup. Sibling tools (vaultwarden_maintenance_plan_deduplication, vaultwarden_maintenance_apply_deduplication, vaultwarden_maintenance_generate_password) are mentioned only as an undifferentiated bundle rather than contrasted.
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?
'Applying deduplication or rotating a password requires confirm: true' is a real gating rule, and 'a loose deduplication plan is never applied automatically' is useful safety framing. But there is no guidance on when to pick rotate_password versus generate_password versus the plan_deduplication sibling, so the routing decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_metadata_backfeed_metadataBackfeed MetadataC
Backfeed metadata (vaultwarden_metadata). Serve the certified metadata-only source projection.
metadata_snapshot returns opaque identifiers, type codes, lifecycle timestamps, counts, and typed relationships. Scion SDK source_sync is the only graph commit/checkpoint/reconcile authority. Backfeed is explicitly unsupported.
CONCEPT:VW-KG.ingest.metadata-only
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of metadata-source parameters. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and idempotentHint=false, implying a non-read, non-idempotent operation, yet the description frames the tool as "serving" a metadata-only "source projection," which reads as a query. The description adds governance prose (source_sync is sole authority, backfeed unsupported) rather than disclosing what the call actually changes or returns, so the behavior remains opaque despite 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 text is short but not well front-loaded: the actionable clause ("serve the certified metadata-only source projection") competes with governance disclaimers and a trailing "CONCEPT:VW-KG.ingest.metadata-only" label that conveys little to an invoking agent. Several sentences exist for internal governance framing rather than helping selection or invocation.
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?
An output schema exists, so return-value explanation is not required, but for a tool whose annotations flag a non-idempotent write and whose purpose is muddied by "backfeed is unsupported," the description does not resolve what an agent should actually expect. The governance statements leave the core behavior and effect unexplained.
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?
There is a single optional params_json parameter with 100% schema description coverage, so the schema already documents the free-form JSON object. The description adds nothing about expected keys, structure, or defaults ("{}"), so it neither compensates for nor improves on the schema; baseline 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?
"Serve the certified metadata-only source projection" gives a domain-specific but jargon-heavy statement of purpose, and the reference to metadata_snapshot returning opaque identifiers partially situates it. However the sentence "Backfeed is explicitly unsupported" directly undercuts the tool's own name, leaving the agent unsure whether this tool actually performs a backfeed action or merely exposes a read projection.
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?
"Scion SDK source_sync is the only graph commit/checkpoint/reconcile authority" names an alternative but only as a governance declaration, not as actionable routing guidance. There is no explicit "use this tool when..." condition, and nothing distinguishes it from the sibling vaultwarden_metadata_metadata_snapshot beyond an ambiguous sentence about what snapshot returns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_metadata_metadata_snapshotMetadata SnapshotC
Metadata snapshot (vaultwarden_metadata). Serve the certified metadata-only source projection.
metadata_snapshot returns opaque identifiers, type codes, lifecycle timestamps, counts, and typed relationships. Scion SDK source_sync is the only graph commit/checkpoint/reconcile authority. Backfeed is explicitly unsupported.
CONCEPT:VW-KG.ingest.metadata-only
| Name | Required | Description | Default |
|---|---|---|---|
| params_json | No | JSON object of metadata-source parameters. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations say readOnlyHint=false, idempotentHint=false, openWorldHint=true, yet the description reads like a pure projection read ("serve", "returns...") and explicitly disclaims the commit/reconcile role — so the agent gets no explanation of what the non-read-only side effect actually is, whether repeat calls differ, or what external source is contacted. The conflict with the annotations is not resolved, only muddied; with annotations present, this should have clarified the write/caching behavior rather than omit it.
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?
It is short and the return-contents sentence is front-loaded and useful. But the opening "Metadata snapshot (vaultwarden_metadata)" restates the name and title, and the trailing "CONCEPT:VW-KG.ingest.metadata-only" is an internal taxonomy tag with no decision value for an agent.
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?
An output schema exists so return values needn't be spelled out, and the description partly does so anyway. What is missing is the operationally important context: what the tool actually does to the environment (given readOnlyHint=false), whether authentication or a configured source is required, and what the opaque params_json must contain — none of which the schema or annotations cover.
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%, so the single params_json field is nominally documented, giving the baseline of 3. But the schema text ("JSON object of metadata-source parameters") is a near-empty container, and the description adds no hint about which keys that blob accepts or how filtering/scope is expressed, leaving an opaque free-form parameter unexplained.
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 says it "serves the certified metadata-only source projection" and enumerates what is returned (identifiers, type codes, timestamps, counts, typed relationships), which implies a metadata read/snapshot. However, the phrasing is heavy domain jargon ("certified projection", "CONCEPT:VW-KG.ingest.metadata-only") and never states plainly what the tool operates on or where the snapshot comes from. Compared to the sibling vaultwarden_metadata_backfeed_metadata, the distinction is only implicit (backfeed unsupported).
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?
"Scion SDK source_sync is the only graph commit/checkpoint/reconcile authority" and "Backfeed is explicitly unsupported" give useful negative guidance by naming what this tool must NOT be used for. But there is no positive statement of when to call it, what triggers it, or which sibling to pick instead for mutation/graph work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_move_cipher_selectedMove cipher selectedC
Bulk move ciphers into a folder (or remove from folder)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the description adds little. It does contribute the "bulk" scope and the fact that a removal mode exists, but it omits whether folder membership is replaced or appended, what permissions are required, and what happens on partial failure across the bulk set.
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?
One short sentence with the action front-loaded and no filler. Its brevity is appropriate, though the parenthetical is slightly cryptic about how removal is expressed.
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?
A bulk mutation tool with three completely undocumented free-form parameters, no output schema, and a near-duplicate sibling is not adequately specified by a single nine-word sentence. The description should at minimum say which fields carry the selection and the destination folder.
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 0% and all three parameters (form, params, json_body) are untyped and undescribed. With that gap the description must compensate, but it never says where the cipher IDs or target folder ID go, nor how the remove variant is signaled.
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 gives a specific verb and resource ("bulk move ciphers into a folder") plus the remove-from-folder variant, so the general action is clear. However it does not distinguish this tool from the near-identical sibling vaultwarden_move_cipher_selected_put, which appears in the sibling list, leaving the agent guessing which of the two to call.
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?
There is no guidance on when to use this versus the _put sibling, versus archive/restore, or versus a single-cipher update. The parenthetical "(or remove from folder)" hints at the removal case but never says how that case is expressed in the request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_move_cipher_selected_putMove cipher selected putC
Bulk move ciphers into a folder (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is partially covered. The description adds only that the operation is 'bulk', and omits critical behavior for a mutation: required permissions, whether the target folder must already exist, what happens to partially failing items, and whether the move is reversible.
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?
A single short, front-loaded sentence with no wasted words and the core action stated first. It is arguably too terse, but under-specification is better penalized under other dimensions than counted as a conciseness failure.
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 mutation tool with three undocumented parameters, no output schema, and only partial annotation coverage, the description should define 'selected', describe the request payload, and note auth/folder prerequisites. It does none of these, leaving the agent with too little to invoke it safely.
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?
All three parameters (form, params, json_body) have 0% schema description coverage, and the description says nothing about their contents, such as that json_body must carry the folder id and the list of selected cipher ids. With the schema doing none of the work, the description entirely fails to compensate.
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 gives a specific verb (move) and resource (ciphers) plus scope (bulk, into a folder), which is more than a restatement of the name. It does not explain what 'selected' means or how this PUT alias differs from the sibling vaultwarden_move_cipher_selected, so sibling differentiation is missing.
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?
There is no guidance on when to use this tool versus vaultwarden_move_cipher_selected (the non-PUT variant) or the general vaultwarden_put_cipher with a folder change. The '(PUT alias)' remark hints that a duplicate route exists but does not tell the agent which one to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_nowNowC
Return current server time
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a pure read, while annotations declare readOnlyHint=false, an inconsistency an agent could notice; the mismatch appears to be a conservative default rather than a truthful write claim, but it is still unreconciled. Beyond that, the one-line description adds nothing about whether this endpoint requires authentication, whether the response is cached, or the timezone/format of the returned time. With annotations supplying only a coarse safety profile, the description carries the burden and does not meet it.
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?
A single front-loaded sentence with zero filler, appropriately sized for a trivial endpoint. There is no padding, but the extreme brevity is under-specification rather than disciplined concision.
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 no-output-schema, zero-required-parameter utility call, knowing the purpose may be just enough to invoke it. However, nothing tells the agent whether the three generic wrapper parameters can be ignored, nor what the returned time looks like, leaving real gaps for a tool the agent must call blind.
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?
Three parameters exist (form, params, json_body) with 0% schema description coverage and completely generic, untyped names; the description says nothing about them. Since all three are optional with null defaults, the likely truth is that no parameters are needed, but the agent is left to infer that from the schema rather than being told 'takes no arguments'.
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?
A clear verb+resource pair ('Return current server time') that tells the agent exactly what the call yields, and it is distinguishable from sibling diagnostics like vaultwarden_version and vaultwarden_alive by name. It does not, however, state how this differs from those siblings or when one would be preferred over the other.
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 no when-to-use context, no exclusions, and never references the closely related siblings (vaultwarden_version, vaultwarden_alive, vaultwarden_revision_date) that an agent would have to disambiguate from. Usage is at best implied by the phrase 'server time'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_organizationsVaultwarden OrganizationsC
Manage organizations, collections, members, groups, and policies, plus the public LDAP import and misc server-settings/HIBP routes.
Dispatches to every Vaultwarden organizations, public, and
misc API route by its route name.
CONCEPT:VW-ECO.mcp.organization-operations
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Vaultwarden organizations/public/misc operation name (a Route.name). Call with action='list_actions' to list every available operation. | |
| params_json | No | JSON object of path/query parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the dispatch-by-route-name mechanism, but nothing about mutation vs read behavior, destructive operations (org/policy deletion, LDAP import), authentication or server-config prerequisites, or rate limits — significant gaps for a dispatcher spanning dozens of write routes.
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?
Short and front-loaded: coverage statement first, dispatch mechanism second. The trailing 'CONCEPT:' token is noise, and the 'plus the public LDAP import and misc...' clause is dense, but overall it is efficient.
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?
An output schema exists, so return values need not be described. However, for an unannotated mega-dispatcher over read and write routes, the description omits the operational prerequisites and safety context an agent needs before firing it, leaving it only minimally adequate.
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 the schema already explains 'action' as a Route.name and 'params_json' as path/query parameters. The description adds only the general dispatch concept and does not clarify param_json shape for specific actions, so baseline 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?
It names a concrete verb ('Manage') plus the resource families (organizations, collections, members, groups, policies, plus public LDAP and misc routes) and states the dispatch mechanism by route name. The domain enumeration implicitly separates it from siblings like vaultwarden_ciphers or vaultwarden_sends, though it never explicitly contrasts them.
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?
No statement of when to use this tool versus siblings. The claim to also cover 'public' and 'misc server-settings/HIBP routes' actively blurs the boundary against vaultwarden_system and vaultwarden_maintenance without resolving which one wins. The only usage hint (action='list_actions') lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_organizations_accept_inviteOrganizations accept inviteC
Invited user accepts the org invite
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-destructive, open-world write, so safety is covered structurally. The description adds nothing about who must be authenticated (the invited user vs. an admin), what state the membership moves into, or whether a token/acceptance is required — it largely restates the title.
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?
A single short, front-loaded sentence with no filler or repetition. It is efficiently sized, though the brevity reflects under-specification rather than disciplined editing.
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 five undocumented parameters, no output schema, and a membership state change implied, the description is far too thin for an agent to invoke this correctly. It should at minimum clarify who performs the acceptance and what identifiers are required.
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 0% across five parameters. The description does not explain what org_id or member_id identify, nor what the generic form/params/json_body passthrough objects are for, so an agent gets no help mapping values to the invite.
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 and resource: an invited user accepting an organization invite. It is distinguishable from invite-sending siblings (send_invite, resend_invite) by the 'accepts' verb, though it never names those alternatives explicitly.
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?
There is no guidance on when to call this versus confirm_invite, bulk_confirm_invite, emergency_access_accept_invite, or the send/resend invite tools. The agent must infer the use case purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_organizations_delete_organizationOrganizations delete organizationDDestructive
Delete an organization
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is known. The description adds nothing beyond that: no statement of what is destroyed (members, collections, ciphers), whether it is reversible, what permissions are required, or whether confirmation is needed.
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?
It is a single front-loaded sentence with no padding, so nothing is wasted. However, the brevity comes from under-specification rather than efficiency, so it only meets the minimum bar.
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?
This is a destructive, irreversible-sounding operation with four undocumented parameters, no output schema, and no annotations beyond generic hints. For that complexity level, a four-word description leaves an agent without nearly everything it needs to invoke the tool safely.
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 0% and the description provides no parameter meaning at all. The required org_id, plus the opaque form, params, and json_body properties (all untyped, no descriptions), are left entirely unexplained, so an agent cannot tell what org_id expects or what the other fields are for.
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 'Delete an organization' merely restates the tool name (organizations_delete_organization) and title. It does identify the verb and resource, but adds no scope, no distinction from siblings like vaultwarden_admin_delete_organization or vaultwarden_post_delete_organization, and no sense of what deletion means here.
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?
No when-to-use guidance is given. The sibling list contains at least three plausible delete-organization tools (vaultwarden_admin_delete_organization, vaultwarden_post_delete_organization, vaultwarden_organizations_delete_organization) plus purge_org_vault, and the description offers nothing to choose between them or to say whether prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_organizations_post_api_keyOrganizations post api keyC
Generate/rotate the org’s API key (for client_credentials / public API access)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, which is consistent with the description, but the description omits the most important behavioral fact for a key rotation: that generating a new key invalidates the previous one and breaks existing client_credentials integrations. It also says nothing about required admin/owner permissions or whether the key is returned once. With annotations carrying only a thin safety profile, this is a significant gap.
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?
A single short sentence with the operation front-loaded and no filler. It is efficiently written, though the brevity is partly under-specification rather than discipline.
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 mutation tool with four undocumented parameters, no output schema, and a near-duplicate sibling, one sentence is not enough to call it correctly or safely. An agent lacks the invalidation semantics, permission requirements, and payload expectations it needs.
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 0% and the four parameters (form, params, json_body, org_id) have no types, descriptions, or enums. The description only implies that an org is targeted ('the org's API key') and says nothing about what belongs in json_body/form or whether the key payload is supplied or generated server-side.
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?
States a specific verb+resource: generating/rotating an organization's API key, and adds the intended consumer (client_credentials / public API access). However, it does not distinguish itself from the nearly identical sibling vaultwarden_organizations_rotate_api_key (or vaultwarden_accounts_rotate_api_key), so an agent cannot tell which one to pick from the description alone.
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 parenthetical '(for client_credentials / public API access)' hints at the purpose of the resulting key but gives no when-to-use/when-not guidance and never mentions the obvious alternative, vaultwarden_organizations_rotate_api_key. Worse, the description claims to 'rotate', directly overlapping that sibling's name, leaving the choice to guesswork.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_organizations_rotate_api_keyOrganizations rotate api keyC
Rotate the org’s API key
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, open-world mutation with destructiveHint=false. The description adds no behavioral context such as whether the old key is invalidated, required permissions, or operational impact, so it adds little beyond the structured 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 a single front-loaded sentence with no wasted words. However, it is too terse for a four-parameter mutation tool, so conciseness comes at the cost of necessary detail.
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 security-sensitive mutation with four parameters, zero schema descriptions, and no output schema, the description is incomplete. It lacks parameter guidance, side-effect disclosure, and authentication or permission context.
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 0% across four parameters. The description implies org_id via 'org's API key', but it does not explain form, params, or json_body, leaving most invocation details opaque.
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 and resource: rotate the org's API key. It is clear enough to distinguish this from read/list organization tools, but it does not differentiate itself from sibling tools like vaultwarden_accounts_rotate_api_key or vaultwarden_organizations_post_api_key.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent must infer usage entirely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_organizations_send_inviteOrganizations send inviteC
Invite a user to the organization by email
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the writing/side-effecting nature is covered. The description adds only that the invite goes out by email, but says nothing about permission requirements, what happens on a duplicate invite, whether pending invites block re-invites, or the shape of the payload to submit.
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?
A single short sentence with no waste, but it is under-specified rather than tight; the brevity comes at the cost of missing payload and permission information.
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, no annotations covering permissions, and four completely undocumented parameters, the description leaves the agent without enough to construct a valid call or predict the outcome.
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 0% across four parameters whose names (form, params, json_body) are entirely opaque, and org_id is untyped. The description mentions an email but never says which parameter carries it, so it fails to compensate for the coverage gap.
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?
States a specific verb and resource ('invite a user to the organization') plus the delivery channel ('by email'), which is enough to understand the action. It does not distinguish itself from closely related siblings such as vaultwarden_invite_user, vaultwarden_resend_invite, or vaultwarden_bulk_reinvite_members.
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?
No guidance on when to use this versus the many other invite-related siblings (invite_user, resend_invite, bulk_confirm_invite, organizations_accept_invite). No prerequisites are mentioned, such as admin/owner role requirements for inviting into an organization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_password_emergency_accessPassword emergency accessC
Grantee completes takeover: uploads the grantor’s user key re-encrypted under a NEW master key/password chosen by the grantee
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the description need not restate the read/write profile. It usefully adds that the grantor's user key is re-encrypted under a NEW master key/password chosen by the grantee, which is real behavioral context. It still omits required permissions, whether the grantor's old credentials stop working, and reversibility for what is a security-critical mutation.
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?
A single front-loaded sentence with no filler. It is terse rather than verbose, though the terse phrasing borders on under-specification.
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 destructive-adjacent, security-critical emergency-access operation with no annotations covering auth/irreversibility, zero schema description coverage, and no output schema, the description should carry far more: required state, inputs, and consequences. It leaves the agent unable to determine prerequisites or parameter usage.
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 0% and four parameters (emer_id, form, params, json_body) are entirely undocumented. The description explains the cryptographic payload conceptually but never maps it to emer_id or clarifies what form/params/json_body hold, so an agent cannot construct the call from this text.
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 concrete action (grantee completes takeover by uploading the grantor's user key re-encrypted under a new master key), which goes beyond the title. However, it never reconciles itself with the very similar sibling vaultwarden_takeover_emergency_access, and the tool name ('password_emergency_access') does not match the takeover semantics described, leaving the agent unsure what distinct operation this is.
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?
There is no statement of when to call this versus vaultwarden_takeover_emergency_access, vaultwarden_confirm_emergency_access, vaultwarden_emergency_access_accept_invite, or vaultwarden_approve_emergency_access. The description gives no preconditions (e.g. that the grantee accepted the invite or that a takeover was approved).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_password_hintPassword hintC
Request password hint be emailed
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and openWorldHint=true, so the agent knows this causes external side effects. The description adds only that an email is sent, which is roughly what the name implies; it says nothing about how the target account is identified, whether the request is rate-limited, or whether it leaks account existence. For an unauthenticated-facing email trigger with opaque parameters, that is a significant disclosure gap.
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?
It is one short sentence with no filler, but it reads as a truncated fragment rather than a front-loaded statement of purpose and effect. Brevity here comes at the cost of the information the description should have provided.
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, three undocumented free-form parameters, and an external email side effect, the description needs to explain the request shape and outcome. It explains neither, leaving the caller unable to invoke the tool confidently.
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?
All three parameters (form, params, json_body) have 0% schema description coverage, so the description must carry the full burden and it contributes nothing — no mention of where the email/username goes, which param to populate, or whether body fields are required. An agent cannot reliably construct a call from this.
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 phrase 'Request password hint be emailed' identifies a verb (request) and an effect (email a password hint), so the intent is inferable. However it never says whose hint, on what basis, or how this differs from nearby tools such as vaultwarden_request_otp or vaultwarden_password_emergency_access. The sentence fragment phrasing leaves the purpose only vaguely pinned down.
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?
There is no statement of when to use this versus alternatives, no prerequisites (e.g. must a user be unauthenticated or identified first), and no exclusions. The agent must guess its place among the many auth/email-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_policies_emergency_accessPolicies emergency accessC
Get org policies applicable to the emergency-access relationship
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Get,' which implies a read operation, but the annotations declare readOnlyHint=false. That is a direct contradiction. The description also does not disclose permission requirements, rate limits, or other behavioral context.
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 single front-loaded sentence with no wasted wording. Its brevity contributes to the conciseness score, even though the overall definition remains under-specified.
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 four-parameter tool with no output schema and 0% parameter documentation, the description is not complete enough. It lacks parameter semantics and usage guidance, and its read-style wording conflicts with the readOnlyHint=false annotation.
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 four parameters and 0% schema description coverage. The description only hints at an emergency-access identifier and does not explain emer_id, form, params, or json_body.
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 and resource: 'Get org policies applicable to the emergency-access relationship.' It is clear what the tool retrieves, though it does not explicitly distinguish itself from nearby policy or emergency-access siblings.
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?
There is no explicit guidance on when to use this tool versus alternatives such as list_policies, get_policy, or get_emergency_access. Usage is only implied by the phrase 'applicable to the emergency-access relationship.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_accessPost accessB
Anonymous: fetch a Send’s metadata by access id (for viewing/decrypting)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contributes one genuinely useful behavioral fact not in annotations: the call is anonymous/unauthenticated (though openWorldHint hints at it). It does not mention that this POST endpoint consumes an access attempt / can invalidate the Send when the access limit is reached, which is why readOnlyHint=false -- an important nuance for an invoker. Not a contradiction, but a gap.
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?
A single short phrase with the most important qualifier ('Anonymous') front-loaded; nothing is wasted. It errs on the side of under-specification rather than verbosity, so it is efficient but not fully sufficient.
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 three undocumented parameters, no output schema, and a dense set of near-identical Send/access siblings, the description leaves the agent without the information needed to construct a correct call. It should at minimum identify the access-id parameter and the expected response shape.
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 0%: three parameters (form, params, json_body) are completely undocumented. The description says 'by access id' but never says which parameter carries the access id or in what form (path vs body), so the agent must guess between three opaque carriers.
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?
States a specific verb and resource: fetch a Send's metadata by access id. That is concrete and immediately actionable. However, it does not distinguish itself from close siblings in the huge toolset, notably vaultwarden_post_access_legacy, vaultwarden_post_access_file, vaultwarden_get_send, and vaultwarden_download_send, leaving the agent to infer the boundary.
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 'Anonymous:' prefix and '(for viewing/decrypting)' parenthetical imply the usage scenario: unauthenticated retrieval of a Send so its contents can be decrypted. But it never states when this is preferable to the legacy or file variants, nor what preconditions (valid access id, Send not expired) apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_access_filePost access fileB
Anonymous: get a download URL for a Send file
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| file_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds useful behavioral context by stating that access is anonymous and that the result is a download URL, but it does not explain side effects, error behavior, or what happens if the Send file is unavailable. No contradiction with 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 definition is a single front-loaded sentence with no filler. Every part of it contributes to identifying the endpoint's purpose and anonymous context.
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 tool with 4 parameters, 0% schema description coverage, and no output schema, the description is too sparse. It gives the high-level purpose and return type, but does not explain the required file_id or the optional form, params, and json_body parameters.
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 has 4 parameters with 0% description coverage, and the description mentions none of them explicitly. 'Send file' loosely implies file_id, but form, params, and json_body are left completely undocumented in both the schema and the description.
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 action and resource: 'get a download URL for a Send file', and adds that this is anonymous. It is clear what the tool does, but it does not distinguish this endpoint from closely related siblings such as vaultwarden_post_access, vaultwarden_post_access_file_legacy, or vaultwarden_download_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 word 'Anonymous:' implies the key usage context, namely unauthenticated access to a Send file. However, there is no explicit guidance on when to choose this tool over alternatives like vaultwarden_post_access, vaultwarden_post_access_legacy, or vaultwarden_download_send, nor any when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_access_file_legacyPost access file legacyC
Anonymous: legacy get-download-URL path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| file_id | Yes | ||
| send_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is partly covered. The description adds useful context that the path is anonymous and legacy, but it does not explain what the POST actually does beyond returning a URL, nor does it describe side effects or response behavior.
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 short, but it is not concise in a helpful way; it is an under-specified sentence fragment. It is front-loaded with 'Anonymous', but the rest of the text does not earn its place by explaining the operation, parameters, or alternatives.
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 tool with five parameters, zero schema description coverage, no output schema, and only sparse annotations, this description is far from complete. It leaves the agent without the information needed to understand what is being accessed, how to form the request, or what will be returned.
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 has five parameters with 0% description coverage, including required send_id and file_id plus opaque form, params, and json_body fields. The description mentions none of these parameters and provides no meaning, format, or constraints to compensate for the empty schema documentation.
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 fragment 'legacy get-download-URL path' hints that the tool retrieves a download URL through an older endpoint, and 'Anonymous' adds a scope qualifier. However, it never states that it operates on a Send file, never mentions send_id or file_id, and does not distinguish it from siblings such as vaultwarden_post_access_file or vaultwarden_post_access_legacy.
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 word 'Anonymous' weakly implies this is for unauthenticated access, but the description gives no explicit when-to-use guidance. It does not say when to choose this legacy path instead of the non-legacy post_access_file or post_access_legacy alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_access_legacyPost access legacyB
Anonymous: legacy path for fetching a Send by access id
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| access_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is partly covered. The description adds useful context by saying the access is anonymous and legacy, but it does not explain the side effect implied by readOnlyHint=false (e.g., access count mutation) or other behavioral 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 a single front-loaded sentence with no wasted words, and the anonymous/legacy qualifiers appear immediately. It is concise, though its brevity contributes to the gaps in parameter and side-effect coverage.
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 4 parameters, no output schema, and a non-read-only annotation, the description is too thin to be complete. It covers the access_id and legacy/anonymous context but omits the other three parameters and the behavioral implications of a POST access operation.
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 0% for 4 parameters, so the description must carry the burden. It only identifies the required access_id; the form, params, and json_body parameters are undocumented in both the schema and the description, leaving significant ambiguity.
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 ('fetching') and resource ('a Send') scoped by access id, and it explicitly marks the path as 'legacy', which distinguishes it from the modern post_access sibling. It does not name the alternative tool directly, but the legacy qualifier is enough to differentiate purpose.
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 implies usage through 'Anonymous' and 'legacy path', suggesting this is for unauthenticated legacy clients. However, it does not explicitly say when to use this instead of vaultwarden_post_access or when not to use it, leaving the agent to infer the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_attachmentPost attachmentC
Upload attachment (legacy single-phase)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the schema-carrying safety profile is known. The description adds only "legacy single-phase" and does not explain authentication needs, file size limits, overwrite behavior, or what form/params/json_body represent.
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 only four words and is front-loaded, but it is under-specified rather than appropriately concise. It omits information an agent needs in order to invoke an upload operation with four undocumented parameters.
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 multipart-like upload tool with four parameters at 0% schema coverage, no output schema, and multiple confusingly similar sibling tools, the description is far too sparse. It does not provide enough context to select or invoke the tool correctly.
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 0% and the description adds no meaning for the four parameters. The required cipher_id is only inferable from its name, and form, params, and json_body remain completely opaque.
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 names a clear verb and resource ("Upload attachment") and adds a vague qualifier ("legacy single-phase"), so the agent knows this creates an attachment. However, it does not distinguish this tool from closely named siblings such as vaultwarden_post_attachment_v2, vaultwarden_post_attachment_v2_data, or vaultwarden_post_attachment_share, so selection remains ambiguous.
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 contains no explicit when-to-use guidance and does not name alternatives. The word "legacy" hints that a newer sibling exists, but it does not state when this legacy path should be chosen over v2 or share variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_attachment_adminPost attachment adminC
Upload attachment via admin path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world operation. The description adds the useful behavioral detail that this is the admin path, but it does not explain overwrite behavior, auth requirements, upload constraints, or expected effects beyond what annotations already imply.
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 single front-loaded phrase with no wasted words. However, it is so terse that it omits nearly all operational context, even though conciseness itself is good.
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?
This is a mutating upload endpoint with four undocumented parameters and no output schema, so the description should carry more weight. It does not explain the required cipher_id, payload structure, admin authentication, or how it differs from the many sibling attachment upload operations.
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 has four parameters with 0% description coverage, and the description does not mention any of them, including the required cipher_id or the form, params, and json_body fields. For a four-parameter upload tool, this leaves parameter usage entirely undocumented.
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 (Upload) and resource (attachment), plus the admin-path variant. It is clearer than a tautology, but it does not distinguish this operation from sibling attachment upload tools such as post_attachment or post_attachment_v2 beyond the word 'admin'.
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?
There is no guidance on when to use this admin attachment upload versus non-admin, v2, share, or data variants. It also does not mention prerequisites such as administrator authentication or the expected use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_attachment_v2Post attachment v2B
Begin attachment upload (v2): register metadata, get upload URL
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world write. The description adds useful behavior (it registers metadata and returns an upload URL) but omits auth requirements, what metadata gets stored, and how the returned URL is consumed.
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?
A single front-loaded sentence with no filler. It is terse but every phrase contributes; the colon fragment is a minor structural weakness only.
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 4-parameter mutation tool with zero schema coverage and no output schema, this description is too thin. It hints at the return value but leaves most parameters and the two-step upload flow unexplained.
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 0% across 4 parameters (form, params, cipher_id, json_body), so the description carries the burden but explains none of them. It only implicitly signals cipher association and metadata registration, leaving form/params/json_body undefined.
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 gives a specific verb and resource ('Begin attachment upload') and clarifies the operation is metadata registration plus retrieving an upload URL. The '(v2)' label hints at the newer variant but does not explicitly distinguish it from siblings like vaultwarden_post_attachment, vaultwarden_post_attachment_v2_data, or vaultwarden_post_send_file_v2.
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 word 'Begin' implies this is the first step of a multi-phase flow, but the description never names the follow-up step (likely vaultwarden_post_attachment_v2_data) or states when to prefer it over the v1 attachment sibling. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_attachment_v2_dataPost attachment v2 dataB
Upload the encrypted attachment bytes (v2 second phase)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No | ||
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, open-world, non-destructive write, so the safety profile is covered. The description adds genuine context the annotations lack: the payload must already be encrypted and this is the second of two phases. It omits auth requirements, what happens on failure, and whether the upload is idempotent or resumable.
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?
A single front-loaded clause with no filler; the essential scope ('v2 second phase') comes first. It is terse almost to a fault, but no sentence is wasted.
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 five-parameter mutation in a multi-phase upload protocol with no output schema and no parameter descriptions, the description is far too thin. An agent still cannot tell which fields to populate with the encrypted blob, what the response returns, or what to do once the second phase completes.
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 0% and three of the five parameters (form, params, json_body) are untyped with null defaults, so nothing structured explains them. The description only alludes to 'encrypted attachment bytes' without saying which parameter carries the bytes or what cipher_id/attachment_id must reference, leaving most of the payload shape undocumented.
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?
States a specific verb (upload) and resource (encrypted attachment bytes) and locates it in the v2 protocol as the second phase, which distinguishes it from the sibling vaultwarden_post_attachment_v2 (first phase). It does not name that sibling explicitly, but the 'v2 second phase' cue lets an agent place it.
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?
'v2 second phase' implies an ordering constraint—this must be invoked after the v2 initiation call—but the description never says so outright or names vaultwarden_post_attachment_v2 as the prerequisite. No exclusions or alternatives are given, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_auth_requestPost auth requestC
Create a new device "login with device" auth request
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is known. The description adds only that this is a device login auth request and does not disclose side effects, auth requirements, or response behavior beyond what the annotations provide.
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 single front-loaded sentence with no wasted text. Its brevity is appropriate, though the nested quoting makes it slightly harder to parse than necessary.
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 mutation tool with three undocumented parameters and no output schema, the description is far too thin. It does not explain which parameters are needed, what gets created, or what the caller should expect.
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 has 3 parameters with 0% description coverage, and the description does not mention form, params, or json_body at all. With no parameter guidance from either source, an agent cannot infer what to supply.
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 ('Create') and resource ('auth request') and adds device login context. It is distinguishable from read/update siblings like get_auth_request and put_auth_request, though the phrasing is slightly awkward with nested quotes.
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 no when-to-use guidance, prerequisites, or alternatives. It does not explain when an agent should create a new auth request versus using get_auth_requests or put_auth_request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_bulk_access_collectionsPost bulk access collectionsC
Bulk-set which users/groups can access a set of collections
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is partially covered. But the description is silent on the behavior that matters for a bulk permission write: whether existing access grants are replaced or merged, whether omitting a collection/user removes access, and what permissions are required.
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?
A single tight sentence with the action and target front-loaded; nothing is padded. It is under-specified rather than verbose, which is not a conciseness failure but leaves little to work with.
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 four-parameter bulk mutation with zero schema descriptions and no output schema, the description omits the payload shape, permission requirements, and replacement semantics. An agent could not reliably construct a call from this definition.
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 0% across 4 parameters, so the description must compensate and does not. It never mentions org_id (the sole required parameter) or explains the opaque form/params/json_body payloads that carry the actual user/group-to-collection mapping.
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 gives a specific verb ('Bulk-set') plus the resource ('which users/groups can access a set of collections'), so the agent knows this is a permission-granting bulk operation. It does not, however, distinguish itself from close siblings such as vaultwarden_post_bulk_collections or vaultwarden_put_collections_update, all of which touch collections in bulk.
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?
There is no statement of when to use this versus the many other bulk-collection tools, no prerequisites (admin/owner role), and no mention that this is the access-mapping endpoint rather than the collection create/update endpoint. The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_bulk_collectionsPost bulk collectionsC
Bulk-assign a set of ciphers to collections
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnly=false, destructiveHint=false, and openWorld=true, so the safety profile is partly covered. The description adds that this is a bulk assignment, but it does not explain whether assignments are additive or replacing, what permissions are required, or what happens to existing collection membership.
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 single front-loaded sentence with no filler. However, its brevity becomes under-specification given the opaque three-parameter schema.
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 bulk mutation with three completely undocumented parameters and no output schema, the description is far too thin. It gives the high-level concept but leaves an agent unable to construct a correct request.
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 0% and all three parameters ('form', 'params', 'json_body') have no types or descriptions. The description does not explain these parameters or map the cipher/collection payload to the schema at all.
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 gives a clear verb and resource: 'Bulk-assign a set of ciphers to collections.' It is more specific than the title 'Post bulk collections,' but it does not distinguish this tool from close siblings such as vaultwarden_post_bulk_access_collections.
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?
It implies a bulk-assignment scenario but gives no guidance on when to use this instead of related collection/cipher assignment tools. No prerequisites, exclusions, or alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_cipherPost cipherD
Update a cipher
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the description only needs to add write semantics on top - and it barely does. It never says whether the update is partial or full (significant given the existence of vaultwarden_post_cipher_partial and vaultwarden_put_cipher_partial), what happens to fields not supplied, or what permissions are required.
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?
Three words is concise but severely under-specified rather than efficient; there is no front-loaded scope, no payload description, and nothing to distinguish it from neighboring cipher tools.
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?
A mutation tool with an ambiguous payload schema, zero schema coverage, no output schema, and a description that contradicts the tool's own name is not callable with confidence. Nothing tells the agent how to build json_body/form/params or what state it will leave the cipher in.
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 0% and there are 4 undocumented parameters, including opaque ones like 'form', 'params', and 'json_body'. The description adds no parameter meaning whatsoever, so an agent calling this must guess the shape of the write payload.
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 says 'Update a cipher', which is a verb+resource, but it conflicts with the tool's own name and title ('post_cipher' / 'Post cipher') and does not distinguish it from the many siblings that clearly update ciphers (vaultwarden_put_cipher, vaultwarden_put_cipher_partial, vaultwarden_ciphers_edit_item). An agent cannot tell whether this creates, replaces, or partially patches a cipher.
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?
There is no when-to-use guidance, no mention of prerequisites, and no reference to alternatives even though the sibling list contains at least three other cipher-write tools. The only implied context comes from the word 'update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_cipher_adminPost cipher adminB
Update a cipher via the admin path (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the useful detail that this is an admin-scoped alias, but does not disclose permission requirements or consequences of the update, leaving gaps beyond the 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?
A single front-loaded sentence with no wasted words. It is efficient, though the extreme brevity leaves little room for the guidance this tool needs.
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 four-parameter mutation tool with zero schema descriptions and no output schema, the description does far too little. It never explains what the body/form/params inputs should contain or what the admin path implies.
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 0% and all four parameters (form, params, cipher_id, json_body) are undocumented. The description only implies that a cipher is identified, giving no meaning for the form/params/json_body inputs, so it fails to compensate for the coverage gap.
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 gives a specific verb (update) and resource (cipher) plus a scope qualifier (admin path / POST alias), which lets an agent distinguish it from non-admin siblings like vaultwarden_post_cipher and vaultwarden_put_cipher. It stops short of clarifying how it differs from vaultwarden_put_cipher_admin, so it isn't a 5.
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 phrase 'admin path' and 'POST alias' implies when this variant is used, but there is no explicit when/when-not statement or named alternative. Selection between the POST alias and the PUT variant is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_cipher_partialPost cipher partialB
Partial update: only folder assignment / favorite flag (no re-encryption needed)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false. The description adds real value by disclosing that this mutation touches only unencrypted metadata and needs no re-encryption, which tells the agent the payload need not be a full encrypted cipher. It does not mention permissions, error behavior, or what a partial write leaves untouched.
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?
A single compact sentence with the key constraint front-loaded and no filler. It is arguably over-compressed given the undocumented schema, but nothing in it is wasted.
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 four-parameter mutation with a 0%-coverage schema and no output schema, the description leaves the agent guessing which parameter carries the folder/favorite data and what cipher_id expects. The behavioral intent is captured but call construction is not.
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 0% across four parameters, so the burden is fully on the description, and it only indirectly hints at the payload contents (folder, favorite). It never explains cipher_id, the relationship between form/params/json_body, or the expected payload shape for those two fields.
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 (partial update) and a narrow scope for the cipher resource: only folder assignment and the favorite flag. That distinguishes it from vaultwarden_put_cipher (full update) by implication, though it never names the sibling explicitly.
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?
'Partial update: only folder assignment / favorite flag' implies when to use it (when only those two fields change) and 'no re-encryption needed' hints at why. But it never names alternatives such as vaultwarden_put_cipher_partial or vaultwarden_move_cipher_selected, so the agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_ciphersPost ciphersC
Create a cipher (personal or org, no collections in this call)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the description only needs to add context. It adds the single constraint that collections can't be set here, but says nothing about auth requirements, whether the cipher is encrypted client-side, what happens on failure, or what the response contains.
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?
A single short sentence, front-loaded with the action and ending with the one distinguishing constraint. Nothing is wasted, though the terseness is achieved by omission rather than by efficient phrasing.
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?
This is a mutation tool with no output schema and completely undocumented parameters. Given that the schema provides nothing, the description needed to explain payload shape and any prerequisites; it does neither.
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?
Three parameters (form, params, json_body) have 0% schema description coverage and opaque names; the description does not map the cipher payload to any of them. Only the loose implication that the body describes a cipher is conveyed, leaving the agent to guess at serialization format and required fields.
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?
It states a clear verb+resource ("Create a cipher") and scopes it to personal or org, which is more than a restatement of the name. But the sibling list contains several near-identical create tools (vaultwarden_post_cipher, vaultwarden_post_ciphers_create, vaultwarden_ciphers_create_item, vaultwarden_post_cipher_partial), and the description gives no basis for choosing among them.
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 parenthetical "no collections in this call" implies a constraint and hints that collection assignment happens elsewhere, but it never names the alternative tool or states when to prefer this create over the others. An agent is left to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_ciphers_adminPost ciphers adminC
Create a cipher as an org admin on behalf of the org (unassigned/admin path)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the write/read safety profile is covered. The description adds that the operation is performed on behalf of the org as an admin, which is useful context beyond annotations. It does not disclose required permissions, error behavior, or what 'unassigned/admin path' means operationally.
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?
A single short sentence with the primary action front-loaded and no filler. The parenthetical is vague rather than wasteful, but the whole description earns its place as a quick summary.
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?
This is a mutation tool with no output schema and three undefined parameters with no required fields, so the description must carry more weight. It covers the 'what' but omits permissions, payload semantics, and the distinction between the three opaque request-body parameters. Not adequate for an agent to invoke correctly.
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?
All three parameters (form, params, json_body) have 0% schema description coverage, and the description mentions none of them. An agent has no way to know which payload goes in 'form' versus 'params' versus 'json_body', nor their structure or required fields. The description provides zero compensation for a completely opaque schema, mirroring the low-calibration case.
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?
States a specific verb (Create) and resource (cipher) with a clear scope modifier: as an org admin on behalf of the org, on the admin/unassigned path. This does distinguish it from personal cipher creation. However, among the densely similar siblings vaultwarden_post_cipher_admin, vaultwarden_post_ciphers_create, and vaultwarden_post_ciphers_import, the description does not clarify the exact boundary, so it falls short of a 5.
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?
No when-to-use guidance, no prerequisites (e.g., admin/owner role required, org membership), and no exclusions. It implies an admin context but never tells the agent when to pick this over vaultwarden_post_cipher_admin or vaultwarden_post_ciphers_create, which is critical given the near-identical siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_ciphers_createPost ciphers createB
Create a cipher, optionally assigning collections in the same call
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare that this is a non-read-only mutation with destructiveHint=false and openWorldHint=true. The description adds the useful behavioral detail that collections can be assigned during creation, but it does not cover permissions, side effects, or failure behavior.
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 single front-loaded sentence with no wasted wording. It is efficient, though extremely terse for a create operation with ambiguous input parameters.
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 mutation tool with three undocumented parameters, no output schema, and many sibling create tools, the description is insufficiently complete. It provides the basic purpose but leaves the agent without enough information to call the tool correctly.
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 has three generic parameters, form, params, and json_body, with 0% description coverage and no required fields. The description only vaguely mentions collections and does not explain how any of these parameters should be populated or which fields belong where.
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 and resource: create a cipher. It also mentions an optional collection-assignment capability. However, it does not distinguish this tool from nearby siblings such as vaultwarden_post_cipher or vaultwarden_ciphers_create_item.
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 implies usage for creating ciphers, especially when collections should be assigned in the same call. It gives no explicit when-to-use guidance versus the many sibling create/update tools and does not state prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_ciphers_importPost ciphers importC
Bulk import ciphers + folders in one call
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (non-destructive write, open-world), so the description needed to add import-specific behavior. It does not say whether the import merges with or overwrites existing vault contents, how duplicates are handled, whether it is transactional/atomic, or whether authentication/org membership is required — all material for an import 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?
A single front-loaded sentence with no filler, and the distinguishing 'one call' detail is placed where it is seen first. It is arguably too short for the operation rather than padded.
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 bulk, payload-driven import with no output schema and zero-documented parameters, the description leaves an agent unable to construct a valid call or predict side effects. The safety annotations help, but the input contract and merge semantics are entirely absent.
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 0% for three undocumented params (form, params, json_body). The description only obliquely implies that ciphers and folders go into the payload; it says nothing about the expected structure, required fields, or why there are three separate input channels.
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?
States a specific verb ('Bulk import') and the resources involved ('ciphers + folders'), plus the key distinction of doing both in one call. It is not fully differentiated from siblings such as vaultwarden_post_org_import, vaultwarden_ldap_import, or vaultwarden_post_ciphers, but the core purpose is unambiguous.
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?
'in one call' hints at batch efficiency but gives no conditions for choosing this over vaultwarden_post_cipher, vaultwarden_post_ciphers, or vaultwarden_post_org_import. No prerequisites, no exclusions, no mention of when a bulk import is appropriate versus repeated creates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_clear_device_tokenPost clear device tokenC
Clear a device push token (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| device_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds nothing beyond that: it does not say what "clearing" does (device stops receiving push notifications?), whether the operation is idempotent, whether authentication as the device owner is required, or what a false destructiveHint means for a remove-like action.
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?
A single short sentence with no filler, action front-loaded. It is efficient but so terse that the parenthetical carries weight it cannot bear.
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?
A mutation tool with 0% parameter documentation, no output schema, and no explanation of effect or auth requirements. Annotations only cover safety hints, so the description needed to explain the operation's consequences and parameters; it does neither.
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 0% and four parameters are undocumented, so the description must compensate and does not. It never mentions device_id (the only required parameter) or the form/params/json_body passthrough objects, so an agent has no basis for populating them.
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?
States a specific verb and resource ("Clear a device push token"), which is unambiguous. The parenthetical "(POST alias)" gestures at the sibling vaultwarden_put_clear_device_token but never explains whether the two differ in behavior or are interchangeable.
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?
No statement of when to use this over vaultwarden_put_clear_device_token, vaultwarden_post_device_token, or vaultwarden_put_device_token. "(POST alias)" implies an alternative exists without saying how to choose, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_collections2_updatePost collections2 updateC
Set collections (v2, POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the write/safety profile is partially covered by structured data. The description adds nothing beyond that: it does not say what is mutated, whether the update is partial or full replacement, or what permissions are needed for a collection write.
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 definition is only five words, so it is trivially concise, but that is under-specification rather than economy. The one useful token (v2/POST alias) is present, but nothing is front-loaded toward what the tool actually does.
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?
A mutation endpoint with four undocumented parameters, no output schema, and at least three near-duplicate siblings requires far more than this. An agent cannot determine the request body or distinguish it reliably from the PUT alias, so the definition is not sufficient to call the tool correctly.
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?
Four parameters with 0% schema description coverage and no descriptions at all — form, params, json_body and even the required cipher_id have no type or meaning documented. The description contributes no parameter information whatsoever, leaving an agent to guess the shape of the payload it must POST.
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?
"Set collections (v2, POST alias)" names a resource and gestures at an update action, and the "v2, POST alias" tag does distinguish it from the PUT and non-v2 siblings in the list. However, "Set collections" is close to a restatement of the tool name, and it never says what aspect of the collections is being set (membership? permissions? the collection record itself?).
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 parenthetical "(v2, POST alias)" implies this is the POST-flavored duplicate of the v2 collections update, which is a weak implicit signal. There is no statement of when to choose it over vaultwarden_put_collections2_update or vaultwarden_post_collections_update, and no prerequisites or auth context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_collections_adminPost collections adminC
Set collections via admin path (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the safety profile is partially covered. The description adds only that this is an 'admin path', implying elevated privileges, but says nothing about which collection memberships are replaced versus added, whether existing assignments are overwritten, or what permissions are needed.
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?
It is a single short, front-loaded clause with no filler. The brevity is not the problem; the sentence simply carries almost no substance, so concision here is closer to under-specification than efficiency.
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 four undocumented parameters, no output schema, and dozens of overlapping collection/cipher siblings, the description leaves an agent unable to choose this tool or construct a valid call. Only the 'admin path' hint adds anything beyond the name and annotations.
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 0% across four parameters, and the description compensates for none of them. It never mentions cipher_id (the sole required parameter), nor what the form, params, or json_body blobs should contain — a significant gap given the required cipher_id suggests collection assignment for a specific cipher.
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 restates the title ('Set collections' + 'admin path (POST alias)') without saying what actually happens: which collections, on what resource, with what effect. It is only loosely distinguishable from the many sibling collection tools (put_collections_admin, post_collections_update, post_collections2_update, post_organization_collections).
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?
There is no statement of when to use this instead of the PUT alias or the other collection endpoints; 'POST alias' hints that it duplicates a PUT route but gives no selection criteria. No prerequisites, auth requirements, or ordering guidance are offered despite a large family of near-identical siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_collections_updatePost collections updateC
Set collections (legacy v1, POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation/safety profile is known. The description adds only that this is a legacy v1 POST alias, leaving out what state gets replaced, whether the set is additive or replacing, and any auth/ownership requirements — meaningful gaps for a 'set' operation whose semantics are the main risk.
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?
A single short phrase with the distinguishing qualifier front-loaded; there is no filler. It is efficient, though brevity here shades into under-specification rather than deliberate economy.
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 mutating legacy endpoint with 0% schema description coverage, an opaque json_body/form/params trio, and no output schema, the description leaves the agent without enough to build a correct call or predict the effect. The legacy marker is the only contextual aid provided.
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 0% across four parameters (form, params, cipher_id, json_body), including the lone required field cipher_id. The description mentions neither cipher_id nor how the collections payload is passed (json_body vs form/params), so it compensates for none of the schema's documentation gap.
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?
"Set collections" names a verb and resource, and "(legacy v1, POST alias)" distinguishes it from the PUT/collections2 siblings in the tool list. But it never says what a 'collection' update actually does here (cipher-to-collection membership? org collection config?), so an agent cannot confidently separate it from vaultwarden_put_collections_update or vaultwarden_post_collections2_update on function alone.
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 'legacy v1' tag implicitly signals this is a backward-compatible path and that a newer variant likely exists, which is useful routing information. However, it never states when to choose this legacy POST over the PUT alias or the v2 endpoint, nor any prerequisite like organization/cipher permission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_configPost configC
Persist configuration overrides (the settings normally set via env vars)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a non-read-only, open-world mutation that is not destructive. The description adds meaningful context by explaining that the overrides correspond to settings normally configured through environment variables, but it omits authentication requirements, scope of effect, and whether changes persist across restarts.
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 single sentence is front-loaded and contains no filler. It is efficient, though its brevity contributes to the overall lack of guidance for a three-parameter mutation endpoint.
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 configuration mutation tool with three completely undocumented parameters and no output schema, a one-sentence description is insufficient. It leaves an agent without enough information to call the tool correctly or understand the expected request shape.
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?
All three parameters (form, params, json_body) have zero schema description coverage and no meaningful type information. The description does not mention any parameter, so it provides no semantics whatsoever for how to populate the request.
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 gives a specific verb and resource: it persists configuration overrides, and it clarifies that these are normally set via environment variables. That is clearer than the bare name/title, but it does not distinguish it from sibling tools such as vaultwarden_config or vaultwarden_delete_config.
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?
There is no guidance on when to use this tool versus vaultwarden_config, vaultwarden_delete_config, or other admin/configuration tools. An agent is left to infer the appropriate context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_delete_accountPost delete accountBDestructive
Delete own account (password/OTP confirmation in body)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds important behavioral context: deletion requires password/OTP confirmation in the body. It does not explicitly emphasize irreversibility or describe the account data being removed, but it does disclose a key auth requirement.
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 single short sentence with no wasted words, and the core action is front-loaded. Its terseness contributes to the parameter and usage gaps, but as a conciseness/structure measure it is efficient.
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 destructive self-account deletion operation with three undocumented parameters and no output schema, the description is too sparse. It mentions confirmation in the body but does not explain the body schema or the roles of the other parameters, leaving the agent without enough detail to invoke it confidently.
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 0% for three parameters (form, params, json_body), and the description only vaguely indicates that password/OTP confirmation goes in the body. It does not explain how to populate form or params, nor the structure of the confirmation payload.
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 and resource: "Delete own account." The word "own" scopes it to self-service deletion and distinguishes it from administrative delete siblings, though no sibling is named explicitly.
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 implies when the tool applies by saying "Delete own account," but it provides no explicit guidance on when to use it versus alternatives such as vaultwarden_delete_account or admin deletion tools. The parenthetical only describes confirmation, not usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_delete_emergency_accessPost delete emergency accessCDestructive
Delete/revoke (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only 'Delete/revoke (POST alias)' and says nothing about what is revoked, whether it is irreversible, or what permissions are required. For a destructive operation with annotations already carrying the core warning, this adds too little behavioral context beyond the safety hints.
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 text is brief but under-specified rather than concise; 'Delete/revoke (POST alias)' is a fragment that omits the resource and key usage context. It is front-loaded only in the sense that the verb appears first, but the sentence does not earn its place as a useful tool description.
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?
This is a destructive emergency-access mutation with four parameters, 0% schema description coverage, and no output schema. The description does not say what emergency access is revoked, what the required emer_id identifies, or how the POST alias differs from the DELETE endpoint, leaving an agent unable to call it correctly from the description.
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 0% and the description mentions no parameters at all, including the required emer_id. The agent gets no description-level semantics for emer_id, form, params, or json_body, so the description completely fails to compensate for the undocumented schema.
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 delete/revoke action but does not name the resource (emergency access) in the description itself; the tool name and title carry that information. The parenthetical '(POST alias)' hints at a method-specific variant but is vague without context. Purpose is only minimally clear from the description alone.
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?
There is no explicit guidance on when to use this tool versus the sibling vaultwarden_delete_emergency_access or other emergency-access tools. The '(POST alias)' fragment implies an alternative HTTP form but does not tell the agent which conditions select this alias instead of the DELETE variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_delete_groupPost delete groupCDestructive
Delete a group (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| group_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive, non-read-only, and open-world. The description adds only the POST-alias detail and does not disclose side effects, cascading effects on group members, permission requirements, or irreversibility beyond what annotations already imply.
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 single front-loaded sentence with no filler. It is compact and immediately actionable, even though it is under-informative for safe invocation.
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 destructive group-deletion tool with five parameters, no output schema, and zero schema parameter descriptions, the description is too thin. It does not explain required organizational context, parameter roles, or the effect on group membership.
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 0% for five parameters. The description implies a group identifier but does not explain required org_id versus group_id, nor does it clarify the optional form, params, or json_body parameters.
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 and resource: "Delete a group." The "(POST alias)" note helps distinguish it from the sibling DELETE-style group deletion endpoint, but it does not explicitly name or explain the alternative.
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?
There is no guidance on when to use this POST alias versus vaultwarden_delete_group or bulk deletion siblings, and no prerequisites or exclusions are provided. The intended usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_delete_group_memberPost delete group memberCDestructive
Remove one member from a group
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| group_id | Yes | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is carried by structured metadata. The description adds that exactly one member is removed, but it does not explain permissions, irreversibility, or what happens if the member is not in the group.
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 definition is a single front-loaded sentence with no filler or repetition. Its brevity is efficient, though it also contributes to the overall under-specification.
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 destructive, six-parameter mutation with zero schema descriptions and no output schema, the description is too thin. It gives the core action but omits parameter semantics, permission requirements, and side effects that an agent would need for confident 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?
Schema description coverage is 0%, yet the description does not document org_id, group_id, member_id, or the generic form/params/json_body fields. It only conceptually maps 'group' and 'member', leaving the required organization identifier and the meaning of the other parameters unexplained.
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 action and resource: remove one member from a group. The phrase 'one member' helps distinguish it from bulk member deletion, but it does not explicitly name relevant siblings such as bulk_delete_member or put_group_members.
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?
There is no when-to-use guidance, prerequisites, or explicit alternative tool. The agent must infer from the tool name and short description that this is for singular group-member removal rather than bulk or membership-update operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_delete_organizationPost delete organizationCDestructive
Delete an organization (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true. The description repeats 'Delete' and notes the POST alias, but adds no detail about irreversibility, what related data is removed, required permissions, or confirmation behavior beyond the 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 extremely short and front-loads the core action. The parenthetical is terse but useful for identifying the alias variant; however, the overall definition is so minimal that concision comes at the cost of completeness.
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?
This is a destructive organization deletion tool with four parameters, no schema descriptions, and no output schema. The annotations cover the safety profile, but the description still lacks parameter explanations, side effects, and prerequisite/authorization context needed for an agent to invoke it confidently.
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 has four parameters with 0% description coverage, including a required org_id and opaque form, params, and json_body fields. The description mentions none of these and provides no compensating meaning about what values to supply.
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 and resource: 'Delete an organization'. The '(POST alias)' parenthetical clarifies that this is an HTTP POST alias variant, but it does not explain how this differs from sibling delete-organization tools such as vaultwarden_admin_delete_organization or vaultwarden_organizations_delete_organization.
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?
There is no guidance on when to use this tool versus the other delete-organization variants, nor are there any exclusions, prerequisites, or confirmation requirements. The only implied usage is that the caller wants to delete an organization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_delete_recoverPost delete recoverCDestructive
Request account-deletion email (forgot-password-style deletion init)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is carried structurally. The description adds genuine context beyond that by disclosing the mechanism — an email is dispatched as part of the deletion flow, i.e. an out-of-band, state-advancing side effect. It stops short of the details that matter for this class of endpoint: whether the call succeeds even when no account exists (enumeration behavior), rate limiting, and whether the deletion is actually armed or only after token confirmation.
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?
It is a single front-loaded sentence with no filler, which is appropriate in size. The parenthetical, however, spends words on a comparison ('forgot-password-style') that adds ambiguity rather than clarity, so brevity comes at the cost of precision.
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 destructive, open-world endpoint with three undocumented, untyped parameters and no output schema, the description should state preconditions, the confirmation step, and the observable result. It covers only the high-level intent, so an agent could invoke it correctly in spirit but not confidently in detail.
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 0% across three generically named parameters (form, params, json_body) with no types or descriptions, so the schema provides essentially no help. The description implies an email identifier is involved but never names the field, its location (body vs. query), or the expected payload shape, leaving the agent to guess how to construct the request.
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 names the action (requesting an account-deletion email) rather than merely restating the name, which is more than the title 'Post delete recover' conveys. However, the parenthetical 'forgot-password-style deletion init' is cryptic, and among ~200 Vaultwarden siblings the agent still cannot easily tell this apart from vaultwarden_post_delete_account, vaultwarden_post_delete_recover_token, or vaultwarden_put_recover_account. The purpose lands as 'roughly initiate an account deletion by email' rather than a precise, differentiated function.
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?
There is no when-to-use guidance at all: no statement of prerequisites (must an account exist? is authentication required?), no mention of what to call next, and no reference to the near-identical siblings such as post_delete_recover_token or post_delete_account. The phrase 'deletion init' only faintly implies this is the first step of a multi-step flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_delete_recover_tokenPost delete recover tokenCDestructive
Complete account deletion using emailed token
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the description's phrase 'Complete account deletion' mainly reinforces irreversibility. It adds the fact that an emailed token is the authority mechanism, but says nothing about what happens on an invalid or expired token, or whether the response returns any state.
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?
A single front-loaded sentence with no filler, but it is undersized for a destructive three-parameter endpoint rather than genuinely tight. Nothing is wasted, yet important detail is absent.
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 destructive account-deletion endpoint with no annotations covering the token semantics, no output schema, and entirely undocumented parameters, one nine-word sentence leaves the agent without enough to call it correctly.
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?
Three parameters with 0% schema description coverage, and the description only hints that a token exists without saying which of form/params/json_body carries it or what fields those containers expect. The description does not compensate for the documentation gap.
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?
States a specific verb and outcome ('Complete account deletion') plus the required credential ('emailed token'), which separates it from vaultwarden_post_delete_recover and vaultwarden_post_delete_account. It never names those siblings, so the differentiation is implicit rather than explicit.
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?
No guidance on when this tool should be chosen over the many neighbouring delete/recover endpoints, and no prerequisites such as where the token comes from or that it must still be valid. The agent must infer the call sequence from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_device_tokenPost device tokenC
Set/update device push token
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| device_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, open-world mutation, so the description's job is to add context such as overwrite semantics for an existing token, required auth scope, or whether nulls clear the token. It adds none of that; 'Set/update' is the only behavioral signal, and it does not contradict the 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?
A single short phrase with no waste and the action front-loaded, but the brevity comes at the cost of under-specification rather than being tight-but-complete.
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 mutation endpoint with an undocumented body wrapper, a required identifier, no output schema, and three sibling token endpoints, the agent needs overwrite semantics and payload placement. None are present, so the definition is not sufficient to invoke confidently.
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 0% across four parameters (device_id required, plus generic form/params/json_body), so the description carries the full burden. It only implies that a push token and a device are involved, without saying where the token goes (json_body?) or what device_id format is expected.
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 gives a concrete verb ('Set/update') and a concrete resource ('device push token'), so an agent knows exactly what effect to expect. It does not differentiate itself from the near-identical siblings vaultwarden_put_device_token, vaultwarden_post_clear_device_token, and vaultwarden_put_clear_device_token, leaving the POST-vs-PUT choice unexplained.
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?
There is no statement of when to use this tool rather than the PUT variant or the clear-token siblings, and no prerequisites (e.g., the device must already be registered). The only guidance is the verb itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_emailPost emailB
Confirm email change with token + new encrypted keys
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false and destructiveHint=false, and the description is consistent with a mutating but non-destructive confirmation endpoint. It adds useful context that the operation uses a token and new encrypted keys, but it does not disclose auth requirements, token lifetime, error behavior, or what happens to existing keys. With annotations covering the safety profile, this is adequate but not rich.
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 single front-loaded phrase with no wasted words. It is appropriately concise, though its extreme brevity leaves important distinctions to inference rather than completely closing them.
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 security-sensitive email-change confirmation mutation with three undocumented parameters, no output schema, and only basic annotations, the description is too thin. It does not explain required inputs beyond token and keys, authentication context, success/failure behavior, or how the generic form/params/json_body parameters should be populated.
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 0%, and the three parameters are named only generically as form, params, and json_body with no types or descriptions. The description mentions token and new encrypted keys, which partially indicates payload content, but it does not map those concepts to any parameter name or explain the distinction between form, params, and json_body.
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 action: confirming an email change using a token and new encrypted keys. This is clearer than the generic name/title 'Post email' and distinguishes it from simple email sending or token retrieval tools. It does not explicitly name the sibling alternatives, so it falls short of a 5.
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 phrase 'Confirm email change' implies the situation in which this tool is used: after an email change request, with a token and new encrypted keys. There is no explicit guidance on when to choose this over sibling tools such as vaultwarden_post_email_token or vaultwarden_post_verify_email_token, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_email_tokenPost email tokenC
Request email-change verification token (send code to new address)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, and the description usefully adds that a code is actually emailed to the new address (a real side effect). However, it omits auth/password requirements, rate limits, and whether the old address is notified, which matter for a write operation with external effects.
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?
A single front-loaded sentence with no filler; the parenthetical adds the key effect. It is efficient, though arguably terse given the undocumented request shape.
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 write tool with three 0%-documented parameters, no output schema, and only basic annotations, the description leaves the request payload and expected outcome unexplained. It is not complete enough for an agent to invoke correctly without inspecting the underlying API.
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 0% and the three parameters (form, params, json_body) are opaque generic passthroughs. The description provides no indication of what fields belong in the body (new email? password confirmation?), so an agent cannot construct the call from this definition alone.
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 and resource ('Request email-change verification token') and clarifies the effect ('send code to new address'), which distinguishes it from siblings like vaultwarden_post_verify_email_token. It is clear what the tool does, though it doesn't name the counterpart step explicitly.
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?
No guidance on when to call this versus alternatives such as vaultwarden_post_email, vaultwarden_post_verify_email_token, or vaultwarden_register_verification_email. The email-change flow context (request first, then verify) is only implied by the parenthetical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_emergency_accessPost emergency accessC
Update an emergency-access grant (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing about what fields a POST update touches, whether unspecified fields are cleared, or what permissions are required for a mutation. "Alias" hints at duplication but is unexplained.
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?
At seven words it is certainly concise and front-loads the action, but this brevity reflects under-specification rather than disciplined editing. There is no wasted text, but there is also almost no useful text.
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 mutation tool with four undocumented parameters, no output schema, and many closely named siblings, the description omits the update payload semantics, permission requirements, and return behavior. It is not sufficient for an agent to call the tool confidently.
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 0% across four parameters, and the parameter names (form, params, json_body, emer_id) are opaque with no titles or descriptions. The description does not define which fields belong in json_body or how form/params differ, so it fails to compensate for the coverage gap, though "emergency-access grant" loosely ties emer_id to the target grant.
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 names a specific verb ("Update") and resource ("an emergency-access grant"), which is more than a tautology. However, "(POST alias)" is cryptic and does not explain how this differs from the sibling vaultwarden_put_emergency_access, which appears to be the canonical update and likely a near-identical tool.
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?
There is no guidance on when to use this tool rather than vaultwarden_put_emergency_access, vaultwarden_get_emergency_access, vaultwarden_delete_emergency_access, or the many other emergency-access siblings. The agent must infer the choice from the HTTP method alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_events_collectPost events collectB
Client-side telemetry/event ingestion endpoint used by web-vault to batch-report UI events
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the safety profile is covered structurally. The description adds the useful context that this is client-originated telemetry batching, but says nothing about auth requirements, payload shape, or what happens on ingestion.
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?
A single tightly packed sentence with zero filler, front-loading the endpoint's nature. Slight loss for not signaling behavior or constraints.
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 3-parameter tool with no annotation explanation, no output schema, and fully undocumented parameters, the description is too thin. An agent cannot determine payload structure or expected outcome from it.
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?
Three parameters (form, params, json_body) with 0% schema description coverage, and the description offers no parameter-level meaning beyond implying an event batch payload. It does not compensate for the coverage gap or clarify which of the three carries the events.
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?
States a specific resource and action: an event-ingestion endpoint that batch-reports UI events from web-vault. The telemetry/ingestion framing clearly separates it from sibling mutation tools like vaultwarden_post_cipher, though it doesn't name a close alternative.
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?
"Client-side ... used by web-vault" implies this is an internal endpoint driven by the browser client rather than an administrative tool an agent would normally invoke, but there's no explicit when-to-use/when-not or exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_folderPost folderC
Rename a folder (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| folder_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive mutation with openWorldHint=true. The description adds that the operation renames a folder and is a POST alias, but does not disclose permission requirements, side effects, or error behavior beyond what annotations provide. No contradiction with 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 a single front-loaded sentence with no wasted words. It is appropriately terse, though its brevity contributes to missing detail rather than being a structural flaw.
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 mutation tool with four parameters, 0% schema description coverage, and no output schema, the description is too sparse. Annotations cover the safety profile, but the definition does not explain parameter usage, required inputs beyond folder_id, or what form/json_body should contain.
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 0% for all four parameters. The description does not explain folder_id, form, params, or json_body, leaving the agent with no semantic guidance beyond the required folder_id name. This is a major gap for a four-parameter mutation tool.
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 and resource: 'Rename a folder'. It is clear what the tool does, though it does not explicitly distinguish this from the sibling put_folder or other folder-related tools beyond the vague '(POST alias)' note.
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?
There is no explicit guidance on when to use this tool versus alternatives like vaultwarden_put_folder, nor any prerequisites or exclusions. The phrase '(POST alias)' hints at an HTTP-method distinction but does not tell an agent when to choose this over other folder update tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_foldersPost foldersC
Create a folder
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond that: it does not say what happens on duplicate folder names, what auth or premium/org scope is required, or what is returned. For a mutation tool, this is thin.
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?
Three words are technically concise, but this is under-specification rather than economy: nothing is front-loaded because nothing is there. The description earns no explanatory weight.
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 mutation endpoint with three undocumented parameters, no output schema, and no required fields, the description leaves the caller unable to construct a correct request. Only the annotations carry any behavioral signal.
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 0% and the three properties (form, params, json_body) are generic names with no descriptions, defaults beyond null, or types. The one-line description supplies no parameter meaning whatsoever, so an agent must guess where the folder name actually goes.
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?
States a verb and resource ('Create a folder'), so the basic action is clear, but it gives no scope or qualifier to distinguish it from the many near-identical siblings such as vaultwarden_post_folder, vaultwarden_put_folder, and vaultwarden_folders_create_folder. An agent cannot tell which folder-creation endpoint to pick from this text alone.
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?
There is no when-to-use guidance, no prerequisites (personal vault vs organization context), and no mention of alternatives. With a dozen sibling folder and creation tools in scope, the absence of any routing hint is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_groupPost groupC
Update a group (POST alias, id in path)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| group_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive mutation (readOnlyHint=false, destructiveHint=false). The description adds the HTTP method ('POST') and that the group ID goes in the path, which helps with invocation. It does not disclose what fields are updated, whether it is a full or partial update, or any permission requirements.
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 single, front-loaded sentence with no wasted words. It is arguably too terse for a mutation with five undocumented parameters, but it is not verbose or poorly structured.
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 this is a mutation tool with no output schema and poor parameter documentation, the description is inadequate. It omits what the update does, which fields can change, authorization needs, and any side effects. An agent would need to guess heavily to call it correctly.
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 0% and there are 5 parameters with only names. The description only clarifies that `group_id` is a path parameter; it says nothing about `org_id`, `form`, `params`, or `json_body`. This is far below the level needed to compensate for the schema gap.
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 and resource: 'Update a group'. It also clarifies this is a 'POST alias' with the id in the path, which distinguishes it from a generic POST create. However, it does not differentiate from the sibling tool `vaultwarden_put_group`, which likely performs the same update via PUT.
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 offers no explicit guidance on when to use this tool versus `vaultwarden_put_group` or `vaultwarden_post_groups`. The parenthetical 'POST alias' hints that this is an HTTP-method variant, but no conditions, prerequisites, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_groupsPost groupsC
Create a group
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive, open-world operation. The description adds no behavioral context beyond the word 'Create'—it does not explain what a group contains, whether the operation is idempotent, what permissions are required, or what happens on duplicate group names.
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 sentence is extremely short and front-loaded with no filler, but it is under-specified rather than appropriately concise. It lacks the structure needed to convey required inputs or usage context.
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 create endpoint with four undocumented parameters, no output schema, and only generic annotations, the description is completely inadequate. An agent cannot determine what payload shape to send or what organization-level context is required.
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 0%, and the description provides no parameter information at all. Four parameters including ambiguous names like 'form', 'params', and 'json_body' remain entirely undocumented, and the required org_id is unexplained.
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 and resource ('Create a group'), so the basic action is unambiguous. However, it does not distinguish this tool from nearby siblings such as vaultwarden_post_group, vaultwarden_put_group, or vaultwarden_bulk_delete_groups.
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?
There is no guidance on when to use this tool versus the many other group-related endpoints, no prerequisites such as admin permissions or organization membership, and no exclusions. The required org_id parameter is not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_kdfPost kdfB
Change KDF algorithm/parameters (PBKDF2↔Argon2id, iterations, memory, parallelism)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and is open-world, and the description adds that the mutation specifically targets KDF algorithm and parameters. However, it does not disclose required permissions, security impact, whether the change affects existing encryption, or whether the operation is reversible.
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 single, front-loaded sentence with no wasted text. The parenthetical examples efficiently clarify the scope of the KDF parameters.
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 security-sensitive mutation with no output schema and three undocumented parameters, the description is too thin. It omits prerequisites, parameter structure, authorization requirements, and the operational impact of changing KDF settings.
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 has three parameters (form, params, json_body) with 0% description coverage, and the description does not explain how KDF settings map to those wrappers. It does list relevant KDF concepts (algorithm, iterations, memory, parallelism), providing partial domain context, but this is insufficient for the undocumented parameters.
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 gives a specific mutation verb and resource: changing the KDF algorithm and parameters. It also names the relevant values (PBKDF2, Argon2id, iterations, memory, parallelism), so an agent can distinguish this from unrelated Vaultwarden admin and cipher tools.
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 states what the tool changes but gives no explicit guidance on when to use it, when not to use it, prerequisites, or alternatives. The use case is implied only by the operation name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_keysPost keysB
Upload/set the user RSA keypair (encrypted private key + public key)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive write with open-world access, so the safety profile is partly covered. The description adds that the payload is an RSA keypair containing an encrypted private key and public key, but it does not explain permissions, overwrite/replacement behavior, or authentication requirements.
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 definition is a single front-loaded sentence with no wasted words. It clearly states the core operation and payload before any optional detail.
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 mutation tool with three undocumented parameters, no output schema, and no parameter descriptions, the description is too thin to support correct invocation. It identifies the operation but leaves the actual request shape and behavioral requirements unspecified.
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 0%, and the three parameters are opaque generic names: form, params, and json_body. The description mentions keypair content but does not map encrypted private key or public key to any parameter, so an agent still cannot tell how to structure the call.
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 gives a specific verb and resource: upload/set the user RSA keypair, with payload contents described as encrypted private key plus public key. It distinguishes the user keypair from organization-key siblings only implicitly, without naming an alternative, so it falls short of a 5.
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?
It does not say when to use this tool versus related tools such as organization key uploads, public-key retrieval, or bulk public keys. The only guidance is the implied context of setting a user keypair, leaving routing decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_organizationPost organizationC
Update organization settings (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond restating mutation: it does not say what settings can change, what happens to unspecified fields, or what permissions the caller needs.
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 single sentence is front-loaded and free of filler, but its brevity is under-specification rather than economy for a four-parameter mutation tool with an opaque body payload.
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 0% schema coverage, no output schema, and four opaque parameters including a free-form json_body, the description carries nearly no information. An agent cannot construct a correct request from this definition alone.
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 0% and all four parameters (form, org_id, params, json_body) are typeless and undocumented. The description names no parameter and gives no hint about what belongs in json_body versus the form/params objects, so an agent gets zero guidance on the actual call shape.
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 gives a verb and resource ("Update organization settings") plus an ambiguous tag "(POST alias)". The alias note hints at a relationship with the PUT/GET organization siblings, but an agent cannot confidently tell whether this is the canonical update path or a compatibility duplicate of vaultwarden_put_organization.
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 parenthetical "(POST alias)" implies an alternative endpoint exists, but it never says when to choose this over vaultwarden_put_organization, vaultwarden_organizations, or vaultwarden_get_organization. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_organization_collection_deletePost organization collection deleteCDestructive
Delete a collection (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| col_id | Yes | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is known. The description only confirms the deleted resource and HTTP method; it says nothing about what is destroyed beyond the collection itself, whether it is reversible, or what permissions are required.
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?
Extremely terse for a destructive tool with five parameters. It is front-loaded but under-specified rather than efficient, omitting any structure that would help an agent call it correctly.
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?
Destructive mutation with five parameters at 0% schema coverage, no output schema, and minimally informative annotations. The description does not come close to supplying the context an agent needs to invoke this safely and correctly.
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 0% and the description provides no parameter information. org_id and col_id are inferable from their names, but form, params, and json_body are opaque and left undocumented in both schema and description.
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?
States a specific verb (Delete) and resource (collection), and adds '(POST alias)' to distinguish it from the sibling vaultwarden_delete_organization_collection. An agent can tell what it does, though it doesn't differentiate from bulk delete variants.
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?
No guidance on when to use this POST alias versus the DELETE sibling or the bulk delete tool. The parenthetical hints at an HTTP method variant but doesn't explain the selection criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_organization_collectionsPost organization collectionsC
Create a collection
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the write/non-destructive profile is known. The description adds nothing beyond that: no statement of what gets created, what fields are mandatory (the collection name/JSON body), whether a duplicate name overwrites, or what permissions are required for an org-scoped write.
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?
It is short and front-loaded, but at three words it is under-specified rather than efficient — there is no second sentence carrying the information a create-mutation tool needs. Brevity here is a deficit, not a virtue.
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 4-parameter mutation with 0% schema coverage, no output schema, and many near-identical sibling endpoints, the description is far too thin. Nothing tells the agent the response shape, the required payload, or the permission context, so correct invocation depends almost entirely on trial and error.
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 0% across four parameters (form, org_id, params, json_body) with completely opaque names and no types or descriptions. The description provides no parameter information whatsoever, so an agent has no way to know that org_id is the required organization identifier or what shape json_body must take.
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?
"Create a collection" states a specific verb and resource, but omits the organizational scope that the tool name implies and gives no hint of how it differs from the many sibling collection tools (post_collections_admin, post_collections_update, post_collection2_update, put_organization_collection_update). An agent can guess it creates something, but not which collection endpoint this is.
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?
There is no when-to-use guidance, no mention of prerequisites (organization membership, admin/owner role, collection management permission), and no routing to or away from any of the ~250 sibling tools. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_organization_collection_updatePost organization collection updateC
Update a collection (POST alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| col_id | Yes | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds no behavioral context such as required permissions, what collection fields can be changed, or whether updates are partial or full. It does not contradict the 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 a single short sentence with no wasted words and the core action is front-loaded. However, it is so terse that the parenthetical adds little useful information.
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 mutation tool with five undocumented parameters, no output schema, and only sparse annotations, the description is far too thin. An agent cannot infer how to populate required or optional parameters from this description.
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 0% and there are five parameters, including unclear generic fields like form, params, and json_body. The description provides no parameter meaning at all, so it fails to compensate for the schema gap.
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 clear verb and resource: "Update a collection." The parenthetical "(POST alias)" hints at the HTTP method but does not explain how this differs from sibling tools like vaultwarden_put_organization_collection_update or vaultwarden_post_collections_update.
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?
No guidance is given about when to use this tool versus alternatives. The only clue is "POST alias," which implies another POST-based collection update path exists, but it does not state selection criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_org_importPost org importB
Bulk import ciphers directly into an organization (personal-vault-style import scoped to an org)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| query | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write. The description adds only that writes are bulk and scoped to an org; it says nothing about duplicate handling, partial-failure behavior, or permission requirements for a mutation that could affect an entire org vault.
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?
A single compact sentence with the action front-loaded and the parenthetical used for disambiguation. No filler, though the parenthetical is slightly ambiguous rather than clarifying.
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?
This is a complex bulk mutation into an organization vault with four completely undocumented parameters and no output schema. A one-line description cannot carry that burden — payload format, required permissions, and success/failure semantics are all missing.
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?
All four parameters (form, query, params, json_body) have 0% schema description coverage and no declared types, so the schema provides essentially nothing. The phrase 'personal-vault-style import' faintly hints at the expected payload shape but is never mapped to any parameter, leaving json_body's structure entirely undocumented.
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?
States a specific verb and resource: bulk import of ciphers into an organization. The parenthetical 'personal-vault-style import scoped to an org' differentiates it in spirit from vaultwarden_post_ciphers_import, but it never names that sibling explicitly, so the agent must infer which of the two import endpoints to use.
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 word 'bulk' and the org scoping imply this is for mass-loading ciphers into an organization rather than one-at-a-time creation. However, there is no explicit when-to-use, no mention of required org admin/owner privileges, and no named alternative such as vaultwarden_post_ciphers_import or vaultwarden_ldap_import.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_org_keysPost org keysB
Upload the organization’s RSA keypair at org-creation time
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive, open-world operation. The description adds lifecycle context but does not explain permissions, whether existing keys can be overwritten, or any security implications of uploading an organization RSA keypair.
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 single, front-loaded sentence with no filler. It immediately states what is uploaded and when.
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 mutation tool with four undocumented parameters and no output schema, the description is too sparse. It omits parameter semantics, required permissions, and how this operation relates to organization creation siblings.
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 0%, and the four parameters are generic names (form, org_id, params, json_body). The description says the payload is an RSA keypair, but it does not map that content to any parameter or clarify what form/params/json_body contain.
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 gives a specific verb and resource (upload the organization's RSA keypair) and adds lifecycle context (at org-creation time). It is clear, though it does not explicitly distinguish this from sibling tools such as vaultwarden_post_keys or vaultwarden_create_organization.
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 phrase 'at org-creation time' gives a clear usage window, implying this should be called during organization setup. It does not explicitly name alternatives or when not to use it, but the timing guidance is meaningful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_passwordPost passwordC
Change master password
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds important context by specifying that the mutation targets the master password, which is security-sensitive. However, it does not explain authentication requirements, side effects, reversibility, or how the change is performed.
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 single front-loaded sentence with no wasted words. However, it is too terse for a high-stakes master-password mutation with three undocumented parameters, so its conciseness comes at the cost of necessary detail.
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 definition identifies the operation but lacks critical context for a master-password change: required body structure, authentication expectations, side effects, and relationship to sibling password operations. With no output schema and 0% schema description coverage, the description does not carry enough of the burden.
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 0%, and the three parameters are generic and undocumented: form, params, and json_body. The description provides no information about what each parameter should contain or how the master password change request is shaped.
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 and resource: 'Change master password.' This is clearer than the title 'Post password' and tells the agent what operation is being performed. However, it does not differentiate from nearby password-related siblings such as vaultwarden_post_set_password, vaultwarden_put_reset_password, or vaultwarden_put_remove_password.
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 no guidance on when to use this tool versus the many other password-related tools in the sibling list. It also omits prerequisites such as authentication, current-password requirements, or whether this is self-service versus admin-driven.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_profilePost profileB
Update profile fields (legacy POST alias of PUT)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare a non-read-only, non-destructive, open-world operation, and the description is consistent with that by saying it updates profile fields. Beyond annotations it adds only the legacy-alias context, without describing permissions, side effects, or update semantics.
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 single sentence is front-loaded and contains no filler. It is efficient, though so minimal that its brevity reflects under-specification rather than full clarity.
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 profile-mutation tool with three undocumented parameters and no output schema, the description is not complete enough for an agent to call it confidently. It says what the endpoint is, but not what fields are accepted, how the request body parameters map, or what behavior to expect.
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?
All three parameters (`form`, `params`, `json_body`) have 0% schema description coverage, and the description does not explain what any of them contain. 'Update profile fields' gives no mapping to these generic request-shaping parameters.
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 and resource: update profile fields. It also distinguishes the endpoint from `vaultwarden_put_profile` by identifying it as the legacy POST alias of PUT. It is clear, though extremely terse and not differentiated from every sibling profile-related tool.
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?
Naming it a legacy POST alias of PUT gives the agent a clear alternative and context for when this route is relevant. It does not explicitly say 'prefer PUT' or state exclusions, but the legacy-alias framing provides usable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_rotatekeyPost rotatekeyC
Full account key rotation: re-encrypt user key, private key, and every cipher/folder/send key
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the description's enumeration of what is re-encrypted adds real substance about blast radius. However, it omits operationally critical behavior: whether the old master password is required, whether existing sessions/devices are invalidated, and whether the change is reversible — notable for an operation that rewrites every encrypted object.
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?
One compact sentence, front-loaded with the operation name followed by its scope. It is efficient, though it is arguably too terse for the stakes involved.
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?
A high-impact, irreversible-in-practice cryptographic operation with zero-documented parameters, no output schema, and only minimal annotations. The description gives the 'what' but not the credentials needed, the response, or the side effects on other sessions — an agent would be guessing at 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?
Schema description coverage is 0% across three generically named parameters (form, params, json_body), and the description supplies no information about what belongs in them. Given a low-coverage schema, the description should compensate by naming the required key material, but it does not.
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?
States a specific verb and object ('Full account key rotation') and enumerates exactly what gets re-encrypted: user key, private key, and every cipher/folder/send key. This makes scope clear and hints at why it differs from the several '*rotate_api_key' / '*rotate_password' siblings, though it never names them explicitly.
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?
No guidance on when to invoke this versus vaultwarden_accounts_rotate_api_key, vaultwarden_organizations_rotate_api_key, or vaultwarden_maintenance_rotate_password, nor any stated prerequisites (e.g. supplying the current master password hash). The agent must infer everything about the trigger condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_sendPost sendC
Create a text-type (or metadata-only) Send
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world operation. The description adds only that the created Send is text-type or metadata-only, without explaining permissions, required payload shape, side effects, or what happens to omitted fields.
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 front-loaded and contains no wasted words, but it is under-specified for a three-parameter creation tool. Conciseness is good; completeness is not.
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 three undocumented parameters, no output schema, and only annotations for safety context, the description is far too thin. It names the operation but leaves essential invocation details unspecified.
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 0% and the three generic parameters, form, params, and json_body, are not mentioned in the description. The agent receives no guidance on which parameter to use, what each expects, or how they interact.
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 and resource: creating a text-type or metadata-only Send. This also implicitly differentiates it from the file-send siblings such as vaultwarden_post_send_file, though it does not explicitly name them.
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?
There is no explicit guidance on when to use this tool versus alternatives, prerequisites, authentication, or organization context. The type qualifier implies it is for text sends, but the agent must infer all routing and usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_send_filePost send fileC
Create a file-type Send (legacy single-phase upload)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so safety is covered. The description's only added behavioral signal is 'legacy single-phase upload', with nothing about auth requirements, what the payload must contain, size limits, or how the two-phase v2 flow differs. For a write operation that uploads file data, that is thin.
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?
A single front-loaded phrase with no wasted words. Brevity is fine here, though the space saved is partly a symptom of the missing detail noted elsewhere.
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 mutation tool with three undocumented parameters, no output schema, and a dense sibling namespace of Send upload variants, the description leaves an agent without enough to construct a correct call or confirm it picked the right endpoint.
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?
Three parameters (form, params, json_body) have 0% schema description coverage, and the description offers no guidance on what any of them should contain. The schema/documentation gap is total, and the description does nothing to compensate.
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?
States a concrete verb and resource ("Create a file-type Send") and adds a qualifier ("legacy single-phase upload") that separates it from the v2 upload siblings by implication. It does not name vaultwarden_post_send_file_v2 as the modern alternative, so the distinction relies on the reader knowing what 'legacy' contrasts with.
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 'legacy' label hints at when this is appropriate versus the v2 siblings, but there is no explicit when-to-use, when-not-to-use, or named alternative. An agent must already know the Vaultwarden Send upload versioning story to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_send_file_v2Post send file v2B
Begin a file-type Send (v2): register metadata, get upload URL
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is a non-read-only, open-world, non-destructive operation. The description adds useful behavior by saying it registers metadata and returns an upload URL, but it does not cover authentication needs, the incomplete-Send lifecycle before data upload, or side effects.
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 single front-loaded sentence with no wasted words. It immediately states the phase, resource type, and two key actions.
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 a mutating create flow with three opaque parameters, no output schema, and 0% schema coverage, the description is incomplete. It hints at the return value (upload URL) but omits expected input structure, authentication, and how this step connects to the subsequent data-upload step.
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 has three parameters (form, params, json_body) with 0% description coverage, and the tool description does not mention any of them or explain what metadata should be supplied. For a 0%-coverage schema, the description must compensate, and it does not.
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 and resource: 'Begin a file-type Send (v2)' and clarifies the two sub-actions 'register metadata, get upload URL'. It distinguishes this from generic Send creation by specifying file-type and v2, though it does not explicitly route to the likely follow-up sibling vaultwarden_post_send_file_v2_data.
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 word 'Begin' implies this is the first step in creating a file-type Send, which gives contextual usage. However, it does not state when to choose this over vaultwarden_post_send, vaultwarden_post_send_file, or the _v2_data sibling, nor does it name any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_send_file_v2_dataPost send file v2 dataB
Upload the encrypted Send file bytes (v2 second phase)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| file_id | Yes | ||
| send_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, open-world, non-destructive write, so safety is covered. The description's one extra contribution is the two-phase sequencing, which is genuine context not in the annotations, but it omits payload format (raw bytes vs multipart), size limits, and what happens when the send_id/file_id pair is invalid or expired.
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?
A single front-loaded sentence with no filler; the parenthetical carries the phase information efficiently. It is arguably too terse for a five-parameter mutation tool, but nothing is wasted.
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 five-parameter, zero-coverage, no-output-schema write operation, one line is far from sufficient. An agent cannot assemble a valid request from this description plus the opaque schema, and the second-phase prerequisite is only implied.
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 0% and none of the five parameters (send_id, file_id, form, params, json_body) are described anywhere. The phrase 'Send file bytes' hints that a binary/form payload is involved, but the agent gets no guidance on which of form/params/json_body carries the bytes or how send_id and file_id relate.
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?
States a specific verb (upload) and a specific resource (encrypted Send file bytes), plus a phase qualifier ('v2 second phase') that separates it from the plain post_send_file and the v2 initiator. It stops short of explaining what phase one is, so the resource boundary is clear but the workflow identity is only half explained.
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?
'Second phase' implies this must follow the v2 initiator call, but the description never names vaultwarden_post_send_file_v2 as the prerequisite or says when not to use it. An agent can infer ordering but must guess at the actual precondition (do send_id/file_id come from phase one?).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_set_passwordPost set passwordB
Set initial master password (post-SSO/key-connector account provisioning)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the write/open-world nature is covered. The description adds the provisioning-lifecycle context, which is genuinely useful, but says nothing about authentication required, irreversibility of setting a master password, or what the request body must carry.
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?
A single front-loaded sentence with no filler. It is efficient, though the terse parenthetical is the only thing standing between this and an under-specified label.
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 security-sensitive mutation with three opaque, undocumented parameters and no output schema, the description is far too thin. An agent cannot determine what to put in json_body or whether the call is safe to repeat, which is the information the description should be carrying here.
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 0% and the three parameters (form, params, json_body) are untyped with null defaults, so the schema supplies essentially no meaning. The description provides no parameter guidance at all, leaving the agent with no idea that a password hash, KDF config, and user key are typically required for this endpoint.
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?
States a specific verb and resource ('Set initial master password') and adds scoping context that the name doesn't carry: it is the initial password set during post-SSO/key-connector provisioning. It is distinguishable from siblings like vaultwarden_put_reset_password and vaultwarden_post_password by the 'initial provision' framing, though it never names those siblings explicitly.
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 parenthetical 'post-SSO/key-connector account provisioning' implies the when: only for freshly provisioned accounts that have no master password yet. However, no explicit exclusions are stated (e.g. don't use for a user-initiated password change, use put_reset_password/put_remove_password instead), so the agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_settings_domainsPost settings domainsC
Set equivalent-domains list
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the agent knows this mutates external state without being destructive. The description adds nothing beyond that—it does not explain what happens to existing equivalent-domain entries, whether it overwrites or merges, or what authentication is required.
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 single short phrase, front-loaded and not verbose. It is appropriately sized in terms of word count, though its brevity contributes to under-specification rather than conciseness in content.
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 mutation tool with no output schema, zero parameter description coverage, and only sparse annotations, the description is far too thin. It does not explain the request body format, the effect of the operation on existing settings, or any expected return behavior, leaving significant gaps for an agent to fill.
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?
There are 3 parameters (form, params, json_body) with 0% schema description coverage. The description only vaguely mentions 'equivalent-domains list', which hints at the intended payload but does not explain which parameter carries it or how the three parameters relate.
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 verb and resource ('Set equivalent-domains list'), which gives a basic idea of purpose. However, 'set' is vague and it does not distinguish this POST endpoint from the sibling 'vaultwarden_put_settings_domains' or 'vaultwarden_get_settings_domains', leaving an agent unsure which variant to use.
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?
There is no explicit guidance on when to use this tool versus the PUT or GET settings-domains siblings. The name implies POST vs PUT, but the description does not provide any usage context, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_sstampPost sstampB
Rotate security stamp (invalidates all other sessions/JWTs)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds real behavioral value beyond the annotations: it names exactly what is invalidated (all other sessions/JWTs), which the agent could not learn from readOnlyHint=false / destructiveHint=false / openWorldHint=true. It does not state whether the current session survives or whether the call requires re-authentication.
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?
A single front-loaded clause; the operation and its consequence appear immediately with zero filler. Nothing could be removed without losing information.
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 core semantics are covered, but for a mutation tool with no output schema and three undocumented parameters, the definition stops short of what an agent needs to invoke it confidently (auth requirements, required-before-call state, response shape).
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 0% across three generic parameters (form, params, json_body) and the description says nothing about which one carries what. For a stamp-rotation call, the agent has no basis for deciding whether a body is required or can be omitted.
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 gives a specific verb and resource ("Rotate security stamp") plus the user-visible consequence (all other sessions/JWTs invalidated). It does not distinguish this from related siblings such as vaultwarden_deauth_user, vaultwarden_post_rotatekey, or vaultwarden_accounts_rotate_api_key, which also revoke access.
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?
There is no guidance on when to use this versus the other session-revocation tools in the sibling list, nor any precondition (e.g., must be authenticated as the target user). The agent must infer intent from the parenthetical alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_verify_emailPost verify emailC
Request email verification (resend verify link) for current email
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=false and openWorldHint=true, so the outbound side effect is partially structured. The description adds only that a link is resent to the current email; it says nothing about rate limiting on email sends, behavior when the email is already verified, or that no verification state changes until the token is used.
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?
A single short sentence with the action front-loaded and no padding. It is efficient, though the brevity edges into under-specification rather than pure concision.
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 an outbound-email mutation with a fully undocumented three-parameter wrapper schema and no output schema, the description leaves the agent without enough to call it confidently or predict the result. It should at minimum state that no body is required and what the caller sees on success.
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?
Three parameters (form, params, json_body) exist with 0% schema description coverage and no type information. The description's 'for current email' weakly implies no email argument is needed, but it never explains what should go in any of the three slots or whether they may be omitted entirely.
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?
States a specific verb+resource ('request email verification' / 'resend verify link') and scopes it to the current user's email. This meaningfully separates it from sibling vaultwarden_post_verify_email_token (which consumes a token), though that sibling is never named.
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 parenthetical 'resend verify link' implies a use case, but there is no explicit when-to-use, no prerequisite (must be authenticated), and no routing away from the many email-related siblings (post_verify_email_token, register_verification_email, send_email, post_email).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_post_verify_email_tokenPost verify email tokenC
Verify current email address ownership via emailed token
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a non-read-only, non-destructive, open-world operation, but the description adds little behavioral detail beyond the purpose. It does not state whether the token is single-use or expiring, what state change occurs, or what happens on invalid/expired tokens.
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 single front-loaded sentence with no filler, so it is appropriately concise. The phrase 'current email address ownership' is slightly awkward but does not waste meaningful space.
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?
This is a mutation endpoint with no output schema and three entirely undocumented parameters. The description covers the high-level intent but not how to call it, where the token goes, required auth context, or expected effects, leaving it substantially incomplete for safe 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?
All three parameters (form, params, json_body) have 0% schema description coverage, and the description provides no hint about which field carries the token or what shape it expects. This is a critical gap for invocation correctness.
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 and resource: verifying ownership of the current email address via an emailed token. It is clear what the tool does, but it does not differentiate itself from siblings such as vaultwarden_post_verify_email or vaultwarden_post_email_token.
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?
It implies the tool is used when an emailed verification token is available, but it gives no explicit when-to-use guidance, prerequisites, or comparison with the many sibling verification/email tools. The agent must infer the workflow entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_prelogin_passwordPrelogin passwordC
Variant prelogin returning the newer MasterPasswordUnlockData shape
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide the safety profile (readOnlyHint=false, openWorldHint=true, destructiveHint=false), and the description adds only a return-shape detail. It does not explain authentication needs, side effects, or other behavioral context beyond that hint.
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 single short sentence with no filler, so it is concise. However, it is cryptic and does not front-load a clear action or purpose.
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 three undocumented parameters, no output schema, and many sibling prelogin-related tools, the description is far too thin. It hints at return shape but leaves essential calling context missing.
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 three parameters (form, params, json_body) with zero schema description coverage, and the description does not mention any of them. It provides no compensating meaning for the undocumented inputs.
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?
It identifies this as a prelogin variant and mentions the return shape, giving some differentiation. But it does not state the actual operation or resource clearly, so an agent still has to infer what the tool does.
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?
There is no guidance on when to use this tool versus other prelogin or prevalidate siblings. The agent is left to guess from the name and return-shape hint alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_prevalidatePrevalidateB
Pre-validate an SSO organization identifier before redirecting to the IdP
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is partly covered. The description adds meaningful SSO-flow context, but it does not clarify what 'pre-validate' actually does operationally or why a validation step is marked non-read-only, leaving a gap around side effects.
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 single, front-loaded sentence with no wasted words. It could have included a little more useful detail without becoming verbose, but the existing text is efficiently structured.
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 tool with three undocumented parameters, no output schema, and an SSO-related workflow, one sentence is not enough. The agent does not know which parameter carries the organization identifier, what a successful or failed pre-validation looks like, or what side effects to expect beyond the annotations.
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 0%, and the three parameters (form, params, json_body) are completely undocumented in both schema and description. The description mentions an 'SSO organization identifier' but does not map it to any parameter, leaving the agent with almost no guidance on what to supply.
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 action (pre-validate) and target (SSO organization identifier) within a clear flow context (before redirecting to the IdP). It effectively distinguishes this tool from the many unrelated Vaultwarden siblings, though it does not explicitly name alternatives.
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 phrase 'before redirecting to the IdP' implies the correct stage in an SSO flow, giving some when-to-use guidance. However, it provides no exclusions, no alternative tools, and no prerequisites, leaving the agent to infer the exact invocation conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_profileProfileB
Get own user profile (email, name, org memberships, premium status)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The field list (email, name, org memberships, premium status) is genuinely useful because there is no output schema, so the agent learns what the payload contains. However, the description calls this a 'Get' while the annotations declare readOnlyHint=false, an unresolved tension the description never reconciles, and no auth/scope requirements are disclosed despite openWorldHint=true.
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?
A single short sentence with the verb front-loaded and no filler; the parenthetical field list earns its space because no output schema exists. Slightly terse for the tool's surrounding confusion around parameters.
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 self-profile read the description covers the 'what', but with no output schema, 0% parameter coverage, and annotations that do not confirm read-only behavior, it leaves the agent guessing about inputs and safety. Complete enough to attempt a call, not complete enough to call confidently.
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 0% and the three parameters (form, params, json_body) have titles but no types or descriptions, so an agent cannot tell whether any input is expected. The description contributes nothing here - it never says the call takes no required arguments, which is the key fact for a profile-fetch endpoint.
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?
States a specific verb ('Get') and resource ('own user profile') with the scope narrowed to the caller's own account, and enumerates the returned data (email, name, org memberships, premium status). That 'own' qualifier implicitly separates it from the admin-facing vaultwarden_get_user / vaultwarden_get_user_json and from the mutating vaultwarden_put_profile / vaultwarden_post_profile siblings, though no sibling is named explicitly.
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?
There is no when-to-use or when-not-to-use guidance, no mention of alternatives among the ~250 siblings, and no prerequisite stated (e.g. that an authenticated session/token is needed). The only implicit cue is the word 'own', which is carried mostly by the name rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_purge_org_vaultPurge org vaultADestructive
Irreversibly delete ALL ciphers in an organization
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No | ||
| organization | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description earns credit for adding that the deletion is IRREVERSIBLE and covers ALL ciphers in the org, which sharpens scope beyond the generic destructive flag. It stops short of noting permission requirements or the blast radius for collections/members.
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?
A single front-loaded sentence with zero filler; the most critical fact (irreversible, ALL) leads.
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 destructive, org-wide operation with four undocumented parameters and no output schema, the description is too thin. It should indicate how the organization is specified and any auth/permission preconditions an agent must satisfy before invoking an irreversible purge.
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?
Four parameters exist (form, params, json_body, organization) at 0% schema description coverage, and the description explains none of them. It only implies an organization target via the resource phrase, giving no format or identifier guidance.
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?
States a specific verb (purge/delete), resource (all ciphers) and scope (in an organization), and the 'in an organization' qualifier distinguishes it from the sibling vaultwarden_purge_personal_vault without needing to open its schema.
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?
No guidance on when to use this versus vaultwarden_purge_personal_vault or the many per-cipher/collection delete tools, and no prerequisites (admin rights, org selection) stated. The reader must infer everything from the scope word 'ALL'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_purge_personal_vaultPurge personal vaultBDestructive
Irreversibly delete ALL of the caller’s personal ciphers (and folders)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the core safety profile is covered by structured data. The description adds genuine value by stating the deletion is irreversible and total ('ALL'), including folders, which goes beyond the annotations. However, it says nothing about required permissions, whether a confirmation step exists, or whether the action can be scoped or undone.
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?
A single short sentence with the destructive scope front-loaded ('Irreversibly delete ALL'). Zero filler and nothing buried.
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 an irreversible bulk-delete tool with no output schema and undocumented parameters, the description covers the what and the permanence but leaves out call prerequisites and any recovery or confirmation details. It is adequate to know what will happen, not adequate to know how to invoke it responsibly.
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 0% across three parameters (form, params, json_body), and the description offers no information about them at all. Some of these are generic wrapper fields, but the description does nothing to compensate for the 0% 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?
States a specific verb (purge/irreversibly delete), a specific resource (personal ciphers and folders), and the scope of impact ('ALL of the caller's'). The word 'personal' implicitly separates it from the sibling vaultwarden_purge_org_vault, so an agent can choose between the two without opening either schema.
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 never states when to use this versus alternatives such as vaultwarden_delete_cipher or vaultwarden_bulk_delete_organization_collections, nor does it set any precondition or confirmation requirement. Usage is only inferable from the word 'purge', which is very little guidance for an irreversible bulk operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_auth_requestPut auth requestC
Approve/deny an auth request from an already-approved device
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No | ||
| auth_request_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare that this is not read-only, is open-world, and is not destructive; the description is consistent with those hints. The description adds a useful prerequisite about the requesting device, but does not explain the consequences of approval, payload requirements, or response behavior for this security-sensitive mutation.
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 single front-loaded sentence with no filler or repetition. It is appropriately sized for a concise statement, though the extreme brevity contributes to gaps elsewhere rather than being a structural flaw here.
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 a 4-parameter mutation tool with zero parameter documentation, no output schema, and only sparse annotations, this description is too thin. It does not tell an agent how to construct the request, what approving or denying entails, or what to expect after the call.
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?
There are 4 parameters with 0% schema description coverage, and the description does not mention any parameter names, formats, or meanings. The schema leaves form, params, and json_body completely undocumented, and the description does nothing to compensate.
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 uses a specific verb pair (approve/deny) and a specific resource (auth request), and adds a meaningful qualifier (from an already-approved device). It does not explicitly differentiate this tool from siblings such as get_auth_request or post_auth_request, so it falls short of the top score.
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 phrase 'from an already-approved device' gives a prerequisite context for when this tool applies. However, it provides no explicit when-not guidance, no mention of alternatives like get_auth_request for fetching requests, and no explanation of how approve vs. deny is selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_avatarPut avatarC
Set avatar color
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the agent knows this is a non-destructive write operation. The description adds nothing about what actually changes, required permissions, or side effects, leaving behavioral transparency largely to the 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 extremely short and front-loaded, with no wasted words. However, the brevity is partly due to under-specification rather than disciplined focus.
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 write tool with three undocumented parameters and no output schema, the description is insufficient. It does not explain what 'avatar color' means in practice, what inputs are expected, or what the result will be, leaving the agent unable to call it correctly without guessing.
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 has three parameters (form, params, json_body) with zero description coverage, and the description provides no information about them. With coverage at 0%, the description must compensate, but it does not.
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 adds a specific action ('Set') and object ('avatar color') beyond the tool name, but does not identify which avatar (e.g., user profile vs. organization) or distinguish this from any sibling tool. It is clearer than a tautology but still vague about scope.
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?
There is no indication of when to use this tool versus alternatives, no prerequisites, and no exclusions. The description simply states the action without any contextual guidance for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_cipherPut cipherC
Update a cipher (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a non-read-only, non-destructive, open-world mutation. The description adds only '(PUT alias),' which does not disclose permissions, side effects, partial-update semantics, or what happens to unspecified cipher fields. With annotations present, the bar is lower, but no meaningful behavioral context is added.
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 short and front-loaded with the core action. It contains no wasted words, though its brevity reflects under-specification rather than helpful tightness.
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 mutation tool with 4 parameters, 0% schema description coverage, no output schema, and many similar cipher-update siblings, the description is too sparse. It does not explain the body structure, the difference between this and partial/admin/share cipher updates, or what the return behavior is.
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 0% for 4 parameters, and the description provides no parameter-level detail. The opaque parameters form, params, and json_body are left completely unexplained, and the description does not compensate for the schema gap.
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 and resource: 'Update a cipher.' However, it does not distinguish this tool from the many sibling cipher-mutation tools, such as put_cipher_partial, put_cipher_admin, put_cipher_share, ciphers_edit_item, or post_cipher. The parenthetical '(PUT alias)' is ambiguous and does not clarify scope.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The description merely identifies the operation without telling an agent how to choose among the numerous cipher-update siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_cipher_adminPut cipher adminC
Update a cipher via the admin path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is a non-read-only, non-destructive, open-world mutation. The description adds only the 'admin path' context, without describing required permissions, what happens to unspecified fields, or the nature of the update. Useful but minimal 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?
A single, front-loaded sentence with no filler. It is appropriately sized for its very limited content, though the extreme brevity leaves the definition under-specified.
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 mutation tool with four undocumented parameters, no output schema, and an admin-path variant competing with a normal update tool, the description is far too thin. It does not supply the operational or parameter context needed to invoke this safely and correctly.
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 0%, and the description does not mention any of the four parameters (form, params, cipher_id, json_body). An agent gains no semantic detail about what each parameter expects or how to structure the update payload.
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 names a specific verb (Update) and resource (cipher) and adds the qualifier 'admin path,' but it largely restates the tool's name and title without explicitly distinguishing it from the sibling vaultwarden_put_cipher or explaining what the admin path entails.
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?
There is no guidance on when to use this admin-path update versus the regular cipher update, no prerequisites, and no conditions or exclusions. The agent is left to infer the distinction from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_cipher_partialPut cipher partialD
Partial update (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is non-read-only, non-destructive, and open-world; the description only adds the words "partial update," implying unchanged fields are preserved, but says nothing about auth requirements, side effects, or what a partial body does to existing cipher data.
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?
It is short but not concise in a useful sense — it is under-specified rather than efficiently front-loaded. The two words spent on "PUT alias" add little actionable value.
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 cipher mutation tool with 4 parameters at 0% schema coverage, no output schema, and no annotations beyond hints, the description omits everything an agent would need to call it correctly.
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 0% and the description says nothing about any of the four parameters, including the opaque `form`, `params`, and `json_body` properties. The description provides zero compensation for the undocumented schema.
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?
"Partial update (PUT alias)" largely restates the tool name and HTTP method rather than stating what is being partially updated or which cipher fields are affected. It gives no basis for distinguishing it from siblings such as vaultwarden_post_cipher_partial or vaultwarden_put_cipher.
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?
There is no statement of when to use this versus the many other cipher mutation tools (put_cipher, post_cipher_partial, put_cipher_admin, put_cipher_share). The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_clear_device_tokenPut clear device tokenB
Clear a device push token (public, used by push relay callbacks)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| device_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this is a non-readOnly, non-destructive mutation with openWorld behavior. The description adds meaningful context beyond that: the endpoint is public and tied to push relay callbacks. However, it does not explain what clearing the token does to the device, whether it is idempotent, or what authorization is required, which matters for a mutation tool.
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 single compact sentence with the core action front-loaded. Every phrase adds information: the action, the resource, the public nature, and the callback context.
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?
This is a mutation tool with four parameters, no parameter descriptions, and no output schema. The description covers purpose and a hint of context but omits required authorization, expected effects of clearing a token, parameter usage, and error behavior. It is not complete enough for an agent to invoke the tool confidently without inspecting the raw schema.
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 0% across four parameters, so the description must carry the burden. It only implies that a device token is associated with a device, giving a weak hint that `device_id` is the required identifier, but it says nothing about `form`, `params`, or `json_body`. This is insufficient compensation for the complete lack of schema descriptions.
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 and resource: 'Clear a device push token.' The parenthetical adds scope ('public, used by push relay callbacks'), which helps distinguish this from the sibling `vaultwarden_put_device_token` that sets a token. It stops short of explicitly naming that sibling, so it is clear but not fully differentiated.
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 no explicit when-to-use or when-not-to-use guidance, and it does not name alternatives such as `vaultwarden_put_device_token` or `vaultwarden_post_clear_device_token`. The note that it is 'used by push relay callbacks' hints at a scenario but does not tell an agent how to choose this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_collections2_updatePut collections2 updateC
Set the collections a cipher belongs to (v2, returns updated cipher)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, and open-world behavior, so the safety bar is lower. The description adds that this is a v2 operation returning the updated cipher, but it does not explain that setting collections may replace the cipher's existing collection membership or what permissions are required for a mutation.
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?
It is a single short sentence with the core action front-loaded and no wasted phrasing. It could be slightly more informative without becoming verbose.
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?
No output schema exists, and the description at least notes that the updated cipher is returned. However, for a mutation tool with four mostly undocumented parameters and zero schema coverage, the definition is too sparse to call safely without inspecting the underlying API.
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 0%, with four opaque parameters (form, params, json_body, cipher_id). The description mentions the cipher but does not explain how collections are supplied via json_body or what form/params contain, leaving the most important input structure undocumented.
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 names a specific verb and resource: 'Set the collections a cipher belongs to', and adds the v2/return-value detail. It is clear what the tool does, but it does not distinguish itself from near-identical siblings like vaultwarden_post_collections2_update or vaultwarden_put_collections_update.
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?
There is no guidance on when to use this tool versus the many similarly named collection-update siblings, nor any preconditions or exclusions. The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_collections_adminPut collections adminD
Set collections via admin path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutating nature is known. The description adds nothing beyond that: for a PUT operation it never says whether it replaces the entire collection set, whether omitted collections are dropped, or what permissions are required — the exact questions an agent needs answered before overwriting org collections.
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?
Six words with no filler, but this is under-specification rather than conciseness. Nothing is front-loaded beyond a bare restatement, and there is no second sentence carrying the information the first one lacks.
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?
A four-parameter mutation tool with no output schema, no parameter documentation and no annotation detail requires far more than this. The description leaves the agent unable to construct a valid call — what goes in json_body, what cipher_id refers to — which is the core completeness failure here.
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 0% across four parameters (cipher_id required, plus form, params, json_body all with no titles or descriptions), so the description carries the full burden of explaining them. It mentions none of them — the required cipher_id and the opaque json_body are completely unexplained anywhere in the definition.
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 essentially restates the tool name: 'Put collections admin' becomes 'Set collections via admin path.' It gives no indication of what a collection payload looks like or which admin collection operation this is (create, replace, update membership), and with siblings like put_collections_update, put_collections2_update, post_collections_admin and put_organization_collection_update, the agent cannot tell them apart.
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?
There is no when-to-use guidance at all, despite a dense cluster of near-identical collection tools in the sibling list. The phrase 'via admin path' hints at an admin-only variant but never states the condition that selects it over the non-admin PUT tools or over the POST admin variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_collections_updatePut collections updateB
Set the collections a cipher belongs to (legacy v1)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation profile is covered. The description adds that this sets (i.e. replaces) a cipher's collection memberships and that the endpoint is legacy, which is useful context, but it omits what happens to existing memberships, permission requirements, and whether the legacy call behaves differently from v2.
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?
A single short sentence with zero filler and the key scope ('collections a cipher belongs to') front-loaded. It is efficient, though extremely terse for a mutation tool handling opaque parameters.
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 write operation with no output schema, 0% parameter documentation and three generic wrapper parameters, the description is far too thin. An agent cannot reliably construct a call from it without falling back on guesswork about the json_body structure.
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 0% across four parameters, including opaque wrappers named 'form', 'params' and 'json_body', yet the description explains none of them. It only indirectly hints that a collection payload and cipher identifier exist; the agent gets no guidance on which parameter carries the collection IDs or what format they take.
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?
States a concrete verb ('Set') and resource ('the collections a cipher belongs to'), which is specific enough to distinguish it from generic cipher-update tools. The '(legacy v1)' qualifier also separates it from the v2 sibling vaultwarden_put_collections2_update, though the description does not name that sibling explicitly.
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?
There is no explicit when-to-use statement or exclusion, but the '(legacy v1)' tag implicitly signals this is the older endpoint and that a newer variant exists. An agent still has to infer from the sibling name which one to prefer, and nothing is said about prerequisites such as organization membership or collection access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_device_tokenPut device tokenC
Set/update device push token (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| device_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the basic mutation profile is known. The description adds only the alias note and no further behavioral context such as auth requirements, effects on existing tokens, or rate limits.
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 single front-loaded sentence with no wasted words. However, its brevity shades into under-specification rather than efficient completeness.
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 four-parameter mutation tool with zero schema descriptions and no output schema, this description is insufficient. An agent knows the operation exists but lacks the information needed to construct a correct request body or understand the required device_id semantics.
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 0%, and there are four parameters, including opaque form/params/json_body fields. The description mentions a device token conceptually but gives no meaning for device_id or what the request body must contain.
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+resource: set/update the device push token, and notes this is the PUT alias. It is clear what the tool does, but it does not distinguish when to prefer it over the sibling post_device_token.
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?
It implies this is the PUT variant but never says when to use it versus post_device_token or the clear-device-token siblings. No prerequisites, exclusions, or alternative-selection guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_emergency_accessPut emergency accessC
Update wait-time/type of an emergency-access grant
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, and the description's 'Update' is not contradictory. Beyond that, the description does not say what permissions are needed, whether changes are reversible, how wait-time/type interact, or what side effects occur, so it adds little behavioral context.
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 definition is a single front-loaded sentence with no filler. It is efficient, though its brevity reflects under-specification rather than a deliberately structured explanation.
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 mutation tool with four undocumented parameters, no output schema, and only minimal annotations, the description is too thin. It does not explain required inputs, supported fields, or the effect of the update, leaving important gaps for an agent to guess.
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 0% for four parameters, including opaque names like 'form', 'params', and 'json_body'. The description hints that wait-time and type are updatable fields but does not map them to any parameter or explain 'emer_id', so it only marginally compensates for the schema gap.
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 and resource: 'Update wait-time/type of an emergency-access grant.' That is clearer than a tautology and tells the agent exactly what kind of mutation is performed. However, it does not distinguish this tool from nearby emergency-access siblings such as view, approve, confirm, initiate, reject, or delete.
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?
There is no guidance on when to choose this update tool versus the many related emergency-access tools, nor any prerequisite or exclusion. The agent must infer the usage context entirely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_folderPut folderC
Rename a folder
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| folder_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is partly covered. The description adds nothing beyond the word "rename" — it does not say whether the folder must exist, whether ciphers inside are affected, what permissions are needed, or what is returned. For a mutation tool the added context is minimal.
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?
Three words are concise but the problem here is under-specification, not tightness. There is no structure to speak of and nothing front-loaded beyond the barest action label.
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?
A mutation tool with four parameters at 0% schema coverage, no output schema, and only a three-word description leaves an agent unable to determine how to supply the new name, what the wrapper parameters mean, or what success looks like. Given the complexity, this is clearly inadequate.
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 0% and four parameters exist, including opaque generic wrappers (form, params, json_body) plus an undocumented folder_id. The description mentions no parameter at all, not even that folder_id identifies the folder to rename, so it does nothing to compensate for the schema gap.
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?
"Rename a folder" names a specific verb and resource, so the basic action is clear. However, the tool name and title say "Put folder", which implies a broader update/replace of folder state, and the description neither reconciles that with "rename" nor distinguishes this from sibling writers like vaultwarden_post_folder, vaultwarden_put_folders, or vaultwarden_delete_folder.
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?
There is no indication of when to use this versus alternatives such as creating a folder, or whether it requires an existing folder created elsewhere. No prerequisites, no exclusions, no mention of the sibling tools that operate on folders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_groupPut groupC
Update a group
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| group_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive, open-world mutation. The description adds no behavioral context such as required permissions, partial-update semantics, side effects, or what happens to fields not supplied.
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 only two words and is front-loaded, but it is under-specified rather than effectively concise for a 5-parameter mutation tool. It is too terse to earn its place as guidance.
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 group-update mutation with five undocumented parameters and no output schema, the description leaves out nearly everything needed for safe invocation. The minimal annotations do not compensate for the missing explanation of inputs and behavior.
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?
There are 5 parameters with 0% schema description coverage, and the description mentions none of them. It gives no meaning for org_id, group_id, form, params, or json_body, leaving the agent unable to know how to populate them correctly.
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?
States a clear verb ('Update') and resource ('group'), which is enough to distinguish it from get/delete/post group siblings at a high level. It does not clarify what aspects of the group are updated or how it differs from vaultwarden_put_group_members, so it falls short of 5.
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 no when-to-use guidance, exclusions, or alternatives such as post_group, put_group_members, or delete_group. Usage is only implied by the tool name and the word 'Update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_group_membersPut group membersC
Set which members belong to a group
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| group_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, destructiveHint=false, and openWorldHint=true, but the description adds almost nothing beyond that. Critically, it does not clarify whether this replaces the full membership list, what happens to omitted members, or what permissions are required for a group membership mutation.
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 single sentence is front-loaded and free of filler. However, for a 5-parameter mutation with no schema descriptions, it is too terse to be considered appropriately sized.
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 5 undocumented parameters, no output schema, and minimal annotations, the description leaves out essential calling details such as required identifiers and request body semantics. It is not complete enough to support correct 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?
Schema description coverage is 0% for 5 parameters, including required org_id and group_id. The description mentions no parameter names, formats, or expected bodies, so it does not compensate for the missing schema documentation.
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 gives a clear verb ('Set') and resource ('which members belong to a group'), so an agent can understand the operation. It does not distinguish this from sibling tools such as vaultwarden_get_group_members or vaultwarden_update_membership_type, which keeps it below a 5.
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 no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusion conditions. Usage is only implied by the verb 'Set'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_memberPut memberC
Edit a member (role, collection access, groups)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is partly covered. The description adds only a field list and says nothing about permissions required, whether the update is partial or full replacement, or how existing collection/group access is affected.
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 single compact phrase with no wasted words, and the core action is front-loaded. However, the parenthetical field list is terse and does not provide much structural guidance for an agent invoking a multi-parameter mutation.
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 mutation tool with five parameters, zero schema descriptions, no output schema, and many similar siblings, the description is far too thin. It names the resource and editable facets but omits enough usage, parameter, and behavioral context that an agent would need to inspect the schema and guess at proper usage.
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 0% across five parameters, so the description carries the burden but fails to explain org_id, member_id, form, params, or json_body. It mentions role, collection access, and groups at a high level, but does not map them to any parameter or clarify the expected structure.
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 gives a specific verb and resource ('Edit a member') and names the editable facets (role, collection access, groups). It is clear what the tool does, but it does not distinguish it from close siblings such as vaultwarden_edit_member or vaultwarden_update_membership_type.
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?
There is no guidance on when to use this tool versus alternatives, despite many sibling tools that also modify member data. Usage is only implied by the verb 'Edit'; no prerequisites, exclusions, or alternative selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_organizationPut organizationC
Update organization settings (name, billing email, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is partially covered. However, this is a PUT-style mutation where the critical behavior is unaddressed: whether omitted fields are cleared or preserved, what permissions are required, and what gets changed on the server. With 4 opaque parameters and no output schema, the description carries a large remaining burden and does not meet it.
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?
A single, front-loaded sentence with no filler beyond the vague 'etc.' — efficient, though the brevity is achieved partly by omitting needed information rather than by disciplined editing.
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 mutating organization-level tool with no output schema, a vague multi-body-parameter schema, and a large sibling set of other put_* organization mutations, the description should clarify scope, permissions, and update semantics. It provides only a field list, leaving an agent unable to call this confidently.
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 0% and the four parameters (form, params, json_body, org_id) are described nowhere. The description hints that name and billing email are updatable fields but never maps them to 'json_body', 'form', or 'params', nor explains why three overlapping body-like parameters exist. It adds marginal semantics but does not compensate for the coverage gap.
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 names a specific verb (update) and resource (organization settings) and gives two example fields, so the core intent is clear. It does not differentiate itself from nearby siblings that also mutate organization-level configuration, such as vaultwarden_put_settings_domains or vaultwarden_put_policy, and the trailing 'etc.' leaves the scope of the update open.
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?
There is no statement of when this tool should be chosen over alternatives, no preconditions (admin/owner permissions are not mentioned), and no indication of what it should not be used for. The agent must infer everything from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_organization_collection_updatePut organization collection updateC
Update a collection (rename, reassign users/groups)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| col_id | Yes | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is known. The description adds that the update covers rename and reassignment of users/groups, which is useful context, but it does not disclose whether this replaces the full collection state versus partial update, what permissions are required, or any side effects. With annotations covering the basics, a 3 reflects moderate added value.
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 single front-loaded sentence that names the action and example fields with zero wasted words. Its brevity is appropriate for conciseness, though it borders on under-specification for a 5-parameter mutation 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 mutation endpoint with 5 undocumented parameters, no output schema, and many closely related siblings, the description is too thin. It does not explain request shape, what is replaced, permission requirements, or how it differs from other collection-update endpoints.
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 0% and there are 5 parameters with opaque names (form, params, json_body, col_id, org_id). The description only implies that fields like name, user assignments, and group assignments belong in the body, but does not explain any of the parameters, including how org_id/col_id relate to the request or how form/params/json_body are used. It does not compensate for the documentation gap.
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 and resource: 'Update a collection', and the parenthetical adds concrete update types (rename, reassign users/groups). It does not distinguish this PUT endpoint from the many sibling collection-update variants (e.g. vaultwarden_post_organization_collection_update, vaultwarden_put_collections_update, vaultwarden_put_collections2_update), so it falls short of a 5.
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?
It gives no guidance on when to use this tool versus the numerous sibling collection tools, nor any prerequisites, permission requirements, or exclusions. The parenthetical hints at rename/reassignment but does not route the agent between alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_policyPut policyC
Update one policy by type
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| pol_type | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a non-read-only, non-destructive, open-world mutation. The description adds only that it updates 'one policy by type', without explaining permissions, reversibility, side effects, or payload expectations beyond what the annotations provide.
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 single front-loaded sentence with no wasted words. It is structurally efficient, though its brevity contributes to gaps captured in other dimensions.
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 five-parameter org policy mutation with no output schema and 0% schema description coverage, the description is far too thin. It does not clarify the meaning of policy types, the organization scope, or the expected request body.
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 0% across five parameters, so the description must carry the burden. 'By type' weakly hints at pol_type, but org_id, form, params, and json_body are left unexplained, making the schema difficult to use from the description alone.
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 names a specific verb and resource ('Update one policy'), which is clearer than the title alone. However, 'by type' is vague and does not distinguish this tool from sibling tools such as vaultwarden_put_policy_vnext or vaultwarden_get_policy.
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?
There is no guidance on when to use this tool versus alternatives like vaultwarden_put_policy_vnext, nor any prerequisites or exclusions. The mutation intent is implied by 'Update' and the annotations, but the description adds no routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_policy_vnextPut policy vnextC
Update one policy by type (newer response shape)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| pol_type | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-read-only, non-destructive, open-world mutation. The description adds only 'newer response shape', which does not explain permissions required, what existing policy state is overwritten, or what the response actually contains. For a mutation with zero schema documentation, this is thin.
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 single sentence is front-loaded and free of padding, but it is under-specified rather than concise. Given the tool's complexity and five opaque parameters, far more information should have been packed into the opening lines.
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?
A mutation tool with five undocumented parameters, no output schema, and only annotation-level safety hints. The description does not compensate for the schema's 0% coverage, so an agent lacks the context needed to call this reliably.
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?
Five parameters with 0% schema description coverage and no explanation in the description. The phrase 'by type' loosely gestures at pol_type, but org_id, form, params, and json_body are entirely undocumented in both schema and description, leaving the agent unable to construct a correct call.
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?
States a verb ('update') and resource ('policy') and hints at a sibling distinction via 'newer response shape' versus vaultwarden_put_policy. However, it never clarifies what a 'policy type' is, what vnext implies functionally, or how it differs operationally from the older put_policy.
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?
No explicit when-to-use guidance or exclusions. The parenthetical 'newer response shape' weakly implies preferring this over vaultwarden_put_policy, but the agent must infer that. No prerequisites, policy type enumeration, or context about when a policy update is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_profilePut profileC
Update profile fields (name, avatar color)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, and the description adds nothing beyond that. Critically, it does not say whether this is a partial or full replacement (PUT semantics), whether omitted fields are cleared, or what permissions are required.
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?
A single short phrase with the resource and fields front-loaded and no filler. It is efficient, though the brevity leaves it under-specified rather than genuinely tight.
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 three undocumented parameters, no output schema, and a mutation that touches user profile data, the description leaves major gaps: request shape, replacement semantics, and auth requirements are all unaddressed.
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 0% and the three parameters (form, params, json_body) are completely opaque. The description lists field names but never maps them to any parameter or explains the expected shape of json_body, so an agent still cannot construct a valid call.
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?
States a specific verb (update) and resource (profile fields) and even names the mutable fields (name, avatar color). It does not differentiate from close siblings such as vaultwarden_post_profile or vaultwarden_put_avatar, so an agent cannot tell which one to pick from the description alone.
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?
There is no guidance on when to use this vs vaultwarden_post_profile, vaultwarden_profile, or vaultwarden_put_avatar, and no prerequisites such as authentication or ownership of the profile. Usage has to be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_recover_accountPut recover accountB
Admin completes account-recovery: submits a brand-new master key for a member using the org-held reset_password_key
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the description adds real value by revealing that a brand-new master key is written and that an org-held reset_password_key is required. It does not explain what happens to the member's old key, sessions, or whether the operation is reversible, which is critical for a master-key mutation.
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?
A single well-formed sentence with the actor, action, object and required credential front-loaded. No filler, though it is arguably too terse given the complexity of the operation.
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 high-impact mutation with five undocumented parameters, no output schema and only minimal annotations, the description should describe the request body contract and the consequences of replacing a master key. It leaves the caller without enough information to build a correct request.
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 0% across five parameters, including opaque names like 'form', 'params' and 'json_body'. The description only loosely gestures at org and member and never says where the new master key or reset key must be supplied, so it does not compensate for the schema gap.
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 and resource: an admin completes account-recovery by submitting a new master key for a member. It is far more informative than the title 'Put recover account' and distinguishes itself from siblings like put_reset_password or get_recover. It stops short of explicitly naming those alternatives, so it is not a 5.
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 phrase 'Admin completes account-recovery' implies this is the final step of a flow requiring a previously issued reset_password_key and admin privileges, which gives useful implied context. However, it never states the prerequisite step that produces that key, nor when to use this instead of put_reset_password or get_recover.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_remove_passwordPut remove passwordBDestructive
Remove the password requirement from a Send
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| send_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true. The description adds that the destructive action specifically removes a password requirement from a Send, clarifying scope beyond the generic destructive flag. However, it does not describe authentication requirements, reversibility, or side effects, so it adds only moderate behavioral context.
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 single, front-loaded sentence with no wasted words. It directly states the action and resource, making it appropriately sized and efficient.
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 destructive mutation tool with four parameters and 0% schema description coverage, the description is too sparse. It fails to explain the opaque parameters (form, params, json_body) or provide any behavioral context about what happens when the password requirement is removed, though annotations partially cover the safety profile.
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 0% across four parameters (send_id required, plus form, params, and json_body). The description does not explain any parameter, not even send_id, leaving the agent with no semantic guidance beyond what the bare schema provides.
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 (Remove) and resource (password requirement from a Send), which clearly distinguishes it from other send-related tools like get_send, put_send, or delete_send. An agent can identify exactly what action is performed without opening the schema.
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 no explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The usage is only implied by the tool's name and purpose, similar to the update_drive calibration example that scored 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_reset_passwordPut reset passwordD
Alias/step of admin-initiated password reset
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is partly covered. The description adds only 'admin-initiated' context and does not explain what state is changed, whether the reset is merely staged or completed, what auth requirements apply, or any side effects.
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 short, but its brevity reflects under-specification rather than efficient front-loading. The single fragment 'Alias/step of admin-initiated password reset' does not establish a usable structure for selecting or invoking the 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?
This is a five-parameter mutation tool with 0% schema description coverage and no output schema. The description is far too thin to make the tool safely and correctly invocable, especially given nearby reset-password and enrollment siblings.
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 0% and the description mentions none of the five parameters, including the required org_id and member_id. The schema leaves form, params, and json_body completely undocumented, and the description does nothing to compensate.
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 is a fragment that says 'Alias/step of admin-initiated password reset' but does not clearly state what this tool actually does, whether it initiates, enrolls, completes, or aliases a reset step. It is close to restating the name and does not sufficiently distinguish it from close siblings such as vaultwarden_put_reset_password_enrollment or vaultwarden_get_reset_password_details.
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?
There is no guidance on when to use this tool, when not to use it, or which sibling to prefer for reset-password workflows. The phrase 'admin-initiated password reset' implies a context but does not give an agent actionable routing criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_reset_password_enrollmentPut reset password enrollmentC
Member opts in/out of admin password-reset recovery
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, open-world operation, so the description is not responsible for the full safety profile. It adds only that the operation concerns admin password-reset recovery enrollment, but does not explain permissions required, whether the member must consent, how the opt-in/out state is transmitted, or what side effect the change has.
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 single compact phrase with no wasted words and the core context is front-loaded. Its brevity is not the main issue here; the missing detail is better assessed under contextual completeness and parameter semantics.
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 five-parameter mutation tool with no output schema and zero schema description coverage, the description is not complete enough to guide correct invocation. It omits parameter meaning, request-body expectations, and any behavioral context about what enrollment change actually occurs.
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 0% across five parameters, and the description does not explain org_id, user_id, form, params, or json_body. 'Member' loosely hints at user_id and the admin-recovery context hints at org_id, but the body and optional parameters remain completely opaque.
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?
It identifies the domain as member enrollment in admin password-reset recovery, which is more than the bare tool name. However, it does not specify whether the operation enables or disables enrollment or how that choice is expressed, and it does not distinguish this tool from related siblings like vaultwarden_put_reset_password, vaultwarden_put_remove_password, or vaultwarden_get_reset_password_details.
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 no explicit when-to-use guidance, prerequisites, or alternative-tool routing. An agent must infer usage entirely from the phrase 'member opts in/out' without knowing when this should be preferred over adjacent reset-password or emergency-access tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_sendPut sendC
Update a Send (name/notes/text/expiry/password/max access count)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| send_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the mutation/no-destruction profile is covered. The description adds the list of mutable fields but says nothing about ownership/auth requirements, whether omitted fields are cleared (PUT semantics), or what happens to an expired/revision-bumped Send. Since annotations carry the safety profile, a 3 is fair.
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?
A single, front-loaded sentence with zero wasted words; the verb and the field set come first. It is compact and easy to scan, though the compression contributes to the missing semantics rather than offsetting it.
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 mutation tool with four unlabeled parameters at 0% schema coverage and no output schema, the description should explain how to structure the body, what permissions are needed, and how it relates to vaultwarden_post_send. None of that is present, so an agent cannot confidently invoke it from this definition alone.
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 0% and the parameter names (form, params, json_body) are opaque, so the description must compensate heavily. The field list (name/notes/text/expiry/password/max access count) is additive, but it never explains which of form/params/json_body carries those fields, nor what send_id's format is — the gap remains substantial.
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 names a specific verb (Update) and resource (Send) and enumerates the mutable fields, so the agent knows exactly what operation this performs. It does not, however, distinguish this from the many Send-related siblings such as vaultwarden_post_send (create), vaultwarden_get_send, or vaultwarden_delete_send, leaving that routing to the agent.
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?
There is no when-to-use or when-not-to-use guidance: nothing states that this is the update counterpart to vaultwarden_post_send, that a send_id must already exist, or which sibling to pick when creating versus editing a Send. The agent must infer all routing decisions from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_put_settings_domainsPut settings domainsC
Set equivalent-domains list (PUT alias)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety baseline is covered. The description adds only '(PUT alias)' and never discloses the critical behavior for a 'set' operation: that it likely replaces the entire equivalent-domains list rather than appending, nor any auth/permission requirements.
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?
A single terse phrase, front-loaded and free of filler. Its brevity is efficient, though it edges toward under-specification rather than true conciseness.
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 mutation tool with 0% parameter coverage, no output schema, and undifferentiated generic parameters, the description is far too thin. It leaves the agent without the request shape or the replace-semantics needed to call it correctly.
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 0% and the three parameters (form, params, json_body) have no descriptions or types in the schema. The description provides zero parameter information to compensate for this total gap, leaving the agent unable to know how to supply the domains list.
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?
States a specific verb and resource ('Set equivalent-domains list') and adds '(PUT alias)' to hint at its relationship to the POST sibling. An agent can tell it mutates the domains setting, though the meaning of 'equivalent-domains' and the exact difference from post_settings_domains remains implicit.
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?
No guidance on when to use this versus vaultwarden_get_settings_domains or vaultwarden_post_settings_domains. The '(PUT alias)' note hints at an HTTP-method distinction but doesn't say when one should be chosen over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_register_finishRegister finishB
Finish registration after email verification (submits the same keyset payload as identity_register)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so safety and network reach are covered. The description adds two useful facts beyond that: it is gated on email verification and reuses identity_register's keyset payload. It says nothing about session/auth requirements or what account state results, which a registration mutation tool would benefit from.
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?
A single, front-loaded sentence with no filler; the precondition comes first and the payload note second. Slight deduction for burying the arguably more important payload contract in a parenthetical.
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 registration-completing mutation in an auth flow, the description omits session/auth prerequisites, what is created or returned (no output schema exists), and failure modes. With 0% parameter documentation and no output schema, the description carries the full burden and does not meet it.
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 0% across three generically named params (form, params, json_body) with no descriptions and no required fields. The reference to identity_register's keyset payload is a partial lifeline for json_body, but nothing explains the role of form or params, so the description does not compensate for the coverage gap.
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?
Specific verb + resource: 'Finish registration after email verification'. The parenthetical explicitly ties it to the sibling identity_register as the source of the payload, which distinguishes it from that sibling. It stops short of 5 because the distinction ('finish' vs 'start' the registration) is only implied, not stated.
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?
'after email verification' is a real precondition that implies ordering relative to the verification-email tool. However, it never says when to call identity_register vs this tool, or what to do if verification hasn't happened, so the agent must infer the sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_register_verification_emailRegister verification emailC
Send the registration email-verification code
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation and external-effect profile is covered. The description restates only that an email is sent and adds nothing beyond annotations – no mention of what happens on unknown addresses, throttling, or side effects on the account state.
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?
A single front-loaded sentence with no filler, but the brevity comes at the cost of substance rather than being earned by efficiency. It is concise without being informative.
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 mutating, open-world tool with three unspecified parameters and no output schema, the description omits the request shape, the required payload, and the success/failure behavior. Sections like parameters and error conditions that other tools would delegate to the schema here have no source at all.
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?
All three parameters (form, params, json_body) have 0% schema description coverage and untyped defaults, and the description says nothing about what must go into them. With three undocumented parameters and a one-line description, the agent has no way to construct a valid call.
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?
States a specific verb ('send') and resource ('registration email-verification code'), so an agent can tell this triggers an outbound verification email rather than verifying a token. It does not name or distinguish itself from close siblings such as vaultwarden_post_verify_email or vaultwarden_register_finish, leaving ambiguity at the boundaries.
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?
There is no guidance on when this should be called versus verify_email/register_finish/resend_invite, no prerequisites (e.g. must be mid-registration, must supply an email), and no notes on rate limiting or repeated sends. The agent must infer all routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_reinvite_memberReinvite memberC
Resend one pending invite
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive, open-world operation. The description adds no further behavioral context such as permission requirements, effects on already-accepted invites, or rate limits, so it offers little beyond the structured safety hints.
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 brief but under-specified rather than efficiently concise. It is front-loaded but omits information needed to disambiguate or invoke the tool correctly, so its brevity is a liability rather than a strength.
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 mutation tool with five parameters, zero schema description coverage, and no output schema, the description is far too thin. It does not explain required identifiers, expected side effects, failure modes, or how it differs from sibling resend operations.
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 0% for five parameters, including required org_id and member_id plus opaque form, params, and json_body fields. The description provides no parameter-level meaning or format guidance to compensate for the absent schema documentation.
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 action (resend) and scope (one pending invite), which distinguishes it from bulk reinvite siblings. However, it does not distinguish this tool from closely named siblings like vaultwarden_resend_invite or vaultwarden_resend_user_invite, leaving ambiguity about which invite type is targeted.
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?
There is no explicit guidance on when to use this tool versus the multiple resend/invite siblings. The phrase 'one pending invite' implies it applies only to pending invitations, but no exclusions, prerequisites, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_reject_emergency_accessReject emergency accessB
Grantor rejects/cancels an in-progress request
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive mutation. The description adds useful context about the actor (grantor) and target state (in-progress request), but does not state whether rejection is reversible, what permissions are required, or what happens to related approvals.
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 single front-loaded sentence with no filler. It is concise, though the extremely short length contributes to the underspecification scored elsewhere.
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 mutation tool with four parameters, no output schema, and no schema descriptions, the description leaves important gaps: how to identify the request, prerequisites, side effects, and expected response. Annotations help with the safety profile but do not compensate for the missing parameter and outcome context.
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 0% across four parameters, and the description never mentions emer_id or any of the form/params/json_body fields. It only weakly implies that a specific request is being identified by the tool's purpose, leaving required parameter semantics undocumented.
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 gives a specific verb phrase ('rejects/cancels') and an object ('an in-progress request') in the emergency access domain. It is clear enough to distinguish from approve/confirm/view siblings, but it does not explicitly name an alternative tool.
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?
Mentioning 'Grantor' and 'in-progress request' implies when this tool applies, but it gives no explicit when-to-use alternatives, exclusions, or comparison to confirm/approve/delete emergency access tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_remove_2faRemove 2faBDestructive
Strip all 2FA methods from a user (admin recovery action)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is known. The description adds that this removes *all* 2FA methods and frames it as an admin recovery action, but it does not describe permission requirements, irreversibility, effects on active sessions, or what happens to existing 2FA enrollment data.
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 single front-loaded sentence with no filler. It is appropriately concise, though for a destructive admin operation with four parameters and no schema descriptions, it is arguably too terse to be fully self-contained.
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 destructive admin recovery tool with no output schema and 0% schema description coverage, the description is incomplete. It does not explain prerequisites, authorization needs, side effects, or how the generic form/params/json_body parameters are used.
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 0%, and the description only implies a 'user' target without documenting the required user_id parameter or the form, params, and json_body parameters. With four parameters and no schema-level descriptions, the description does not compensate for the missing parameter semantics.
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 and resource: 'Strip all 2FA methods from a user.' It also scopes the operation as an 'admin recovery action,' which distinguishes it from sibling tools like disable_twofactor or disable_authenticator that target individual 2FA methods.
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 phrase 'admin recovery action' implies a usage context, suggesting this is for administrative recovery rather than routine user self-service. However, it does not explicitly state when to choose this tool over siblings such as vaultwarden_disable_twofactor or vaultwarden_disable_authenticator, nor does it name exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_request_otpRequest otpB
Request an OTP (emailed) to re-verify identity before a sensitive action
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is not read-only, is open-world, and is not destructive. The description adds useful context that an OTP is emailed and serves re-verification, but does not mention rate limits, OTP expiry, authentication requirements, or side effects beyond sending email.
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?
A single, short sentence that front-loads the action and its purpose with 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?
The description covers the high-level purpose but is insufficient for a tool with three completely opaque parameters and no output schema. An agent would not know how to construct a valid invocation from the description plus schema.
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 0% and the three parameters (form, params, json_body) are untyped and undocumented. The description provides no parameter guidance at all, leaving the agent unable to know what to pass in these fields.
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 (request) and resource (OTP), and clarifies that it is emailed and used for re-verification before sensitive actions. This distinguishes it from verify_otp, though the sibling is not named explicitly.
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?
It gives an implied usage context ('before a sensitive action') but does not state when not to use it, prerequisites, or explicitly point to alternatives like verify_otp. The agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_resend_inviteResend inviteB
Grantor resends a pending emergency-access invite
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the agent knows this is a non-destructive external-facing mutation. The description adds real value by revealing the role requirement ('grantor') and the precondition ('pending'), but says nothing about what happens to the original invite, whether a new token is issued, or rate limits on resends.
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?
A single front-loaded sentence with no filler; the actor and precondition are stated before anything else. Its brevity is not padded, though the terseness edges into under-specification.
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 mutation tool with 4 undocumented parameters, no output schema, and openWorldHint=true, one sentence is not enough. An agent cannot tell what form/params/json_body should carry or what a successful resend returns.
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 0% across 4 parameters, and the description names none of them — emer_id is only inferable from the domain, and form/params/json_body are entirely opaque. With zero schema documentation the description was the only place to compensate and it does not.
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?
States a specific verb ('resends'), resource ('emergency-access invite'), and actor ('grantor'), which separates it from vaultwarden_resend_user_invite and vaultwarden_reinvite_member. It does not explicitly contrast with vaultwarden_emergency_access_send_invite, though 'pending' implies the invite already exists.
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 word 'pending' implicitly scopes usage to invites that already exist and have not yet been accepted, and 'grantor' implies a permission prerequisite. However, no alternative tool is named and there is no explicit when-not guidance against the closely named send-invite sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_resend_user_inviteResend user inviteC
Resend a pending registration invite email
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| user_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the agent knows this is a non-destructive mutation that reaches outside the system. The description adds a useful state constraint ('pending registration invite' and that an email is sent), but says nothing about required permissions, what happens if no pending invite exists, rate limits, or whether a new token replaces the old one.
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?
A single front-loaded sentence with zero filler. It is efficient, though the terseness borders on under-specification given the tool's four undocumented parameters.
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 mutating, externally-visible email-sending tool with four parameters at 0% schema coverage and no output schema, one sentence is not enough. An agent lacks enough information to call it correctly (identifier format, side effects, failure modes) without opening the schema.
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 0% across four parameters, and the description supplies no parameter meaning at all. Critically, the required user_id is undocumented — it is unclear whether it is a numeric ID, UUID, or email address — and the opaque form/params/json_body parameters are not explained anywhere.
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?
States a specific verb and object: 'Resend a pending registration invite email.' An agent knows the action and the resource state ('pending'). It does not, however, distinguish itself from close siblings like vaultwarden_resend_invite, vaultwarden_reinvite_member, or vaultwarden_bulk_reinvite_members, which read almost identically.
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?
There is no explicit when-to-use guidance, no prerequisites, and no naming of alternatives. The word 'pending' implies the invite must exist and be unaccepted, but the agent is left to infer this and to guess how this differs from the other resend/reinvite tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_restore_cipher_putRestore cipher putC
Restore one cipher from trash
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is largely covered. The description adds only the 'from trash' context; it says nothing about what happens if the cipher is not trashed, what state the restore produces, or any permission requirements.
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?
A single five-word sentence with no filler and the key action front-loaded. It is efficient but borders on under-specified rather than genuinely compact.
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 four parameters at 0% schema coverage and no output schema, this description is too thin to guide correct invocation. It should at minimum document cipher_id and clarify the roles of the form/params/json_body pass-throughs.
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 0% across four parameters, so the description needs to compensate and does not. Beyond the word 'one' hinting that a single cipher identifier is required, it never explains cipher_id or the opaque form/params/json_body parameters.
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 names a specific verb and resource ('Restore one cipher') and adds the source state ('from trash'). The word 'one' implicitly distinguishes it from bulk siblings like vaultwarden_restore_cipher_selected, though no sibling is named explicitly.
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?
Usage is only implied: an agent can infer this applies to a cipher currently in the trash, but the description never states the precondition or points to vaultwarden_restore_cipher_selected for multiple ciphers, nor to the _admin variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_restore_cipher_put_adminRestore cipher put adminC
Restore one cipher from trash via admin path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world operation, and 'restore from trash' is consistent with that mutation profile. The description adds that it affects exactly one cipher and follows an admin route, but it does not describe admin authorization requirements or what the restore returns.
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 single sentence is front-loaded and has no wasted words. It is efficient, though its brevity contributes to the missing detail elsewhere rather than being a standalone strength.
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 four-parameter mutation tool with no schema descriptions and no output schema, the definition is too thin. It omits admin permission requirements, parameter usage, and any indication of the response or side effects, leaving an agent under-informed for correct 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?
Schema description coverage is 0%, so the description must carry parameter meaning. 'One cipher' weakly maps to the required cipher_id, but it says nothing about the form, params, or json_body arguments, leaving three parameters completely unexplained.
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 and resource (restore one cipher) plus the source (trash) and route (admin path). It distinguishes itself from the non-admin restore_cipher_put sibling through the 'admin path' qualifier, though it does not name that sibling explicitly.
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?
Beyond the phrase 'via admin path', there is no guidance on when to choose this over vaultwarden_restore_cipher_put, vaultwarden_restore_cipher_selected, or vaultwarden_restore_cipher_selected_admin. The admin-vs-user distinction is implied but never stated as a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_restore_cipher_selectedRestore cipher selectedC
Bulk restore from trash
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is not read-only, not destructive, and open-world. The description adds only 'bulk' and 'from trash', without explaining what happens to restored items (e.g., folder placement), permission requirements, or whether the operation is reversible.
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 only four words and front-loaded, but it is under-specified rather than appropriately concise. It omits essential context that an agent needs to invoke the tool correctly.
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?
This is a mutating bulk-restore operation with three completely undocumented parameters, no output schema, and only minimal annotations. The description does not compensate for the schema's opacity or provide enough context to call the tool safely and correctly.
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 has three parameters (form, params, json_body) with 0% description coverage, and the description provides no information about them. For a bulk selection tool, the agent needs to know how selected cipher IDs are supplied; neither schema nor description clarifies this.
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 (restore) and scope (bulk from trash), so the broad action is understandable. However, it does not name the resource (ciphers) or distinguish this tool from sibling variants such as restore_cipher_put, restore_cipher_put_admin, and restore_cipher_selected_admin.
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 no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It only implies usage by saying 'from trash'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_restore_cipher_selected_adminRestore cipher selected adminB
Bulk restore from trash via admin path
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (non-readOnly, non-destructive, openWorld), so the bar is lower. The description adds genuinely useful facts beyond the annotations: the operation is 'bulk' (multiple ciphers) and restores from trash. It does not explain how the ciphers to restore are identified, which is the main behavioral unknown here.
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?
A single compact phrase with the operation and scope front-loaded; nothing wasted. Its brevity edges into under-specification, but for this dimension the text is efficient and well ordered.
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 three opaque untyped parameters, no output schema, and a bulk mutation whose input format is undocumented, the description should say how the cipher selection is supplied and that admin credentials are required. None of that is present, leaving the agent unable to construct a correct call from the description alone.
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?
All three parameters (form, params, json_body) are untyped and have 0% schema description coverage, so the description carries the full documentation burden — and it provides none. 'Bulk' hints that some selection of ciphers is passed, but nothing indicates which parameter holds it or in what shape.
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?
States a specific verb (bulk restore) and resource (cipher, from trash) plus a scope qualifier ('via admin path') that distinguishes it from the non-admin siblings like vaultwarden_restore_cipher_selected. It does not name the alternative outright, but 'admin path' makes the distinction legible.
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 phrase 'via admin path' implies the usage context (admin-authenticated operations) and implicitly vs. the user-facing restore tool, but there is no explicit when-to-use/when-not statement or named alternative. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_restore_memberRestore memberC
Restore a revoked member
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, open-world mutation, so the safety profile is covered structurally. The description adds only that the target is a revoked member; it says nothing about required admin privileges, whether prior sessions/2FA state are preserved, or what a partial failure looks like.
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?
It is a single waste-free phrase, but four words is far too small for a five-parameter mutation tool. This is under-specification rather than disciplined brevity.
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 0% schema coverage, no output schema, and no annotation-level help beyond hints, the definition leaves the agent without enough to call the tool correctly. At minimum it should clarify the org/member identifiers and the body wrapper parameters.
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 0% across five parameters, including opaque 'form', 'params', and 'json_body' objects, and the description compensates for none of them. Nothing explains what org_id/member_id must reference or what goes into the body wrapper.
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 and resource ("Restore a revoked member") and the qualifier "revoked" narrows the state the target must be in. It does not distinguish this from the sibling restore_member_vnext or bulk_restore_members, which an agent would need to choose between.
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?
There is no guidance on when to call this versus the vnext variant or the bulk restore, and no preconditions beyond the implied "member must be revoked". The agent is left to infer org/member resolution and admin requirements on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_restore_member_vnextRestore member vnextC
Restore a revoked member (newer response shape)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state this is not read-only, not destructive, and open-world. The description adds the useful context that the operation restores a revoked member and mentions a 'newer response shape,' but it does not disclose permission requirements, side effects, or how the response shape differs.
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 single, front-loaded sentence with no wasted words. It is appropriately sized, though its brevity contributes to the missing usage and parameter details elsewhere.
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?
This is a mutation tool with no output schema, 5 parameters, 0% schema description coverage, and only generic annotations. The description does not provide enough detail about required inputs, side effects, or version-specific behavior to fully equip an agent to call it correctly.
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 0% for 5 parameters. The description only vaguely maps 'member' to member_id and says nothing about org_id, form, params, or json_body. It does not compensate for the missing schema documentation.
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 gives a clear verb and resource: 'Restore a revoked member.' The parenthetical 'newer response shape' hints that this is a variant of the sibling restore_member tool, but it does not explicitly differentiate when one should be used over the other.
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?
It implies the tool is for restoring a revoked member, but there is no explicit guidance on when to use it versus the sibling restore_member or bulk restore tools. No prerequisites, exclusions, or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_revision_dateRevision dateC
Get last vault revision timestamp (used by clients to decide whether to sync)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description frames this as a pure read ('Get ... timestamp'), while the annotations declare readOnlyHint=false, telling an agent the call is not a safe read. That is a direct conflict an agent must resolve with no further context about what side effect occurs, whether the call is idempotent, or what it returns.
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?
A single front-loaded sentence with no filler; the verb and resource come first. It is perhaps too terse for the ambiguity it leaves behind, but nothing is wasted.
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 tool with no output schema, no parameter documentation, and a behavioral conflict with the annotations, the description does not tell an agent what the return value looks like (timestamp format/field) or what to do with it beyond 'decide whether to sync'. Too much must be inferred for correct 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?
Three parameters (form, params, json_body) exist with 0% schema description coverage, and the description makes no mention of any of them. It does not clarify whether the caller must supply anything or whether the generic wrapper params can be ignored, so it fails to compensate for the schema gap.
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?
States a specific verb and resource ('Get last vault revision timestamp') and adds the client-facing meaning (sync decision), which is genuinely informative. It is distinguishable from siblings like vaultwarden_version or vaultwarden_now by the 'revision' resource, though the description never names those close alternatives explicitly.
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 parenthetical 'used by clients to decide whether to sync' implies the caller's intent (poll to see if data changed), which is useful implied usage. However there is no explicit when-to-use/when-not guidance, no mention of authentication needs, and no routing away from vaultwarden_sync or vaultwarden_now.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_revoke_memberRevoke memberA
Revoke one member’s access without removing them (keeps external_id/history)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| org_id | Yes | ||
| params | No | ||
| json_body | No | ||
| member_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond annotations: the member is not removed and external_id/history are preserved. This aligns with destructiveHint=false and helps clarify the mutation is not a deletion. It still does not state required permissions, reversibility, or side effects.
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 single compact sentence with the core effect front-loaded. Every element earns its place by clarifying scope and the preserve-history 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?
The description establishes purpose and a key behavioral distinction for a mutation tool, which is useful given the annotations. However, with five undocumented parameters, no output schema, and many similar member-management siblings, it leaves important routing and parameter details incomplete.
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 0% and there are five parameters, including required org_id and member_id plus form/params/json_body. The description only vaguely implies a member, without explaining any parameter meanings, formats, or required identifiers.
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 gives a specific verb and resource: revoke one member's access. It also distinguishes the effect from removal by saying it keeps external_id/history and does not remove the member. Sibling alternatives are only implicitly contrasted, not named.
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 implies when to use it: when access should be revoked without deleting the member or losing history. However, it does not explicitly compare against vaultwarden_delete_member, vaultwarden_bulk_revoke_members, or vaultwarden_update_membership_type, and it names no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_send_emailSend emailB
Send/resend the email-2FA setup verification code
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the agent knows this is a non-destructive but externally-visible action; the description is consistent with that. It adds the useful context that the outbound artifact is a 2FA setup code (so re-invocations resend rather than create state), but says nothing about delivery side effects, rate limiting, or whether an existing setup session is required.
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?
A single short sentence, front-loaded with the verb and the target, with no filler. Its brevity is efficient but comes at the cost of the missing guidance noted in the other dimensions.
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 an outbound side-effecting tool with 0% parameter documentation, no output schema, and several similarly named email siblings, the definition leaves too much unspecified. The agent cannot determine argument shape or how this differs from vaultwarden_send_email_login without inspecting the schema or guessing.
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 0% and the three parameters (form, params, json_body) are generic pass-through containers with null defaults. The description mentions no parameters at all, so an agent has no guidance on what to place in these fields or whether calling with no arguments is the intended usage.
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 gives a specific verb+resource ("Send/resend ... verification code") and narrows it to the email-2FA setup flow, so an agent knows it is not a generic email sender. It does not name or differentiate against close siblings such as vaultwarden_send_email_login or vaultwarden_post_email, which is the only thing keeping it from a 5.
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?
Usage is only implied by the phrase "email-2FA setup verification code" — an agent can infer it belongs in the two-factor enrollment flow. There is no explicit when-to-use/when-not, no mention of the near-duplicate vaultwarden_send_email_login alternative, and no statement of prerequisites (e.g., a pending 2FA setup session).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_send_email_loginSend email loginB
Send the 2FA email code during login (pre-auth, device-scoped)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose that this is a non-read-only, non-destructive, open-world operation. The description adds useful behavioral context by saying it is pre-auth and device-scoped, but it does not cover rate limits, response behavior, or error conditions.
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 single front-loaded sentence with no filler. It is efficient, though its extreme brevity leaves no room for supporting details an agent may need.
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 pre-auth, open-world email-sending tool with three undocumented parameters and no output schema, the description is too sparse. It identifies the core action and scope but omits parameter usage, expected response, and relevant operational constraints.
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 0% and the three parameters are named generically as 'form', 'params', and 'json_body' with no descriptions. The tool description provides no information about what belongs in each parameter, so it fails to compensate for the empty schema documentation.
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 ('Send') and resource ('2FA email code') plus the exact context ('during login (pre-auth, device-scoped)'). This distinguishes it from generic email-sending siblings such as vaultwarden_send_email or vaultwarden_post_email.
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 phrase 'during login (pre-auth, device-scoped)' gives a clear condition for use. It does not explicitly name alternatives or exclusions, but the context is strong enough for an agent to know when this tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_sendsVaultwarden SendsB
Create, list, update, and remove Bitwarden Sends (text or file).
Dispatches to every Vaultwarden sends API route by its route
name.
CONCEPT:VW-ECO.mcp.send-operations
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Vaultwarden sends operation name (a Route.name). Call with action='list_actions' to list every available operation. | |
| params_json | No | JSON object of path/query parameters for the action. | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden, and it discloses the non-obvious multiplexing behavior (every sends route dispatched by route name) plus that removal is among the actions. It does not state auth requirements, permission scope, or whether removal is permanent/irreversible, which is a real gap for a tool that includes destructive operations.
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?
Front-loaded with the verb/resource summary and kept to two short lines plus an identifier. The trailing CONCEPT tag is inert for an agent but does not bloat the text meaningfully.
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?
An output schema exists and the parameters are fully documented, so return values and argument shape are covered. What is missing is behavioral context for a multiplexer with no annotations: which actions mutate state, auth/permission needs, and any irreversibility of remove.
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% and both parameters are documented in-schema, including the list_actions discovery hint, so the baseline is 3. The description adds no format or syntax detail for action or params_json beyond what the schema already provides.
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 names specific verbs (create, list, update, remove) and the resource (Bitwarden Sends, text or file), which clearly separates it from siblings like vaultwarden_ciphers or vaultwarden_folders. It also discloses the dispatch mechanism (routing by Route.name). It stops short of enumerating the concrete operations, which it defers to the list_actions action.
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?
Usage is implied rather than stated: the reader must infer this tool handles all sends operations and that the schema's action='list_actions' is the discovery path. There is no explicit when-to-use versus siblings or when-not to use, though the routing hint gives a workable entry point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_syncSyncC
Full vault sync: ciphers, folders, collections, sends, org/policy/domain metadata in one payload
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true. The description usefully discloses what the returned payload contains (valuable given no output schema), but it never explains why a 'sync' is not read-only — i.e., what server-side state (sync tokens, timestamps) may be touched — nor any auth or rate-limit considerations.
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?
A single dense clause that front-loads the scope and then lists contents; nothing is padded. It is a fragment rather than a sentence, which costs a little readability but no information.
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 compensates well for the missing output schema by enumerating returned entity types, but it leaves four opaque parameters unexplained and offers no hint about the mutation implied by readOnlyHint=false. For a tool whose call signature is entirely undescribed, this is not enough.
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 0%: four parameters (data, form, params, json_body) are completely untyped and undocumented, and the description adds nothing about them. The only mitigating factor is that all are optional with null defaults, so a parameterless call is plausible, but the agent has no way to know which of the four to populate.
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 names a specific verb+resource ('Full vault sync') and enumerates the payload contents (ciphers, folders, collections, sends, org/policy/domain metadata). It implicitly separates itself from narrow siblings like vaultwarden_get_ciphers or vaultwarden_get_folders by being the 'full ... in one payload' variant, though it never names an alternative.
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?
There is no statement of when to use this versus the many per-resource list tools (vaultwarden_get_ciphers, vaultwarden_get_folders, vaultwarden_get_org_collections, vaultwarden_get_sends). The word 'Full' hints at a bulk alternative, but no prerequisites, exclusions, or cost/completeness trade-offs are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_takeover_emergency_accessTakeover emergency accessC
Grantee begins password takeover: server returns grantor’s KDF settings + encrypted key
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavior beyond annotations by disclosing that the server returns the grantor's KDF settings and encrypted key. It does not state authorization requirements, whether the takeover is reversible, or what state changes occur on the server, but the annotations already cover the broad safety profile (non-read-only, non-destructive, open-world).
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 single compact sentence that front-loads the action and follows with the response payload. It is efficient, though its terseness contributes to the missing guidance elsewhere.
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?
This is part of a complex emergency-access workflow with four parameters and no output schema, yet the description only covers the action and returned data. It leaves out when to call it, parameter meaning, and how it relates to sibling emergency-access tools.
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 0%, so the description must compensate for all four parameters, yet it does not mention emer_id, form, params, or json_body. The only possible hint is the word 'grantor', which does not explain which parameter identifies it.
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 action (grantee begins password takeover) and a concrete result (server returns grantor KDF settings and encrypted key). However, it does not clearly distinguish this tool from several similar siblings such as initiate_emergency_access, password_emergency_access, approve_emergency_access, and view_emergency_access.
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?
There is no explicit guidance on when to use this tool versus the many other emergency-access-related tools. The reader must infer the lifecycle stage from the phrase 'begins password takeover', but no prerequisites, exclusions, or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_test_smtpTest smtpC
Send a test email to verify SMTP configuration
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true; the description confirms the outward-facing nature by stating a real email is sent, and clarifies it is a test/verification rather than a configuration mutation. It omits who the email goes to, whether it consumes the stored SMTP config, and required permissions.
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?
One front-loaded sentence that leads with the action and follows with the intent; no filler. Brevity is appropriate, though it leaves the parameters entirely unaddressed.
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?
There is no output schema, so return values need not be explained, but a tool that fires a real outbound email with three opaque optional parameters needs at least minimal guidance on payload shape and prerequisites. As written, an agent cannot construct a correct call from the description alone.
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 0% across three parameters (form, params, json_body) with no types, descriptions, or required fields, and the description says nothing about what to pass. An agent has no way to know what an SMTP test invocation should contain.
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?
States a specific verb and resource ('Send a test email') plus the diagnostic intent ('verify SMTP configuration'), which distinguishes it from the invitation/password-reset email siblings such as vaultwarden_send_email. It stops short of naming those siblings explicitly.
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 'to verify SMTP configuration' phrasing implies the diagnostic use case, but there is no explicit when-to-use/when-not, no prerequisite (e.g. admin rights, SMTP settings already saved), and no pointer to the real email-sending siblings it could be confused with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_unarchive_cipher_putUnarchive cipher putC
Unarchive one cipher
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| cipher_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, open-world behavior, so the safety profile is covered. The description adds nothing about effects beyond that token: whether the cipher must currently be archived, whether the call is idempotent, or what error/return behavior to expect.
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?
Three words, fully front-loaded with zero waste, so it is concise. But it is terse to the point of under-specification for a tool with four undocumented parameters, which is not the same as good structure.
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?
A mutation tool with 0% schema coverage, no output schema, and only generic annotations. The description does not give an agent enough to call it confidently—particularly no indication of what the non-obvious form/params/json_body parameters are for.
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 0% across four parameters, and the description fails to compensate. "One cipher" hints that a cipher identifier is required, but cipher_id is untyped and form, params, and json_body are completely opaque.
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?
States a specific verb (unarchive) and resource (one cipher), and the qualifier "one" implicitly separates it from the bulk "selected" siblings. However, it names no alternative and gives no context about the archive feature family it belongs to.
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?
There is no explicit when-to-use or when-not-to-use guidance, and no sibling is named. The only hint is the word "one," which an agent must infer means single-cipher versus multi-cipher operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_unarchive_cipher_selectedUnarchive cipher selectedC
Bulk unarchive ciphers
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the description is not contradicted, but it adds nothing beyond the title — no info on how ciphers are selected, whether the operation is idempotent, or what permission scope is needed. For a mutation tool, the extra context is essentially absent.
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?
Three words, front-loaded and waste-free, but the brevity reflects under-specification rather than economy — the same length could have carried selection semantics.
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 fully opaque parameters, no output schema, and no annotation detail about scope or effects, the definition is far too thin for a bulk mutation over ambiguous form/params/json_body inputs. An agent cannot reliably construct a valid call from it.
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?
Three parameters (form, params, json_body) with 0% schema description coverage and no constraints or types, and the description says nothing about them. The agent has no way to know where the cipher IDs go or what shape the payload takes.
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?
"Bulk unarchive ciphers" names a specific verb and resource, so the action itself is unambiguous. However, it does not distinguish this from the sibling vaultwarden_unarchive_cipher_put (single-cipher variant) or explain what "selected" means, leaving the bulk-versus-single routing to the name alone.
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?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as vaultwarden_unarchive_cipher_put or vaultwarden_archive_cipher_selected. The agent must infer the choice purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_update_membership_typeUpdate membership typeC
Change a user’s org role from the admin panel
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, and openWorld=true, so the safety profile is covered. The description adds only a vague 'admin panel' cue implying elevated privileges; it does not say whether the role change is immediately effective, whether existing memberships are affected, or what authorization/scope is required.
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?
A single short sentence with no filler, so nothing is wasted. The problem is under-specification rather than verbosity, which caps the score at adequate.
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 mutation tool with three opaque, non-required parameters, no output schema, and only safety annotations, the description should explain the payload contents and target identifiers. It does not, leaving the agent without enough information to invoke the tool correctly.
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 0% and the three parameters (form, params, json_body) are completely untyped and undocumented. The description implies a user identifier and a role value are needed but never names a parameter, gives no field names, allowed role values, or payload shape, so the agent cannot construct a valid call from the description.
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 gives a concrete verb ('Change') and resource ('a user's org role'), so an agent knows this is a role-mutation operation. However, it does not distinguish itself from the many similar siblings (vaultwarden_edit_member, vaultwarden_put_member, vaultwarden_update_revision_users), leaving ambiguity about which mutation path to choose.
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 only usage hint is 'from the admin panel', which implies a privileged context but not when to select this tool over edit_member or put_member. No preconditions, no exclusions, and no alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_update_revision_usersUpdate revision usersB
Force a client-sync revision bump for one/many users
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is not read-only, is open-world, and is non-destructive. The description adds that the effect is a client-sync revision bump, but does not explain permissions needed, idempotency, or what clients experience. No contradiction with 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?
A single compact sentence with no filler. The core action is front-loaded and every word contributes to the description.
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 mutating, open-world tool with three undocumented parameters and no output schema, the description is too sparse. It omits how to specify users, required permissions, and the expected effect on clients, leaving important operational details absent.
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?
All three parameters (form, params, json_body) have 0% schema description coverage and are untyped. The description only hints that users are involved via 'one/many users' but does not explain how to identify users or what each parameter should contain.
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?
States a specific action: forcing a client-sync revision bump for one or many users. The verb and resource are clear, though the jargon 'revision bump' may require some inference and it does not distinguish itself from sibling tools like vaultwarden_revision_date.
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?
Gives no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It only implies it is for forcing a sync revision update across users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_verify_otpVerify otpC
Verify the OTP from request_otp
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say what happens on success or failure, whether the OTP is single-use, whether a session/token is issued, or what side effect justifies the non-read-only hint.
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?
Six words with zero filler and the key dependency front-loaded. It is efficiently written, though the brevity is under-specification rather than disciplined concision.
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 verification tool with no output schema, 0% schema coverage, and three opaque parameters, the agent needs to know what payload to send and what a success response looks like. The description supplies neither, leaving a significant 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 0% and the three parameters (form, params, json_body) are undocumented generic pass-throughs. The description only implies an OTP code is supplied, but never says which parameter carries it or what form/params/json_body should contain, so it does not compensate for the coverage gap.
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 names a specific verb ("Verify") and resource ("the OTP") and ties itself to the sibling that produces the OTP (request_otp), so the agent can distinguish it from the many other vaultwarden tools. It stops short of stating what verification yields (session/token vs. boolean), so it is clear but not fully specified.
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?
"from request_otp" implies the ordering constraint — call request_otp first, then this — which is real usage guidance. However, there is no explicit when-to-use/when-not statement, no mention of OTP expiry, retry limits, or what to do if verification fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_verify_passwordVerify passwordC
Verify current master password hash (used before sensitive UI actions)
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds that this verifies the current master password hash before sensitive actions, but does not explain side effects, failure behavior, or what happens when verification fails.
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 single front-loaded sentence with no wasted words, but it is under-specified for a tool with three undocumented parameters and no output schema.
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 gives only the basic purpose. For a verification tool with three opaque parameters, no output schema, and annotations indicating a non-read-only/world-facing operation, it omits parameter guidance, expected result behavior, and failure semantics.
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 0% for three parameters (form, params, json_body), and the description provides no information about any of them. The description does nothing to compensate for the undocumented schema.
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 and resource: verifying the current master password hash. That distinguishes it from the sibling verify_otp tool by resource, though it does not explicitly name alternatives.
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 parenthetical 'used before sensitive UI actions' gives a clear usage context, but there are no explicit when-not-to-use conditions or named alternatives among the many sibling authentication tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_versionVersionC
Return server version string
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (destructiveHint=false, openWorldHint=true), so the bar is lower, but the description adds nothing beyond the title — no auth requirements, no endpoint path, no format of the returned string. It also reads as a pure read while readOnlyHint=false, a mismatch that goes unaddressed.
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?
A single four-word sentence with zero waste and the outcome front-loaded. It is efficient, though the brevity borders on under-specification rather than tightness.
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?
No output schema exists, so the description should say what the version string looks like or how it is obtained, and it does not. With three undocumented input parameters and no return-shape information, an agent cannot tell whether an empty call suffices.
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?
All three parameters (form, params, json_body) have 0% schema description coverage and the description mentions none of them. Nothing tells the agent what these generic passthrough slots are for or whether they should be left empty for a version call.
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?
"Return server version string" names a concrete verb and a concrete resource, so the agent knows exactly what comes back. It does not differentiate itself from siblings such as vaultwarden_config or vaultwarden_alive, which is the only thing keeping it below a 5.
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?
No when-to-use guidance and no named alternatives, even though vaultwarden_config, vaultwarden_now, and vaultwarden_alive live in the same diagnostic family and could easily be confused. The agent must infer the use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vaultwarden_view_emergency_accessView emergency accessB
Grantee views the grantor’s vault (read-only) after approval/wait elapses
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | ||
| params | No | ||
| emer_id | Yes | ||
| json_body | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds real behavioral context beyond the annotations: the access is read-only over vault contents and is gated by an approval/wait period. That said, "(read-only)" sits in tension with readOnlyHint=false, which implies the call may mutate state (e.g. recording the access); the description does not explain that side effect, so the agent could be mildly misled about whether anything changes.
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?
A single front-loaded sentence with zero filler: actor, action, scope and precondition all appear up front. It is arguably too terse for a 4-parameter tool, but nothing in it is wasted.
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, no parameter documentation, and only partial annotation coverage, the description should carry more weight. It never explains what emer_id identifies, what the response contains (the grantor's ciphers?), or what happens if the wait period has not elapsed.
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 0%, and the description does not mention any parameter at all — not even the required emer_id, nor the opaque form/params/json_body wrappers. All four parameters must be inferred from the schema with no semantic help from the description.
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 actor, action and target: the grantee views the grantor's vault, read-only, as part of the emergency-access flow. This distinguishes it reasonably from siblings such as vaultwarden_get_emergency_access (metadata about the access record) and vaultwarden_takeover_emergency_access (account takeover), though it never names those alternatives explicitly.
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?
"After approval/wait elapses" gives one concrete precondition for legitimate use, which is genuine usage guidance. However, it never says when to prefer this over takeover_emergency_access or password_emergency_access, nor what to do if approval has not yet occurred.
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.
299 tool updates
v0.2.2- Added
vaultwarden_accounts_post_api_key - Added
vaultwarden_accounts_post_prelogin - Added
vaultwarden_accounts_rotate_api_key - Added
vaultwarden_activate_authenticator - Added
vaultwarden_activate_authenticator_put - Added
vaultwarden_activate_duo - Added
vaultwarden_activate_duo_put - Added
vaultwarden_activate_webauthn - Added
vaultwarden_activate_webauthn_put - Added
vaultwarden_activate_yubikey - Added
vaultwarden_activate_yubikey_put - Added
vaultwarden_admin_delete_organization - Added
vaultwarden_alive - Added
vaultwarden_approve_emergency_access - Added
vaultwarden_archive_cipher_put - Added
vaultwarden_archive_cipher_selected - Added
vaultwarden_backup_db - Added
vaultwarden_bulk_confirm_invite - Added
vaultwarden_bulk_delete_groups - Added
vaultwarden_bulk_delete_member - Added
vaultwarden_bulk_delete_organization_collections - Added
vaultwarden_bulk_public_keys - Added
vaultwarden_bulk_reinvite_members - Added
vaultwarden_bulk_restore_members - Added
vaultwarden_bulk_revoke_members - Removed
vaultwarden_ciphers - Added
vaultwarden_ciphers_create_item - Added
vaultwarden_ciphers_edit_item - Added
vaultwarden_ciphers_get_item - Added
vaultwarden_ciphers_list_items - Added
vaultwarden_ciphers_move_to_trash - Added
vaultwarden_config - Added
vaultwarden_confirm_emergency_access - Added
vaultwarden_confirm_invite - Added
vaultwarden_create_organization - Added
vaultwarden_deauth_user - Added
vaultwarden_delete_account - Added
vaultwarden_delete_attachment - Added
vaultwarden_delete_attachment_admin - Added
vaultwarden_delete_attachment_post - Added
vaultwarden_delete_attachment_post_admin - Added
vaultwarden_delete_cipher - Added
vaultwarden_delete_cipher_admin - Added
vaultwarden_delete_cipher_post - Added
vaultwarden_delete_cipher_post_admin - Added
vaultwarden_delete_cipher_put - Added
vaultwarden_delete_cipher_put_admin - Added
vaultwarden_delete_cipher_selected - Added
vaultwarden_delete_cipher_selected_admin - Added
vaultwarden_delete_cipher_selected_post - Added
vaultwarden_delete_cipher_selected_post_admin - Added
vaultwarden_delete_cipher_selected_put - Added
vaultwarden_delete_cipher_selected_put_admin - Added
vaultwarden_delete_config - Added
vaultwarden_delete_emergency_access - Added
vaultwarden_delete_folder - Added
vaultwarden_delete_folder_post - Added
vaultwarden_delete_group - Added
vaultwarden_delete_member - Added
vaultwarden_delete_organization_collection - Added
vaultwarden_delete_send - Added
vaultwarden_delete_sso_user - Added
vaultwarden_delete_user - Added
vaultwarden_delete_webauthn - Added
vaultwarden_disable_authenticator - Added
vaultwarden_disable_twofactor - Added
vaultwarden_disable_twofactor_put - Added
vaultwarden_disable_user - Added
vaultwarden_download_send - Added
vaultwarden_edit_member - Added
vaultwarden_email - Added
vaultwarden_emergency_access_accept_invite - Added
vaultwarden_emergency_access_send_invite - Added
vaultwarden_enable_user - Removed
vaultwarden_folders - Added
vaultwarden_folders_create_folder - Added
vaultwarden_folders_list_folders - Added
vaultwarden_generate_authenticator - Added
vaultwarden_generate_webauthn_challenge - Added
vaultwarden_generate_yubikey - Added
vaultwarden_get_all_devices - Added
vaultwarden_get_api_webauthn - Added
vaultwarden_get_attachment - Added
vaultwarden_get_auth_request - Added
vaultwarden_get_auth_request_response - Added
vaultwarden_get_auth_requests - Added
vaultwarden_get_auth_requests_pending - Added
vaultwarden_get_auto_enroll_status - Added
vaultwarden_get_billing_metadata - Added
vaultwarden_get_billing_warnings - Added
vaultwarden_get_cipher - Added
vaultwarden_get_cipher_admin - Added
vaultwarden_get_cipher_details - Added
vaultwarden_get_cipher_events - Added
vaultwarden_get_ciphers - Added
vaultwarden_get_collection_users - Added
vaultwarden_get_contacts - Added
vaultwarden_get_device - Added
vaultwarden_get_device_verification_settings - Added
vaultwarden_get_diagnostics_config - Added
vaultwarden_get_diagnostics_http - Added
vaultwarden_get_dummy_master_password_policy - Added
vaultwarden_get_duo - Added
vaultwarden_get_email - Added
vaultwarden_get_emergency_access - Added
vaultwarden_get_folder - Added
vaultwarden_get_folders - Added
vaultwarden_get_grantees - Added
vaultwarden_get_group - Added
vaultwarden_get_group_details - Added
vaultwarden_get_group_members - Added
vaultwarden_get_groups - Added
vaultwarden_get_groups_details - Added
vaultwarden_get_known_device - Added
vaultwarden_get_master_password_policy - Added
vaultwarden_get_members - Added
vaultwarden_get_org_collection_detail - Added
vaultwarden_get_org_collections - Added
vaultwarden_get_org_collections_details - Added
vaultwarden_get_org_details - Added
vaultwarden_get_org_domain_sso_verified - Added
vaultwarden_get_org_events - Added
vaultwarden_get_org_export - Added
vaultwarden_get_org_user_mini_details - Added
vaultwarden_get_organization - Added
vaultwarden_get_organization_keys - Added
vaultwarden_get_organization_public_key - Added
vaultwarden_get_plans - Added
vaultwarden_get_policy - Added
vaultwarden_get_public_keys - Added
vaultwarden_get_recover - Added
vaultwarden_get_reset_password_details - Added
vaultwarden_get_self_host_billing_metadata - Added
vaultwarden_get_send - Added
vaultwarden_get_sends - Added
vaultwarden_get_settings_domains - Added
vaultwarden_get_tasks - Added
vaultwarden_get_twofactor - Added
vaultwarden_get_user - Added
vaultwarden_get_user_by_mail_json - Added
vaultwarden_get_user_collections - Added
vaultwarden_get_user_events - Added
vaultwarden_get_user_json - Added
vaultwarden_get_users_json - Added
vaultwarden_get_webauthn - Added
vaultwarden_hibp_breach - Added
vaultwarden_icon_external - Added
vaultwarden_icon_internal - Added
vaultwarden_identity_post_prelogin - Added
vaultwarden_identity_register - Added
vaultwarden_initiate_emergency_access - Added
vaultwarden_invite_user - Added
vaultwarden_ldap_import - Added
vaultwarden_leave_organization - Added
vaultwarden_list_policies - Added
vaultwarden_list_policies_token - Removed
vaultwarden_maintenance - Added
vaultwarden_maintenance_apply_deduplication - Added
vaultwarden_maintenance_generate_password - Added
vaultwarden_maintenance_plan_deduplication - Added
vaultwarden_maintenance_rotate_password - Removed
vaultwarden_metadata - Added
vaultwarden_metadata_backfeed_metadata - Added
vaultwarden_metadata_metadata_snapshot - Added
vaultwarden_move_cipher_selected - Added
vaultwarden_move_cipher_selected_put - Added
vaultwarden_now - Added
vaultwarden_organizations_accept_invite - Added
vaultwarden_organizations_delete_organization - Added
vaultwarden_organizations_post_api_key - Added
vaultwarden_organizations_rotate_api_key - Added
vaultwarden_organizations_send_invite - Added
vaultwarden_password_emergency_access - Added
vaultwarden_password_hint - Added
vaultwarden_policies_emergency_access - Added
vaultwarden_post_access - Added
vaultwarden_post_access_file - Added
vaultwarden_post_access_file_legacy - Added
vaultwarden_post_access_legacy - Added
vaultwarden_post_attachment - Added
vaultwarden_post_attachment_admin - Added
vaultwarden_post_attachment_share - Added
vaultwarden_post_attachment_v2 - Added
vaultwarden_post_attachment_v2_data - Added
vaultwarden_post_auth_request - Added
vaultwarden_post_bulk_access_collections - Added
vaultwarden_post_bulk_collections - Added
vaultwarden_post_cipher - Added
vaultwarden_post_cipher_admin - Added
vaultwarden_post_cipher_partial - Added
vaultwarden_post_cipher_share - Added
vaultwarden_post_ciphers - Added
vaultwarden_post_ciphers_admin - Added
vaultwarden_post_ciphers_create - Added
vaultwarden_post_ciphers_import - Added
vaultwarden_post_clear_device_token - Added
vaultwarden_post_collections_admin - Added
vaultwarden_post_collections_update - Added
vaultwarden_post_collections2_update - Added
vaultwarden_post_config - Added
vaultwarden_post_delete_account - Added
vaultwarden_post_delete_emergency_access - Added
vaultwarden_post_delete_group - Added
vaultwarden_post_delete_group_member - Added
vaultwarden_post_delete_organization - Added
vaultwarden_post_delete_recover - Added
vaultwarden_post_delete_recover_token - Added
vaultwarden_post_device_token - Added
vaultwarden_post_email - Added
vaultwarden_post_email_token - Added
vaultwarden_post_emergency_access - Added
vaultwarden_post_events_collect - Added
vaultwarden_post_folder - Added
vaultwarden_post_folders - Added
vaultwarden_post_group - Added
vaultwarden_post_groups - Added
vaultwarden_post_kdf - Added
vaultwarden_post_keys - Added
vaultwarden_post_org_import - Added
vaultwarden_post_org_keys - Added
vaultwarden_post_organization - Added
vaultwarden_post_organization_collection_delete - Added
vaultwarden_post_organization_collection_update - Added
vaultwarden_post_organization_collections - Added
vaultwarden_post_password - Added
vaultwarden_post_profile - Added
vaultwarden_post_rotatekey - Added
vaultwarden_post_send - Added
vaultwarden_post_send_file - Added
vaultwarden_post_send_file_v2 - Added
vaultwarden_post_send_file_v2_data - Added
vaultwarden_post_set_password - Added
vaultwarden_post_settings_domains - Added
vaultwarden_post_sstamp - Added
vaultwarden_post_verify_email - Added
vaultwarden_post_verify_email_token - Added
vaultwarden_prelogin_password - Added
vaultwarden_prevalidate - Added
vaultwarden_profile - Added
vaultwarden_purge_org_vault - Added
vaultwarden_purge_personal_vault - Added
vaultwarden_put_auth_request - Added
vaultwarden_put_avatar - Added
vaultwarden_put_cipher - Added
vaultwarden_put_cipher_admin - Added
vaultwarden_put_cipher_partial - Added
vaultwarden_put_cipher_share - Added
vaultwarden_put_cipher_share_selected - Added
vaultwarden_put_clear_device_token - Added
vaultwarden_put_collections_admin - Added
vaultwarden_put_collections_update - Added
vaultwarden_put_collections2_update - Added
vaultwarden_put_device_token - Added
vaultwarden_put_emergency_access - Added
vaultwarden_put_folder - Added
vaultwarden_put_group - Added
vaultwarden_put_group_members - Added
vaultwarden_put_member - Added
vaultwarden_put_organization - Added
vaultwarden_put_organization_collection_update - Added
vaultwarden_put_policy - Added
vaultwarden_put_policy_vnext - Added
vaultwarden_put_profile - Added
vaultwarden_put_recover_account - Added
vaultwarden_put_remove_password - Added
vaultwarden_put_reset_password - Added
vaultwarden_put_reset_password_enrollment - Added
vaultwarden_put_send - Added
vaultwarden_put_settings_domains - Added
vaultwarden_register_finish - Added
vaultwarden_register_verification_email - Added
vaultwarden_reinvite_member - Added
vaultwarden_reject_emergency_access - Added
vaultwarden_remove_2fa - Added
vaultwarden_request_otp - Added
vaultwarden_resend_invite - Added
vaultwarden_resend_user_invite - Added
vaultwarden_restore_cipher_put - Added
vaultwarden_restore_cipher_put_admin - Added
vaultwarden_restore_cipher_selected - Added
vaultwarden_restore_cipher_selected_admin - Added
vaultwarden_restore_member - Added
vaultwarden_restore_member_vnext - Added
vaultwarden_revision_date - Added
vaultwarden_revoke_member - Added
vaultwarden_send_email - Added
vaultwarden_send_email_login - Added
vaultwarden_sync - Removed
vaultwarden_system - Added
vaultwarden_takeover_emergency_access - Added
vaultwarden_test_smtp - Added
vaultwarden_unarchive_cipher_put - Added
vaultwarden_unarchive_cipher_selected - Added
vaultwarden_update_membership_type - Added
vaultwarden_update_revision_users - Added
vaultwarden_verify_otp - Added
vaultwarden_verify_password - Added
vaultwarden_version - Added
vaultwarden_view_emergency_access
9 tool updates
v0.2.1- First observed
vaultwarden_accounts - First observed
vaultwarden_admin - First observed
vaultwarden_ciphers - First observed
vaultwarden_folders - First observed
vaultwarden_maintenance - First observed
vaultwarden_metadata - First observed
vaultwarden_organizations - First observed
vaultwarden_sends - First observed
vaultwarden_system
TDQS
Scored across 298 tools
The set is riddled with functionally identical tools: vaultwarden_post_cipher / vaultwarden_put_cipher / vaultwarden_post_cipher_admin all update a cipher, and delete_cipher / delete_cipher_post / delete_cipher_put / delete_cipher_admin all delete one. Dozens of PUT/POST alias pairs (activate_authenticator vs activate_authenticator_put, disable_twofactor vs disable_twofactor_put) and v1/v2/legacy variants give an agent no reliable basis for selection.
Most names are snake_case with a vaultwarden_ prefix, but the ordering convention is mixed: HTTP-verb-first (vaultwarden_post_cipher), resource-first (vaultwarden_ciphers_create_item, vaultwarden_maintenance_rotate_password), and route-path-style (vaultwarden_organizations_rotate_api_key). Generic dispatcher tools (vaultwarden_accounts, vaultwarden_admin, vaultwarden_organizations, vaultwarden_sends) break the pattern entirely by overlapping with the specific tools.
298 tools for one server is an extreme mismatch — roughly a 1:1 mirror of every Vaultwarden HTTP route including aliases, legacy paths, and admin duplicates. This far exceeds any reasonable agent-facing surface and guarantees tool-selection overload.
Coverage of the Vaultwarden domain is essentially exhaustive: ciphers, folders, collections, orgs, members, groups, policies, Sends, attachments, 2FA, emergency access, admin, and diagnostics are all present. The only real gap is that the redundant aliases make it hard to find the canonical operation, not that operations are missing.
Maintenance
Related MCP Connectors
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Give your AI hands. Identity, credential vault, and API gateway for autonomous agents.
Context and control for any AI. Agent identity, scoped access, and proof across tools.
Shared long-term memory vault for AI agents with 20 MCP tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents and automation scripts to securely interact with self-hosted Vaultwarden instances through the Bitwarden CLI, automatically managing vault sessions and providing tools to read, create, update, and delete secrets programmatically.6 npm2MIT
- 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.531,947 npm26MIT
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Bitwarden/Vaultwarden for password and secure note management, including creation, updating, deletion, and search of items and folders.1-

Bitwarden MCP Serverofficial
AlicenseBqualityBmaintenanceEnables AI assistants to securely manage Bitwarden vault items, folders, attachments, and organization administration through the Model Context Protocol.59344 npm298GPL 3.0