OTPilot について
OTPilot で承認されたアカウントを使って Web サイトにログインし、コマンドを実行する MCP サーバーです。パスワードや 2FA コードはエージェントに返しません。OTPilot のブラウザー拡張機能で、エージェントごとにアカウントとアクセス制限を設定できます。
主な機能
- 01承認済みアカウントでのサイトログイン
- 02コマンド環境へのシークレット注入
- 03コマンド出力からのシークレット除去
- 04エージェント別のアカウント承認と制限
- 05追加アカウントへのアクセス申請
活用シーン
- 01認証情報を見せずにサイトへログイン
- 02機密の環境値が必要なコマンドの実行
- 03選択したアカウントへのエージェントのアクセス許可
MCP 対応
stdio MCP サーバーは、アカウントの一覧表示とアクセス申請、browser_login によるログイン、コマンド実行、申請状態の確認ツールを提供します。シークレットはエージェントに返されず、コマンド出力から除去されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AI エージェント向け OTPilot(@otpilot/mcp)
Claude Code、Codex、Cursor、または任意の MCP エージェントを使って、パスワードと 2FA コードをエージェントに一切見せずに、ウェブサイトにサインインしてコマンドを実行できます。各エージェントに使用を許可するアカウントは、OTPilot のブラウザー拡張機能で選択できます。
npx -y @otpilot/mcp@latest connect
- 確認コードが表示され、OTPilot にサインインするページが開きます(無料アカウントでも使用できます)。
- 拡張機能の Agents にエージェントが表示されます。コードが一致したら承認してください。
- アカウントをいくつか許可するか(Agents → + Add account)、作業中にエージェントからリクエストさせます。
Claude Code プラグイン(MCP サーバーと、Claude に使い方を教えるスキル):
/plugin install otpilot --marketplace OTPilot/OTPilot
(Claude Code 2.1.275 より前のバージョンでは、まず /plugin marketplace add OTPilot/OTPilot を実行し、続けて /plugin install otpilot@otpilot を実行してください。)
続いて、npx -y @otpilot/mcp@latest connect --name "Claude Code" を一度だけ実行して接続します。
または、エージェントにサーバーを自分で追加します(connect を実行すると、設定内容が表示されます)。
| エージェント | |
|---|---|
| Claude Code | claude mcp add otpilot -- npx -y @otpilot/mcp@latest |
| Codex | ~/.codex/config.toml:[mcp_servers.otpilot] command = "npx" args = ["-y", "@otpilot/mcp@latest"] |
| Cursor | ~/.cursor/mcp.json:{ "mcpServers": { "otpilot": { "command": "npx", "args": ["-y", "@otpilot/mcp@latest"] } } } |
Codex など、AGENTS.md を読むエージェントでは、パスワード、2FA コード、API キー、その他のログイン情報には otpilot MCP ツール(list_accounts、browser_login、run)を使用し、シークレットの貼り付けを求めないように指示する行を追加してください。
各エージェントはそれぞれ別の ID として扱われ、個別に承認されます。Claude Code と Codex は別々に接続し(connect --name Codex)、connect の表示に従って --profile <name> を追加してください。
サーバーまたは VPS で使用する場合
エージェントを実行する場所(ノートパソコン、VPS、コンテナー)で実行してください。ブラウザーのないサーバーでは、リンクを開く処理をスキップし、表示されたリンクを OTPilot にサインイン済みの任意のデバイスで開きます。その後、コードが一致したら拡張機能で承認してください。
npx -y @otpilot/mcp@latest connect --name VPS --no-open
npx -y @otpilot/mcp@latest --profile vps # what the agent runs
npx playwright install --with-deps chromium # only for browser_login without Chrome
キーチェーンのない環境(素の Linux マシン)では、認証情報は ~/.config/otpilot/mcp-<profile>.json(0600)に保存されます。許可したアカウントはそのマシンで開かれるため、信頼できるマシンだけを接続してください。そこで root 権限を持つ人は誰でも、それらのアカウントを使用できます。
ツール
| ツール | エージェントに提供される内容 |
|---|---|
list_accounts | 使用可能なアカウントの名前とサイト |
request_access(query, reason) | 別のアカウントへのアクセスをリクエストします。拡張機能でアカウントを選択できます |
browser_login(account, url?) | OTPilot がサインインを行います(ユーザー名、パスワード、2FA はアカウントのサイト上でのみ使用されます)。セッションを含む Playwright の storageState ファイルを返します |
run(command, env) | シークレットを環境変数としてコマンドを実行します({ "PGPASSWORD": "Staging DB/password" }、新しい 2FA コードは …/totp)。出力からはすべてのシークレットが削除されます |
check_request(request_id) | 保留中のリクエストに回答したかどうかを確認します |
どのツールも、パスワード、2FA コード、その他の値を返しません。
セキュリティ
- エージェント専用の鍵。
connectは ECDH P-256 の鍵ペアを作成し、秘密鍵は OS のキーチェーンに保存されます。許可したアカウントごとにコピーが作成され、選択した情報(2FA コードのみ、サインイン情報、または選択したフィールドのみ)が含まれます。拡張機能内でその鍵を使って暗号化されるため、OTPilot のサーバーには暗号文しか見えません。 - 2段階の承認。 エージェントを接続しても、何も許可されません。各アカウントはエージェントごとに許可します。検証コードは両方の側でエージェントの公開鍵から生成されるため、鍵がすり替えられるとコードが異なります。
- 設定できる制限: 一定期間または取り消すまで許可する、「毎回確認する」、および「次のコマンドのみ許可する」などがあります。
runは指定したプログラムのみを受け付けます。プログラム名で呼び出され、サーバーの PATH 上で解決されます(作業ディレクトリや一時ディレクトリからは実行されません)。コマンドの連結やリダイレクトを含まない単一のコマンドとして実行されます。これはミスや単純なトリックを防ぐための対策であり、エージェントが独自のバイナリを PATH 上に配置することまでは防げません。 - HTTPS のみで通信します(ローカルホストでは通常の HTTP も使用できます)。返される内容からは、出力を切り詰める前にすべてのシークレットが除去されるため、途中までしか除去されていないシークレットは残りません。タイムアウトが発生すると、コマンドとそのコマンドが起動したすべてのプロセスが終了します。
- 正しいサイトでのみ動作します。
browser_loginは、アカウントに保存されたサイトの範囲内にあるページにのみ入力します。 - 拡張機能の「エージェント」ビューから、アクティビティの確認やアクセスの取り消しができます。
- 正直な制限: コマンドを実行するエージェントは、その実行内容を決定でき、意図的にシークレットを漏えいさせようとする可能性があります。OTPilot は返される内容からシークレットを除去します。機密性の高いアカウントでは、2FA コードのみを許可する、コマンドを制限する、または「毎回確認する」を有効にしてください。
コマンド
otpilot-mcp connect [--name "Claude Code"] [--profile p] [--no-open]
otpilot-mcp status [--profile p] # name, verification code, allowed accounts
otpilot-mcp disconnect [--profile p] # forget the credentials here (revoke it in the extension too)
otpilot-mcp [serve] [--profile p] # the MCP server (stdio) — what your agent runs
browser_login は、インストール済みの Google Chrome(または Edge)を使用します。どちらもない場合は、npx playwright install chromium を実行してください。セッションは作業ディレクトリ内の .otpilot/ に保存されます。git の対象から除外してください。
ライセンス:GPL-3.0。ソース:github.com/OTPilot/OTPilot。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。