Wundervault Vault

Polar Sponsor
爱发电 赞助
.NET 9.0

从 Wundervault 零知识多代理保险库读取密码、API 密钥和凭据,并以注入密钥方式执行授权的 shell 命令 — wit...

Wundervault Vault.

功能概述

Wundervault Vault.是一项面向实际任务的技能,主要用于Wundervault是一个加密的自托管秘密金库,通过MCP工具向特工透露秘密.;Secrets从未在聊天中出现过——它们都是解密的服务器侧面并注入的.。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Wundervault 保险库

Wundervault 是一个加密的、可自托管的密钥保险库,通过 MCP 工具向 agent 暴露密钥。密钥**绝不会出现在聊天窗口中**——它们在服务端解密后,直接注入命令或写入配置文件。密钥的明文内容永远不会返回给 agent。

首先检查设置状态

执行任何与保险库相关的操作前,请务必先调用 vault_entries_list。根据其返回结果判断用户当前所处的设置阶段:

返回结果 含义 应采取的操作
返回条目列表 保险库已连接且就绪 继续后续操作
返回空列表 已连接,但尚未添加任何密钥 提示用户前往 wundervault.com 添加密钥
返回认证/凭据错误 MCP 服务已安装,但尚未完成接入(onboard) 引导用户完成接入流程(见下文)
工具不可用 MCP 服务未与当前 agent 关联配置 引导用户完成完整设置流程(参见 INSTALL.md)

首次运行接入流程(First-run onboarding)

若保险库相关工具缺失或凭据无效,请向用户说明:

“Wundervault 尚未配置完成。请按以下步骤开始:

  1. 通过联系表单申请访问权限
  2. 获批后,在 wundervault.com 上完成账户设置并接入您的 agent
  3. 使用 wundervault.com/install 页面提供的校验和验证 MCP 服务包完整性
  4. 返回此处,我将为您验证连接状态”

在 vault_entries_list 成功返回前,**不得尝试调用任何保险库工具**。

工具说明

vault_entries_list

列出当前 agent 可访问的所有保险库条目。仅返回条目 ID 和名称 —— 不包含任何密钥值。

vault_entries_list()
→ [{ id: "abc123", name: "ResendApiKey", tier: "full" }, ...]

请始终优先调用此工具获取目标条目 ID,再调用其他工具。

vault_entry_get

检索并销毁(burn)一个密钥。该密钥在服务端解密,明文永不返回至 agent —— 您仅会收到销毁确认信息。

vault_entry_get(entry_id: "abc123", purpose: "confirm secret exists")
→ "✅ Secret retrieved and burned."

此工具仅用于确认密钥存在或确认已成功读取。如需在命令或文件中实际使用密钥,请改用 vault_exec 或 vault_entry_inject_env。

vault_exec

以环境变量形式注入保险库密钥后执行 Shell 命令 —— 密钥不会在聊天记录或日志中暴露。

vault_exec(entry_id: "abc123", purpose: "publish package", command: "npm publish --access public")

支持两级访问控制:

  • 第 1 级(标准):立即执行
  • 第 2 级(受限):调用被拒绝,直至所有者批准。拒绝响应中包含请求 ID,系统将自动向所有者发送邮件;批准范围严格限定于当前 agent + 当前密钥(单次有效,或 15/60 分钟有效期)。批准后请重试 —— 此类拒绝不应视为错误。

在密钥解密前,Shell 转义序列(如 $()、反引号、bash -c、eval)及文件写入重定向(如 >、>>、tee)均被硬性拦截。如需将密钥写入文件,请使用 vault_entry_inject_env —— 切勿通过 Shell 重定向实现。(这些拦截是安全防护措施,而非沙箱机制;真正的安全保障在于:明文永不返回至您。)

通过 SSH 远程执行:传入 remote_host 参数即可在远程主机上运行命令。密钥通过 SSH stdin 注入远程 Shell —— 远程主机无需配置 AcceptEnv/SendEnv。可使用 ssh_key_entry_id 从保险库中加载 SSH 密钥。

vault_exec(
  entry_id: "abc123",
  purpose: "check subscribers on prod",
  command: "curl -s -u "admin:$DB_PASSWORD" http://localhost:9000/api/subscribers",
  inject_as: { env_key: "DB_PASSWORD" },
  remote_host: { host: "192.168.1.50", user: "opc", ssh_key_entry_id: "ssh-key-entry-id" }
)

仅使用 SSH 密钥(不注入密钥)的远程命令: entry_id 为可选参数。若仅需使用保险库中的 SSH 密钥在远程主机执行命令(不注入任何密钥作为环境变量),请省略 entry_id 并传入 remote_host.ssh_key_entry_id。

vault_exec(
  purpose: "restart the service on prod",
  command: "sudo systemctl restart wundervault",
  remote_host: { host: "prod.example.com", user: "opc", ssh_key_entry_id: "ssh-key-entry-id" }
)

vault_entry_inject_env

将密钥直接写入环境文件(.env)作为环境变量,全程不经过聊天窗口。

默认禁用。 如需启用此工具,请在 wundervault.com 的「Settings > Agent Capabilities」中开启。您可随时再次禁用。

vault_entry_inject_env(
  entry_id: "abc123",
  purpose: "inject API key into app config",
  file_path: "/home/user/app/.env",
  env_key: "RESEND_API_KEY"
)

注意:file_path 和 env_key 是正确的参数名。

