Codex: 1Password の MCP で .env を「平文で書かない」形でマウントする
1Password Environments の MCP サーバーを Codex につなぐと、.env を名前付きパイプとしてマウントできる。読まれたときだけ 1Password が値を流すので、ディスクに秘密が残らない。
どんな時に使う?
- エージェントに開発サーバーを起動させたいが、
.envの中身を平文で置きたくない - サービスアカウントの JSON など、ファイルで渡す必要がある秘密も扱いたい
手順の流れ
- 1Password 側で Environment を作り、変数を登録
- Codex の MCP 設定に 1Password Environments の MCP サーバーを追加(設定はパスを指定するだけ)。公式の Codex プラグインもある
- Codex に「この Environment を
/絶対パス/.envにマウントして」と頼む(MCP ツールcreate_local_env_file、確認はlist_local_env_files) - マウントされたファイルは
prw-------の名前付きパイプ(FIFO)。アプリが読んだときにメモリ上で値が渡される
注意点
- macOS/Linux のみ
- パイプでもアプリが読めば値はプロセスに入る。エージェントが
cat .envすれば見えてしまうので、.envの Read を deny にするなど併用する(ptuf: 1コマンドで PreToolUse フックを入れ、.env や危険コマンドを止める) - AWS Secrets Manager との同期を組み合わせる案も出ている
- 関連: エージェントを隔離して動かす選択肢(nono / Docker Sandboxes / agentos / VPS)