mcpField
K
Keyward

Keyward

本地服务
github.com开发工具219 周前更新

关于 Keyward

Keyward 是面向 AI 编码 Agent 的本地加密密钥代理。Agent 按名称申请密钥,经原生系统对话框逐次审批后,密钥仅注入项目文件,不会返回给模型。

主要功能

  1. 01本地加密密钥库
  2. 02按名称申请密钥
  3. 03系统对话框人工审批
  4. 04仅向项目文件注入密钥
  5. 05命令行管理与导入

适用场景

  1. 01避免密钥进入聊天记录
  2. 02在不同项目复用密钥
  3. 03从 .env 文件导入密钥

MCP 相关

提供标准输入输出(stdio)MCP 服务,包含 `list_keys` 和 `request_key` 工具。客户端可按名称申请密钥;审批后密钥注入目标文件,MCP 响应只提供确认信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

keyward — 面向 AI Agent 的密钥代理

keyward

只需保存一次 API 密钥。任何 AI 工具都可以在获得你批准后请求密钥,而且永远看不到密钥值。

CI MIT 兼容 MCP 跨平台


keyward 是一个开源、本地运行的加密AI 编码 Agent 密钥代理。无需将 API 密钥粘贴到聊天中(密钥会泄露到上下文和对话记录中),也无需在每个新会话、项目和 IDE 中重新输入相同的密钥;你只需将密钥保存在一个加密保险库中。当 Claude Code、Cursor、Gemini CLI 或任何支持 MCP 的工具需要密钥时,它会按名称请求密钥,你在原生 OS 提示框中批准这次请求,keyward 随即仅将该密钥注入你的项目。模型永远不会收到密钥值。

问题

  1. 密钥泄露到 AI 聊天中——将密钥粘贴到提示词中,密钥就会进入上下文、对话记录和日志。
  2. 重复输入的负担——每次新建会话、项目、IDE 或更换设备时,你都要重新输入相同的密钥。
  3. .env 文件散落各处——没有统一的可信来源;你会忘记密钥存放在哪里。
  4. 毫无控制——Agent 可以一次读取或获取所有密钥,而不是只获取所需的密钥。
  5. 工具绑定带来的麻烦——切换 IDE 或模型后,你必须重新设置所有密钥。

工作原理

AI tool ──request_key("STRIPE_KEY", project)──▶ keyward ──native approval──▶ you
                                                    │ approved
        ◀── "injected STRIPE_KEY → ./.env" ─────────┘   (value never shown to the model)
  • 保险库——使用 age 加密的文件(~/.keyward/vault.age,权限为 0600)。主密钥保存在 OS 密钥库(macOS Keychain / Windows Credential Manager / Linux libsecret)中,不会以明文形式存储在磁盘上。
  • 双重接口——面向 AI 工具的 MCP 服务(list_keys、request_key),以及处理其他事务的 keyward CLI。
  • 带外审批——审批对话框由 keyward 自行弹出,而不是在 Agent 的消息流中呈现,因此 Agent 无法自动批准。你可以选择批准一次、在本次会话中批准或拒绝。
  • 从设计上杜绝密钥值泄露——list_keys 只返回名称;request_key 返回确认信息;审计日志会记录决定,但绝不会记录密钥值。

安装

# Homebrew (macOS / Linux)
brew install arturayupov/tap/keyward

# Scoop (Windows)
scoop bucket add arturayupov https://github.com/arturayupov/scoop-bucket
scoop install keyward

# Go
go install github.com/arturayupov/keyward/cmd/keyward@latest

我们也会在每个版本发布页附上预编译二进制文件(macOS/Windows/Linux,amd64+arm64)。各 OS 的说明(包括 Linux libsecret)请参阅 INSTALL.md;遇到问题请参阅 TROUBLESHOOTING.md。

快速开始

# 1. create the encrypted vault (master key goes into your OS keystore)
keyward init

