mcpField
P
Purgatorium (p9m)

Purgatorium (p9m)

远程服务
csakaszamok.github.io云与基础设施6今天更新

关于 Purgatorium (p9m)

Purgatorium (p9m) 是供团队自托管的平台,可创建 Docker 沙盒并使用 Docker Compose 部署应用。每个沙盒拥有独立的 Docker 守护进程和应用 URL,闲置时休眠,并可在收到请求时唤醒。

主要功能

  1. 01创建隔离的 Docker 沙盒
  2. 02使用 Docker Compose 部署应用
  3. 03提供公开应用 URL 和 TLS 地址
  4. 04闲置沙盒休眠并按请求唤醒
  5. 05使用限定于单个沙盒的 Agent 令牌

适用场景

  1. 01为 Agent 提供应用部署沙盒
  2. 02在自管服务器上托管团队应用
  3. 03通过独立 URL 暴露已部署应用

MCP 相关

Purgatorium 内置 MCP 服务,Agent 可通过它操作沙盒。其工具也可通过 MCP 服务调用,或使用 HTTP 上的 JSON-RPC 直接调用。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://{purgatorium_host}/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://{purgatorium_host}/mcp需要授权

工具

详细介绍

README 配图 Purgatorium (p9m)

文档 CI 许可证

说明

早期版本,尚未达到 1.0。 它可以正常运行且经过了测试(每次变更都会运行 CI,发布版本附带变更日志),但仍有不够完善之处,小版本之间也可能有破坏性变更。

为你的团队及其 AI Agent 提供可自托管的沙盒:每个沙盒都有自己的 Docker,每个应用都有一个 URL,闲置的沙盒会休眠。

可以把它看作是一个可自托管的 Vercel,用于部署团队及其 Agent 搭建的应用。目前通过 docker compose 部署;基于 Git 的构建已列入路线图。

从点击 New sandbox 到拥有自己的 Docker 和应用的公开 URL,大约只需 10 秒;休眠的沙盒可在不到 10 秒内恢复。(在已拉取所需镜像的情况下测量:新服务上的第一个沙盒还需要下载这些镜像。)

实时创建沙盒并打开其应用:大约 10 秒

  • 每个沙盒都有自己的 Docker 守护进程(还可按需使用 Portainer UI)
  • 每个应用都有一个公开 URL,Postgres、Redis 和 SSH 也提供 TLS 地址
  • 闲置时休眠,下一个请求到来时唤醒;删除时会归档,不会丢失任何内容
  • **专为 Agent 打造:**令牌仅限于单个沙盒,提供Agent 指南、MCP 服务和 Claude Code 插件(运行 /plugin marketplace add csakaszamok/p9m,然后运行 /p9m:init,即可为每个项目建立连接:Purgatorium 会在 Let your agent deploy… 下方显示该命令)
隐藏复杂性,保持简单,专注于重要的事。

Purgatorium 抽象掉基础设施的复杂性和运维开销,提供直观的用户体验,让用户专注于工作和业务目标,而不是管理底层技术。

为什么选择 Purgatorium,以及它与其他方案的比较,比较对象包括笔记本电脑、云 PaaS、共享 Docker 主机、Coolify,以及每人一台 VM · 工作原理:各个组件(Docker-in-Docker、frp、Traefik、Sablier)、沙盒生命周期,以及请求的流转路径

在脚本或 Agent 中使用,效果相同

所有演示都是真实运行,且实时进行;点击任意一项即可观看。

实时使用 curl 创建沙盒并调用其应用:大约 7 秒Claude Code 通过 MCP 服务创建沙盒并检查其应用,实时演示使用 curl 调用 MCP 服务:先执行 tools/list,再执行 create_sandbox,实时演示

可以通过 API 使用 curl 操作,由 Agent 通过 MCP 服务操作,也可以手动调用 MCP 服务(通过 HTTP 传输 JSON-RPC,因此甚至可以用 curl 调用其中的工具)。

