Install
openclaw skills install @thcjp/key-vault-manager-freeopenclaw skills install @thcjp/key-vault-manager-free本工具通过本地MCP工具架构守护API密钥安全,确保密钥值不会以明文形式发送到LLM服务器,所有密钥操作在用户设备本地完成。
当Agent读取包含API密钥的文件时,密钥的明文内容可能被发送到LLM服务器进行处理,存在泄露风险。密钥保险箱通过本地中间人机制解决这一问题:Agent调用本地MCP工具,工具在本地读取密钥并完成API调用,仅将响应结果返回给Agent,密钥值全程不离开用户设备。
免费版面向个人开发者与安全意识较强的用户,提供密钥验证、脱敏文件读取、本地API代理与安全写入回填四大核心能力,不限制使用次数。
| 能力 | 说明 | 免费版可用 |
|---|---|---|
| 密钥列表查询 | 列出所有可用密钥名称(不含值) | 是 |
| 密钥验证 | 检查密钥是否已配置 | 是 |
| 脱敏文件读取 | 密钥值替换为占位符后返回 | 是 |
| 本地API代理 | 本地注入密钥发起HTTP请求 | 是 |
| 安全写入回填 | 占位符替换为真实密钥写回 | 是 |
| 多保险箱管理 | 按项目隔离密钥集合 | 否 |
| 审计日志 | 记录所有密钥操作 | 否 |
| 密钥轮换 | 自动化密钥更新 | 否 |
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置。 |
用input_params参数进行配置。
输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作用config_options参数进行配置。
输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。
config_options参数,支持修改/重置/导入操作用output_format参数进行配置。
输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:本地密钥管理工具、密钥泄露到、LLM、服务器、支持密钥验证与脱、敏读取、密钥保险箱、是一款本地密钥安、全守护工具、通过本地中间人机、制确保、密钥不会以明文形、式发送到、响应结果返回给、Agent、本地密钥验证、无需暴露密钥本身、将密钥值替换为占、位符后返回文件内、在本地注入密钥并等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。开发者需要Agent调用OpenAI API获取数据,但不希望密钥被发送到LLM服务器。通过本地API代理,Agent调用MCP工具,工具在本地读取OPENAI_API_KEY并注入请求头,发起HTTP请求后仅返回API响应,密钥全程不可见。
开发者希望确认本地环境是否已正确配置所需密钥,但不希望查看密钥明文。通过密钥验证功能,获取每个密钥的存在状态、长度与脱敏预览(如sk-a****),足以判断配置是否正确。
安全审查人员需要查看一个curl脚本的内容,但脚本中可能硬编码了API密钥。通过脱敏文件读取功能,密钥值被替换为{{KEY_NAME}}占位符,审查人员可安全查看脚本的逻辑部分并提出修改建议。
开发者需要修改curl脚本添加请求头,但脚本中包含硬编码密钥。先通过脱敏读取获取占位符版本,编辑非密钥部分后,通过安全写入回填功能将占位符替换为真实密钥写回磁盘,全程不暴露密钥明文。
以下场景密钥保险箱(免费版)不适合处理:
需要项目管理、任务规划、进度跟踪、团队协作时使用。不适用于非本工具能力范围的需求。
本工具属于中等复杂度工具,预计120秒内可完成首次配置与调用。
# 克隆工具到本地
git clone https://example.com/key-vault-manager.git
# ...
# 示例
cp .env.example .env
# ...
# 在Agent中注册MCP工具
/mcp add key-vault-manager node /path/to/key-vault-manager/key-vault-manager.js
调用: validate_key({ key_name: "OPENAI_API_KEY" })
返回: { exists: true, length: 51, preview: "sk-a****", message: "密钥已配置" }
调用: read_file_masked({ file_path: "(请参考skill目录中的脚本文件)" })
返回: {
content: "curl -H 'Authorization: Bearer {{OPENAI_API_KEY}}' https://api.openai.com/v1/chat/completions"
}
调用: call_api({
key_name: "OPENAI_API_KEY",
url: "https://api.openai.com/v1/models",
method: "GET"
})
返回: { status: 200, data: { ... API响应内容 ... } }
# .env 文件示例
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx
DEEPL_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxx
OXFORD_APP_ID=xxxxxxxx
OXFORD_APP_KEY=xxxxxxxxxxxxxxxxxxxxxxxx
| 工具 | 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| list_keys | - | - | - | 列出所有密钥名称 |
| validate_key | key_name | string | 是 | 密钥名称 |
| read_file_masked | file_path | string | 是 | 文件路径 |
| write_file_with_keys | file_path | string | 是 | 文件路径 |
| write_file_with_keys | content | string | 是 | 含占位符的内容 |
| call_api | key_name | string | 是 | 密钥名称 |
| call_api | url | string | 是 | 请求URL |
| call_api | method | string | 否 | HTTP方法,默认GET |
| call_api | body | object | 否 | 请求体 |
避免直接使用cat .env或文件读取工具查看包含密钥的文件。养成使用read_file_masked的习惯,确保密钥明文不会被发送到LLM服务器。这一实践应贯穿所有涉及密钥文件的操作。
需要确认密钥是否配置时,使用validate_key而非直接读取密钥文件。验证工具返回的存在状态、长度与脱敏预览足以判断配置正确性,无需暴露完整密钥值。
调用外部API时,优先使用call_api本地代理,而非在脚本中硬编码密钥后让Agent执行。本地代理在用户设备上完成密钥注入与请求发起,仅返回响应数据,从根本上消除密钥泄露风险。
编辑含密钥文件时,确保占位符格式统一为{{KEY_NAME}},与环境变量名一致。写入回填时工具会按名称匹配并替换,格式不一致会导致替换失败。
A:若Agent提示MCP工具不可用,请确认已通过/mcp add命令注册工具,并检查Node.js环境是否正常。可参考步骤1的安装说明重新配置。
A:检查占位符格式是否为{{KEY_NAME}},且KEY_NAME与环境变量名完全一致(区分大小写)。写入回填时工具按名称精确匹配。
A:确认密钥已正确配置且未过期。使用validate_key检查密钥状态,若预览显示异常可能是密钥格式错误。
A:免费版支持所有通过环境变量配置的密钥,包括但不限于OpenAI、DeepL、Oxford Dictionary等。只要密钥在.env或环境变量中设置,即可被工具识别。
A:免费版不限制使用次数,但多保险箱管理、审计日志与密钥轮换功能需使用专业版。
| 错误场景(现象) | 可能原因 | 解决方案 |
|---|---|---|
| MCP工具未找到 | 未注册或路径错误 | 重新执行/mcp add注册 |
| validate_key返回false | 密钥未配置 | 检查.env或环境变量 |
| 占位符替换失败 | 格式不一致 | 确认使用{{KEY_NAME}}格式 |
| call_api超时 | 网络或目标API问题 | 执行ping命令测试网络连通性,检查防火墙和代理设置与目标API状态 |
| 写入回填失败 | 文件权限不足 | 检查目标目录写入权限 |
| 密钥预览显示异常 | 密钥格式错误 | 核对密钥格式与文档 |
使用本工具时必须遵守以下安全规则:
cat .env或文件读取工具查看包含密钥的文件,始终使用read_file_maskedread_file_masked而非直接读取本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:key-vault-manager-pro
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| Node.js | 运行时 | 必需 | nodejs.org官方下载 |
| MCP工具运行时 | 运行时 | 必需 | 随工具附带 |
| 目标API服务 | 外部API | 按需 | 由用户配置的API密钥决定 |
.env文件或系统环境变量配置.env到版本控制.env加入.gitignore,使用密钥管理工具统一管理{
"input": "示例输入",
"output": "处理结果"
}
处理结果以结构化格式返回, 包含状态码、消息和数据字段。