关于 Spawner
Spawner 是面向开发团队和编码 Agent 的开源、可自托管预览环境管理器及命令行工具。它为每个 Git 分支创建应用副本,并配置独立 URL、数据库和日志。
主要功能
- 01从 Git 工作树创建环境
- 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、数据库和日志,供团队及其编码 Agent 使用。
使用 spawner,开发者和编码 Agent 可以从工作树创建、更新和删除环境(包括未提交的更改),在环境中运行命令并查看日志。
安装
npm install -g spawner-cli
需要 Node.js 20 或更高版本,以及一个 Spawner 服务器:只需一条命令即可安装。每台服务器也会在 /api/v1/cli/spawner 提供与自身版本对应的 CLI。
登录
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 是一个基于 stdio 的 MCP 服务,使用 CLI 的登录信息和权限。在 Claude Code 中:
claude mcp add spawner -- spawner mcp
在项目的 .mcp.json 或 Cursor 的 .cursor/mcp.json 中:
{
"mcpServers": {
"spawner": { "command": "spawner", "args": ["mcp"] }
}
}
它包含九个工具: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 输出和退出码
- 编码 Agent:Claude Code、Codex、Cursor,以及
spawner init添加的说明 - 快速入门:从全新服务器到创建第一个环境
源代码:github.com/Flosk6/Spawner。许可证:Apache-2.0。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。