mcpField
O
onepassword

onepassword

本地服务
github.com/pulsemcp安全818 周前更新

关于 onepassword

1Password MCP 服务通过 1Password CLI 让 AI 助手访问和管理保险库中的凭据。服务在显示凭据或创建条目前通过 elicitation 请求用户确认,并支持按操作和按条目配置确认规则。

主要功能

  1. 01读取凭据前通过 elicitation 请求用户确认
  2. 02读取与写入的确认可分别配置
  3. 03白名单条目可跳过确认提示
  4. 04支持使用服务账户令牌进行自动化认证
  5. 05通过工具分组控制只读或写入权限

适用场景

  1. 01让助手在用户批准后查找并读取某个 API 密钥
  2. 02在只读分组中检查某条目是否存在及其字段结构
  3. 03让助手创建新的登录条目或安全笔记

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 1Password 保险库的列出、读取和创建相关工具,以及 onepassword://config 资源。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"com-pulsemcp-onepassword": {
"command": "npx",
"args": [
"-y",
"onepassword-mcp-server"
],
"env": {
"OP_SERVICE_ACCOUNT_TOKEN": "<OP_SERVICE_ACCOUNT_TOKEN>",
"ENABLED_TOOLGROUPS": "<ENABLED_TOOLGROUPS>",
"SKIP_HEALTH_CHECKS": "<SKIP_HEALTH_CHECKS>",
"DANGEROUSLY_SKIP_ELICITATIONS": "<DANGEROUSLY_SKIP_ELICITATIONS>",
"OP_ELICITATION_READ": "<OP_ELICITATION_READ>",
"OP_ELICITATION_WRITE": "<OP_ELICITATION_WRITE>",
"OP_WHITELISTED_ITEMS": "<OP_WHITELISTED_ITEMS>"
}
}
}
}
启动命令npx -y onepassword-mcp-server
需要配置的环境变量
OP_SERVICE_ACCOUNT_TOKEN密钥Service account token for authentication with 1Password CLI.
ENABLED_TOOLGROUPSComma-separated tool groups to enable (readonly, write).
SKIP_HEALTH_CHECKSSkip credential validation on server startup.
DANGEROUSLY_SKIP_ELICITATIONSBypass all credential approval prompts (exposes all secrets).
OP_ELICITATION_READPrompt for approval before revealing credentials.
OP_ELICITATION_WRITEPrompt for approval before creating or sharing items.
OP_WHITELISTED_ITEMSComma-separated item titles or IDs that bypass read elicitation.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmonepassword-mcp-server0.5.4

工具

还没有获取到工具列表

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

详细介绍

1Password MCP 服务

用于通过 CLI 与 1Password 交互的 MCP 服务。让 AI 助手能够安全地访问和管理存储在 1Password 保管库中的凭据。

亮点

  • 基于征询的审批 - 在显示凭据或创建条目前,系统会提示用户确认
  • 可按操作配置 - 可分别为读取和写入操作启用或禁用征询
  • 条目白名单 - 可预先批准特定条目,以跳过征询提示
  • 通过 1Password CLI 安全访问凭据
  • 支持用于自动化的服务账户身份验证
  • 支持对保管库和条目进行读取和写入操作
  • 按工具分组,以进行基于权限的访问控制

前置条件

  1. 1Password CLI (op) - 必须已安装并可通过 PATH 使用

  2. 1Password 服务账户 - 身份验证所必需

功能

工具
工具分组说明
onepassword_list_vaultsreadonly列出所有可访问的保管库
onepassword_list_itemsreadonly列出指定保管库中的条目
onepassword_get_itemreadonly获取条目详情(显示凭据需要审批)
onepassword_get_item_metadatareadonly获取条目元数据(标题、字段、保管库、标签),不包含机密值 — 无需审批提示
onepassword_list_items_by_tagreadonly按标签查找条目
onepassword_create_loginwrite创建新的登录凭据(需要审批)
onepassword_create_secure_notewrite创建新的安全备注(需要审批)
onepassword_share_itemwrite为现有条目生成分享 URL(需要审批)
onepassword_create_api_credentialwrite创建新的 API 凭据条目(需要审批)
资源
资源说明
onepassword://config服务配置和状态(用于调试)
工具分组

通过 ENABLED_TOOLGROUPS 环境变量控制可用的工具:

分组说明
readonly只读操作(列出、获取)
write写入操作(创建)

示例:

  • ENABLED_TOOLGROUPS="readonly" - 仅启用读取操作(适用于大多数情况,更安全)
  • ENABLED_TOOLGROUPS="readonly,write" - 完全访问权限
  • 未设置 - 启用所有工具(默认)

快速开始

安装
npx onepassword-mcp-server
配置

设置必需的环境变量:

export OP_SERVICE_ACCOUNT_TOKEN="your-service-account-token"
Claude Desktop 配置

macOS:~/Library/Application Support/Claude/claude_desktop_config.json

