mcpField
L
Luxor Sandbox MCP

Luxor Sandbox MCP

ローカル
luxor.ai開発ツール0今日更新

Luxor Sandbox MCP について

Luxor Sandbox MCPは、Luxor Sandbox向けのMCPサーバーで、AIエージェントに使い捨てのmicroVMを提供し、コードを隔離実行できます。ファイルやGitの操作に加え、サンドボックス、ポート、プレビューURL、スナップショット、ボリュームも扱えます。

主な機能

  1. 01microVMサンドボックスでのコード実行
  2. 02ファイルの読み書きと管理
  3. 03リポジトリのクローンとGit操作
  4. 04サンドボックス、スナップショット、ボリュームの管理
  5. 05ポート公開とプレビューURLの作成
  6. 06読み取り専用ツールの設定

活用シーン

  1. 01隔離されたサンドボックスでのスクリプト実行
  2. 02サンドボックス内のプロジェクトファイルの確認・編集
  3. 03リポジトリのクローンと差分の確認
  4. 04実行中アプリのプレビューURL作成

MCP 対応

コード実行、ファイル、Git、サンドボックス管理、プレビューのツールをMCP経由で公開し、stdioまたはStreamable HTTPで接続できます。ローカルで認証情報を設定する方式と、Luxorが提供するホスト型リモートMCPサーバーに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"luxorlabs-luxor": {
"command": "npx",
"args": [
"-y",
"@luxorai/mcp"
],
"env": {
"LUXORAI_API_KEY": "<LUXORAI_API_KEY>",
"LUXORAI_API_ENDPOINT": "<LUXORAI_API_ENDPOINT>"
}
}
}
}
起動コマンドnpx -y @luxorai/mcp
設定が必要な環境変数
LUXORAI_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@luxorai/mcp0.4.1

ツール

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_ENDPOINThttps://api.tenki.cloud(https://api.luxor.ai と同じ API)コントロールプレーンのベース URL(LUXORAI_API_URL はエイリアスです)。
LUXORAI_MCP_READONLYoff1 を設定すると、読み取りツールのみ登録します(作成/実行/削除/支出は行いません)。
LUXORAI_MCP_DISABLED_TOOLS-登録をスキップするツール名をカンマ区切りで指定します。
LUXORAI_MCP_AUDIToff1 を設定すると、各ツール呼び出しの名前と引数キーを stderr に記録します。
LUXORAI_MCP_TRANSPORTstdiohttp を指定すると、代わりに Streamable HTTP を提供します(以下を参照)。
PORT3000HTTP トランスポートのポートです。
LUXORAI_MCP_HTTP_HOST127.0.0.1HTTP のバインドホストです。ループバック以外を指定する場合は 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_SCOPEmcp必須の委任スコープです。
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
Gittenki_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)
SSHtenki_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 ではなく、非公開のセキュリティアドバイザリで報告してください。

関連項目

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。