Vaarta Vault
Sign inCreate your vault
AI agents and MCP

Autonomous work with your credentials. Your agent never holds them.

Agents sign in, call APIs, open SSH sessions and sign releases with what is in your vault. You approve once on your phone. They get results; the secrets stay sealed.

How it worksHow we secure itBrowser sign-inExamplesHard limits
Model Context ProtocolYour AI agentConnected to Vaarta Credentials over MCP
Agentlist_credentials I need to deploy build 412.
Vault2 matches: “Release key”, “Deploy API token”. Titles only.
Agentrequest_credential_access “Release key”, operation sign_digest.
YouYou tap 47 on your phone. Approved for 24 hours.
Agentsign_digest “Release key”.
VaultSigned in AWS KMS. Here is the signature. The key never left.

It signs in for you

The password goes into the field, never into the model.

Input.insertText · loopback DevTools

It calls your APIs

The vault adds the token and scrubs it from the reply.

use_credential_http · 7 encodings redacted

It signs releases and SSH logins

AWS KMS signs. The key cannot be exported.

sign_digest · ssh-agent bridge

It asks once, then works

One approval, then uninterrupted work until the grant ends.

grants from 15 min to 30 days

It stops in one click

Disconnect one agent, or stop all of them, from your vault.

RFC 7009 revocation · Stop all

Two ways in

One endpoint in the cloud. One bridge on your machine.

Both speak MCP. Both sign in through Identity Studio. Neither ever hands the model a secret.

Remote

The Vault MCP endpoint

An MCP server over streamable HTTP, protocol 2025-06-18. Any agent that speaks MCP connects to it with OAuth.

  • Find items by title and site
  • Ask you for a grant, and check it
  • Call an HTTPS API with a stored token, without reading it
  • Sign a digest with a key held in AWS KMS
list_credentialsdescribe_credentialrequest_credential_accesscheck_credential_accessuse_credential_httpsign_digest

On your machine

The credential bridge

A local MCP server your coding agent launches over stdio. It holds a value in memory for one fill or one run, then drops it.

  • Sign the agent's browser into a site
  • Run one local command with one secret in its environment
  • Log in over SSH and sign files with a key in AWS KMS
  • Forward the endpoint's own tools with its own token
sign_in_browserrun_with_secretvaarta-credential-bridge sshvaarta-sign

How it works

From a request to a result, with you in the loop.

Seven steps. The secret never travels to the agent at any of them.

  1. Agent1ConnectsDiscovers the endpoint (RFC 9728) and signs in with OAuth 2.1 and PKCE.
  2. You2Allow it onceOne consent screen names the agent and the Vault endpoint.
  3. Identity Studio3Bound tokenAudience is the Vault endpoint only (RFC 8707). 30-minute access token.
  4. Agent4Requests accessOne item, the operations and the hosts. Pending at most 15 min.
  5. Phone5You tap the numberYour phone shows the agent, the item and why.
  6. Vault6Performs itSigns in, calls the API or signs in AWS KMS, under the live grant.
  7. Agent7Result onlyRedacted output, a signature or “signed_in”. Never the secret.
The same path for every agent. A grant can last from 15 minutes to 30 days; a signing grant 24 hours at most.

The tools

Eight tools. None returns a secret.

Metadata tools answer titles and states. The tools that use a secret answer only the result of using it.

Vault MCP tools and what each returns
ToolWhereWhat it doesWhat the agent gets back
list_credentialsEndpointFinds your items by title and siteTitles, types and sites. Never a username or a value.
describe_credentialEndpointReads one item's metadataType, sites, operations granted and whether each use needs a tap; a signing key's algorithms and public key.
request_credential_accessEndpointAsks you for a grantAn approval id and the number you will tap.
check_credential_accessEndpointChecks the request and the grantWhether you approved, and until when.
use_credential_httpEndpointAn HTTPS call with the stored secret added inside the vaultStatus, headers and body, with the secret redacted.
sign_digestEndpointSigns a digest with your key in AWS KMSThe signature. Never the key.
sign_in_browserBridgeSigns the agent's browser into a site“signed_in”, or “filled” when the outcome is not confirmed.
run_with_secretBridgeRuns one local command with one secret in one variableExit code and output, the secret replaced by [REDACTED].

How we secure it

Every mechanism, exactly.

What stands between an autonomous agent and your secrets, in the order a request meets it.

An OAuth-protected resource

The endpoint is an OAuth 2.1 resource server. It publishes RFC 9728 metadata, and a request without the right token gets a 401 that points to it. It accepts only an access token whose audience is the Vault endpoint (RFC 8707), on a live sign-in. No other token is accepted or passed through.

/.well-known/oauth-protected-resourceaud = Vault endpointWWW-Authenticate: Bearer

Metadata-only tools

Agents see titles, types, sites, the operations granted and whether a use needs a tap. Never a password, a username, a key or a card. Cards and identities are hidden from agents entirely.

no tool returns a value

Use without reveal

use_credential_http works on API secrets. HTTPS only, to a host and port the item allows, which a grant can only narrow. DNS is resolved once and every address must be public; TLS is checked; no proxy, no redirect, no retry. The secret is scrubbed from the reply raw, URL-encoded, base64, JSON- or HTML-escaped, hex and UTF-16; Set-Cookie is dropped.

GET HEAD POST PUT PATCH DELETErequest ≤ 64 KiBresponse ≤ 256 KiB10 s timeout

Signing in hardware

sign_digest signs in AWS KMS with a key that cannot be exported. By default every signature asks for a tap. Every signature is recorded with its full digest and label, so a key's card shows what it signed.

500 per key per day30 per minute per key and agent4 digests per callno SHA-1, no raw

