Vault

Save a secret

vault_save · Changes data · Markdown

Keeps a secret (an API key, a password, a login) encrypted under a name; saving under a name in use replaces it.

$0.001 a call

From your agent’s balance. A call that fails costs nothing.

An example

Keep our login for the Cascade Bike Supply dealer portal. The user is orders@halversoncycle.example, and the password is in my next message.

Your agent callsvault_save$0.001 a call

The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.

With these arguments
{
  "name": "Cascade dealer portal",
  "value": "birch-anchor-saddle-1871",
  "username": "orders@halversoncycle.example",
  "url": "https://dealers.cascadebikesupply.example",
  "note": "Parts orders. Sam Reyes knows the account."
}
What comes back
{
  "saved": "Cascade dealer portal",
  "replaced": false,
  "secret": {
    "name": "Cascade dealer portal",
    "username": "orders@halversoncycle.example",
    "url": "https://dealers.cascadebikesupply.example",
    "note": "Parts orders. Sam Reyes knows the account.",
    "bots": "all",
    "updated_at": "2026-10-14T08:00:00+00:00",
    "last_read_at": null,
    "reads": 0
  }
}

Use it when

The agent will need a secret later: a supplier portal's login, a shipping service's API key.

What it does

Keep a secret (an API key, a password, a login) encrypted in the account's vault under a name, to read back later with vault_get. Saving under an existing name replaces it. username, url and note are not secret and show in vault_list. With bots, only those of the account's bots may read it.

What comes back

saved: the name; replaced: whether it replaced a secret; secret: its name, username, url, note, the bots that may read it, and when it was saved and read. Never the value. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
nameRequiredstringe.g. "Shopify admin" or "SUPPLIER_API_KEY". Matches ^[A-Za-z0-9][A-Za-z0-9 ._-]{0,79}$.
valueRequiredstring1 to 10,000 characters.
usernamestringUp to 200 characters.
urlstringUp to 500 characters.
notestringUp to 500 characters.
botsarray of string or integerBot names (or key ids) allowed to read it; all of the account's bots if left out. Up to 20 items.

The call

Over MCP, call vault_save on https://api.conecto.chat/mcp/vault. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/vault_save \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Cascade dealer portal","value":"birch-anchor-saddle-1871","username":"orders@halversoncycle.example","url":"https://dealers.cascadebikesupply.example","note":"Parts orders. Sam Reyes knows the account."}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
not_found404A bot named in bots is not one of the business's.Use bot names from GET /v1/keys.
forbidden403The secret is limited to other bots of the business.Ask the owner, or the bot that saved it, to add this bot.
name_taken409Another call saved a secret with that name at the same moment.Call again.
limit_reached409The vault holds 500 secrets already.Delete some with vault_delete.
unavailable503The vault is not available right now.Try again later; nothing was charged.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md