KSM MCP 是一个模型上下文协议(MCP)服务器,它在 AI 语言模型(如 Claude)和 Keeper 密钥管理系统(KSM)之间充当安全中介。它允许 AI 代理管理你的 KSM 密钥,如列出、创建、检索和删除记录及文件夹,同时保护你的 KSM 应用程序凭证。敏感操作需要用户确认,确保你对数据保持控制。
获取 KSM Base64 配置:
ewog...
开头)。⚠️ 重要提示
Base64 配置包含你的 KSM 应用程序凭证。请妥善保管,切勿提交到版本控制中。
配置 Claude 桌面应用:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
ksm
服务器条目,将 YOUR_BASE64_CONFIG_STRING_HERE
替换为你实际的 Base64 配置:{
"mcpServers": {
"ksm": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "KSM_CONFIG_BASE64=YOUR_BASE64_CONFIG_STRING_HERE",
"keepersecurityinc/ksm-mcp-poc:latest"
]
}
// 你可能在此处有其他服务器,如 "memory",保持不变。
}
}
重启 Claude 桌面应用:
下载二进制文件:
ksm-mcp-darwin-amd64
,适用于 Windows 的 ksm-mcp-windows-amd64.exe
)。chmod +x ./ksm-mcp-darwin-amd64
),并将其放置在系统路径包含的目录中,或记录其完整路径。获取 KSM Base64 配置:(请参阅上述 Docker 指南中的步骤 1)
⚠️ 重要提示
Base64 配置包含你的 KSM 应用程序凭证。请妥善保管,切勿提交到版本控制中。
初始化 KSM MCP 配置文件:
YOUR_BASE64_CONFIG_STRING
替换为实际值,并选择一个配置文件名称(例如,default
):/path/to/ksm-mcp init --profile default --config "YOUR_BASE64_CONFIG_STRING"
配置 Claude 桌面应用:
claude_desktop_config.json
文件(请参阅 Docker 指南中的路径)。ksm
服务器条目,将 /path/to/ksm-mcp
替换为你下载的二进制文件的实际路径:{
"mcpServers": {
"ksm": {
"command": "/path/to/ksm-mcp",
"args": ["serve", "--profile", "default"] // 使用你初始化的配置文件名称
}
// ... 其他服务器 ...
}
}
重启 Claude 桌面应用。
list_secrets
:列出所有可访问的密钥(仅元数据)。get_secret
:检索特定密钥(默认情况下敏感字段会被掩码;取消掩码需要确认)。search_secrets
:按标题、备注或其他字段内容搜索密钥。create_secret
:创建新密钥(需要确认)。update_secret
:更新现有密钥(需要确认)。delete_secret
:删除密钥(需要确认)。list_folders
:列出所有可访问的文件夹。create_folder
:创建新文件夹(需要确认;必须指定父共享文件夹)。delete_folder
:删除文件夹(需要确认;可选择强制删除非空文件夹)。upload_file
:上传文件附件到密钥(需要确认)。download_file
:从密钥下载文件附件。generate_password
:生成安全密码。可选择直接保存到新密钥,而不向 AI 暴露密码。get_totp_code
:获取配置了 TOTP 的密钥的当前 TOTP 代码。get_server_version
:获取 KSM MCP 服务器的当前版本。health_check
:检查 MCP 服务器的运行状态及其与 KSM 的连接。以下是一些如何指示 AI 代理(如 Claude)使用 KSM MCP 服务器的示例:
在新文件夹中创建新密钥: “请在我们的主 'KSM-MCP-TEST-RECORDS' 共享文件夹下创建一个名为 'Project Phoenix Shared' 的新文件夹。然后,在 'Project Phoenix Shared' 内创建一个新的登录密钥,标题为 'Phoenix Dev DB',用户名是 'phoenix_user',密码是 'ComplexP@$$wOrd123!',URL 是 'db.phoenix.dev.internal'。”
列出密钥并检索一个: “列出 'API Keys' 文件夹中的所有密钥。然后,获取标题为 'Third-Party Analytics API Key' 的密钥的详细信息,但保持 API 密钥本身被掩码。”
删除一个密钥,然后删除其所在的文件夹(如果为空): “删除名为 'Old Staging Server Credentials' 的密钥。完成后,如果它所在的 'Staging Environment' 文件夹现在为空,请也删除该文件夹。”
上传配置文件到现有记录: “我在 '~/Downloads/kubeconfig-prod.yaml' 有一个用于我们生产集群的新 Kubernetes 配置文件。请将此文件上传到标题为 'Production K8s Cluster Access' 的 KSM 记录,并将附件命名为 'kubeconfig-prod-cluster.yaml'。”
生成安全密码并保存到新记录: “生成一个包含大写字母、小写字母、数字和特殊字符的 32 位强密码。直接将其保存到 'Service Accounts' 文件夹中标题为 'Internal Audit Service Account' 的新登录记录中。不要向我显示密码。”
检查不同环境间的配置一致性: “我按环境(开发、测试)组织了服务配置记录,并为每个 AWS 区域设置了子文件夹。请分析这些记录,找出不同环境中类似服务之间的任何不一致之处。特别注意通常在不同环境中应相同的配置值,如日志级别、超时设置或功能标志。”
KSM MCP 服务器可以通过多种方式实例化,并具有各种配置选项。本节记录了所有可用的方法、标志和环境变量。
{
"mcpServers": {
"ksm": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "KSM_CONFIG_BASE64=YOUR_BASE64_CONFIG_STRING",
"keepersecurityinc/ksm-mcp-poc:latest"
]
}
}
}
{
"mcpServers": {
"ksm": {
"command": "/path/to/ksm-mcp",
"args": ["serve", "--profile", "default"]
}
}
}
{
"mcpServers": {
"ksm": {
"command": "/path/to/ksm-mcp",
"args": [
"serve",
"--config-base64", "YOUR_BASE64_CONFIG_STRING"
]
}
}
}
{
"mcpServers": {
"ksm": {
"command": "/path/to/ksm-mcp",
"args": ["serve"],
"env": {
"KSM_CONFIG_BASE64": "YOUR_BASE64_CONFIG_STRING"
}
}
}
}
对于你希望防止创建任何本地文件(包括审计日志)的环境:
{
"mcpServers": {
"ksm": {
"command": "/path/to/ksm-mcp",
"args": [
"serve",
"--no-logs",
"--config-base64", "YOUR_BASE64_CONFIG_STRING"
]
}
}
}
--no-logs
标志完全禁用审计日志记录,确保不创建任何本地文件。这对于以下情况很有用:
标志 | 类型 | 默认值 | 描述 |
---|---|---|---|
--profile |
字符串 | "" |
要从本地存储使用的配置文件名称 |
--config-base64 |
字符串 | "" |
Base64 编码的 KSM 配置字符串 |
--batch |
布尔值 | false |
以批量模式运行(无密码提示,适用于自动化环境) |
--auto-approve |
布尔值 | false |
自动批准所有破坏性操作,无需用户确认(危险) |
--timeout |
时长 | 30s |
请求超时时间 |
--log-level |
字符串 | info |
日志级别(调试、信息、警告、错误) |
--no-logs |
布尔值 | false |
禁用审计日志记录(不创建本地文件) |
--batch
(非交互式模式)
--no-logs
(静默模式)
~/.keeper/ksm-mcp/logs/
目录--auto-approve
(危险)
create_secret
- 创建新密钥update_secret
- 修改现有密钥delete_secret
- 删除密钥create_folder
- 创建新文件夹delete_folder
- 删除文件夹upload_file
- 上传文件到密钥ksm_execute_confirmed_action
工具进行选择性批准变量 | 类型 | 默认值 | 描述 |
---|---|---|---|
KSM_CONFIG_BASE64 |
字符串 | "" |
Base64 编码的 KSM 配置字符串 |
KSM_MCP_CONFIG_DIR |
字符串 | ~/.keeper/ksm-mcp |
配置文件和日志的目录 |
KSM_MCP_PROFILE |
字符串 | "" |
要使用的默认配置文件名称 |
服务器使用以下配置优先级顺序:
--config-base64
(最高优先级)KSM_CONFIG_BASE64
--profile
KSM_MCP_PROFILE
配置文件提供了一种安全的方式来本地存储和管理 KSM 配置,而不暴露敏感凭证:
何时使用配置文件与直接配置:
ksm-mcp init --profile PROFILE_NAME --config "BASE64_CONFIG_STRING"
此命令:
~/.keeper/ksm-mcp/profiles/
中--profile PROFILE_NAME
使用ksm-mcp profiles list
ksm-mcp profiles delete --profile PROFILE_NAME
方法 | 安全级别 | 使用场景 |
---|---|---|
使用环境变量的 Docker 方式 | 高 | 生产、CI/CD |
使用配置文件的二进制文件方式 | 高 | 本地开发、持久化设置 |
使用 CLI 标志的二进制文件方式 | 中 | 测试、临时使用 |
使用环境变量的二进制文件方式 | 高 | 生产、容器化环境 |
静默模式 | 高 | 合规性、无本地工件 |
--profile
标志--config-base64
标志或 KSM_CONFIG_BASE64
环境变量--no-logs
标志禁用本地日志记录启用调试日志进行故障排除:
ksm-mcp serve --log-level debug --profile your-profile
# 初始化配置文件
ksm-mcp init --profile dev --config "ewogICJob3N0bmFtZSI6..."
# 运行服务器
ksm-mcp serve --profile dev --log-level debug
docker run -i --rm \
-e KSM_CONFIG_BASE64="ewogICJob3N0bmFtZSI6..." \
keepersecurityinc/ksm-mcp-poc:latest
export KSM_CONFIG_BASE64="ewogICJob3N0bmFtZSI6..."
ksm-mcp serve --no-logs --batch --timeout 60s