mcpField
T
Tenki Sandbox MCP

Tenki Sandbox MCP

ローカル
tenki.cloud開発ツール01 週間前に更新

Tenki Sandbox MCP について

Tenki Sandbox MCPは、AIエージェントをTenki Cloudの使い捨てmicroVMに接続し、コード実行やサンドボックス管理を行うMCPサーバーです。ファイル、Git、プレビュー、スナップショット、ワークスペースの操作にも対応します。

主な機能

  1. 01microVMサンドボックスの作成と管理
  2. 02コードとシェルコマンドの実行
  3. 03ファイルの読み書きと管理
  4. 04GitとプレビューURLの操作
  5. 05スナップショット、ボリューム、テンプレートの管理

活用シーン

  1. 01隔離VMでエージェント作成コードを実行
  2. 02サンドボックス内のファイルを確認・編集
  3. 03プレビューURLでサンドボックスのサービスを公開
  4. 04サンドボックスのスナップショットと接続ボリュームを管理

MCP 対応

stdioまたはStreamable HTTP経由で、Tenki Cloudのサンドボックス操作をMCPツールとして提供します。クライアントはホスト型サービスを使うか、Tenkiの認証情報を設定してサーバーをローカル実行できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"luxorlabs-tenki": {
"command": "npx",
"args": [
"-y",
"@tenkicloud/mcp"
],
"env": {
"TENKI_API_KEY": "<TENKI_API_KEY>",
"TENKI_API_ENDPOINT": "<TENKI_API_ENDPOINT>"
}
}
}
}
起動コマンドnpx -y @tenkicloud/mcp
設定が必要な環境変数
TENKI_API_KEYシークレットTenki API key (starts with tk_). Alternatively set TENKI_AUTH_TOKEN (an ory_st_ session token or session cookie); the header is chosen by token prefix.
TENKI_API_ENDPOINTOverride the control-plane endpoint. Defaults to https://api.tenki.cloud.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@tenkicloud/mcp0.3.1

ツール

71

掲載時のツール一覧 · 1 週間前に更新

このツールにパラメーターはありません。

詳細

tenki-mcp — @tenkicloud/mcp

Tenki Cloud 用の Model Context Protocol サーバーです。 Claude、Codex、Cursor など、あらゆるエージェントに、一時的なマイクロ VM を提供します。マイクロ VM はエージェントが作成し、そこでコードを実行したり、ファイルを読み書きしたり、git を実行したり、ウェブに公開したりできます。サンドボックスは約 2 秒で起動し、秒単位で課金されます。

Tenki をコーディングエージェントが利用する実行レイヤーにする取り組みの一環です。エージェントがコードを書き、Tenki がそれを分離環境で実行します。(Tenki の Code Reviewer と Runners — AI による PR レビューとマネージド CI — は別製品です。このサーバーが現在提供しているのは Sandbox です。)

"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 TENKI_API_KEY=tk_your_key_here
npx -y @tenkicloud/mcp     # speaks MCP over stdio

クローンやビルドは不要です。パッケージをインストールすると、tenki-mcp コマンドが使えるようになります。

Claude Code で使う

Tenki のホスト型 MCP サービスに接続し、Tenki アカウントでサインインします。

claude mcp add --transport http tenki https://mcp.tenki.cloud/mcp
claude mcp login tenki

Claude Code の mcp add コマンドでサーバー設定を保存し、mcp login でブラウザーを使った初回の認証とワークスペースの選択を行います。

または、API キーを使って MCP サーバーをローカルで実行します。

claude mcp add tenki --env TENKI_API_KEY=tk_your_key_here -- npx -y @tenkicloud/mcp
または、Claude Code プラグインとしてインストールする

このリポジトリはプラグインマーケットプレイスも兼ねています。インストール時に API キーの入力が求められ、OS のキーチェーンに保存されます。環境変数の管理は不要です。

/plugin marketplace add LuxorLabs/tenki-mcp
/plugin install tenki@tenki
Claude Desktop で使う

claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "tenki": {
      "command": "npx",
      "args": ["-y", "@tenkicloud/mcp"],
      "env": { "TENKI_API_KEY": "tk_your_key_here" }
    }
  }
}
Cursor で使う

同じブロックを .cursor/mcp.json(プロジェクト用)または ~/.cursor/mcp.json(グローバル用)に追加します。

{
  "mcpServers": {
    "tenki": {
      "command": "npx",
      "args": ["-y", "@tenkicloud/mcp"],
      "env": { "TENKI_API_KEY": "tk_your_key_here" }
    }
  }
}
Codex で使う

OpenAI Codex CLI は ~/.codex/config.toml から MCP サーバーを読み込みます。次の設定を追加します。

[mcp_servers.tenki]
command = "npx"
args = ["-y", "@tenkicloud/mcp"]
env = { TENKI_API_KEY = "tk_your_key_here" }
動作を確認する

サーバーを追加したら、クライアントが読み込めるように新しいセッションを開始し、エージェントに次のいずれかを依頼します。

  • 「tenki の認証状態を確認して。」 — 認証情報が読み込まれたことを確認します。
  • 「新しい Tenki サンドボックスで print(2+2) を実行して。」 — 起動 → 実行 → 破棄の一連の処理を確認します。

tenki_* ツールが表示されない場合は、クライアントを再起動して設定を読み込み直してください。

まだ API キーをお持ちでない場合は、キーなしでサーバーを起動し、エージェントに tenki_auth_status を確認するよう依頼してください。設定すべき内容と場所が表示されます。認証を参照してください。

クローンから実行する

開発時や、未リリースの変更を実行する場合は、次のようにします。

git clone https://github.com/LuxorLabs/tenki-mcp.git && cd tenki-mcp
npm install && npm run build
TENKI_API_KEY=tk_your_key_here node dist/index.js

上記の設定で npx コマンドを node /absolute/path/to/tenki-mcp/dist/index.js に置き換えてください。開発手順の全容については、CONTRIBUTING.md を参照してください。

環境変数
変数デフォルト用途
TENKI_API_KEY—API キー(tk_…)。TENKI_AUTH_TOKEN のいずれか一方が必須です。
TENKI_AUTH_TOKEN—セッショントークン(ory_st_… または Cookie の値)。両方設定されている場合、TENKI_API_KEY より優先されます。
TENKI_API_ENDPOINThttps://api.tenki.cloudコントロールプレーンのベース URL(TENKI_API_URL は別名です)。
TENKI_MCP_READONLYオフ1 を設定すると、読み取り専用ツールのみを登録します(作成/実行/削除/支出はできません)。
TENKI_MCP_DISABLED_TOOLS—登録をスキップするツール名をカンマ区切りで指定します。
TENKI_MCP_AUDITオフ1 を設定すると、各ツール呼び出しの名前と引数のキーを stderr に記録します。
TENKI_MCP_TRANSPORTstdiohttp を設定すると、代わりに Streamable HTTP を提供します(以下を参照)。
PORT3000HTTP トランスポートのポートです。
TENKI_MCP_HTTP_HOST127.0.0.1HTTP のバインド先ホストです。ループバック以外を指定する場合は TENKI_MCP_HTTP_TOKEN が必要です。
TENKI_MCP_HTTP_TOKEN—HTTP エンドポイント用の Bearer トークンです。ループバックでは任意ですが、ループバック以外のホストでは必須です。
TENKI_MCP_PUBLIC_URL—OAuth で保護されたホスト型サーバーの公開ベース URL です。
TENKI_MCP_OAUTH_ISSUER—OAuth 認可サーバーの発行者です。委任 OAuth HTTP モードを有効にします。
TENKI_MCP_OAUTH_RESOURCE<public URL>/mcpアクセストークンのオーディエンスとして受け入れられる RFC 8707 リソース識別子です。
TENKI_MCP_OAUTH_SCOPEmcp必須の委任スコープです。
TENKI_MCP_IDENTITY_URL—OAuth アクセストークンの交換に使用する Tenki Identity サービスの内部エンドポイントです。
TENKI_MCP_IDENTITY_SERVICE_TOKEN—プライベートな Identity トークン交換 RPC 用のサービス認証情報です。