# 2. import keys you already have scattered in .env files
keyward import ~/projects

# 3. point your AI tool at keyward's MCP server (see below), then just ask:
#    "use my STRIPE_KEY for this project" → approve the prompt → done
将其用作 MCP 服务

keyward 是一个标准的 stdio MCP 服务,注册方式与官方 MCP 服务相同。只需两步:

1. 安装二进制文件(仅需一次)——使用上文中的 go install,或使用 Homebrew/Scoop(即将推出),也可以下载版本发布页中的二进制文件。

2. 在你的 AI 工具中注册:

# Claude Code — one command:
claude mcp add keyward -- keyward serve-mcp

也可以手动将其添加到配置中(~/.claude.json 或项目中的 .mcp.json):

{ "mcpServers": { "keyward": { "command": "keyward", "args": ["serve-mcp"] } } }

Cursor、Windsurf、Cline 和其他 MCP 客户端在其 MCP 设置中使用相同的 command/args 格式。重启工具,然后让它按名称使用某个密钥。

为什么不能“粘贴仓库 URL”? MCP 客户端不会从 GitHub 链接自动安装服务——这是有意为之,客户端不会运行任意远程代码。keyward 也特意设计为本地运行(它需要访问你的 OS 密钥库,并会写入本地文件),因此它不是远程/托管 URL 服务。以上两步是标准且安全的安装方式。完整操作指南请参阅 USAGE.md。

CLI 参考

命令说明
keyward init创建加密保险库和主密钥
keyward import [root]从 root 下的 .env 文件导入密钥,并按项目分组
keyward add NAME --ns NS添加/更新一个密钥,值从标准输入读取(适用于非 .env 凭据)
keyward ls [--ns NS]列出密钥名称和命名空间(绝不显示密钥值)
keyward inject NAME --ns NS --into PATH将一个密钥注入目标环境文件(会请求批准)
keyward serve-mcp通过 stdio 运行 MCP 服务

安全模型

  • 密钥值绝不会返回给 AI Agent——request_key 会将其注入目标文件,并且只返回确认信息。
  • 密钥值绝不会写入审计日志(~/.keyward/audit.jsonl 会记录工具、密钥、命名空间、目标和决策,不包含密钥值),也绝不会由 ls/inject 打印。
  • 批准通过带外方式进行:使用 Agent 无法点击的原生 OS 对话框。所有对话框后端都会在故障时拒绝——任何错误或取消操作都会被视为拒绝。
  • 保险库使用 age 进行静态加密;主密钥存储在 OS 密钥库中。

这些不变量通过自动化测试来保证。详情和威胁模型请参阅 SECURITY.md。

比较

keywardenvchainpass / sops1Password CLI
本地加密存储✅✅ (Keychain)✅✅(云端)
Agent 按名称请求密钥✅❌❌❌
每次请求都需人工批准✅❌❌❌
密钥值绝不传给模型✅不适用不适用不适用
面向 AI 工具的 MCP 服务✅❌❌❌
开源✅ (MIT)✅✅❌

加密存储问题已经解决;keyward 在此基础上补上了缺失的面向 Agent、需经批准的代理层。诚实、详尽的比较(包括各替代方案更适用的场景)请参阅 docs/comparisons。

路线图

完整详情请参阅 ROADMAP.md。主要内容:

  • v0.2 — 已签名/公证的二进制文件(无需密钥库提示)、Homebrew/Scoop、生物识别批准(Touch ID / Windows Hello)、Windows ACL 加固。
  • v1.0 — 托盘/菜单栏应用、按密钥设置策略和允许列表、轮换提醒、target: "env" 注入。
  • v2.0 — 加密的多设备同步(用户自有后端)、团队模式。

参与贡献

欢迎贡献——请参阅 CONTRIBUTING.md。发现安全问题?请参阅 SECURITY.md 了解负责任的漏洞披露方式。

许可证

MIT © 2026 Artur Ayupov

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。