mcpField
1
1password-environments

1password-environments

github.com/1passwordセキュリティ1541 回インストール1 日前に更新
リポジトリ

1password-environments について

ローカルの 1Password MCP サーバーを使い、Developer Environment の変数管理や `.env` ファイルへのマウントを行うスキルです。変数の確認結果にシークレット値は含まれません。

主な機能

  1. 01Developer Environment の一覧表示
  2. 02Environment の作成と名前変更
  3. 03値を返さず変数名を確認
  4. 04変数の追加と更新
  5. 05Environment を `.env` ファイルにマウント

活用シーン

  1. 011Password からプロジェクトの `.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 デスクトップアプリをインストールし、設定 > 開発者を開いて、MCP クライアントとの統合をオンにします。

  2. デスクトップアプリにより、PATH に 1password-mcp エイリアスがインストールされます(macOS、Windows、Linux でサポートされています)。

  3. クライアントがローカル MCP サーバーとして 1password-mcp を起動するように設定します。Codex の場合は、以下を ~/.codex/config.toml に追加します。

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

設定 > 開発者にMCP クライアントとの統合が表示されない場合は、1Password を更新してください。チェックボックスが引き続き表示されない場合、アカウントに ai-local-mcp-server 機能フラグがない可能性があります。管理者によって無効にされている場合は、管理者にポリシー > 共有と権限 > エージェント権限 > ローカル MCP サーバーを確認してもらってください。

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:Environment を macOS または Linux のローカル .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. ユーザーから現在の environmentId がすでに提示されている場合を除き、Environment を操作する前に、返された accountId を指定して list_environments を呼び出します。
  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 を使用して既存のものを確認します。

一般的なフロー

このリポジトリの .env として 1Password をマウントする
  1. authenticate を呼び出します。
  2. list_environments を呼び出します。
  3. リクエストから Environment が明確に特定できない場合は、ユーザーに選択を依頼します。
  4. 選択した Environment に対して list_local_env_files を呼び出し、マウントの重複を避けます。
  5. ユーザーが「ここ」「このリポジトリ」「このプロジェクト」と言った場合は、現在のワークスペースにある .env の絶対パスを mountPath として使用します。
  6. accountId、environmentId、environmentName、絶対パスの mountPath を指定して create_local_env_file を呼び出します。
  7. マウントパスと Environment 名を報告します。ただし、マウントされた .env ファイルを読み取って確認してはいけません。
変数を確認する
  1. authenticate を呼び出します。
  2. ユーザーがすでに environmentId を指定している場合を除き、list_environments を呼び出します。
  3. Environment レベルの呼び出しには、サーバーから返された 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[] として公開されている場合、サポートされていないオブジェクトのフィールドを送信してはいけません。そのスキーマで必要な文字列形式を使用し、ユーザーが希望する変数形式が曖昧な場合は確認を求めます。

エラー処理

  • 認証または Environment へのアクセスに失敗した場合は、1Password デスクトップアプリで承認、ロック解除、またはアカウントへのアクセスが必要な可能性があることをユーザーに伝えます。
  • MCP ツールを利用できない場合は、上記の「要件」セクションに従って、ローカル MCP サーバーの有効化と設定をユーザーに案内します。
  • ローカルの .env マウントは macOS と Linux のみで説明されています。

安全性

  • シークレットの値を開示、ログ出力、またはそのまま返してはいけません。
  • 存在確認だけを目的に、マウントされた .env ファイルを読み取ってはいけません。代わりに MCP ツールを使用します。
  • ユーザーのリクエストですでに明示されている場合を除き、Environment 変数を作成または変更する前に確認を求めます。
  • 1Password が平文のシークレット内容をディスクに保存しない場合でも、ローカルの .env マウントは機密情報として扱います。
  • ユーザーがチャットにシークレットを貼り付けた場合は、それを繰り返さず、変数名で言及します。

注記

コメント