Windows:%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "onepassword": {
      "command": "npx",
      "args": ["-y", "onepassword-mcp-server"],
      "env": {
        "OP_SERVICE_ACCOUNT_TOKEN": "your-service-account-token",
        "ENABLED_TOOLGROUPS": "readonly"
      }
    }
  }
}

重启 Claude Desktop,即可开始使用!

环境变量

变量必填描述默认值
OP_SERVICE_ACCOUNT_TOKEN是1Password 服务账户令牌-
ENABLED_TOOLGROUPS否以逗号分隔的工具组全部启用
SKIP_HEALTH_CHECKS否启动时跳过凭证验证false
DANGEROUSLY_SKIP_ELICITATIONS否设置为 true 以绕过所有确认提示(会暴露所有密钥)未设置(需要征询)
OP_ELICITATION_READ否显示凭证前征询true
OP_ELICITATION_WRITE否创建或共享项目之前征询false
OP_WHITELISTED_ITEMS否以逗号分隔的项目标题或 ID,读取时无需征询无

安全注意事项

  • 启动安全检查:除非已配置征询(HTTP 备用 URL),或通过 DANGEROUSLY_SKIP_ELICITATIONS=true 明确选择跳过,否则服务会拒绝启动。这可以防止意外地不受限制地访问所有密钥。
  • 基于征询的批准(读取):默认情况下,get_item 会在显示敏感凭证前提示用户确认。读取操作会暴露现有密钥,因此默认启用提示。
  • 默认不在写入时征询:写入操作(create_login、create_secure_note、create_api_credential、share_item)默认不会提示。写入操作只会创建新项目,或为现有项目生成共享 URL;这些工具无法覆盖或删除现有数据,因此增加提示步骤并无必要。设置 OP_ELICITATION_WRITE=true 可启用写入确认。
  • 服务账户令牌:通过环境变量传入,绝不会记录到日志中
  • CLI 参数:创建操作的密码会作为 CLI 参数传入(会短暂显示在进程列表中)
  • 建议:除非确实需要写入权限,否则请使用 readonly 工具组
凭证审批的工作方式
  1. 默认情况下,onepassword_get_item 会返回项目元数据,但敏感字段会显示为 [REDACTED]
  2. 服务会通过征询提示用户批准访问凭证
  3. 获得批准后,本次请求会返回完整凭证
  4. 通过 OP_WHITELISTED_ITEMS 添加的白名单项目(按标题或项目 ID 匹配)会完全绕过批准提示
无需批准即可检查是否存在

onepassword_get_item_metadata 是 onepassword_get_item 的仅元数据版本。它会返回相同的项目结构(标题、类别、保管库、标签、字段标签、类型、URL、日期,以及非敏感字段值),但会彻底移除敏感字段的值——不显示 [REDACTED] 占位符,也不会泄露信息——并且绝不会触发批准提示。如果你只需要确认“保管库 Y 中是否存在标题为 X 的项目?”或“此项目有哪些字段?”,请使用它。只有在确实需要读取凭证值时,才调用 onepassword_get_item。

配置示例

禁用所有确认(适用于全自动工作流):

DANGEROUSLY_SKIP_ELICITATIONS=true

仅确认写入,自动批准读取(启动时需要 HTTP 回退 URL——DANGEROUSLY_SKIP_ELICITATIONS=true 会覆盖各操作的设置):

ELICITATION_REQUEST_URL="https://your-endpoint/request"
ELICITATION_POLL_URL="https://your-endpoint/poll"
OP_ELICITATION_READ=false
OP_ELICITATION_WRITE=true

默认行为(读取时提示,写入时不提示——推荐用于大多数 Agent 使用场景):

ELICITATION_REQUEST_URL="https://your-endpoint/request"
ELICITATION_POLL_URL="https://your-endpoint/poll"
# OP_ELICITATION_READ defaults to true
# OP_ELICITATION_WRITE defaults to false

按标题或 ID 将特定项目加入白名单(始终自动批准这些项目):

OP_WHITELISTED_ITEMS="Stripe Key,AWS Credentials,abc123def456"

开发

项目结构
onepassword-mcp-server/
├── local/                 # Local server implementation
│   └── src/
│       ├── index.ts      # Main entry point
│       └── index.integration-with-mock.ts
├── shared/               # Shared business logic
│   └── src/
│       ├── server.ts     # Server factory
│       ├── tools.ts      # Tool registration
│       ├── tools/        # Individual tools
│       ├── onepassword-client/  # CLI wrapper
│       └── types.ts      # TypeScript types
├── tests/                # Test suite
│   ├── functional/       # Unit tests
│   ├── integration/      # MCP protocol tests
│   └── manual/          # Real CLI tests
└── package.json
本地运行
# Install dependencies
npm run install-all

# Build
npm run build

# Run tests
npm test

# Run integration tests
npm run test:integration

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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