Grants with time limits

A grant covers one item, one agent, named operations and hosts. You approve it with a number-matched tap, or in the console after a fresh step-up. A request lapses after 15 minutes; an agent may have five pending.

15 min1 h (default)8 h1 day7 days30 dayssigning ≤ 24 h

Your own items only

The person is the token's subject and the agent is its OAuth client. Another person's item reads exactly like an id that names nothing.

Live activity and Stop all

One feed shows each use with its agent, item, operation and host. Disconnect one agent, or press Stop all to end every agent's access and sign out connected browsers. Neither needs a step-up.

newest 50 · last 30 days

Revocation that sticks

Revoking ends the consent, every refresh grant, every credential grant and the session behind it (RFC 7009). Refresh tokens rotate on every use; a reused one revokes the whole chain.

RFC 7009rotating refresh tokens

A complete audit trail

Every use, refusal, signature and grant writes an audit row before anything is returned. It names the host, never a value or a path.

credential.item.usedcredential.use.refusedcredential.item.signed

Connected agents by plan

Early access

Your plan sets how many agents each person can connect. If a plan changes, your earliest-connected agents keep working.

Browser sign-in

Let your agent sign in for you, without it ever seeing the password.

Your agent drives a browser. The bridge on your machine puts the password into the one field that needs it, submits, and tells the agent it worked.

  1. Agent1Calls sign_in_browserNames the item and the page's URL.
  2. Bridge2Sends the tab's real URLThe vault checks the grant is for that host.
  3. Phone3Tap, if the item asksItems set to ask every time wait for your number.
  4. Vault4Releases to the bridgeServer to server, held in memory for this one fill.
  5. Bridge5Types into one fieldOne Input.insertText into the verified, focused field.
  6. Bridge6Submits at onceClears the fields if anything fails. The model sees “signed_in”.

No value in any page script

Page scripts only find, tag, focus, empty and click. None of them carries a value, so nothing on the page can read one from a script.

One keystroke stream, into the right field

The value travels once, in DevTools Input.insertText, into the focused field, after the bridge has checked it is the right one: a password goes into a password field only, on the host the release was made for.

Submit at once, clear on failure

The bridge presses the page's own submit control straight away. If anything fails after typing, or the field is still there, it empties the password and code fields.

Loopback-only DevTools

The DevTools endpoint is configured, never guessed, and must be 127.0.0.1, localhost or ::1, for every tab's socket too. It works with a Chrome your agent already drives over the DevTools protocol, the channel Playwright uses.

--remote-debugging-port127.0.0.1 only

Released per host

Each release is checked against the tab's real URL, https only, and against the hosts in your grant.

Memory only

A value is held for one fill or one run, then every reference is dropped. Never a file, a cache, a log line, an error or a tool answer.

run_with_secret, contained

The command runs directly, never through a shell. The secret sits in one environment variable; names that change how programs load, such as PATH, LD_* and NODE_OPTIONS, are refused. Output is redacted with the vault's own redactor.

shell=False[REDACTED]

SSH without a key file

vaarta-credential-bridge ssh gives one command a private ssh-agent socket that signs only SSH login requests, with your KMS key. The host is declared and checked three ways; your phone shows it before you tap.

ssh deploy@build-01.example.com

Persistent, and still yours

  • One client per machine, registered with Identity Studio (RFC 7591), listed in your vault and disconnectable there.
  • A bound access token held in memory only. A refresh token in the OS keychain, rotated on every refresh.
  • One grant approval, then uninterrupted work. Items set to ask every time still wait for your tap.
  • Disconnect it, let a grant end or press Stop all: the next refresh is refused and the bridge deletes what it kept.

What the bridge cannot stop, stated plainly

  • An agent that reads the page between the fill and the submit could read the field. The bridge submits at once and clears on failure, but a model driving the same browser through other tools can look.
  • A command that writes the secret somewhere other than its output does so as its own act. Only what comes back on stdout and stderr is redacted.
  • “Dropped” means no reference is kept and the memory is reclaimed, not zeroed.

Examples

Two jobs, start to finish.

Ship a release signed by a key in AWS KMS

The agent asks for a 24-hour sign grant, you tap once, and every artefact it builds today is signed. The file is hashed on your machine and never sent.

request_credential_access
item: "Release key" operations: ["sign_digest"]
algorithms: ["ECDSA_SHA_256"]
→ Tap 47 on your Vaarta Authenticator.
$ vaarta-sign --key <item id> --alg ECDSA_SHA_256 app-release.apk
MEUCIQ…base64 signature on stdout

Call an API with a stored token

The token is added inside the vault, to a host the item allows. What comes back has it scrubbed out.

use_credential_http
item: "Deploy API token" method: "GET"
url: "https://api.example.com/v1/deployments"
→ 200 OK {"deployments": [ … ]}
any echo of the token in the reply reads [REDACTED]

The hard limits

An agent can never…

  • See a password, a username, a key or a card number
  • Use an item without a live grant you approved
  • Go past its grant: another item, operation, host or hour
  • Reach a private address or follow a redirect through the vault
  • Sign with SHA-1 or a raw message, or past 500 signatures a key a day
  • Touch your cards, your identities or anyone else's items
  • Use a token that was issued for anything but the Vault endpoint
  • Keep working after you disconnect it or press Stop all

The platform side: Identity Studio for agents

The OAuth server, consent, client registration and revocation that the Vault endpoint relies on.

identity.vaarta.ai

In which planEvery plan includes agents. Your plan sets how many each person connects.See plans →

Put every secret behind one tap.

Create your vault, link your phone, and bring everything in from where it lives today.

Create your vaultSee plans