1password について
1Password MCP サーバーは、コミュニティが開発した MCP サーバーで、Claude、Cursor、VS Code Copilot などの MCP クライアントから 1Password サービスアカウント経由で保管庫と認証情報を管理できます。既定では秘密情報を会話に出さず、op:// 参照と op_run を優先します。
主な機能
- 01保管庫の項目の一覧表示、検索、読み取り
- 02reveal を指定しない限り機密フィールドを非表示
- 03op_run で子プロセスの環境に秘密情報を注入
- 04項目の作成、編集、アーカイブ、削除
- 05ランダムパスワードと覚えやすいパスフレーズの生成
- 06保管庫の許可リストによるアクセス制限
活用シーン
- 01AI アシスタントが API トークンを露出させずにコマンドで利用
- 02保管庫内の重複や異常な項目の監査
- 03データベースのパスワードをローテーションし op:// 参照を確認
MCP 対応
本プロジェクトは MCP サーバーであり、保管庫と項目のメタデータ向けに 15 のツール、4 つのプロンプト、3 つのリソースを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @takescake/1password-mcpOP_SERVICE_ACCOUNT_TOKENシークレットThe Service Account Token from 1Password (required unless OP_KEYCHAIN_SERVICE is used on macOS)OP_KEYCHAIN_SERVICEシークレットmacOS only: Keychain service name to read the 1Password service account token from when OP_SERVICE_ACCOUNT_TOKEN is not setOP_KEYCHAIN_ACCOUNTシークレットmacOS only: Optional Keychain account name to narrow the lookup used with OP_KEYCHAIN_SERVICEローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
13掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
1Password MCP サーバー
AI アシスタントに 1Password への鍵のかかった扉を渡しましょう。チャットにパスワードを山積みにする必要はありません。
@takescake/1password-mcp は、コミュニティ製の Model Context Protocol (MCP) サーバーです。Claude、Cursor、VS Code Copilot、OpenAI Codex、Gemini などの MCP クライアントから、1Password Service Account を通じて保管庫や認証情報を管理できます。
MCP TypeScript SDK v2 を基盤とし、2026-07-28(およびレガシークライアント)とのプロトコルネゴシエーションに対応しています。シークレットは 1Password 内に保持されます。エージェントは op:// 参照と op_run を優先するため、平文がモデルの会話履歴に含まれることはありません。
1Password の公式製品ではありません。 コミュニティ製で、Apache 2.0 ライセンスのもとで公開されています。
対象ユーザー
| あなたは… | 得られるもの… |
|---|---|
| 技術に詳しくない方 | 一度きりのセットアップです。サービスアカウントを作成し、AI アプリの MCP 設定にトークンを貼り付けたら、「自動化用保管庫を一覧表示して」「ステージング DB のパスワードをローテーションして」のように自然な言葉で依頼できます。 |
| エージェント/LLM | 型付きツール 15 個、ワークフロープロンプト 4 個、閲覧可能なリソース 3 個に加え、明確なルールがあります。シークレットを明かすより、op_run と op:// を優先してください。 |
| 開発者/SRE | アイテムの完全な CRUD、安全なノート、パスワード生成、保管庫の許可リスト、macOS での Keychain を使ったトークン読み込み、CI に適した環境変数設定が利用できます。 |
チームがこのサーバーを選ぶ理由
- セキュリティを重視したデフォルト設定 —
password_readはメタデータを返し、item_getはシークレットを含むフィールド(パスワード、SSH キー、OTP シード、カード番号)を非表示にします。reveal: trueを指定した場合を除きます。 op_run(MCP におけるop run相当) —op://vault/item/fieldをローカルコマンドの環境に注入します。解決されたシークレットは、ベストエフォートで返却される stdout/stderr から(一般的なエンコード形式を含め)マスキングされます。- 保管庫向けの充実したツール一式 — 一覧表示、検索、取得、編集、ログイン情報やノートの作成、パスワードのローテーション、アーカイブ、削除ができます。
- ガイド付きプロンプト — パスワード生成、認証情報のローテーション、保管庫の監査、シークレット参照の補助に対応します。
- 閲覧可能なリソース —
onepassword://…URI を通じて保管庫やアイテムのカタログを提供します(リソースのペイロードにシークレットは含まれません)。 - 最新の MCP — stdio トランスポート、Zod 4 スキーマ、MCP 2026-07-28 のネゴシエーションに対応し、レガシークライアントとの互換性も備えています。
利用できる機能
ツール(15)
エージェントと人が実際に使う方法に合わせて分類しています。
検索
| ツール | 機能 |
|---|---|
vault_list | サービスアカウントがアクセスできる保管庫を、ID、名前、説明、種類とともに一覧表示します。許可リストが設定されている場合は、その対象に限定されます。 |
item_lookup | タイトルの部分一致で保管庫を検索します。limit(最大 200)を指定できます。 |
item_list | 保管庫内のすべてのアイテムを(ID、タイトル、カテゴリ、タグ、updatedAt とともに)一覧表示します。シークレットは一切含まれません。 |
読み取り(デフォルトで安全)
| ツール | 内容 |
|---|---|
item_get | アイテムの全情報:タイトル、カテゴリ、タグ、メモ、フィールド。パスワードやその他の非表示フィールド、SSH 秘密鍵、OTP シード、カード番号などの秘密情報を含む値は、reveal: true を指定しない限り非表示のままです。既知の非秘密フィールドタイプのみ表示されます。メモはそのまま返されます。 op://… または vaultId + itemId を指定できます。 |
password_read | op://… または ID を使って、1 つのフィールド(デフォルトは password)を読み取ります。reveal: true を指定しない限り、メタデータのみです。 秘密情報を使用する場合は、op_run を優先してください。 |
op_check_ref | op://vault/item/field を検証し、秘密情報を含まないメタデータ(ボールト、アイテム、フィールド)のみを返します。値は返しません。 |
作成と更新
| ツール | 内容 |
|---|---|
password_create | ログインまたはパスワードのアイテムを作成します(ユーザー名、URL、タグ、メモ)。returnSecret のデフォルト値は false です。 |
note_create | タグやカスタムフィールドを任意で指定して、セキュアノートを作成します。 |
password_update | パスワードまたは非表示フィールドをローテーションします(フィールドがない場合は作成します)。 |
item_edit | タイトル、メモ(空の文字列で消去)、タグ、URL を更新し、フィールドを追加・更新または削除します。参照されていないフィールドは変更されません。 |
password_generate | 暗号学的に安全なランダムパスワードを生成します(長さ 8〜128、記号・数字・大文字の切り替えに対応)。 |
password_generate_memorable | 約 500 語のリストから覚えやすいパスフレーズを生成します(単語数、区切り文字、数字/記号の接尾辞を指定できます)。 |
秘密情報を明かさずに使用する
| ツール | 内容 |
|---|---|
op_run | 環境変数を設定してローカルコマンド(command または argv)を実行します。op://… に一致する値は子プロセス内のみで解決されます。解決された秘密情報は、返される出力から(可能な限り)マスキングされます(「セキュリティとプライバシー」を参照)。出力は各ストリームにつき 5 MiB までで、タイムアウト時はプロセスツリー全体が強制終了されます。cwd、shell、timeout_ms、stdin は任意です。 |
論理削除と完全削除
| ツール | 内容 |
|---|---|
item_archive | アイテムをアーカイブに移動します(通常の表示には出なくなります)。 |
item_delete | アイテムを完全に削除します — 取り消せません。 |
プロンプト(4)
| プロンプト | 使用する場面 |
|---|---|
generate-secure-password | パスワード(ランダムまたは覚えやすいもの)を生成し、任意で保存します。パスワードをチャットに出力することはありません。 |
credential-rotation | 検索 → アクセスを確認 → 生成 → 更新 → op:// 参照を確認します。 |
vault-audit | カテゴリ別にボールトの一覧を作成し、重複や異常を検出します — 秘密情報は決して明かしません。 |
secret-reference-helper | 名前から貼り付け可能な op://vault/item/field を作成します。 |
リソース(3)
| URI | 内容 |
|---|---|
onepassword://config | 秘密情報を含まないサーバー設定(名前、バージョン、ログレベル、トークンの取得元、Node バージョン)。 |
onepassword://vaults | アクセス可能なボールトの JSON リスト(許可リストが設定されている場合は、その範囲に限定されます)。 |
onepassword://vaults/{vaultId}/items | URI テンプレート(resources/templates/list に一覧表示):1 つのボールトのアイテムメタデータを含む JSON(秘密情報の値は含みません)。 |
4.x からのアップグレード: リソース URI は以前
1password://で始まっていましたが、URI スキームを数字で始めることはできないため、MCP クライアントは読み取れませんでした。ハードコードされた1password://URI はすべてonepassword://に置き換えてください。
はじめる前に
必要なものは 2 つです。
- Node.js 20 以降
- AI が使用するボールトへのアクセス権を持つ 1Password Service Account
サービスアカウントを作成する(わかりやすい説明)
- Web で 1Password アカウントにサインインします。
- Developer → Service Accounts を開きます(または 1Password のガイド を参照してください)。
- サービスアカウントを作成し、自動化で使用するボールトだけへのアクセス権を付与します(たとえば
AutomationまたはCIボールト。個人の銀行口座用ボールトは含めません)。 - トークンを一度だけコピーします。マスターキーのように扱ってください。
クイックスタート
Claude Desktop / Cursor / VS Code / ほとんどの IDE
MCP 設定に以下を追加します(ファイルはアプリによって異なります)。
{
"mcpServers": {
"1password": {
"command": "npx",
"args": ["-y", "@takescake/1password-mcp"],
"env": {
"OP_SERVICE_ACCOUNT_TOKEN": "YOUR_SERVICE_ACCOUNT_TOKEN"
}
}
}
}
アプリを再起動して、次を試してください:「1Password の保管庫を一覧表示して。」
macOS Keychain(設定ファイルにトークンを記載しない方法)
トークンを Keychain に保存し、サーバーから参照するように設定します。
{
"mcpServers": {
"1password": {
"command": "npx",
"args": ["-y", "@takescake/1password-mcp"],
"env": {
"OP_KEYCHAIN_SERVICE": "op-service-account-claude-automation",
"OP_KEYCHAIN_ACCOUNT": "your-macos-username"
}
}
}
}
トークンの解決順序: CLI(--service-account-token / --token)→ OP_SERVICE_ACCOUNT_TOKEN → macOS Keychain。サービス名だけで一意に特定できる場合は、OP_KEYCHAIN_ACCOUNT の設定は任意です。CLI フラグは使用しないでください。コマンドライン引数はほかのローカルプロセスから見えるため、使用するとサーバーは起動時に警告をログに記録します。
OpenAI Codex(TOML)
オプション A — 設定ファイルにトークンを記載:
[mcp_servers."1password"]
command = "npx"
args = ["-y", "@takescake/1password-mcp"]
[mcp_servers."1password".env]
OP_SERVICE_ACCOUNT_TOKEN = "YOUR_SERVICE_ACCOUNT_TOKEN"
オプション B (推奨) — 設定ファイルでは環境変数名のみを指定:
[mcp_servers."1password"]
command = "npx"
args = ["-y", "@takescake/1password-mcp"]
env_vars = ["OP_SERVICE_ACCOUNT_TOKEN"]
シェルまたは CI で OP_SERVICE_ACCOUNT_TOKEN を設定します。注意:codex mcp add ... --env OP_SERVICE_ACCOUNT_TOKEN=... を実行すると、シークレットが Codex の設定ファイルに書き込まれます。可能な場合は env_vars を使用してください。
macOS では、トークンの環境変数を省略して、代わりに OP_KEYCHAIN_SERVICE(および任意の OP_KEYCHAIN_ACCOUNT)を使用できます。
任意:サーバーがアクセスできる保管庫を制限する
デフォルトでは、サーバーはサービスアカウントが参照できるすべての保管庫を使用できます。許可リストを設定するには:
{
"env": {
"OP_SERVICE_ACCOUNT_TOKEN": "YOUR_SERVICE_ACCOUNT_TOKEN",
"OP_MCP_ALLOWED_VAULTS": "Automation, CI"
}
}
名前または ID を指定できます(大文字と小文字は区別されません)。--allowed-vaults でも同じ設定ができます。許可リストは、op_run / op_check_ref だけでなく、保管庫を扱うすべてのツールとリソースにサーバー全体で適用されます。
vault_listとonepassword://vaultsには、許可された保管庫のみが表示されます。vaultIdを受け取るツールとonepassword://vaults/{vaultId}/itemsリソースには、保管庫の名前ではなく ID を指定する必要があります。リスト外の保管庫は拒否されます。op://参照は、記述された内容と、実際に解決される保管庫の両方について検証されます。- 許可リストが設定されている場合、保護対象の各呼び出しで
vaults.listの読み取りが 1 回追加で行われます(サービスアカウントのレート制限にご注意ください)。保管庫の一覧を取得できない場合、サーバーは安全側に倒して処理を拒否します。
4.0.3 以前からアップグレードしますか? この設定が
op_run/op_check_refだけに適用される想定だった場合、現在はすべてを制限します。
これは多層防御です。まず 1Password でサービスアカウント自体がアクセスできる保管庫を制限してください。
エージェント向け:シークレットの取り扱い方法
毎回、次の順序に従ってください。
vault_list→item_lookup/item_listを使って検出します(メタデータのみ)。op_check_refで参照を確認します。パスが存在するか確認するだけの目的でrevealを実行しないでください。- コマンドまたは API 呼び出しでシークレットを使用するには、
envにop://vault/item/fieldを指定してop_runを使用します。 - 人がチャットで値を明示的に必要としている場合に限り、
password_read/item_getとreveal: trueを使って値を表示します。 password_generate→password_updateの順でローテーションします(依頼がない限り、returnSecret: falseのままにしてください)。- 永続的な削除が必要な場合を除き、
item_deleteよりもitem_archiveを優先してください。
op_run の例
{
"argv": ["curl", "-sS", "https://api.example.com/health"],
"env": {
"API_TOKEN": "op://Automation/Example API/credential"
},
"timeout_ms": 60000
}
可能な場合は、シェルの command 文字列より argv を優先してください。引用符の扱いで予期しない問題が起きにくくなります。
設定リファレンス
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
OP_SERVICE_ACCOUNT_TOKEN | 通常ははい | サービスアカウントのトークンです。Keychain 変数が設定されている場合、macOS では不要です。 |
OP_KEYCHAIN_SERVICE | いいえ | macOS:トークンの Keychain サービス名です。 |
OP_KEYCHAIN_ACCOUNT | いいえ | macOS:Keychain の検索対象を絞り込む任意のアカウントです。 |
OP_MCP_ALLOWED_VAULTS | いいえ | サーバー全体に適用される、サーバーが使用できる保管庫の名前または ID(大文字と小文字は区別されません)。カンマ区切りで指定します。空の場合は制限されません。 |
OP_INTEGRATION_NAME | いいえ | 1Password SDK に報告される名前(デフォルト:1password-mcp)。 |
OP_INTEGRATION_VERSION | いいえ | SDK に報告されるバージョン(デフォルト:パッケージのバージョン)。 |
MCP_LOG_LEVEL | いいえ | debug | info | warn | error(デフォルト:info)。 |
MCP_DEBUG | いいえ | 設定すると、デバッグログが強制的に有効になります。 |
CLI フラグ
--service-account-token <token> 1Password service account token (avoid: visible to other local processes)
--token <token> Alias for --service-account-token
--log-level <level> error | warn | info | debug (default: info)
--integration-name <name> Custom integration name for the 1Password SDK
--integration-version <version> Custom integration version
--allowed-vaults <list> Comma-separated vault allow-list (names or IDs), applied server-wide
セキュリティとプライバシー
大切な保管庫にサーバーを接続する前に、こちらをお読みください。
- LLM のプライバシー — モデルに提示した内容は、AI プロバイダーに送信され、そのポリシーに基づいて保持される場合があります。
- MCP では、通信中のシークレットはエンドツーエンドで暗号化されません — MCP のワークフロー内およびモデルに送られる値は平文です。保存後は 1Password で保存時に暗号化されます。
- 最適な用途 — 自動化用の認証情報:CI トークン、ボットアカウント、使い捨ての環境シークレット。
- 避けるべきもの — 銀行関連、主要な個人ログイン情報、リカバリーコード、またはモデルプロバイダーに公開されると困る情報。
- トークンはマスターキーです — サービスアカウントの権限を厳密に絞り、漏えいした場合は直ちにローテーションしてください。トークンやシークレットを含む MCP 設定をコミットしないでください。
- トークンには環境変数または Keychain を優先してください —
--token/--service-account-tokenを使うとプロセス引数にトークンが含まれ、ほかのローカルプロセスから読み取られる可能性があります(サーバー起動時に警告が表示されます)。同じユーザーのプロセスは通常、サーバーの環境変数も読み取れるため(Linux の/proc/<pid>/environなど)、macOS では Keychain が最も安全な選択肢です。設定ファイルやプロセス環境にトークンを残さずに済みます。 - 参照を優先してください —
op://…とop_runを使うほうが、パスワードをプロンプトやファイルに貼り付けるより安全です。 op_runはユーザー権限で任意のコマンドを実行します — MCP クライアントの承認プロンプトを有効にし、自動承認しないでください。- マスキングは可能な範囲で行われます —
op_runは、一般的なエンコード形式(base64、JSON エンコード、URL エンコード、複数行の値を含む)を含め、解決されたシークレットを返却される出力内でマスキングします。これにより、意図しない開示を防ぎます。ただし、これはサンドボックスではありません。コマンドによっては、渡されたシークレットを意図的に変換したり送信したりできます。 - ノートは隠されません —
item_getはノートをそのまま返します(op item getと同様です)。エージェントが読み取れる保管庫のノートにシークレットを保存しないでください。 - 最小権限 — アカウント全体を共有するより、専用の自動化用保管庫を使うほうが安全です。
OP_MCP_ALLOWED_VAULTSは第 2 の防護策であり、代替策ではありません。 - 脆弱性の報告 — 公開イシューを作成してください。SECURITY.md を参照してください。
プロトコルと互換性
| 項目 | 詳細 |
|---|---|
| パッケージ | @takescake/1password-mcp |
| ランタイム | Node.js ≥ 20 |
| トランスポート | stdio |
| MCP SDK | @modelcontextprotocol/server v2 |
| プロトコル | 2026-07-28 をネゴシエートし、旧クライアントとの互換性を維持します |
| レジストリ名 | io.github.CakeRepository/1password |
開発
git clone https://github.com/CakeRepository/1Password-MCP.git
cd 1Password-MCP
npm ci
npm run build
npm test
npm run lint
監視モード:npm run dev。
プロジェクト構成
src/
index.ts # Entrypoint — MCP stdio + protocol negotiation
server.ts # buildServer() — registers tools, prompts, resources
config.ts # CLI / env / Keychain / allow-list
client.ts # 1Password SDK client
logger.ts # Structured logs on stderr (stdout is protocol)
secret-ref.ts # op:// parsing & reference checks
vault-access.ts # Server-wide vault allow-list enforcement
redaction.ts # op_run output redaction
utils.ts # Result helpers, password generation
tools/ # All 15 MCP tools
prompts/ # Interactive workflow prompts
resources/ # onepassword:// resources
tests/
CONTRIBUTING.md を参照してください。メンテナー/エージェント向け:agents.md。
変更履歴
バージョン履歴については CHANGELOG.md を参照してください。5.0.0 リリース(リソース URI を 1password:// から onepassword:// に変更し、セキュリティを強化。アップグレードする前に Changed の注記をお読みください)、4.0.0 の MCP v2/2026-07-28 への移行、3.0.0 の op_run/表示のオプトインに関するセキュリティ変更などが含まれます。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。