mcpField
O
onepassword

onepassword

ローカル
github.com/pulsemcpセキュリティ818 週間前に更新

onepassword について

1Password MCP サーバーは、1Password CLI を通じて AI アシスタントが保管庫内の認証情報にアクセスし、管理するための MCP サーバーです。認証情報の表示や項目の作成の前に、elicitation でユーザーの承認を求めます。確認の設定は操作ごと、項目ごとに構成できます。

主な機能

  1. 01認証情報の表示前に elicitation で承認を求める仕組み
  2. 02読み取りと書き込みで個別に設定できる確認
  3. 03承認プロンプトを省略するホワイトリスト項目
  4. 04自動化向けのサービスアカウントトークン認証
  5. 05読み取り専用または書き込みの権限を制御するツールグループ

活用シーン

  1. 01ユーザーの承認後にアシスタントが API キーを検索して読み取る
  2. 02読み取り専用の環境で項目の存在とフィールド構成を確認する
  3. 03アシスタント経由でログイン項目やセキュアノートを作成する

MCP 対応

本プロジェクトは MCP サーバーであり、1Password 保管庫の一覧取得、読み取り、作成に関するツールと onepassword://config リソースを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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_vaults読み取り専用アクセス可能なすべての保管庫を一覧表示します
onepassword_list_items読み取り専用特定の保管庫内のアイテムを一覧表示します
onepassword_get_item読み取り専用アイテムの詳細を取得します(認証情報を表示するには承認が必要です)
onepassword_get_item_metadata読み取り専用シークレット値を含めずにアイテムのメタデータ(タイトル、フィールド、保管庫、タグ)を取得します — 確認プロンプトはありません
onepassword_list_items_by_tag読み取り専用タグでアイテムを検索します
onepassword_create_login書き込み新しいログイン認証情報を作成します(承認が必要です)
onepassword_create_secure_note書き込み新しいセキュアノートを作成します(承認が必要です)
onepassword_share_item書き込み既存のアイテムの共有 URL を発行します(承認が必要です)
onepassword_create_api_credential書き込み新しい API Credential アイテムを作成します(承認が必要です)
リソース
リソース説明
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

デフォルトの動作(読み取り時にプロンプトを表示し、書き込み時は確認なし — 多くのエージェントのユースケースにおすすめ):

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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。