Spawner について
Spawnerは、開発チームやコーディングエージェント向けのオープンソースでセルフホスト可能なプレビュー環境管理ツールとコマンドラインです。Gitブランチごとに、URL、データベース、ログを分けたアプリの複製を作成します。
主な機能
- 01Gitワークツリーから環境を作成
- 02未コミットの変更を反映
- 03サービス内でコマンドを実行
- 04環境ログを取得
- 05環境のライフサイクルを管理
活用シーン
- 01レビュー前に機能ブランチをプレビュー
- 02隔離環境でワークツリーの変更をテスト
- 03ブランチ環境でデータベースコマンドを実行
- 04プレビューのデバッグ中にログを確認
MCP 対応
`spawner mcp`コマンドは、コマンドラインユーザーのログイン状態と権限でstdioのMCPサーバーを起動します。9つのツールで環境管理、状態・ログ確認、コマンド実行、URL共有を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y spawner-cliSPAWNER_URLAddress of your Spawner server's dashboard, such as https://spawner.preview.example.com. Without it, the server of spawner loginSPAWNER_TOKENシークレットPersonal API token (spn_...), from spawner token create or the dashboard. Without it, the token of spawner loginローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| env | string | いいえ | 環境名。デフォルトでは worktree のブランチ名(feat/login は feat-login になります) |
| ttl | string | いいえ | 有効期間。例:"24h" |
| path | string | いいえ | worktree の絶対パス。デフォルトではクライアントが共有する最初のルートを使用し、それがない場合は MCP サーバーの実行ディレクトリを使用します |
| refs | object | いいえ | 代わりに git の指定ブランチから取得するソース:{ "front": "develop" } |
| wait | boolean | いいえ | 環境の準備が整うまで待機します(デフォルトは true) |
| fresh | boolean | いいえ | データ(ボリューム)を破棄して最初から開始します |
| reseed | boolean | いいえ | spawner.yaml のシード手順を再実行します |
| sources | object | いいえ | ローカル worktree から送信する他の spawner.yaml リポジトリ:{ "front": "/path/to/front" } |
| timeout_sec | integer | いいえ | 待機時間(デフォルトは 1200) |
詳細
spawner-cli
Spawner のコマンドラインツールと MCP サーバーです。Spawner はオープンソースのセルフホスト可能なプレビュー環境マネージャーです。チームやコーディングエージェント向けに、自分のサーバー上で、Git ブランチごとに URL、データベース、ログがそれぞれ独立したアプリのコピーを用意します。
spawner を使うと、開発者やコーディングエージェントは、未コミットの変更も含めて、ワークツリーから環境を作成、更新、削除し、その環境でコマンドを実行してログを確認できます。
インストール
npm install -g spawner-cli
Node.js 20 以降と Spawner サーバーが必要です。Spawner サーバーは、1 つのコマンドでインストールできます。各サーバーは、独自のバージョンの CLI も /api/v1/cli/spawner で提供します。
ログイン
spawner login https://spawner.preview.example.com
ダッシュボードに表示されたコードを入力し、ログインを承認してください。CLI に個人用トークンが保存されます。CI またはコンテナーでは、ログインの代わりに SPAWNER_URL と SPAWNER_TOKEN を使用します。
コマンド
# write .spawner/, and offer to add the instructions for coding agents
spawner init
# the environment of the current branch, from this worktree
spawner up --wait
# run a command in a service
spawner exec feat-login db -- psql -U app -c "select * from users"
# only the error lines, stack traces kept whole
spawner logs feat-login api --errors
# a link for someone without an account
spawner share feat-login
spawner down feat-login
プロジェクトで初めて spawner up を実行する前に、管理者がダッシュボード(Projects、New project)でプロジェクトを追加する必要があります。ほかのコマンドは、status、ls、stats、capacity、url、shell、stop、start、sleep、wake、extend、token、whoami、logout です。
コマンドは --json を指定すると JSON を出力し、安定した終了コードを返します。環境の起動に失敗した場合は 4、クォータまたはサーバーの容量に達した場合は 6、.spawner/ が拒否された場合は 7 です。
MCP サーバー
spawner mcp は、CLI と同じログイン状態および権限で動作する stdio 接続の MCP サーバーです。Claude Code では、次のように設定します。
claude mcp add spawner -- spawner mcp
プロジェクトの .mcp.json または Cursor の .cursor/mcp.json では、次のように設定します。
{
"mcpServers": {
"spawner": { "command": "spawner", "args": ["mcp"] }
}
}
9 つのツールがあります。spawner_up、spawner_status、spawner_list、spawner_logs、spawner_exec、spawner_stats、spawner_url、spawner_share、spawner_down です。spawner_exec と spawner_down は破壊的な操作としてマークされています。実行前にクライアントが確認を求めるかどうかは、クライアントとその権限設定によって異なります。
ドキュメント
- CLI と MCP サーバー:すべてのコマンド、JSON 出力、終了コード
- コーディングエージェント:Claude Code、Codex、Cursor、および
spawner initが追加する指示 - クイックスタート:新しいサーバーから最初の環境を作成するまで
ソース:github.com/Flosk6/Spawner。ライセンス:Apache-2.0。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。