Zero-knowledge encrypted secret sharing for AI agents via MCP
Four tools with strong naming (verb_noun pattern), comprehensive descriptions (150-250 chars), and well-structured Zod schemas with type constraints and enums. All parameters have descriptions. Tool annotations present (readOnlyHint, destructiveHint, idempotentHint). Key gaps: output schemas not documented in code; error handling guidance minimal; no pagination support for list_secrets; view_secret's multiple input modes (url vs secret_id+encryption_key) create ambiguity.
Check the status of a previously shared secret — how many times it's been viewed, whether it's still active, and when it expires. Does not consume a view. Optionally pass previous_views to detect new views since last check.
Create a secure, self-destructing link for sharing sensitive data like passwords, API keys, or credentials. The secret is encrypted end-to-end — the server never sees plaintext. Supports reading secrets from environment variables, files, or .env files without exposing them in the conversation. Optionally provide a label to identify the secret in your history.
List previously shared secrets and their current status — view counts, expiry, and whether they've been consumed.
Retrieve and decrypt a secret from a Vaulted secure link. The secret may have view limits and will be destroyed after the maximum views are reached. By default opens in the browser for security — use output_mode to copy to clipboard, save to file, or return directly.
list_secrets has empty input schema (no parameters) and minimal description (60 chars). No pagination, limit, or filtering documented. Returns unstructured list without documented field schema.
view_secret accepts three mutually exclusive input modes (url, secret_id+encryption_key, status_token) but does not document this dependency or guide LLM on which to use. Ambiguous parameter relationships.
Output schemas not documented in source code. LLMs cannot infer what fields create_secret, view_secret, check_status, and list_secrets return, forcing guesswork on downstream tool chaining.
Error handling and recovery guidance absent from tool descriptions. No mention of what happens on invalid passphrase, expired secret, or network failure. LLM has no guidance on retry vs user-fixable errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
check_status parameter 'previousViews' uses camelCase while other params use snake_case (url, secret_id, status_token). Inconsistent naming convention.