vault-ask

Official registry Security

Request and send secrets for AI agents, end-to-end encrypted and never shown in the chat.

What can you do with vault-ask?

  • Send a secret: create a one-time link, recipient decrypts in the browser, secret self-destructs after viewing.
  • Request a secret: create an inbound link, send it to a third party (customer, colleague) who submits a secret without an account. You retrieve it once with your private key.
  • End-to-end encryption: AES-GCM 256 for sending, X25519 + ECIES for requesting. All crypto in the browser via the native Web Crypto API. The server never sees plaintext.
  • No accounts: neither sender nor receiver needs to sign up.
  • Auditable: deterministic build, source SHA embedded in every HTML response, SRI hashes on every script.
  • Secrets for AI agents: cli/ contains vault-ask, a CLI and MCP server that request a secret from a person and hand it to exactly one command or file, masked in every output and never shown to the agent, and that send a generated secret to a pe...

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @erseni/vault-ask
Claude Code
claude mcp add vault-ask -e 'VAULT_ASK_API_KEY=<your vault_ask_api_key>' -e 'VAULT_ASK_SERVER=https://vault.erseni.com' -- npx -y @erseni/vault-ask@0.2.1 mcp
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "vault-ask": {
            "command": "npx",
            "args": [
                "-y",
                "@erseni/vault-ask@0.2.1",
                "mcp"
            ],
            "env": {
                "VAULT_ASK_API_KEY": "<your vault_ask_api_key>",
                "VAULT_ASK_SERVER": "https://vault.erseni.com"
            }
        }
    }
}

Environment variables

  • VAULT_ASK_API_KEY secret API key from your Erseni Vault account. Without it, each request solves a proof of work.
  • VAULT_ASK_SERVER Vault server URL

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. secrets-component
  2. Features
  3. Where it runs
  4. Security model
  5. Verifying a running instance
  6. License
  7. Security disclosure

secrets-component

Zero-knowledge, one-time secret sharing. End-to-end encrypted in the browser. The server only ever stores ciphertext. Supports both sending and requesting secrets without requiring any account.

Part of the Erseni open-source components.

Status: early development. API and on-disk format may change until the first tagged release.

Primary development happens in Erseni's internal monorepo. This repository is a public mirror, kept in sync via Jenkins after every successful production deploy. Issues and merge requests are welcome; see CONTRIBUTING.md.

Features

  • Send a secret: create a one-time link, recipient decrypts in the browser, secret self-destructs after viewing.
  • Request a secret: create an inbound link, send it to a third party (customer, colleague) who submits a secret without an account. You retrieve it once with your private key.
  • End-to-end encryption: AES-GCM 256 for sending, X25519 + ECIES for requesting. All crypto in the browser via the native Web Crypto API. The server never sees plaintext.
  • No accounts: neither sender nor receiver needs to sign up.
  • Auditable: deterministic build, source SHA embedded in every HTML response, SRI hashes on every script.
  • Secrets for AI agents: cli/ contains vault-ask, a CLI and MCP server that request a secret from a person and hand it to exactly one command or file, masked in every output and never shown to the agent, and that send a generated secret to a person as a one-time link.

Where it runs

The component runs as part of Erseni Vault, hosted in the EU. It is not a standalone application: it depends on Erseni's internal framework, and this repository cannot be installed or self-hosted on its own. The source is published so that the cryptography and the server behaviour can be audited.

vault-ask in cli/ is the exception: it is a standalone Node.js tool that talks to Erseni Vault.

Security model

  • Secret plaintext never leaves the sender's browser.
  • Encryption keys are transported in the URL fragment (#k=...), which browsers never send to servers.
  • Secrets are deleted on first retrieval (atomic DELETE ... RETURNING).
  • Expired secrets are purged every minute by a cron job.
  • No access logs, no IP retention, no backups of the secrets tables.

See docs/ARCHITECTURE.md and docs/THREAT-MODEL.md.

Verifying a running instance

Every page served by a secrets-component instance includes a <meta name="build-sha" content="..."> tag. Match that SHA against a tag in this repository to confirm the deployed code.

curl -s https://secrets.example.com/send | grep build-sha

License

AGPL-3.0-or-later. See LICENSE.

Security disclosure

See SECURITY.md.

Frequently asked questions

What is vault-ask?

Request and send secrets for AI agents, end-to-end encrypted and never shown in the chat.

How do I install vault-ask?

It runs on your machine. In Claude Code: claude mcp add vault-ask -e 'VAULT_ASK_API_KEY=<your vault_ask_api_key>' -e 'VAULT_ASK_SERVER=https://vault.erseni.com' -- npx -y @erseni/vault-ask@0.2.1 mcp. For other clients, paste the JSON configuration from this page into their MCP settings.

Does vault-ask need an API key?

Yes. It expects VAULT_ASK_API_KEY, which you set in its configuration.

Is vault-ask open source?

Yes. Its code is on GitHub under the AGPL-3.0 license.

Who maintains vault-ask?

It is published by Erseni. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.