关于 Vault MCP Server
Vault MCP Server 是用于 Vault 的第三方开源 MCP 服务,可在本地或容器中运行。它提供 Vault 配置与状态资源,以及涵盖多种后端的工具和提示词;项目不建议用于企业生产环境。
主要功能
- 01Vault 状态与配置资源
- 02管理 ACL、认证及审计
- 03访问密钥、PKI 与 Transit 后端
- 04生成及诊断 ACL 策略
- 05支持多种 Vault 认证方式
适用场景
- 01查看 Vault 健康与封存状态
- 02管理密钥引擎和认证配置
- 03生成或优化 ACL 策略
- 04扫描集群配置问题
MCP 相关
该项目作为 MCP 服务,向客户端提供 8 类资源、144 个工具和 4 个提示词,用于读取及操作 Vault。可本地运行,也提供容器镜像。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Vault MCP 服务
现在,Hashicorp 已推出官方 Vault MCP 服务。因此,第三方 Vault MCP 服务替代方案将继续存在,并持续更新功能和修复问题,但不会尝试与官方产品竞争。第三方 Vault MCP 服务可以在本地运行,而不必仅通过远程方式运行(尽管在许多情况下,远程方式更可取),并将继续以容器镜像的形式提供。
由于官方产品发布后制定了这项政策,因此不会有正式的发布流程、版本管理或变更日志。也不建议将此产品用于企业生产环境。
MCP 服务容器镜像托管在 Dockerhub,对应此处托管的代码 HEAD。
桌面端配置
希望你可以据此推导并修改配置,以适配其他客户端,从而根据需要试用此服务。
Claude
{
"mcpServers": {
"vault": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ENV_VAR",
"-e",
"ENV_VAR_TWO",
"matthewschuchard/vault-mcp-server"
],
"env": {
"ENV_VAR": "<ENV VAR VALUE>",
"ENV_VAR_TWO": "<ENV VAR TWO VALUE>",
}
}
}
}
VSCode
MCP: Add Server --> Docker Image 命令也可以简化此配置。你可以在输入提示中填写下方的值,之后 mcp.json 文件会自动在一个窗格中打开,以便在需要时进一步更新。
{
"servers": {
"vault": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ENV_VAR",
"-e",
"ENV_VAR_TWO",
"matthewschuchard/vault-mcp-server"
],
"env": {
"ENV_VAR": "<ENV VAR VALUE>",
"ENV_VAR_TWO": "<ENV VAR TWO VALUE>",
}
}
}
}
环境变量
可以按照上方针对 ENV_VAR 展示的模式定义这些环境变量,并将其传递给 Vault MCP 服务。
- CACHE_TTL:60
设置所有读取和列表操作的缓存时间;超过该时间后,将获取新值,而不是使用缓存值。
- VAULT_AUTH_METHOD:'token'
从 approle、jwt(测试版)、token 和 userpass 中选择 Vault 身份验证方法。
- VAULT_AUTH_PATH:/
所使用的 Vault 身份验证方法的挂载路径。
- VAULT_JWT:None
使用 jwt 身份验证方法的实体的 JSON Web Token。
- VAULT_NAMESPACE:''
设置 Vault 命名空间(仅限企业版)。
- VAULT_PASSWORD:None
使用 userpass 身份验证方法的用户密码。
- VAULT_ROLE:None
使用 jwt 身份验证方法的实体角色。
- VAULT_ROLE_ID:None
使用 approle 身份验证方法的实体角色 ID。
- VAULT_SECRET_ID:None
使用 approle 身份验证方法的实体密钥 ID。
- VAULT_TOKEN:None
使用 token 身份验证方法的实体令牌。
- VAULT_URL:http://127.0.0.1:8200
Vault 服务 URL。
- VAULT_USERNAME:None
使用 userpass 身份验证方法的用户名。
功能
资源(8)
- 当前启用的 ACL 策略
- 当前启用的审计设备
- 当前启用的身份验证引擎
- 当前启用的密钥引擎
- 当前命名空间(仅限企业版)
- 当前 Raft 集群配置
- 当前 Vault 健康状态
- 当前 Vault 密封状态
工具(144)
- 系统后端
- ACL 策略
- 审计设备
- 身份验证引擎
- 健康状态
- 命名空间(仅限企业版)
- Raft(集群和存储快照)
- 密封状态
- 密钥引擎
- 密钥后端
- 数据库(测试版)
- 身份/别名
- KV 版本 2
- PKI
- Transit
提示词(4 项)
- mcp.vault.example-acl-policy:以 JSON 字符串格式显示一个 Vault ACL 策略示例。可以修改显示的策略,并将其原样输入给大模型(已在 Agentic Claude 上验证),它会理解你希望通过 Vault MCP Server 使用修改后的内容创建 ACL 策略(并自动生成名称)。不过,更稳妥的做法可能是将其用作工具的输入。
- mcp.vault.generate-acl-policy:以 JSON 字符串格式显示一个伪 Vault ACL 策略示例,类似于上述提示词。主要区别在于,此提示词接受
paths参数,其类型为list[str],返回的策略将包含输入的路径。不过,capabilities仍然是模板内容,需要根据你的用途进行修改。 - mcp.vault.generate-smart-acl-policy:这是一个交互式工作流,通过 Agentic 大模型根据用户需求和提示词创建并优化 Vault ACL 策略。它还会以 JSON 字符串格式返回策略。
- mcp.vault.diagnose-vault-state:这是一个诊断扫描器,用于针对 Vault 服务集群,利用此 MCP 服务中可用的资源进行扫描,并报告检测到的服务器配置问题。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。