启用理由: 直接将密钥写入 .env 文件是配置应用、容器及部署流水线的标准方式。若不启用此工具,您需手动粘贴密钥 —— 这会使密钥暴露于终端或聊天历史中。vault_entry_inject_env 允许 agent 自动化注入凭据,同时确保明文完全不出现在对话中。

启用前须知风险:

  • agent 可将密钥写入其可访问的任意 .env 路径 —— 包括项目目录之外的位置
  • 若 agent 被攻破或受恶意提示诱导,可能将凭据注入非预期位置
  • 写入的密钥不再具备“读即焚”(burn-on-read)特性 —— 它们将持久化存储于目标文件中
  • .env 文件的权限由您自行负责;该工具仅写入值,不会自动设置严格权限

vault_rsync

通过 SSH 使用 rsync 将本地目录同步至远程主机,SSH 密钥从保险库获取。密钥在传输期间临时写入文件,并在传输完成后立即删除。

vault_rsync(
  ssh_key_entry_id: "ssh-key-entry-id",
  purpose: "deploy static files to prod",
  local_path: "/home/user/app/dist/",
  remote_user: "opc",
  remote_host: "prod.example.com",
  remote_path: "/var/www/html"
)

vault_entry_forget

从上下文中丢弃某保险库条目的引用。此操作不会删除保险库条目本身。

vault_entry_forget(entry_id: "abc123")
→ ✔️ Reference discarded.

常见使用模式

使用密钥执行命令(第 1 级):

1. vault_entries_list() → 查找所需密钥的条目 ID
2. vault_exec(entry_id: "abc123", purpose: "...", command: "...")

使用第 2 级条目执行命令(部署、发布、基础设施变更):

1. vault_entries_list() → 查找条目 ID
2. vault_exec(entry_id: "abc123", purpose: "...", command: "...")

注意:第 2 级调用在 wundervault.com 控制台获得所有者批准前将被拒绝 —— 所有者将自动收到邮件通知,拒绝响应中包含请求 ID。请在批准后重试。

使用保险库中保管的钱包密钥签署 x402 支付(您永远看不到该密钥):

1. vault_entries_list() → 查找钱包密钥条目(建议将钱包密钥设为第 2 级)
2. vault_exec(entry_id: "...", purpose: "sign x402 payment for ", command: "node sign-payment.mjs", inject_as: { env_key: "X402_WALLET_KEY" })
3. 若被拒绝并附带请求 ID?所有者已收到邮件 —— 请待其批准后重试。

签名脚本从环境变量中读取密钥,并仅输出已签名的 X-PAYMENT 头部。一次经验证的端到端完整流程(402 → 审批 → 签名 → 在 Base Sepolia 上结算)示例见 wundervault.com/agent-wallets。

将密钥写入配置文件:

1. vault_entries_list() → 查找条目 ID
2. vault_entry_inject_env(entry_id: "abc123", purpose: "...", file_path: "/app/.env", env_key: "MY_KEY")

向远程服务器部署文件:

1. vault_entries_list() → 查找 SSH 密钥条目 ID
2. vault_rsync(ssh_key_entry_id: "...", local_path: "./dist/", remote_user: "opc", remote_host: "prod.example.com", remote_path: "/var/www/html")

多 agent 配置

Wundervault 专为多 agent 环境设计。每个 agent 拥有独立的、作用域受限的身份标识与令牌 —— 在守护进程(daemon)层面彼此完全隔离。

  • 每个 agent 使用专属令牌文件进行身份认证(~/.wundervault/agents/{AgentName}.token)
  • agent 仅能访问被显式授权的条目
  • 保险库所有者通过 wundervault.com 控制台管理 agent 列表及其访问权限
  • agent 无法查看彼此的令牌、身份或访问范围
  • 审计日志按 agent 分离,您可精确追溯任一 agent 访问了哪个密钥及具体时间

这使得 Wundervault 非常适用于多个专业化 agent(如编码 agent、部署 agent、合作伙伴 agent 等)共享基础设施但必须严格隔离凭据的场景。

安全说明

  • 密钥端到端加密;明文永不返回至 agent
  • “零知识”(zero-knowledge)声明可独立验证 —— 无需源码访问:wundervault.com/verify(提供浏览器 DevTools 操作指南或 mitmproxy canary 测试,含公开记录)
  • 接入脚本启动时自动验证自身 ed25519 签名,校验失败则退出。管道模式(curl ... | python3)被硬性拦截 —— 脚本可检测该模式并拒绝运行。固定版本、SHA-256 校验和及公钥均公布于 wundervault.com/install。
  • agent 从不直接持有凭据 —— 仅本地存储作用域受限的令牌。本地守护进程管理真实凭据,并仅通过受控接口暴露,每次请求均强制执行分级检查与审计日志记录。即使 agent 令牌泄露,也无法直接访问保险库凭据。
  • vault_exec 和 vault_rsync 是使用密钥的正确工具 —— vault_entry_get 不适用于此目的
  • 第 2 级条目由保险库所有者配置;agent 无法将第 1 级条目提权
  • 第 2 级访问权限由用户在 wundervault.com 控制台服务端启用
  • inject_as 覆盖参数允许您指定接收密钥的环境变量名(当保险库条目未配置 exec_config 时)

更多信息

  • npm 包:@wundervault/mcp-server
  • 保险库 Web UI:wundervault.com

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习