1password-environments について
ローカルの 1Password MCP サーバーを使い、Developer Environment の変数管理や `.env` ファイルへのマウントを行うスキルです。変数の確認結果にシークレット値は含まれません。
主な機能
- 01Developer Environment の一覧表示
- 02Environment の作成と名前変更
- 03値を返さず変数名を確認
- 04変数の追加と更新
- 05Environment を `.env` ファイルにマウント
活用シーン
- 011Password からプロジェクトの `.env` を設定
- 02設定済み変数名の安全な確認
- 03プロジェクト認証情報の追加や更新
- 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 サーバーが必要です。現在のセッションでそのツールを利用できない場合は、独自の方法を試すのではなく、ユーザーがセットアップを完了できるよう支援してください。
-
1Password デスクトップアプリをインストールし、設定 > 開発者を開いて、MCP クライアントとの統合をオンにします。
-
デスクトップアプリにより、
PATHに1password-mcpエイリアスがインストールされます(macOS、Windows、Linux でサポートされています)。 -
クライアントがローカル 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-started1password://docs/environments-guide
ワークフロー
- このターンですでにアカウント ID を取得していない場合は、最初に
authenticateを呼び出します。1Password デスクトップアプリで接続の承認を求められます。 - 以降の呼び出しには
accountIdを使用します。サーバーのドキュメントでは返される値がaccount_idと表記される場合があります。MCP ツールの呼び出しでは、accountIdやenvironmentIdのようなキャメルケースのパラメーターを使用します。 - ユーザーから現在の
environmentIdがすでに提示されている場合を除き、Environment を操作する前に、返されたaccountIdを指定してlist_environmentsを呼び出します。 - 対象の Environment が特定できない場合は、推測せず、どの Environment を使用するかユーザーに尋ねます。
- 環境レベルの呼び出しには、サーバーから返された
environmentIdを使用します。 - ユーザーが Environment を確認したい場合は、
list_variablesを優先して使用します。返されるのは名前のみで、シークレットの値は返されません。 append_variablesは、ユーザーから変数の追加または更新を明示的に求められた場合にのみ使用します。- macOS または Linux でローカル
.envファイルをマウントするにはcreate_local_env_fileを使用し、ユーザーが希望する絶対パスをmountPathに渡します。 - 重複して作成しないよう、ローカルマウントを作成する前に
list_local_env_filesを使用して既存のものを確認します。
一般的なフロー
このリポジトリの .env として 1Password をマウントする
authenticateを呼び出します。list_environmentsを呼び出します。- リクエストから Environment が明確に特定できない場合は、ユーザーに選択を依頼します。
- 選択した Environment に対して
list_local_env_filesを呼び出し、マウントの重複を避けます。 - ユーザーが「ここ」「このリポジトリ」「このプロジェクト」と言った場合は、現在のワークスペースにある
.envの絶対パスをmountPathとして使用します。 accountId、environmentId、environmentName、絶対パスのmountPathを指定してcreate_local_env_fileを呼び出します。- マウントパスと Environment 名を報告します。ただし、マウントされた
.envファイルを読み取って確認してはいけません。
変数を確認する
authenticateを呼び出します。- ユーザーがすでに
environmentIdを指定している場合を除き、list_environmentsを呼び出します。 - Environment レベルの呼び出しには、サーバーから返された
environmentIdを使用します。 list_variablesを呼び出し、変数名のみを要約します。
変数を追加または更新する
- ユーザーが変数の作成または更新を明示的に希望していることを確認し、不足している名前や値を尋ねます。
authenticateを呼び出し、対象の Environment を特定します。- リクエストされた変数名がすでに存在するか確認できるよう、まず
list_variablesを呼び出すことを推奨します。 - 現在のセッションで公開されているアクティブな MCP ツールスキーマに厳密に従って
append_variablesを呼び出します。 - アクティブなスキーマが構造化変数オブジェクトを受け付ける場合、シークレットには
{ "name": "API_KEY", "value": "...", "concealed": true }を使用し、URL や機能フラグなどの機密でない値に限りconcealed: falseを使用します。 - アクティブなスキーマで
variablesがstring[]として公開されている場合、サポートされていないオブジェクトのフィールドを送信してはいけません。そのスキーマで必要な文字列形式を使用し、ユーザーが希望する変数形式が曖昧な場合は確認を求めます。
エラー処理
- 認証または Environment へのアクセスに失敗した場合は、1Password デスクトップアプリで承認、ロック解除、またはアカウントへのアクセスが必要な可能性があることをユーザーに伝えます。
- MCP ツールを利用できない場合は、上記の「要件」セクションに従って、ローカル MCP サーバーの有効化と設定をユーザーに案内します。
- ローカルの
.envマウントは macOS と Linux のみで説明されています。
安全性
- シークレットの値を開示、ログ出力、またはそのまま返してはいけません。
- 存在確認だけを目的に、マウントされた
.envファイルを読み取ってはいけません。代わりに MCP ツールを使用します。 - ユーザーのリクエストですでに明示されている場合を除き、Environment 変数を作成または変更する前に確認を求めます。
- 1Password が平文のシークレット内容をディスクに保存しない場合でも、ローカルの
.envマウントは機密情報として扱います。 - ユーザーがチャットにシークレットを貼り付けた場合は、それを繰り返さず、変数名で言及します。
注記
- 公式ドキュメント:https://www.1password.dev/environments および https://www.1password.dev/environments/mcp-codex-server
- このスキルは、MCP サーバーを自動的に設定する 1Password Codex プラグイン(https://github.com/1Password/1password-codex-plugin)の一部としても配布されています。