Secret Vault
The vault is your private, secure secret store. Secrets you put here live in
a real secrets manager, scoped to you automatically — no other agent can read
them. Use it to keep credentials out of chat, files, and git while still being
able to retrieve them later.
When to use this
- The user gives you a credential to keep (an API token, key, password) and
wants it stored securely — put it in the vault, do not write it to a file
or echo it back.
- You need a credential you saved earlier for a later step or a later run —
fetch it from the vault instead of asking again.
- You are wiring up an integration / MCP connection that needs a secret — store
the secret here (the connection references it by name).
- You need a credential you must not see yourself (a user's SSH password, a
personal token) — create a platform placeholder for the user to fill in
(see below), instead of asking for the raw value in chat.
Do NOT reach for gh secret set / GitHub repository secrets, a .env file,
the OS keychain, or the plain "memory" tool for this. Those are the wrong tool:
the user asking you to "store a secret" for safekeeping means the vault.
Never claim you have no secrets tool — you do, it is the vault.
Model
- Scoped to you automatically. Every secret is keyed to you from your signed
identity and session — you do not pass any org/project/scope. You only ever see
and touch your own secrets.
- A secret is a single named string value. e.g. a secret named
github
holding ghp_..., or openai holding sk-.... One name → one string (not a
multi-key object).
- Values never come back into chat unless you fetch them on purpose. Storing
returns only
{ "ok": true }. list_secrets returns names, not values.
Invocation
npx mcporter call aramb_mcp.vault_<tool> name="<secret-name>" value="<secret string>"
name is a plain string (the key).
value (store only) is the secret string stored under that name.
- All args are named
key="value"; no positional args.
Tools
store_secret — create/overwrite one of your secrets. Args: name, value.
get_secret — fetch a secret's string value. Args: name.
list_secrets — list the names of all your secrets. No args.
delete_secret — delete a secret. Args: name.
create_platform_secret — create a write-only placeholder for the user
to fill with the real value. Args: name, description (guidance shown to the
user), value (optional placeholder). Create-only: it fails if the secret
already exists, so a value the user already provided is never overwritten. You
cannot read, list, update, or delete platform secrets — use it only to ask
the user for a credential you must not see.
Asking the user for a secret you must not see
Some credentials you should never handle yourself — an SSH password, a personal
token the user must paste. Don't ask for the value in chat. Instead create a
platform placeholder: a named, empty slot the user fills in the console, whose
value you can never read back.
npx mcporter call aramb_mcp.vault_create_platform_secret \
name="SSH_PASSWORD" description="Enter your SSH password"
This creates SSH_PASSWORD in the platform scope with a placeholder value and
your guidance, then tell the user it is waiting for them to fill it in. It is
create-only (it never clobbers a value the user already supplied), and you cannot
read it back — the platform uses it on your behalf.
Examples
# Store a GitHub token securely (returns {"ok":true} — nothing else)
npx mcporter call aramb_mcp.vault_store_secret name="github" value="ghp_xxx"
# Retrieve it later
npx mcporter call aramb_mcp.vault_get_secret name="github"
# What do I have stored?
npx mcporter call aramb_mcp.vault_list_secrets
# Ask the user to provide a credential you must not see
npx mcporter call aramb_mcp.vault_create_platform_secret name="SSH_PASSWORD" description="Enter your SSH password"
# Remove one
npx mcporter call aramb_mcp.vault_delete_secret name="github"
Rules
- When asked to store a secret for safekeeping, use
aramb_mcp.vault_store_secret — never
a file, git, gh secret set, or the memory tool.
- Never print a stored secret's value back to the user unless they explicitly
ask you to retrieve it; confirm with the name only ("Stored it as
github.").
- You never pass org/agent/scope — the vault scopes to you from your token.
- When a credential is one you must not see (a user's password / personal token),
use
create_platform_secret to have the USER fill it — do not ask for the raw
value in chat.
- A successful
store_secret / create_platform_secret returns {"ok":true} —
report success from that, do not fabricate a value or a location.
1---2name: vault-mcp3description: Your own secure secret vault via the aramb_mcp server (vault_* tools). Store, fetch, list, and delete your project-scoped secrets (API tokens, keys, credentials) — kept in a real secrets manager, never in chat, files, or git. Also create write-only placeholder secrets for the USER to fill with a credential you must not see. Use when you need to save or retrieve a credential for yourself, or to prompt the user for one. NOT for GitHub repository secrets (that is `gh secret set`).4---56# Secret Vault78The vault is **your private, secure secret store**. Secrets you put here live in9a real secrets manager, **scoped to you automatically** — no other agent can read10them. Use it to keep credentials out of chat, files, and git while still being11able to retrieve them later.1213## When to use this1415- The user gives you a credential to keep (an API token, key, password) and16 wants it stored **securely** — put it in the vault, do not write it to a file17 or echo it back.18- You need a credential you saved earlier for a later step or a later run —19 fetch it from the vault instead of asking again.20- You are wiring up an integration / MCP connection that needs a secret — store21 the secret here (the connection references it by name).22- You need a credential you must **not** see yourself (a user's SSH password, a23 personal token) — create a **platform placeholder** for the user to fill in24 (see below), instead of asking for the raw value in chat.2526**Do NOT** reach for `gh secret set` / GitHub repository secrets, a `.env` file,27the OS keychain, or the plain "memory" tool for this. Those are the wrong tool:28the user asking you to "store a secret" for safekeeping means the **vault**.29Never claim you have no secrets tool — you do, it is the vault.3031## Model3233- **Scoped to you automatically.** Every secret is keyed to you from your signed34 identity and session — you do not pass any org/project/scope. You only ever see35 and touch your own secrets.36- **A secret is a single named string value.** e.g. a secret named `github`37 holding `ghp_...`, or `openai` holding `sk-...`. One name → one string (not a38 multi-key object).39- **Values never come back into chat unless you fetch them on purpose.** Storing40 returns only `{ "ok": true }`. `list_secrets` returns names, not values.4142## Invocation4344```bash45npx mcporter call aramb_mcp.vault_<tool> name="<secret-name>" value="<secret string>"46```4748- `name` is a plain string (the key).49- `value` (store only) is the secret string stored under that name.50- All args are named `key="value"`; no positional args.5152## Tools5354- `store_secret` — create/overwrite one of your secrets. Args: `name`, `value`.55- `get_secret` — fetch a secret's string value. Args: `name`.56- `list_secrets` — list the names of all your secrets. No args.57- `delete_secret` — delete a secret. Args: `name`.58- `create_platform_secret` — create a **write-only placeholder** for the **user**59 to fill with the real value. Args: `name`, `description` (guidance shown to the60 user), `value` (optional placeholder). Create-only: it fails if the secret61 already exists, so a value the user already provided is never overwritten. You62 **cannot** read, list, update, or delete platform secrets — use it only to ask63 the user for a credential you must not see.6465## Asking the user for a secret you must not see6667Some credentials you should never handle yourself — an SSH password, a personal68token the user must paste. Don't ask for the value in chat. Instead create a69**platform placeholder**: a named, empty slot the user fills in the console, whose70value you can never read back.7172```bash73npx mcporter call aramb_mcp.vault_create_platform_secret \74 name="SSH_PASSWORD" description="Enter your SSH password"75```7677This creates `SSH_PASSWORD` in the platform scope with a placeholder value and78your guidance, then tell the user it is waiting for them to fill it in. It is79create-only (it never clobbers a value the user already supplied), and you cannot80read it back — the platform uses it on your behalf.8182## Examples8384```bash85# Store a GitHub token securely (returns {"ok":true} — nothing else)86npx mcporter call aramb_mcp.vault_store_secret name="github" value="ghp_xxx"8788# Retrieve it later89npx mcporter call aramb_mcp.vault_get_secret name="github"9091# What do I have stored?92npx mcporter call aramb_mcp.vault_list_secrets9394# Ask the user to provide a credential you must not see95npx mcporter call aramb_mcp.vault_create_platform_secret name="SSH_PASSWORD" description="Enter your SSH password"9697# Remove one98npx mcporter call aramb_mcp.vault_delete_secret name="github"99```100101## Rules102103- When asked to store a secret for safekeeping, use `aramb_mcp.vault_store_secret` — never104 a file, git, `gh secret set`, or the memory tool.105- Never print a stored secret's value back to the user unless they explicitly106 ask you to retrieve it; confirm with the name only ("Stored it as `github`.").107- You never pass org/agent/scope — the vault scopes to you from your token.108- When a credential is one you must not see (a user's password / personal token),109 use `create_platform_secret` to have the USER fill it — do not ask for the raw110 value in chat.111- A successful `store_secret` / `create_platform_secret` returns `{"ok":true}` —112 report success from that, do not fabricate a value or a location.