在笔记本电脑上试用

使用 Docker Desktop,或在 Linux 上使用 Docker Engine 和 compose 插件,并确保端口 80 和 443 空闲(在 Windows 上,请使用 Git Bash 或 WSL):

mkdir p9m && cd p9m
curl -fsSLO https://github.com/csakaszamok/p9m/releases/latest/download/docker-compose.yml
curl -fsSL https://github.com/csakaszamok/p9m/releases/latest/download/setup.sh | bash   # prints the admin password
docker compose up -d

打开 **http://p9m.lvh.me**(`lvh.me` 及其所有子域名都指向 127.0.0.1,因此无需设置 DNS),使用 setup.sh 打印的密码以管理员身份登录,然后按 New sandbox。创建第一个沙箱时,需要一两分钟来拉取镜像;之后大约只需 10 秒。沙箱应用会在自己的 http://<name>-….lvh.me 地址打开。

应用第一次打开就要等好几秒? 在 Chrome 中,前往 Settings → Privacy and security → Security → Use secure DNS:如果使用“your current service provider”,每个新的 *.lvh.me 名称都可能因解析器响应缓慢或过滤而需要等待。请关闭此选项,或选择 Cloudflare(1.1.1.1)等服务商。

要移除沙箱:先在界面中删除沙箱(每个沙箱都是独立的 compose 项目,因此执行下一步后它们仍会继续运行),然后在 p9m 目录中运行 docker compose down -v,并删除该目录。

安装

在装有 Docker Engine 和 compose 插件的 Linux 主机上,无需克隆仓库(先检查主机):

mkdir p9m && cd p9m
curl -fsSLO https://github.com/csakaszamok/p9m/releases/latest/download/docker-compose.yml
curl -fsSL https://github.com/csakaszamok/p9m/releases/latest/download/setup.sh | bash -s -- dev.example.com   # .env with your domain and random secrets
docker compose up -d

然后在 http://p9m.<HOST_DOMAIN> 登录(默认地址为 http://p9m.lvh.me)。

何时选择其他方案

Purgatorium 适用于团队的应用和 Agent 部署:让它们以较低成本运行在自己的服务器上,并通过 URL 访问。其他用途则更适合使用其他工具:

  • 需要扩展并持续运行的生产环境 → 云 PaaS,或在自己的服务器上使用 Coolify / Dokploy
  • 来自陌生人的不可信代码 → 使用 E2B 等 microVM 沙箱或 Docker Sandboxes(在 Purgatorium 支持 Kata 运行时之前)
  • 在云端 IDE 中编写代码 → Coder 或 GitHub Codespaces
  • 由 SDK 驱动、运行短脚本的 Agent → E2B 或 Daytona

更多信息请参阅对比。

文档

csakaszamok.github.io/p9m:教程、安装、配置、让 Agent 进行部署、MCP、API,以及供 Agent 使用的 llms-full.txt。

安全性: 如果已安装 sysbox,沙箱将在不使用特权容器的情况下运行;如果未安装,则会回退到特权 dind,这适合彼此信任的团队,不适合运行恶意代码。在共享服务器上,请安装 sysbox 并设置 ALLOWED_RUNTIMES=sysbox(详情)。

参与贡献 · 安全问题 · AGPL-3.0

可免费使用,包括商业用途,可部署在自己的服务器上或为客户提供服务。修改后通过网络向他人提供服务?那么他们也有权根据相同许可证获取你修改后的源代码(AGPL-3.0)。基于 Purgatorium 构建的每款产品都必须注明:在 About 页面和文档中标明 Based on Purgatorium (p9m),注明已修改,并且不得使用“Purgatorium”或“p9m”这两个名称(NOTICE)。0.10.3 及更早版本采用 Apache-2.0 许可证发布。

评论

支持 Markdown

第一次接触 MCP?

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

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