back
loading skill details...
本地密钥管理工具,支持密钥验证、脱敏文件读取和本地API代理,确保密钥不以明文形式泄露给LLM服务器。
---
slug: key-vault-manager-free
name: key-vault-manager-free
version: 1.0.0
displayName: 密钥保险箱(免费版)
summary: 本地密钥管理工具,防止API密钥泄露到LLM服务器,支持密钥验证与脱敏读取
license: Proprietary
edition: free
description: '密钥保险箱(免费版)是一款本地密钥安全守护工具,通过本地中间人机制确保API密钥不会以明文形式发送到LLM服务器,仅将API响应结果返回给Agent。核心能力:
- 本地密钥验证:检查密钥是否已配置,无需暴露密钥本身
- 脱敏文件读取:将密钥值替换为占位符后返回文件内容
- 本地API代理:在本地注入密钥并发起HTTP请求...'
tags:
- 集成工具
- 安全防护
- 密钥管理
tools:
- - read
- exec
homepage: https://skillhub.cn
pricing_tier: "L2-标准级"
pricing_model: per_use
suggested_price: "19.9 CNY/per_use"
tools: ["read", "write", "exec"]
tags: "工具,效率,自动化"
---
# 密钥保险箱(免费版)
本工具通过本地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中声明的使用场景,均已在上述能力点中提供对应的操作支持。
## 使用场景
### 场景一:安全调用OpenAI API
开发者需要Agent调用OpenAI API获取数据,但不希望密钥被发送到LLM服务器。通过本地API代理,Agent调用MCP工具,工具在本地读取`OPENAI_API_KEY`并注入请求头,发起HTTP请求后仅返回API响应,密钥全程不可见。
### 场景二:检查密钥配置状态
开发者希望确认本地环境是否已正确配置所需密钥,但不希望查看密钥明文。通过密钥验证功能,获取每个密钥的存在状态、长度与脱敏预览(如`sk-a****`),足以判断配置是否正确。
### 场景三:审查含密钥的脚本
安全审查人员需要查看一个curl脚本的内容,但脚本中可能硬编码了API密钥。通过脱敏文件读取功能,密钥值被替换为`{{KEY_NAME}}`占位符,审查人员可安全查看脚本的逻辑部分并提出修改建议。
### 场景四:编辑后安全回写
开发者需要修改curl脚本添加请求头,但脚本中包含硬编码密钥。先通过脱敏读取获取占位符版本,编辑非密钥部分后,通过安全写入回填功能将占位符替换为真实密钥写回磁盘,全程不暴露密钥明文。
## 不适用场景
以下场景密钥保险箱(免费版)不适合处理:
- 实际人员绩效评估
- 财务预算审批
- 合同法务审核
## 触发条件
需要项目管理、任务规划、进度跟踪、团队协作时使用。不适用于非本工具能力范围的需求。
## 快速开始
本工具属于中等复杂度工具,预计120秒内可完成首次配置与调用。
### 依赖详情
```bash
# 克隆工具到本地
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
```
### Step 2:验证密钥配置
```text
调用: validate_key({ key_name: "OPENAI_API_KEY" })
返回: { exists: true, length: 51, preview: "sk-a****", message: "密钥已配置" }
```
### Step 3:脱敏读取文件
```text
调用: read_file_masked({ file_path: "(请参考skill目录中的脚本文件)" })
返回: {
content: "curl -H 'Authorization: Bearer {{OPENAI_API_KEY}}' https://api.openai.com/v1/chat/completions"
}
```
### Step 4:本地API代理调用
```text
调用: call_api({
key_name: "OPENAI_API_KEY",
url: "https://api.openai.com/v1/models",
method: "GET"
})
返回: { status: 200, data: { ... API响应内容 ... } }
```
#
## 配置示例
### 环境变量配置
```bash
# .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代理优先
调用外部API时,优先使用`call_api`本地代理,而非在脚本中硬编码密钥后让Agent执行。本地代理在用户设备上完成密钥注入与请求发起,仅返回响应数据,从根本上消除密钥泄露风险。
### 实践四:安全写入回填的占位符规范
编辑含密钥文件时,确保占位符格式统一为`{{KEY_NAME}}`,与环境变量名一致。写入回填时工具会按名称匹配并替换,格式不一致会导致替换失败。
## 常见问题
### Q1:MCP工具未运行怎么办?
A:若Agent提示MCP工具不可用,请确认已通过`/mcp add`命令注册工具,并检查Node.js环境是否正常。可参考步骤1的安装说明重新配置。
### Q2:脱敏读取后占位符未替换?
A:检查占位符格式是否为`{{KEY_NAME}}`,且KEY_NAME与环境变量名完全一致(区分大小写)。写入回填时工具按名称精确匹配。
### Q3:本地API代理返回401?
A:确认密钥已正确配置且未过期。使用`validate_key`检查密钥状态,若预览显示异常可能是密钥格式错误。
### Q4:免费版支持哪些密钥类型?
A:免费版支持所有通过环境变量配置的密钥,包括但不限于OpenAI、DeepL、Oxford Dictionary等。只要密钥在`.env`或环境变量中设置,即可被工具识别。
### 已知限制
A:免费版不限制使用次数,但多保险箱管理、审计日志与密钥轮换功能需使用专业版。
- 当前为免费版本,如需完整功能请升级到付费版获取全部能力
## 错误处理
- 边界输入处理: 空输入返回提示信息, 超长输入自动截断
- 降级策略: 异常时返回默认值, 确保流程不中断
- 执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令机制: 失败时自动执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令, 最多3次
| 错误场景(现象) | 可能原因 | 解决方案 |
|------:|------:|------:|
| MCP工具未找到 | 未注册或路径错误 | 重新执行/mcp add注册 |
| validate_key返回false | 密钥未配置 | 检查.env或环境变量 |
| 占位符替换失败 | 格式不一致 | 确认使用{{KEY_NAME}}格式 |
| call_api超时 | 网络或目标API问题 | 执行ping命令测试网络连通性,检查防火墙和代理设置与目标API状态 |
| 写入回填失败 | 文件权限不足 | 检查目标目录写入权限 |
| 密钥预览显示异常 | 密钥格式错误 | 核对密钥格式与文档 |
## 安全规则
使用本工具时必须遵守以下安全规则:
1. **禁止直接读取密钥文件**:不要使用`cat .env`或文件读取工具查看包含密钥的文件,始终使用`read_file_masked`
2. **禁止在响应中包含密钥值**:即使部分包含也不允许,密钥值必须始终以占位符形式呈现
3. **禁止直接读取可能含密钥的脚本**:若脚本可能包含硬编码密钥,使用`read_file_masked`而非直接读取
4. **所有密钥操作通过MCP工具**:任何与密钥相关的操作都必须通过本工具完成
## 免费版限制
本免费体验版限制以下高级功能:
- 多保险箱管理(按项目隔离密钥集合)
- 审计日志(记录所有密钥操作历史)
- 密钥轮换(自动化密钥更新与通知)
- 团队密钥共享(加密分发与权限控制)
- 优先技术支持
解锁全部功能请使用专业版:key-vault-manager-pro
## 依赖说明
### 运行环境
- **Agent平台**:支持SKILL.md与MCP工具的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- **操作系统**:Windows / macOS / Linux
- **Node.js**:16+(用于运行MCP工具)
### 第三方依赖
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|:---:|:---:|:---:|:---:|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| Node.js | 运行时 | 必需 | nodejs.org官方下载 |
| MCP工具运行时 | 运行时 | 必需 | 随工具附带 |
| 目标API服务 | 外部API | 按需 | 由用户配置的API密钥决定 |
### API Key 配置
- **本地密钥存储**:通过`.env`文件或系统环境变量配置
- **支持格式**:所有标准环境变量格式的密钥
- **安全要求**:禁止在SKILL.md或脚本中硬编码密钥,禁止提交`.env`到版本控制
- **推荐实践**:将`.env`加入`.gitignore`,使用密钥管理工具统一管理
### 可用性分类
- **分类**:MD+EXEC(纯Markdown指令,部分功能需要exec命令行执行能力)
- **说明**:基于Markdown的AI Skill,通过MCP工具在本地完成密钥安全操作,密钥值永不离开用户设备
## 案例展示
```json
{
"input": "示例输入",
"output": "处理结果"
}
```
## 输出格式
处理结果以结构化格式返回, 包含状态码、消息和数据字段。
don't have the plugin yet? install it then click "run inline in claude" again.