Lizard MCP について
Lizard MCPは、MCPクライアントからLizard上のアプリを管理し、隔離環境でコードを実行するためのサーバーです。デプロイ、サービス、サンドボックス、ログ、シークレット、ドメインの操作に対応し、OAuthまたはAPIキーで認証します。
主な機能
- 01アプリサービスの作成と管理
- 02デプロイの実行、再起動、確認
- 03隔離サンドボックスの作成と実行
- 04ログ、シークレット、ドメインの管理
- 05OAuthとAPIキーによる認証
活用シーン
- 01Lizard上でのサービスのデプロイやスケール
- 02一時サンドボックスでのコード実行
- 03ログやメトリクスの確認、シークレット管理
MCP 対応
MCPサーバーは、Lizardのアカウント、サービス、デプロイ、サンドボックス、ログ、シークレット、ドメイン、ボリューム、Git、設定を扱うツールを提供します。Streamable HTTPとstdioに対応し、OAuthまたはBearer APIキーで認証します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://employ-woman-g1q2.us-east-1.onlizard.com/mcpclaude mcp add --transport http lizard-build-lizard https://employ-woman-g1q2.us-east-1.onlizard.com/mcp{"mcpServers":{"lizard-build-lizard":{"type":"http","url":"https://employ-woman-g1q2.us-east-1.onlizard.com/mcp"}}}Cursor で開く{"servers":{"lizard-build-lizard":{"type":"http","url":"https://employ-woman-g1q2.us-east-1.onlizard.com/mcp"}}}VS Code で開く{"mcpServers":{"lizard-build-lizard":{"type":"http","url":"https://employ-woman-g1q2.us-east-1.onlizard.com/mcp"}}}{"mcpServers":{"lizard-build-lizard":{"serverUrl":"https://employ-woman-g1q2.us-east-1.onlizard.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Lizard MCP
ChatGPT、Claude、その他のMCPクライアントからLizard (lizard.build)上のアプリをデプロイ、管理できるMCPサーバーです。
一度接続すれば、サービスのデプロイ、ログの読み取り、シークレットの設定、レプリカのスケーリング、ドメインの割り当てなどを、アシスタントに普通の言葉で頼めます。
クライアントを接続する
このサーバーはPOST /mcpでStreamable HTTPに対応し、代わりにローカルプロセスを
起動するクライアント向けにstdioにも対応しています(下記を参照)。ホスト型のインスタンスは
次の場所で稼働しています。
https://employ-woman-g1q2.us-east-1.onlizard.com/mcp
すべてのリクエストにベアラートークンが必要です。OAuthに対応するクライアントは自分でトークンを取得します。取得先はサーバーが通知するため、貼り付ける必要はありません。
ヘッダーのみを送信するクライアントでは、代わりにliz_ APIキーを使用します。
lizard keys create my-mcp-key
ダッシュボードからも、Sandboxes → Get started → New API keyの順に選択して同じキーを作成できます。どちらの場合も、キーが表示されるのは一度だけです。
Claude Code
claude mcp add --transport http lizard https://employ-woman-g1q2.us-east-1.onlizard.com/mcp
Claude Codeは初回使用時にOAuthフローを実行します。これを省略してキーを使用するには、次のようにします。
claude mcp add --transport http lizard https://employ-woman-g1q2.us-east-1.onlizard.com/mcp \
--header "Authorization: Bearer liz_your_key"
CursorなどのJSONで設定するクライアント
{
"mcpServers": {
"lizard": {
"url": "https://employ-woman-g1q2.us-east-1.onlizard.com/mcp",
"headers": { "Authorization": "Bearer liz_your_key" }
}
}
}
ChatGPT
ChatGPTはURLに接続し、自分でOAuthを実行するため、貼り付けるキーは不要です。開発者モードと登録済みの接続が必要です。詳しくは、下記のCodex / ChatGPTへの公開を参照してください。
ローカルサーバーへの接続
次のセクションの説明に従ってサーバーを実行し、ホスト型URLの代わりにhttp://localhost:3000/mcpを使用します。
接続を確認する
curl -sS -X POST https://employ-woman-g1q2.us-east-1.onlizard.com/mcp \
-H "Authorization: Bearer liz_your_key" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
トークンなしで同じリクエストを送ると、OAuthメタデータを示すWWW-Authenticateヘッダーとともに401が返ります。これはサーバーの正常な動作であり、失敗ではありません。
実行する
npm install
npm run build
npm start
リロードを有効にして開発するには、次のようにします。
npm run dev
stdio経由で実行する
npm startはHTTPサーバーを起動します。代わりにクライアントからサーバーを起動するには、dist/stdio.jsを指定します。
{
"mcpServers": {
"lizard": {
"command": "node",
"args": ["/path/to/lizard-mcp/dist/stdio.js"],
"env": { "LIZARD_TOKEN": "liz_your_key" }
}
}
}
起動されたプロセスにはOAuthを実行するブラウザーがないため、トークンは環境から取得され、そのプロセスは1人のユーザーに紐付けられます。トークンがなくてもサーバーは起動してツールを一覧表示しますが、ツールを呼び出すとキーを求めるメッセージが返ります。
設定
| 変数 | デフォルト | 用途 |
|---|---|---|
PORT | 3000 | リッスンするポート(HTTPのみ) |
PUBLIC_URL | http://localhost:$PORT | クライアントがこのサーバーにアクセスするURLです。OAuthリソース識別子を設定するため、本番環境では実際のアドレスと一致させる必要があります。 |
PLATFORM_URL | https://lizard.build | このサーバーが通信するLizard API |
LIZARD_TOKEN | — | OAuthハンドシェイクがないstdioモード用のAPIキーです。LIZARD_API_KEYも使用できます。 |
ツール
| 分野 | ツール |
|---|---|
| アカウント | whoami, workspace_list, project_list, project_create, project_pause, project_resume, workspace_pause, workspace_resume, region_list, billing_status, billing_summary |
| サービス | service_list, service_show, service_create, service_set, service_rename, service_delete, service_pause, service_resume, service_sleep_status, service_sleep_set, service_scale, service_get_port, service_set_port, addon_create |
| デプロイ | deploy_redeploy, deploy_restart, deploy_events |
| ログとメトリクス | logs_tail, metrics_get |
| シークレット | secrets_list, secrets_set, secrets_delete, secrets_refs |
| ドメイン | domain_attach, domain_verify, domain_delete |
| ボリューム | volume_list, volume_resize |
| Git | git_connect, git_checkout, git_status |
| シェル | ssh_exec |
| サンドボックス | sandbox_list, sandbox_show, sandbox_create, sandbox_exec, sandbox_read_file, sandbox_write_file, sandbox_delete |
| コードとしての設定 | config_apply |
ツール名には snake_case(MCP 仕様で許可されているドットではありません)を使用し、一部の ChatGPT/Codex の画面で直接適用される OpenAI の関数名パターン ^[a-zA-Z0-9_-]{1,64}$ に合わせています。
破壊的なツールである service_delete、secrets_delete、domain_delete、ssh_exec には、明示的な確認引数が必要です。そのため、クライアントが誤って何かを削除したり、任意のコマンドを実行したりすることはありません。
billing_status は読み取り専用です。プラン(Pro(月額 $19、毎月 $19 分のクレジット付き)、トライアル、2026 年 11 月 1 日までの前払いクレジット、またはエンタープライズ)と Billing リンクを表示します。Pro の開始、支払い、キャンセルはブラウザーで行います。何かを作成する前にアカウントで支払いが必要な場合、ツールエラーには、最後の行に開くページへのリンクを含むプラットフォームの説明文が表示され、structuredContent.error にはコード(PAYMENT_REQUIRED)、paymentStatus、リンクが含まれます。
サンドボックスのワークフロー
Lizard (lizard.build) は、短時間のコード実行向けに Lizard Sandboxes を提供しています。これらのリソースはアプリサービスとは別です。まず project_list を実行し、選択したプロジェクトと confirm: true を指定して sandbox_create を呼び出します。後続の呼び出しに備えて、返された sandboxId を保存してください。
{"name":"sandbox_create","arguments":{"project":"YOUR_PROJECT_ID","lifetimeMs":300000,"confirm":true}}
sandbox_write_file でスクリプトを書き込み、sandbox_exec で実行し、sandbox_read_file で結果を読み取ります。最後に sandbox_delete を実行してください。作成、実行、書き込み、削除を行うには、クライアントが confirm: true を設定する前に、ユーザーの承認が必要です。MCP サーバーは確認ダイアログを表示しません。
サンドボックスでは interpreter テンプレートと small サイズを使用し、デフォルトのパスは /workspace です。デフォルトでは 5 分後に有効期限が切れます。lifetimeMs には 60,000~3,600,000 ミリ秒を指定できます。有効期限切れまたは削除により、すべてのファイルが失われます。作成には課金対象のクラウドリソースが使用されます。ホストのファイル、環境変数、アクセストークンがサンドボックスに持ち込まれることはありません。
コマンドはサンドボックス内で root として実行され、デフォルトのタイムアウトは 60 秒、最大 120 秒です。キャンセル、タイムアウト、またはコマンドリクエストの不確実な状態が発生した場合、リモート処理を停止するためにサンドボックス全体が破棄されます。confirm フィールドは、このファイル喪失についての確認です。タスク用に作成したサンドボックスを使用し、必要なファイルはあらかじめ別の場所に保存してください。通常のゼロ以外の終了コードでは、サンドボックスは保持されます。アクセス拒否や入力拒否の場合も削除されません。サーバーがコマンドを自動的に再試行することはありません。
テキストの読み取りと書き込みでは、最大 64 KiB の UTF-8 を扱えます。各出力ストリームの上限は 64 KiB で、切り詰められたことを示すフラグが含まれます。すべてのパスはサンドボックスを基準とします。不確かな結果を再試行する前に確認するには、sandbox_show と sandbox_list を使用してください。sandbox_delete は、すでに存在しないサンドボックスに対して何もせず成功として扱います。
HTTP サーバーは、OAuth トークンや API キーを含め、呼び出し元の Bearer トークンを使って各呼び出しを処理します。共有サンドボックスハンドルやグローバルな SDK 認証情報は保持しません。切断したクライアントがサンドボックスを削除するには再接続が必要です。サンドボックスには有限の有効期間があるため、それがクリーンアップの最終手段となります。
認証
サーバーは、MCP 保護リソース(RFC 9728)として OAuth 2.1 に対応しています。サーバー自体はシークレットを保持せず、すべてのリクエストにベアラートークンが含まれ、そのトークンが有効かどうかは Lizard が判断します。OAuth で発行されたトークンと liz_ API キーの両方を使用できます。
リクエストごとに、呼び出し元のトークンにひも付いた新しいサーバーが作成されるため、1 つのプロセスで状態を共有せずに複数のユーザーに対応できます。
stdio では OAuth もリクエストごとのトークンも使用しません。前述のとおり、キーは環境変数から取得され、プロセスは 1 人のユーザーに対応します。
テスト
npm test # unit and MCP transport tests
npm run typecheck
npm run build
実際のサンドボックスリソースをテストするには、LIZARD_API_KEY、LIZARD_PROJECT_ID、LIZARD_LIVE_TESTS=1 を設定してから、npm exec -- vitest run test/live/sandboxes.test.ts を実行します。このテストでは stdio MCP を使ってサンドボックスを作成し、シェルツールとファイルツールを実行し、タイムアウト時のクリーンアップを確認してから削除します。課金対象のリソースを使用しますが、MCP サーバーはデプロイしません。
test/manual/mcp-inspector.md では、スタブプラットフォームと実稼働環境の両方でエンドツーエンドのチェックを行う方法を説明しています。
デプロイ済みインスタンス
このサーバー自体は Lizard アプリとして稼働しています。mikelun のワークスペースにある lizard-mcp で、このリポジトリから直接デプロイされています(git-source、main へのプッシュ時に自動再デプロイ)。
https://employ-woman-g1q2.us-east-1.onlizard.com/mcp
そのサービスの PUBLIC_URL は実際のドメインに合うよう設定されているため、allowedHosts/OAuth リソースのメタデータが実際のドメインと一致します。詳しくは src/index.ts を参照してください。
Codex / ChatGPT への公開
.codex-plugin/plugin.json は配置済みです。これはホスト型のリモート MCP サーバー(stdio にバンドルするものではありません)なので、.mcp.json ではなく、.app.json と登録済みの接続を使って設定します。最後の手順では実際の ChatGPT セッションで人手による操作が必要です。スクリプトでは実行できません。
- ChatGPT で、設定 → セキュリティとログイン → 開発者モードに移動し、有効にします。
- ChatGPT プラグインに移動し、**+**を選択して上記の MCP サーバー URL を入力し、接続を完了します。
- ブラウザーの URL から、生成された
plugin_asdk_app_...ID をコピーします。 - リポジトリのルートに
.app.jsonを追加します。{ "app": { "id": "plugin_asdk_app_..." } } .codex-plugin/plugin.jsonに"apps": "./.app.json"を追加します。- マーケットプレイスのエントリー(
@plugin-creator、または~/.agents/plugins/marketplace.jsonを手動で作成)を使ってローカルでテストし、プラグイン申請ポータルから公開レビューに提出します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。