ツール

71 個のツール — 公開されている単項 API メソッド 68 個(CI のパリティ監査で検証)、ワークフローヘルパー 2 個、tenki_auth_status。実装専用のコントロールプレーンメソッドは意図的に除外しています。ドメイン別に分類しています。

ドメインツール
認証tenki_auth_status(設定されている認証情報と、その動作状況を確認します。認証情報がない場合に利用できる唯一のツールです)
IDtenki_whoami
実行tenki_run_code(ワンショット:起動 → シェル/Python/JS を実行 → 終了)
サンドボックスtenki_create_sandbox · tenki_get_sandbox · tenki_list_sandboxes · tenki_terminate_sandbox · tenki_pause_sandbox · tenki_resume_sandbox
セッション管理tenki_extend_sandbox · tenki_update_sandbox · tenki_terminate_sandboxes(一括) · tenki_report_sandbox_activity · tenki_list_workspace_sandboxes
実行tenki_exec(標準出力/標準エラー/終了コードをインラインで表示)
ファイルtenki_read_file · tenki_write_file · tenki_list_files · tenki_stat_path · tenki_make_dir · tenki_remove_path · tenki_move_path
Gittenki_git(clone/checkout/diff/log — API がサポートするのはこの 4 つのみです。その他の Git コマンドは tenki_exec で実行してください)
ポートとプレビュー公開 · 公開一覧 · 公開解除 · プレビュー URL 作成 · プレビューを開く · プレビュー 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_get_workspace_usage · tenki_get_workspace_settings · tenki_update_workspace_settings · tenki_get_snapshot_retention_settings · tenki_update_snapshot_retention_settings

リリースごとの詳細な内訳は、CHANGELOG.md をご覧ください。

認証

