SikkerKey
官方一个MCP服务器,让你的AI代理管理你的SikkerKey密钥库。
你可以用 SikkerKey MCP 做什么?
- 验证代理身份与权限 — 让助手调用
whoami以确认当前活跃的 AI 代理、已授予的作用域、项目访问权限以及最近的审计活动。 - 管理密钥生命周期 — 使用
manage_secrets创建、轮换或安排托管密钥,并使用manage_temporary_secrets处理一次性自毁共享。 - 管理访问与策略 — 利用
manage_policies创建带有密钥绑定的访问策略,并使用manage_canaries植入或解除金丝雀密钥。 - 监督机器身份 — 使用
manage_machines批准、拒绝、重命名或撤销机器,并使用manage_project_machines将其附加到具有逐密钥授权的项目中。 - 监控与审计活动 — 通过
read_audit查询审计日志,使用manage_alerts配置警报触发器,并通过manage_webhooks管理签名 Webhook 投递。 - 处理恢复与清理 — 使用
manage_trash恢复或清除软删除的密钥,并通过manage_ipallowlist管理保险库 IP 允许列表。
文档
MCP 服务器
通过专用、受限、可审计且对明文不可见的 AI 代理身份,将兼容 MCP 的 AI 客户端连接到 SikkerKey。
SikkerKey MCP 服务器将兼容 MCP 的 AI 客户端连接到 SikkerKey 管理平面。它允许 AI 助手通过专用 AI 代理身份协助管理项目、密钥元数据、策略、机器、警报、审计活动以及其他保险库操作。
MCP 服务器对已存储的密钥值具有读取不可见性。它可以创建或替换您主动提供的值,但没有任何工具可以检索现有已存储密钥的明文。
工作原理
MCP 服务器作为 AI 客户端的子进程在本地运行,并通过标准输入和输出与其通信。当 AI 调用 SikkerKey 工具时,服务器使用所选 AI 代理身份对相应的 SikkerKey API 请求进行签名。
- 本地身份。 AI 代理的 Ed25519 私钥在您的计算机上生成并存储。只有公钥注册到 SikkerKey。
- 签名请求。 每个请求都涵盖 HTTP 方法、路径、时间戳、一次性随机数和请求体哈希。被修改或重放的请求将无法通过验证。
- 受限授权。 管理范围控制保险库级操作。访问角色控制代理可以访问的应用程序、项目、密钥类型、机器操作和策略能力。
- 实时创建者绑定。 代理的有效访问权限永远不会超过创建它的用户当前的访问权限。如果该用户的访问权限被降低或移除,代理的权限将在下一个请求时收缩。
- 完整归属。 每次成功的更改都会在审计日志中以 AI 代理的身份记录。
要求
- 一个 SikkerKey 保险库
- 在保险库中配置 AI 代理的权限
- 兼容 MCP 的 AI 客户端
- 受支持的桌面或服务器平台
打包的服务器支持 Linux(x64 和 arm64)、macOS(x64 和 Apple 芯片)以及 Windows(x64)。它适用于任何可以通过 stdio 启动服务器的 MCP 客户端。
支持生成配置的客户端
- Claude Code
- Claude Desktop
- Cursor
- Codex
安装服务器
使用 npm 全局安装命令:
npm install -g sikkerkey-mcp
您也可以在不进行全局安装的情况下运行命令:
npx sikkerkey-mcp <subcommand>
设置 AI 代理
在 SikkerKey 仪表板中,打开“机器 → AI 代理”,然后选择“引导 AI 代理”。
选择代理应接收的管理范围和访问角色,然后复制一次性引导令牌。
在将运行 MCP 服务器的计算机上注册身份。
在仪表板中批准待处理的 AI 代理。
为您的 AI 客户端生成配置,将其粘贴到指定的配置文件中,然后重启客户端。
让已连接的客户端调用 whoami,并确认显示的保险库、范围、项目访问权限和代理状态。
注册身份
sikkerkey-mcp install <bootstrap-token>
在注册期间添加可选的本地显示名称:
sikkerkey-mcp install <bootstrap-token> -name="Operations assistant"
注册会在本地生成 Ed25519 密钥对,并将身份存储在:
~/.sikkerkey/agents/<agent-id>/
代理目录、身份文件和私钥均以受限权限创建。代理保持待处理状态,直到您从仪表板批准它。
生成客户端配置
sikkerkey-mcp config claude-code
sikkerkey-mcp config claude-desktop
sikkerkey-mcp config cursor
sikkerkey-mcp config codex
每个命令都会打印一个可直接粘贴的配置块以及该客户端使用的配置文件位置。生成的配置启动 sikkerkey-mcp serve,并使用 SIKKERKEY_AGENT_ID 选择代理。
为每个客户端、自动化环境或信任边界使用单独的 AI 代理身份。这样可以使权限和审计日志归属易于审查。
验证连接
重启 AI 客户端后,让它使用 whoami。此调用始终可用,并报告:
- AI 代理 ID 和名称
- 批准和启用状态
- 授予的管理范围
- 访问角色以及可访问的应用程序和项目
- 每个项目的功能
- 归属于该代理的最近 20 条审计条目
在敏感会话开始时或更改创建者角色、代理范围或其访问角色后,使用 whoami。
工具可以管理的内容
您可以用自然语言描述您想要的结果。AI 客户端选择合适的工具和操作,而 SikkerKey 会独立检查代理对每个请求的当前授权。
| 工具 | 用途 |
|---|---|
whoami | 确认活动代理、权限、项目访问权限、状态和最近的归属活动。 |
manage_projects | 浏览代理可以访问的应用程序和项目。 |
manage_secrets | 在允许的项目中管理密钥元数据、值、版本、轮换和计划托管密钥。 |
manage_temporary_secrets | 创建和检查一次性、自毁密钥共享。 |
manage_policies | 创建和管理访问策略及其密钥绑定。 |
manage_canaries | 植入、配置、布防或撤防蜜罐密钥,并恢复冻结的项目。 |
manage_machines | 列出、检查、批准、拒绝、重命名或撤销机器身份。 |
manage_project_machines | 将机器附加到项目并管理其显式的每密钥授权。 |
manage_enrollment | 为临时机器签发、检查和撤销注册令牌。 |
manage_ai_agents | 检查和管理 AI 代理生命周期状态、名称和批准。 |
manage_alerts | 选择哪些审计操作触发警报。 |
manage_webhooks | 创建和管理签名的警报投递 Webhook。 |
manage_ipallowlist | 管理机器认证和注册使用的保险库 IP 允许列表。 |
manage_trash | 列出、恢复或永久清除软删除的密钥。 |
read_audit | 查询活动、导出审计证据并查看使用统计信息。 |
support | 打开、阅读、回复和评价支持工单。 |
manage_sdks | 查找官方运行时 SDK 的安装和快速入门指南。 |
显示给 AI 客户端的工具是稳定的,但单个操作只有在所选代理在调用时具有所需的范围和项目能力时才会成功。
管理范围和项目访问权限
AI 代理接收两组互补的权限集。
管理范围
管理范围控制保险库级区域,如机器、AI 代理、注册、审计、警报、Webhook、IP 允许列表、回收站和支持。在功能支持的情况下,读取和写入范围可以分别授予。
访问角色
访问角色控制项目平面。它决定哪些应用程序和独立项目对代理可见,以及代理在每个项目中可以执行的操作,包括允许的密钥类型、机器附加和授权、策略和蜜罐。
SikkerKey 在每个请求上将两组权限集与创建用户当前的访问权限相交。代理不能使用 MCP 工具替换自己的管理范围或访问角色。
从覆盖预期工作流的最小范围和项目能力集开始。当代理确实需要时,稍后从仪表板添加访问权限。
已存储密钥值的处理方式
MCP 表面将密钥管理与运行时密钥检索分开。
- 元数据读取。 列出密钥、打开其详细信息或查看其版本历史会返回标识符、名称、类型、字段名、备注、版本和时间戳——而不是存储的值。
- 创建和更新。 当您主动提供用于创建或替换的值时,该值会通过 AI 客户端进入签名的写入请求,并由 SikkerKey 加密。响应返回元数据,不会回显该值。
- 服务器生成的轮换。 轮换和托管密钥创建可以在 SikkerKey 内部生成新值。AI 接收新版本和计划元数据,而不是生成的明文。
- 运行时检索。 应用程序通过官方 SDK 或 CLI 使用单独的机器身份读取密钥。AI 代理身份不能作为机器进行身份验证。
只有在您有意希望 AI 客户端在密钥写入中提交明文值时,才将其放入 AI 对话中。存储后,MCP 无法读回该值。
一次性凭据
某些管理操作会返回一次新生成的凭据,以便您完成其设置。这些包括注册令牌、新的 Webhook 签名密钥以及临时密钥共享的令牌和密码短语。请在创建时存储或交付它们;后续的列表和详细信息操作不会显示它们。
临时密钥共享面向人类接收者。打开其链接会消耗一次性显示,因此 AI 应交付共享详细信息而不是打开链接。
审计、批准和撤销
SikkerKey 使用 AI 代理的 ID 和名称记录每个管理操作。您可以从仪表板审计日志或通过 read_audit 查看活动。警报规则和 Webhook 可以在选定的代理操作发生时通知您。
您的 AI 客户端控制其在发送工具调用之前的确认提示。配置该客户端,要求对值得人工审查的更改进行确认,特别是永久删除、访问更改、机器撤销、策略更改、IP 允许列表更改和外部投递的消息。
禁用或撤销代理
- 禁用。 立即拒绝代理的签名请求,同时保留其范围和访问角色以供以后重新启用。
- 撤销。 删除服务器端的 AI 代理身份,并使本地密钥对无法用于将来的请求。
两者都在下一个请求时生效。从仪表板管理服务器端生命周期。撤销后,移除本地身份槽:
sikkerkey-mcp revoke <agent-id>
本地撤销命令会从此计算机中删除文件。它不会在 SikkerKey 仪表板中撤销 AI 代理。
使用多个 AI 代理
一台计算机可以存储多个 AI 代理身份。使用以下命令列出已注册的本地身份:
sikkerkey-mcp whoami
生成的客户端配置会为每个身份创建单独的服务器条目。如果您手动配置服务器,请将 SIKKERKEY_AGENT_ID 设置为该客户端应使用的确切代理:
{
"mcpServers": {
"sikkerkey": {
"command": "sikkerkey-mcp",
"args": ["serve"],
"env": {
"SIKKERKEY_AGENT_ID": "agent_..."
}
}
}
}
当只安装了一个身份时,服务器会自动选择它。当存在多个身份且未配置代理 ID 时,启动会停止并要求您选择,而不是隐式选择一个。
环境变量
| 变量 | 用途 |
|---|---|
SIKKERKEY_AGENT_ID | 选择 MCP 服务器使用的本地 AI 代理身份。 |
SIKKERKEY_HOME | 将本地 SikkerKey 身份根目录从默认的 ~/.sikkerkey 更改。 |
命令参考
| 命令 | 用途 |
|---|---|
sikkerkey-mcp install <token> | 使用一次性仪表板令牌注册新的本地 AI 代理身份。 |
sikkerkey-mcp whoami | 列出本地注册的 AI 代理身份。 |
sikkerkey-mcp config <client> | 为 Claude Code、Claude Desktop、Cursor 或 Codex 打印配置。 |
sikkerkey-mcp serve | 通过 stdio 运行 MCP 服务器。 |
sikkerkey-mcp revoke [agent-id] | 移除本地 AI 代理身份槽。 |
sikkerkey-mcp | 运行 MCP 服务器;等同于 serve。 |
源代码和许可证
SikkerKey MCP 服务器在 MIT 许可证下完全开源。通过 SikkerKeyOfficial GitHub 组织 审查认证、身份存储、协议处理、工具模式和请求行为。