mcpField
S
Spawner

Spawner

本地服务
spawner.run云与基础设施03 周前更新

关于 Spawner

Spawner 是面向开发团队和编码 Agent 的开源、可自托管预览环境管理器及命令行工具。它为每个 Git 分支创建应用副本,并配置独立 URL、数据库和日志。

主要功能

  1. 01从 Git 工作树创建环境
  2. 02纳入未提交的更改
  3. 03在服务中运行命令
  4. 04读取环境日志
  5. 05管理环境生命周期

适用场景

  1. 01评审前预览功能分支
  2. 02在隔离环境中测试工作树更改
  3. 03在分支环境中运行数据库命令
  4. 04调试预览环境时查看日志

MCP 相关

`spawner mcp` 命令以 stdio 运行 MCP 服务,使用命令行用户的登录状态和权限。其 9 个工具可管理环境、查看状态和日志、执行命令及共享 URL。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"flosk6-spawner": {
"command": "npx",
"args": [
"-y",
"spawner-cli"
],
"env": {
"SPAWNER_URL": "<SPAWNER_URL>",
"SPAWNER_TOKEN": "<SPAWNER_TOKEN>"
}
}
}
}
启动命令npx -y spawner-cli
需要配置的环境变量
SPAWNER_URLAddress of your Spawner server's dashboard, such as https://spawner.preview.example.com. Without it, the server of spawner login
SPAWNER_TOKEN密钥Personal API token (spn_...), from spawner token create or the dashboard. Without it, the token of spawner login

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmspawner-cli2.2.1

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
envstring否环境名称;默认使用 worktree 的分支名(feat/login 会变为 feat-login)
ttlstring否生命周期,例如 "24h"
pathstring否worktree 的绝对路径;默认使用客户端共享的第一个根目录,否则使用 MCP 服务运行所在的目录
refsobject否改为从 git 的指定分支获取的源:{ "front": "develop" }
waitboolean否等待环境就绪(默认 true)
freshboolean否丢弃数据(卷)并从头开始
reseedboolean否重放 spawner.yaml 中的种子步骤
sourcesobject否要从本地 worktree 发送的其他 spawner.yaml 仓库:{ "front": "/path/to/front" }
timeout_secinteger否等待时长(默认 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 被标记为具有破坏性的操作:客户端是否会在运行前征求确认,取决于客户端及其权限设置。

文档

源代码:github.com/Flosk6/Spawner。许可证:Apache-2.0。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。