TENKI_API_KEY または TENKI_AUTH_TOKEN のいずれかを設定してください。両方が設定されている場合は、TENKI_AUTH_TOKEN が優先されます。トークンのプレフィックスに応じてヘッダーが選択されます。tk_… → Authorization: Bearer、ory_st_… → X-Session-Token、それ以外の場合はセッション Cookie です。TENKI_API_ENDPOINT でエンドポイントを上書きできます(デフォルトは https://api.tenki.cloud)。

認証情報がなくてもサーバーは起動し、登録されるのは tenki_auth_status のみです。そのため、MCP クライアントが内容の分からない「サーバーの起動に失敗しました」というエラーを報告する代わりに、エージェントがこのツールを呼び出して設定すべき項目を確認できます。他のツールで認証エラーが返された場合は、いつでも「tenki の認証状態を確認して」と尋ねてください。このツールは、認証情報の種類(API キーまたはセッショントークン)、エンドポイント、ライブの ID 確認に成功したかどうかを報告します。トークン自体が報告されることはありません。報告するのは状態のみです。認証情報は tenki login を実行するか、ダッシュボードから取得してください。

HTTP 経由でホストする(v2.0-beta)

stdio に加えて、サーバーは Streamable HTTP に対応しているため、リモート MCP クライアント向けにホストできます。

TENKI_MCP_TRANSPORT=http PORT=3000 TENKI_API_KEY=… npx -y @tenkicloud/mcp
# → tenki-mcp running on http://127.0.0.1:3000/mcp (Streamable HTTP) [loopback only, no auth]

シングルユーザーでデプロイする場合、HTTP モードでは共有の TENKI_API_KEY を 1 つ保持できるため、強力な機能を提供します。デフォルトでは次のとおりです。

  • ループバック(127.0.0.1)のみにバインドします — 外部に公開するには TENKI_MCP_HTTP_HOST=0.0.0.0 を設定しますが、その場合は
  • ベアラートークンが必須です:TENKI_MCP_HTTP_TOKEN を設定し、Authorization: Bearer <token> を送信してください。トークンがない状態でループバック以外のホストを指定すると、起動を拒否します。
  • DNS リバインディング対策(Host ヘッダーの許可リスト)が有効なため、悪意のあるウェブページからローカルサーバーを操作することはできません。
# expose to a network safely:
TENKI_MCP_TRANSPORT=http TENKI_MCP_HTTP_HOST=0.0.0.0 PORT=3000 \
  TENKI_MCP_HTTP_TOKEN=$(openssl rand -hex 32) TENKI_API_KEY=… npx -y @tenkicloud/mcp

HTTP 対応の MCP クライアントから /mcp に接続してください。静的キー方式では、すべてのセッションで共有の TENKI_API_KEY を 1 つ使用します。エンドツーエンドで検証済みです(test/http-transport.test.mjs:認証ゲート、DNS リバインディングの拒否、HTTP 経由の接続 → tools/list → ツール呼び出し)。

ホスト型のマルチテナントデプロイでは、代わりに Tenki Identity の OAuth ファサードを使用します。MCP サーバーは RFC 9728 の保護リソースメタデータを公開し、各呼び出し元のアクセストークンをプライベートな Identity サービス経由で交換します。Identity が Hydra を管理し、要求された対象者とスコープを検証したうえで、Tenki の同意ページで選択されたユーザー、クライアント、ワークスペースに紐づく、有効期間の短い API 委任トークンを発行します。tenki-mcp は Hydra Admin にアクセスできず、委任署名シークレットも保持しません。

仕組み

Tenki の API は ConnectRPC です。REST ではなく、HTTP/1.1 上の JSON を使用します。すべてのコントロールプレーン呼び出しは、POST https://api.tenki.cloud/tenki.sandbox.v1.SandboxService/{Method} と、小文字始まりのキャメルケースの JSON 本文で行います。セッションごとのファイル I/O は、作成時に返される別のデータプレーンエンドポイントで実行され、短命のセッション証明書で認証されます。このサーバーは両方のトランスポートを管理するため、ツールを簡潔なワンライナーのまま使用できます。

コマンドの出力:tenki_exec と tenki_run_code は、ファイルにリダイレクト(sh -c '… > out 2> err')して stdout/stderr を取得し、データプレーン経由で読み戻すため、通常の HTTP クライアントでも出力をインラインで取得できます。

ワイヤープロトコルの詳細は、実環境で動作を検証した n8n community node から移植しています。

セキュリティ

このサーバーは Tenki API キーを保持し、コードを実行してクレジットを消費できるため、権限を持つものとして扱ってください。モデル全体と CSA MCP Server Top-10 との対応については、SECURITY.md を参照してください。主な制御は次のとおりです。

  • 最小権限: すべてのツールに MCP アノテーション(readOnlyHint/destructiveHint)が付与されています。検査専用サーバー(読み取りツールのみ)を実行するには TENKI_MCP_READONLY=1 を、特定のツールを除外するには TENKI_MCP_DISABLED_TOOLS=tenki_run_code,… を設定してください。
  • HTTP トランスポートはデフォルトでループバックのみにバインドされ、ネットワークに公開するにはベアラートークンが必要です(HTTP 経由でホストするを参照)。
  • 監査: TENKI_MCP_AUDIT=1 を設定すると、各ツール呼び出しの名前が stderr に記録されます。
  • 信頼できない出力: tenki_run_code/tenki_exec/tenki_read_file は信頼できないコードからの出力を返すため、クライアントはツールの結果を指示ではなくデータとして扱ってください。

脆弱性は公開 issue ではなく、非公開のセキュリティアドバイザリーから報告してください。

関連項目

ライセンス

MIT

コメント

MCP は初めてですか?

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

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