Luxor Sandbox MCP について
Luxor Sandbox MCPは、Luxor Sandbox向けのMCPサーバーで、AIエージェントに使い捨てのmicroVMを提供し、コードを隔離実行できます。ファイルやGitの操作に加え、サンドボックス、ポート、プレビューURL、スナップショット、ボリュームも扱えます。
主な機能
- 01microVMサンドボックスでのコード実行
- 02ファイルの読み書きと管理
- 03リポジトリのクローンとGit操作
- 04サンドボックス、スナップショット、ボリュームの管理
- 05ポート公開とプレビューURLの作成
- 06読み取り専用ツールの設定
活用シーン
- 01隔離されたサンドボックスでのスクリプト実行
- 02サンドボックス内のプロジェクトファイルの確認・編集
- 03リポジトリのクローンと差分の確認
- 04実行中アプリのプレビューURL作成
MCP 対応
コード実行、ファイル、Git、サンドボックス管理、プレビューのツールをMCP経由で公開し、stdioまたはStreamable HTTPで接続できます。ローカルで認証情報を設定する方式と、Luxorが提供するホスト型リモートMCPサーバーに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @luxorai/mcpLUXORAI_API_KEYシークレットLuxor API key (starts with lx_; tk_ is still accepted). Alternatively set LUXORAI_AUTH_TOKEN (an ory_st_ session token or session cookie); the header is chosen by token prefix. TENKI_* names are still accepted.LUXORAI_API_ENDPOINTOverride the control-plane endpoint. Defaults to https://api.tenki.cloud (the same API as https://api.luxor.ai).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
82掲載時のツール一覧 · 今日に更新
このツールにパラメーターはありません。
詳細
Luxor MCP:@luxorai/mcp
Luxor AI の Luxor Agent Cloud の一部である Luxor Sandbox 用の Model Context Protocol サーバーです。 任意のエージェント(Claude、Codex、Cursor)に、作成してコードを実行し、ファイルを読み書きし、git を実行して、ウェブに公開できる使い捨てのマイクロ VM を提供します。サンドボックスは約 2 秒で起動し、秒単位で課金されます。
エージェントがコードを書き、Luxor がそれを隔離環境で実行します。(Luxor Code Review と Luxor のマネージド CI ランナーは別製品です。このサーバーが現在公開しているのは Sandbox です。)
以前の @tenkicloud/mcp という名前も引き続き使用でき、同じコードを公開しています。
"Run this Python in a fresh sandbox and tell me what it prints."
│
▼ tenki_run_code
boots a microVM → runs it → returns stdout → tears it down
クイックスタート
export LUXORAI_API_KEY=lx_your_key_here
npx -y @luxorai/mcp # speaks MCP over stdio
クローンやビルドは不要です。このパッケージは luxor-mcp コマンド(同じプログラムの tenki-mcp も)をインストールします。
Claude Code で使う
Luxor のホスト型 MCP サービスに接続し、Luxor アカウントでサインインします。
claude mcp add --transport http luxor https://mcp.luxor.ai/mcp
claude mcp login luxor
Claude Code の mcp add コマンドでサーバー設定を保存し、mcp login で一度だけ行うブラウザー認証とワークスペースの選択を行います。
代わりに、API キーを使って MCP サーバーをローカルで実行することもできます。
claude mcp add luxor --env LUXORAI_API_KEY=lx_your_key_here -- npx -y @luxorai/mcp
または Claude Code プラグインとしてインストールする
このリポジトリはプラグインマーケットプレイスとしても機能します。インストール時に API キーの入力を求め、OS のキーチェーンに保存するため、管理が必要な環境変数はありません。
/plugin marketplace add LuxorLabs/tenki-mcp
/plugin install luxor@tenki
tenki@tenki プラグインも引き続き利用できます。
Claude Desktop で使う
claude_desktop_config.json に追加します。
{
"mcpServers": {
"luxor": {
"command": "npx",
"args": ["-y", "@luxorai/mcp"],
"env": { "LUXORAI_API_KEY": "lx_your_key_here" }
}
}
}
Cursor で使う
同じブロックを .cursor/mcp.json(プロジェクト用)または ~/.cursor/mcp.json(グローバル用)に追加します。
{
"mcpServers": {
"luxor": {
"command": "npx",
"args": ["-y", "@luxorai/mcp"],
"env": { "LUXORAI_API_KEY": "lx_your_key_here" }
}
}
}
Codex で使う
OpenAI Codex CLI は ~/.codex/config.toml から MCP サーバーを読み込みます。次を追加します。
[mcp_servers.luxor]
command = "npx"
args = ["-y", "@luxorai/mcp"]
env = { LUXORAI_API_KEY = "lx_your_key_here" }
動作を確認する
サーバーを追加したら、クライアントが読み込めるように新しいセッションを開始し、エージェントに次のいずれかを尋ねます。
- 「tenki の認証ステータスを確認して。」:認証情報が認識されたことを確認します。
- 「新しい Luxor サンドボックスで
print(2+2)を実行して。」:起動から実行、終了までの一連の処理を確認します。
tenki_* ツールが表示されない場合は、クライアントを再起動して設定を再読み込みしてください。
まだキーをお持ちでない場合は、キーを指定せずにサーバーを起動し、エージェントに tenki_auth_status の確認を依頼してください。設定する値と場所が報告されます。認証をご覧ください。
クローンから実行する場合
開発時や、未リリースの変更を実行する場合:
git clone https://github.com/LuxorLabs/tenki-mcp.git && cd tenki-mcp
npm install && npm run build
LUXORAI_API_KEY=lx_your_key_here node dist/index.js
上記のいずれかの設定で、npx コマンドを node /absolute/path/to/tenki-mcp/dist/index.js に置き換えてください。開発の全手順については、CONTRIBUTING.mdをご覧ください。
環境変数
| 変数 | デフォルト | 用途 |
|---|---|---|
LUXORAI_API_KEY | - | API キー(lx_…、または tk_…)。LUXORAI_AUTH_TOKEN のいずれか一方が必須です。 |
LUXORAI_AUTH_TOKEN | - | セッショントークン(ory_st_… または Cookie 値)。両方が設定されている場合、LUXORAI_API_KEY より優先されます。 |
LUXORAI_API_ENDPOINT | https://api.tenki.cloud(https://api.luxor.ai と同じ API) | コントロールプレーンのベース URL(LUXORAI_API_URL はエイリアスです)。 |
LUXORAI_MCP_READONLY | off | 1 を設定すると、読み取りツールのみ登録します(作成/実行/削除/支出は行いません)。 |
LUXORAI_MCP_DISABLED_TOOLS | - | 登録をスキップするツール名をカンマ区切りで指定します。 |
LUXORAI_MCP_AUDIT | off | 1 を設定すると、各ツール呼び出しの名前と引数キーを stderr に記録します。 |
LUXORAI_MCP_TRANSPORT | stdio | http を指定すると、代わりに Streamable HTTP を提供します(以下を参照)。 |
PORT | 3000 | HTTP トランスポートのポートです。 |
LUXORAI_MCP_HTTP_HOST | 127.0.0.1 | HTTP のバインドホストです。ループバック以外を指定する場合は LUXORAI_MCP_HTTP_TOKEN が必要です。 |
LUXORAI_MCP_HTTP_TOKEN | - | HTTP エンドポイント用のベアラートークンです。ループバックでは任意ですが、ループバック以外のホストでは必須です。 |
LUXORAI_MCP_PUBLIC_URL | - | OAuth で保護されたホスト型サーバーのパブリックベース URL です。 |
LUXORAI_MCP_OAUTH_ISSUER | - | OAuth 認可サーバーの発行者です。委任 OAuth HTTP モードを有効にします。 |
LUXORAI_MCP_OAUTH_RESOURCE | <public URL>/mcp | アクセストークンのオーディエンスで受け入れられる RFC 8707 リソース識別子です。カンマ区切りのリストを指定すると、ドメインごとに 1 つのリソースを提供します。メタデータはリクエストのホストに一致するものを返し、一致するものがない場合は最初のリソースを返します。 |
LUXORAI_MCP_OAUTH_SCOPE | mcp | 必須の委任スコープです。 |
LUXORAI_MCP_IDENTITY_URL | - | OAuth アクセストークンの交換に使用する、内部の Luxor Identity サービスエンドポイントです。 |
LUXORAI_MCP_IDENTITY_SERVICE_TOKEN | - | プライベートな Identity トークン交換 RPC 用のサービス認証情報です。 |
上記のすべての LUXORAI_* 変数は、TENKI_* 名でも引き続き使用できます(例:TENKI_API_KEY、TENKI_MCP_TRANSPORT)。すべての LUXORAI_* 認証情報は、TENKI_* の認証情報より先に読み込まれます。キーは lx_ で始まりますが、tk_… のキーも引き続き使用できます。 |
ツール
82 個のツール:一般公開されている単項 API メソッドのうち、ツールとして提供する 76 個すべて(CI の 同等性監査で検証されます。この監査では、ツールが API に存在しなくなったメソッドを呼び出した場合も失敗します。GitOperation は操作ごとに 1 つのツールとして提供されます)、2 つのワークフローヘルパー、tenki_auth_status です。ツール名には tenki_ プレフィックスが付きます。公開済みイメージや保存済みの Tailscale 接続といった一部の管理機能、および実装専用のコントロールプレーンメソッドは意図的に除外されています。ドメイン別にまとめています:
| ドメイン | ツール |
|---|---|
| 認証 | tenki_auth_status(設定されている認証情報と、その認証情報が有効かどうかを確認します。認証情報が設定されていない場合に利用できる唯一のツールです) |
| ID 情報 | tenki_whoami |
| 実行 | tenki_run_code(単発実行:起動 → シェル/python/js を実行 → 終了) |
| サンドボックス | tenki_create_sandbox · tenki_get_sandbox · tenki_get_sandbox_metrics · tenki_list_sandboxes · tenki_terminate_sandbox · tenki_pause_sandbox · tenki_resume_sandbox · tenki_fork_sandbox(実行中のサンドボックスのコピー) |
| セッション管理 | tenki_extend_sandbox · tenki_update_sandbox · tenki_terminate_sandboxes(一括) · tenki_report_sandbox_activity · tenki_list_workspace_sandboxes |
| 実行 | tenki_exec(stdout/stderr/終了コードをインラインで表示) |
| ファイル | tenki_read_file · tenki_write_file · tenki_list_files · tenki_stat_path · tenki_make_dir · tenki_remove_path · tenki_move_path |
| Git | tenki_git_clone · tenki_git_checkout · tenki_git_diff · tenki_git_log(API がサポートする 4 つの操作です。クローンしたリポジトリを対象にするには directory を指定します。それ以外の git コマンドは tenki_exec で実行してください) |
| ポートとプレビュー | 公開 · 公開ポート一覧 · 公開解除 · プレビュー URL 作成 · プレビューを開く(ビューアートークンによる制限付きで、公開されません。ポート 7681 は Web ターミナルです) · プレビュー URL 一覧/取得/削除 · プレビューにアクセス · プレビュー URL のバインド/解除 · プレビュートークンを解決 |
| アーティファクト(バイナリ転送) | tenki_get_upload_url · tenki_get_download_url(バイナリの PUT/GET 用の署名付き URL) |
| SSH | tenki_update_ssh_keys · tenki_issue_ssh_cert · tenki_list_ssh_gateways |
| スナップショット | 作成 · 取得 · 一覧表示 · セッション一覧表示 · ワークスペース一覧表示 · 未接続一覧表示 · 更新 · 削除 · ダウンロード URL を取得 |
| ボリューム | 作成 · 取得 · 一覧表示 · 更新 · 削除 · サイズ変更 · 接続 · 切断 |
| 送信ポリシー | 作成 · 取得 · 一覧表示 · 更新 · 削除(tenki_create_sandbox が egress_policies を介して適用する、名前付きのワークスペース許可リスト) |
| テンプレート | 作成 · 取得 · 一覧表示 · 更新 · 削除 · ビルド · ビルドをキャンセル · ビルドを取得 · アクティブなビルド一覧表示 · ビルド一覧表示 · ビルドを削除 |
| ワークスペース | tenki_get_workspace_usage · tenki_list_ci_runner_sizes · tenki_get_workspace_preview_domains · tenki_update_workspace_preview_domains |
| リリースごとの詳細はCHANGELOG.mdをご覧ください。 |
上流では非推奨ですが、引き続き提供されています: tenki_expose_port / tenki_unexpose_port / tenki_list_exposed_ports(API ではプレビュー URL のツールが推奨されています)、tenki_list_workspace_sandboxes / tenki_list_workspace_snapshots(認証情報のスコープに基づくリストが推奨されています)、および tenki_exec / tenki_run_code / tenki_move_path の背後にある ExecuteCommand RPC(後継はデータプレーンの Run ストリームですが、このサーバーにはまだ必要な HTTP/2 トランスポートがありません)。パリティ監査では、実行のたびにこれらが出力されます。
認証
LUXORAI_API_KEY または LUXORAI_AUTH_TOKEN のいずれかを設定してください(TENKI_API_KEY / TENKI_AUTH_TOKEN も引き続き使用できます)。両方が設定されている場合は、認証トークンが優先されます。ヘッダーはトークンのプレフィックスに応じて選択されます:lx_… または tk_… → Authorization: Bearer、ory_st_… → X-Session-Token、それ以外 → セッション Cookie。LUXORAI_API_ENDPOINT でエンドポイントを上書きできます(デフォルトは https://api.tenki.cloud で、https://api.luxor.ai と同じ API です)。
認証情報がなくてもサーバーは起動します。登録されるのは tenki_auth_status のみです。そのため、MCP クライアントが「サーバーの起動に失敗しました」という詳細不明のエラーを返す代わりに、エージェントがそのツールを呼び出して、何を設定すればよいか確認できます。他のツールが認証エラーを返した場合は、いつでも「tenki auth status を確認して」と指示してください。このツールは、認証情報の種類(API キーまたはセッショントークン)、エンドポイント、認証済みユーザーのライブ確認に成功したかどうかを報告します。トークン自体は報告しません。報告するのはステータスのみです。認証情報は Luxor ダッシュボードから取得してください。
HTTP 経由でホストする(v2.0-beta)
stdio に加えて、サーバーはストリーム可能な HTTP に対応しているため、リモート MCP クライアント向けにホストできます:
LUXORAI_MCP_TRANSPORT=http PORT=3000 LUXORAI_API_KEY=… npx -y @luxorai/mcp
# → tenki-mcp running on http://127.0.0.1:3000/mcp (Streamable HTTP) [loopback only, no auth]
単一ユーザー向けのデプロイでは、HTTP モードで共有の LUXORAI_API_KEY を使用できるため、強力な機能が公開されます。デフォルトでは、以下のように動作します:
- ループバック(
127.0.0.1)のみにバインドします:公開するにはLUXORAI_MCP_HTTP_HOST=0.0.0.0を設定します。ただし、その場合は次の条件が適用されます。 - ベアラートークンが必須です:
LUXORAI_MCP_HTTP_TOKENを設定し、Authorization: Bearer <token>を送信してください。ベアラートークンなしでループバック以外のホストを指定すると、起動を拒否します。 - DNS リバインディング対策が有効です(Host ヘッダーの許可リスト)。悪意のある Web ページがローカルサーバーを操作することはできません。
# expose to a network safely:
LUXORAI_MCP_TRANSPORT=http LUXORAI_MCP_HTTP_HOST=0.0.0.0 PORT=3000 \
LUXORAI_MCP_HTTP_TOKEN=$(openssl rand -hex 32) LUXORAI_API_KEY=… npx -y @luxorai/mcp
HTTP 対応の MCP クライアントで /mcp を指定してください。静的キー方式では、すべてのセッションで共有の LUXORAI_API_KEY を使用します。エンドツーエンドの動作確認済み(test/http-transport.test.mjs:認証ゲート、DNS リバインディングの拒否、HTTP 経由の connect → tools/list → ツール呼び出し)。
ホスト型のマルチテナント環境では、代わりに Luxor Identity の OAuth ファサードを使用します。MCP サーバーは RFC 9728 の保護リソースメタデータを公開し、各呼び出し元のアクセストークンをプライベートな Identity サービス経由で交換します。Identity が Hydra を管理し、要求されたオーディエンスとスコープを検証して、Luxor の同意ページで選択されたユーザー、クライアント、ワークスペースに紐づく有効期間の短い API 委任を発行します。tenki-mcp は Hydra Admin にアクセスできず、委任の署名シークレットも保持しません。
仕組み
Luxor の API は ConnectRPC です。REST ではなく、HTTP/1.1 上の JSON です。コントロールプレーンのすべての呼び出しは、lowerCamelCase 形式の JSON ボディを使用する POST https://api.luxor.ai/tenki.sandbox.v1.SandboxService/{Method} です。セッションごとのファイル入出力は、作成時に返される別個のデータプレーンエンドポイントで実行され、有効期間の短いセッション証明書で認証されます。このサーバーが両方のトランスポートを担うため、各ツールをワンライナーで使用できます。
コマンドの出力:tenki_exec と tenki_run_code は、出力をファイルにリダイレクトして(sh -c '… > out 2> err')、データプレーン経由で読み戻すことで stdout / stderr を取得します。そのため、通常の HTTP クライアントを通じて出力をインラインで取得できます。
通信仕様の詳細は、実環境で動作を確認した n8n コミュニティノードをもとに移植しています。
セキュリティ
このサーバーは Luxor API キーを保持し、コードを実行してクレジットを消費できるため、ケイパビリティとして扱ってください。モデル全体と CSA MCP Server Top-10 の対応については、SECURITY.md をご覧ください。主な対策は次のとおりです。
- 最小権限: 各ツールにはタイトルと MCP アノテーションが付いています。読み取りには
readOnlyHint、既存の状態を上書き、変更、中断、削除できるすべてのツールにはdestructiveHintが設定されています(既存の状態を変更せずに作成、再開、延長、接続、または稼働状態の維持のみを行うツールは、破壊的ではありません)。読み取りツールのみを利用する検査専用サーバーを起動するにはLUXORAI_MCP_READONLY=1を、特定のツールを無効にするにはLUXORAI_MCP_DISABLED_TOOLS=tenki_run_code,…を指定してください。 - HTTP トランスポート: デフォルトではループバック接続のみを受け付けます。ネットワーク上に公開するにはベアラートークンが必要です(HTTP 経由でホストするをご覧ください)。
- 監査:
LUXORAI_MCP_AUDIT=1を指定すると、各ツール呼び出しの名前が stderr に記録されます。 - 信頼できない出力:
tenki_run_code/tenki_exec/tenki_read_fileは、信頼できないコードからの出力を返します。クライアントはツールの結果を指示ではなくデータとして扱ってください。
脆弱性は公開 issue ではなく、非公開のセキュリティアドバイザリで報告してください。
関連項目
- Luxor Sandbox:プラットフォーム:https://luxor.ai
- n8n-nodes-tenki:n8n ノードとしての Luxor Sandbox:https://github.com/opencolin/n8n-nodes-tenki
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。