Skip to main content
Glama
qsobad

SSH Vault MCP

by qsobad

SSH Vault MCP (Secret Vault)

A secure secret vault with MCP (Model Context Protocol) interface. Store any secret as encrypted markdown — SSH credentials, API keys, certificates, notes. Human approves via Passkey, AI agent accesses secrets securely.

Why?

AI agents need access to secrets (SSH keys, API tokens, passwords) — but giving them raw credentials is dangerous. Secret Vault solves this:

  • Agent requests secrets by name — never browses raw credential stores

  • You approve every access — via Passkey on your phone, in real-time

  • Flexible storage — any secret stored as markdown (SSH hosts, API keys, notes)

  • SSH built-in — secrets tagged ssh can be used directly for remote execution

  • Works with any MCP-compatible AI — Claude, GPT, or your own agent

Related MCP server: keyvault

Features

  • 🔐 Passkey + Master Password — dual-factor vault access

  • 🔒 End-to-end encryption — secrets never stored in plaintext (Argon2id + XSalsa20-Poly1305)

  • 🤖 MCP compatible — works with Claude Desktop, Cursor, OpenClaw, and any MCP client

  • 📝 Markdown secrets — store any secret as structured markdown

  • One-step approval — agent requests secret → you tap Passkey → secret delivered

  • 🔑 Session reuse — after first approval, subsequent requests don't need re-approval

  • ⏱️ Auto-lock — vault locks after inactivity, keys wiped from memory

  • 🖥️ SSH execution — secrets with SSH info can be used to execute remote commands

Quick Start

1. Self-Hosted Docker

docker run -d -p 3001:3001 \
  -v vault-data:/app/data \
  -v vault-config:/app/config \
  qsobad/ssh-vault-mcp:latest
  • Config: /app/config/config.yml — auto-created with localhost defaults if missing

  • Data: /app/data/ — encrypted vault storage (persist this!)

  • Custom domain: set SSH_VAULT_ORIGIN env var (e.g. -e SSH_VAULT_ORIGIN=https://ssh.example.com)

Open http://localhost:3001 → set Master Password → register Passkey → done.

2. Local MCP (Claude Desktop / Cursor)

Add to your MCP client config:

{
  "mcpServers": {
    "ssh-vault": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-p", "3001:3001",
        "-v", "ssh-vault-data:/app/data",
        "-v", "ssh-vault-config:/app/config",
        "-e", "SSH_VAULT_ORIGIN=http://localhost:3001",
        "qsobad/ssh-vault-mcp:latest"
      ]
    }
  }
}

3. OpenClaw Skill

For OpenClaw agents — everything happens through chat. Agent self-registers, adds hosts, and runs commands via approval links.

How It Works

Execution Flow

  1. Agent calls execute with host + command

  2. If no session → vault returns approval URL

  3. User opens URL → sees host + command → authenticates with Master Password + Passkey

  4. Vault unlocks → creates session → executes command → returns result to agent via SSE

  5. Agent receives sessionId — subsequent commands execute immediately without re-approval

Adding Hosts

  1. Agent requests to add a host (name, IP, username)

  2. User opens approval URL → enters SSH password or private key during approval

  3. Credentials are encrypted and stored in vault — agent never sees them

SSE Status Flow

pending → approved → executing → completed

Agent listens on SSE endpoint and receives:

{"status":"completed","stdout":"...","stderr":"...","exitCode":0,"sessionId":"..."}

Configuration

Config file at /app/config/config.yml. Auto-created with localhost defaults if missing.

vault:
  path: /app/data/vault.enc
  backup: true

webauthn:
  rp_id: "your-domain.com"
  rp_name: "SSH Vault"
  origin: "https://your-domain.com"

web:
  port: 3001
  external_url: "https://your-domain.com"

session:
  timeout_minutes: 15

Environment variable overrides: SSH_VAULT_ORIGIN, SSH_VAULT_PORT, SSH_VAULT_DATA_PATH

Technical Details

For API reference, security details, and development setup, see TECHNICAL.md.

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to securely manage API keys and secrets via the MCP protocol, with encrypted storage at rest and a simple CLI and Python SDK.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server enabling AI agents to use secrets (API keys, tokens) via encrypted vault, executing HTTP/shell/SSH actions server-side while never exposing secret values to the AI.
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Web-based SSH connection manager with an MCP server that enables AI agents to manage remote hosts via terminals, file transfers, and port forwarding, featuring human-in-the-loop approval for secure access.
    -