mcpField
1
1password-environments

1password-environments

github.com/1password安全1541 次安装1 天前更新
代码仓库

关于 1password-environments

此技能通过本地 1Password MCP 服务管理 Developer Environment 变量,并将其挂载为 `.env` 文件;检查结果不包含秘密值。

主要功能

  1. 01列出 Developer Environment
  2. 02创建和重命名 Environment
  3. 03仅查看变量名,不返回值
  4. 04添加或更新变量
  5. 05将 Environment 挂载为 `.env` 文件

适用场景

  1. 01从 1Password 配置项目 `.env`
  2. 02安全检查已配置的变量名
  3. 03添加或更新项目凭据
  4. 04检查现有本地环境挂载

MCP 相关

此技能使用本地 1Password MCP 服务进行身份验证并管理 Developer Environment。服务只返回变量名,不返回秘密值,也可创建本地 `.env` 挂载。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/1password/1password-codex-plugin --skill 1password-environments

安装后在 Claude Code 中输入/1password-environments确认已加载。

附带文件agents/openai.yamlassets/icon.svg

详细介绍

1Password 环境

所有环境变量配置均使用本地 1Password MCP 服务。其工具只会返回变量名,不会返回机密值,因此机密信息会保留在 1Password 中。

适用场景

  • 用户提到 1Password Environments、1Password Developer Environments、1Password MCP 服务,或来自 1Password 的本地 .env 文件。
  • 用户要求从机密管理器设置、挂载、创建或同步项目 .env 文件,且 1Password 可用。
  • 用户要求使用 1Password 安全地配置仓库环境变量、API 密钥、令牌、凭据或机密信息。
  • 用户想要列出或比较 Environment 变量名,但不暴露机密值。

对于无关的密码管理器任务、任意本地 .env 文件解析,或非 1Password 机密存储,请勿使用此技能,除非用户要求将该配置迁移到 1Password。

要求

此技能依赖本地 1Password MCP 服务。如果当前会话中无法使用其工具,请帮助用户完成设置,不要自行臆测:

  1. 安装 1Password 桌面应用,前往 Settings > Developer,并启用 Integrate with MCP clients。

  2. 桌面应用会在 PATH 上安装 1password-mcp 别名(支持 macOS、Windows 和 Linux)。

  3. 将客户端配置为启动 1password-mcp 作为本地 MCP 服务。对于 Codex,将以下内容添加到 ~/.codex/config.toml:

    [mcp_servers.1password]
    command = "1password-mcp"
    

如果 Settings > Developer 中没有 Integrate with MCP clients,请更新 1Password。如果仍然没有该复选框,账户可能没有 ai-local-mcp-server 功能标志。如果该功能被管理员禁用,请让 管理员检查 Policies > Sharing and permissions > Agentic permissions > Local MCP server。

1Password 桌面应用会要求用户批准每个客户端连接,访问环境也可能需要额外批准。

工具

本地服务提供以下工具:

  • authenticate:向 1Password 桌面应用进行身份验证,并返回账户 ID。
  • list_environments:列出账户的 Developer Environments。
  • create_environment:创建新的 Developer Environment。
  • rename_environment:重命名现有的 Developer Environment。
  • list_variables:列出 Environment 中的变量名,不返回变量值。
  • append_variables:添加或更新 Environment 变量。
  • create_local_env_file:在 macOS 或 Linux 上将 Environment 挂载为本地 .env 文件。
  • list_local_env_files:列出 Environment 的本地 .env 挂载。

它还提供以下文档资源:

  • 1password://docs/getting-started
  • 1password://docs/environments-guide

工作流

  1. 如果当前轮次尚无账户 ID,请先调用 authenticate。1Password 桌面应用会要求用户批准连接。
  2. 后续调用使用 accountId。服务文档中返回值可能写作 account_id;MCP 工具调用使用 accountId 和 environmentId 等驼峰式参数。
  3. 在操作 Environment 前,使用返回的 accountId 调用 list_environments,除非用户已提供当前的 environmentId。
  4. 如果目标 Environment 不明确,请询问用户要使用哪个 Environment,不要猜测。
  5. 环境级调用使用服务返回的 environmentId。
  6. 用户想要查看 Environment 时,优先使用 list_variables。它只返回名称,不返回机密值。
  7. 仅当用户明确要求添加或更新变量时,才使用 append_variables。
  8. 在 macOS 或 Linux 上挂载本地 .env 文件时,使用 create_local_env_file,并传入用户指定的绝对路径 mountPath。
  9. 创建重复挂载前,使用 list_local_env_files 检查现有的本地挂载。

常见流程

将 1Password 挂载为此仓库的 .env
  1. 调用 authenticate。
  2. 调用 list_environments。
  3. 如果请求未明确指定 Environment,请让用户选择一个 Environment。
  4. 对选定的 Environment 调用 list_local_env_files,以避免重复挂载。
  5. 如果用户说“这里”“此仓库”或“此项目”,请将当前工作区的绝对 .env 路径用作 mountPath。
  6. 调用 create_local_env_file,并传入 accountId、environmentId、environmentName 和绝对 mountPath。
  7. 告知用户挂载路径和 Environment 名称,但不要读取已挂载的 .env 文件进行验证。
检查变量
  1. 调用 authenticate。
  2. 除非用户已提供 environmentId,否则调用 list_environments。
  3. 对环境级调用使用服务端返回的 environmentId。
  4. 调用 list_variables,并且只总结变量名称。
添加或更新变量
  1. 确认用户明确希望创建或更新变量,并收集任何缺失的名称或值。
  2. 调用 authenticate 并确定目标 Environment。
  3. 优先先调用 list_variables,以便确认请求的变量名称是否已存在。
  4. 使用当前会话中实际公开的 MCP 工具架构,调用 append_variables。
  5. 如果当前架构接受结构化变量对象,机密信息请使用 { "name": "API_KEY", "value": "...", "concealed": true },仅对 URL 或功能标志等非敏感值使用 concealed: false。
  6. 如果当前架构将 variables 定义为 string[],请勿发送不受支持的对象字段。请使用该架构要求的字符串格式;如果用户请求的变量格式不明确,请向用户确认。

错误处理

  • 如果身份验证或环境访问失败,请告知用户可能需要在 1Password 桌面应用中批准请求、解锁应用或访问账户。
  • 如果 MCP 工具不可用,请遵循上文“要求”部分,帮助用户启用并配置本地 MCP 服务。
  • 本地 .env 挂载仅记录了 macOS 和 Linux 的说明。

安全

  • 不要泄露、记录或回显机密值。
  • 不要仅为确认文件存在而读取已挂载的 .env 文件;请改用 MCP 工具。
  • 除非用户的请求已明确表达这一意图,否则在创建或修改 Environment 变量前请先询问。
  • 即使 1Password 不会将明文机密内容持久化到磁盘,也要将本地 .env 挂载视为敏感信息。
  • 如果用户在聊天中粘贴了机密信息,请避免再次复述;改用变量名称指代。

说明

评论

支持 Markdown