ClineやCursorなどのAIエージェントでMCPサーバーを利用する際、設定ファイルにMCPサーバーのAPIトークンを記載する必要がある。
ファイルに認証情報を書くことはできるだけ避けたいので、1Passwordから読み込む形式にする。
GitHubの公式MCPサーバーなどは、Dockerイメージで提供されるものも多い。
Dockerイメージで提供されるMCPサーバーに1Passwordで管理するAPIトークンを渡すには、環境変数ファイルを介する方法がある。
このページでは、GitHub公式のMCPサーバーを例に設定方法を説明する。
動作を確認したバージョン
- 1Password CLI:v2.28.0
- Docker v27.4.0
前提
- 1Passwordで、MCPサーバーに渡したいAPIトークンを管理していること
- AIエージェントでMCPサーバーの初期設定が終わっていること
- Dockerを起動していること
.env.localファイルの設定
- 
ワークスペース内に、次の内容で .env.localファイルを作成する。.env.localGITHUB_PERSONAL_ACCESS_TOKEN='op://VAULT_NAME/ITEM_NAME/FIELD_NAME' # 例 # GITHUB_PERSONAL_ACCESS_TOKEN='op://Private/GitHub PAT Private/token'次の値は、自分の1Passowordで保存している内容に置き換える。 - VAULT_NAME:1Passwordの保管庫名
 保管庫名は、- op vault listコマンドで確認できる。
- ITEM_NAME:1Passwordのアイテム名
- FIELD_NAME:1Passwordのフィールド名
  
- 
.env.localファイルに、読み取り専用の権限を付与する。chmod 755 .env.local
MCPサーバーの設定ファイルへの追記
MCPサーバーの設定ファイルに次の内容を追記する。
op runコマンドは、「op://」で始まる値を、1Passwordで管理している値に置き換えた状態で、アプリケーションのプロセスに環境変数を渡すコマンドである。
下記の場合は、GITHUB_PERSONAL_ACCESS_TOKENに値がセットされた状態で、docker runが実行される。
なお、--env-fileに指定するパスは、.env.localまでの絶対パスにする。
cline_mcp_settings.json
{
  "mcpServers": {
    "github": {
      "command": "op",
      "args": [
        "run",
        "--env-file=/your-workspace-path/.env.local",
        "--",
        "docker",
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}
設定ファイルを保存すると、MCPサーバーへの接続確認が行われる。
エラーなしに接続できれば、設定が完了している。
Docker側の確認
起動しているDockerコンテナの中で、環境変数が設定されていることも確認できる。
