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コンテナの中で、環境変数が設定されていることも確認できる。