KSM MCP是一个模型上下文协议(MCP)服务器,作为AI语言模型(如Claude)与Keeper Secrets Manager(KSM)之间的安全中介。它允许AI代理管理您的KSM密钥——例如列出、创建、检索和删除记录和文件夹——同时保护您的KSM应用程序凭证。敏感操作需要用户确认,确保您对数据保持控制。
获取KSM Base64配置:
ewog...开头)。重要提示:Base64配置包含您的KSM应用程序凭证。请妥善保管,切勿提交到版本控制系统。
配置Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonksm服务器条目如下,用实际的base64配置替换YOUR_BASE64_CONFIG_STRING_HERE:{
"mcpServers": {
"ksm": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "KSM_CONFIG_BASE64=YOUR_BASE64_CONFIG_STRING_HERE",
"keepersecurityinc/ksm-mcp-poc:latest"
]
}
// 您可能还有其他服务器如"memory",保留它们不变。
}
}
重启Claude Desktop:
下载二进制文件:
ksm-mcp-darwin-amd64,Windows的ksm-mcp-windows-amd64.exe)。chmod +x ./ksm-mcp-darwin-amd64),并将其放置在系统PATH中的目录中,或者记下其完整路径。获取KSM Base64配置:(参见Docker指南中的步骤1)
重要提示:Base64配置包含您的KSM应用程序凭证。请妥善保管,切勿提交到版本控制系统。
初始化KSM MCP配置文件:
YOUR_BASE64_CONFIG_STRING并选择一个配置文件名(例如,默认):
/path/to/ksm-mcp init --profile default --config "YOUR_BASE64_CONFIG_STRING"
配置Claude Desktop:
claude_desktop_config.json文件(参见Docker指南中的路径)。ksm服务器条目,用实际下载的二进制文件路径替换/path/to/ksm-mcp:{
"mcpServers": {
"ksm": {
"command": "/path/to/ksm-mcp",
"args": ["serve", "--profile", "default"] // 使用您初始化的配置文件名
}
// ... 其他服务器 ...
}
}
重启Claude Desktop。
KSM MCP服务器提供了以下工具来与Keeper Secrets Manager进行交互:
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'文件夹现在为空,请一并删除该文件夹。"
将配置文件上传到现有记录: "我有一个新的Kubernetes配置文件,位于'~/Downloads/kubeconfig-prod.yaml',用于我们的生产集群。请将此文件上传到标题为'Production K8s Cluster Access'的KSM记录,并将附件命名为'kubeconfig-prod-cluster.yaml'。"
生成安全密码并保存到新记录: "生成一个非常强的32字符密码,包括大写字母、小写字母、数字和特殊字符。直接将其保存到标题为'Internal Audit Service Account'的新登录记录中,位于'Service Accounts'文件夹内。不要向我展示密码。"
检查跨环境配置一致性: "我的服务配置记录按环境(dev、qa)组织在文件夹中,每个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": {
1. "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 | 日志级别(debug、info、warn、error) |
--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配置,而无需暴露敏感凭证:
何时使用配置文件 vs 直接配置:
ksm-mcp init --profile PROFILE_NAME --config "BASE64_CONFIG_STRING"
此命令:
~/.keeper/ksm-mcp/profiles/--profile PROFILE_NAMEksm-mcp profiles list
ksm-mcp profiles delete --profile PROFILE_NAME
| 方法 | 安全等级 | 使用案例 |
|---|---|---|
| Docker与环境变量 | 高 | 生产、CI/CD |
| 二进制文件与配置文件 | 高 | 本地开发、持久设置 |
| 二进制文件与CLI标志 | 中 | 测试、临时使用 |
| 二进制文件与环境变量 | 高 | 生产、容器化环境 |
| 静默模式 | 高 | 遵守合规性、无本地工件 |
"No active session"错误:确保您有:
--profile标志指向已初始化的配置文件--config-base64标志或KSM_CONFIG_BASE64环境变量"Failed to create log directory"警告:使用--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