mcpField
P
Purgatory (p7y)

Purgatory (p7y)

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

关于 Purgatory (p7y)

Purgatory (p7y) 是面向团队及其 AI Agent 的可自托管 Docker 沙箱服务,可通过 Docker Compose 部署应用。每个沙箱有独立的 Docker daemon 和应用 URL,并可在空闲时休眠、收到请求时唤醒。

主要功能

  1. 01每个沙箱独立 Docker daemon
  2. 02通过 Docker Compose 部署
  3. 03应用公网 URL 和 TLS 端点
  4. 04空闲休眠并按请求唤醒
  5. 05限定沙箱范围的 Agent 令牌

适用场景

  1. 01为 Agent 提供隔离的应用部署环境
  2. 02通过独立 URL 发布团队应用
  3. 03保留数据并暂停空闲沙箱

MCP 相关

MCP 服务可供 Agent 操作 Purgatory 沙箱。README 还提到可通过 HTTP 上的 JSON-RPC 调用其工具。

配置

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

服务地址https://{purgatory_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://{purgatory_host}/mcp需要授权

工具

详细介绍

README 配图 Purgatory (p7y)

文档 CI 许可证

说明

早期版本,尚未达到 1.0。 它已经可以正常运行并经过测试(每次变更都会运行 CI,发布时附有变更日志),但仍可能存在瑕疵,次要版本之间也可能有不兼容变更。

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

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

从新建沙盒到拥有自己的 Docker 和应用的公开 URL,大约只需 10 秒;休眠中的沙盒也能在不到 10 秒内恢复。(在镜像已拉取的情况下测量:新服务上的首个沙盒还需要下载镜像。)

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

  • 每个沙盒都有自己的 Docker 守护进程(可选配 Portainer UI)
  • 每个应用都有一个公开 URL,Postgres、Redis 和 SSH 也有 TLS 地址
  • 闲置时休眠,下次收到请求时唤醒;删除操作会将其归档,不会丢失任何内容
  • **专为 Agent 打造:**令牌仅限访问单个沙盒,提供Agent 指南、MCP 服务和 Claude Code 插件(先运行 /plugin marketplace add p7y-dev/p7y,再运行 /p7y:init 为每个项目建立连接:Purgatory 会在*让你的 Agent 部署……*下方显示这行命令)
隐藏复杂性。保持简单。专注于重要的事。

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

为何选择 Purgatory,以及它与其他方案的比较:与笔记本电脑、云 PaaS、共享 Docker 主机、Coolify 和每人一台虚拟机的比较 · 工作原理:组件(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 p7y && cd p7y
curl -fsSLO https://github.com/p7y-dev/p7y/releases/latest/download/docker-compose.yml
curl -fsSL https://github.com/p7y-dev/p7y/releases/latest/download/setup.sh | bash   # prints the admin password
docker compose up -d

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

应用第一次打开需要好几秒? 在 Chrome 中,依次前往 设置 → 隐私和安全 → 安全性 → 使用安全 DNS:选择“使用当前服务提供商”时,每个新的 *.lvh.me 名称都可能因解析器速度慢或过滤而等待。请关闭此选项,或选择 Cloudflare(1.1.1.1)等提供商。

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

安装

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

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

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

何时选择其他工具

Purgatory 适用于团队的应用和 Agent 部署:它们应托管在自己的服务器上,并通过 URL 访问,同时成本低廉。对于其他用途,更适合使用其他工具:

  • 必须扩展规模并保持在线的生产环境 → 云 PaaS,或在自己的服务器上使用 Coolify / Dokploy
  • 来自陌生人的不可信代码 → 使用 E2B 或 Docker Sandboxes 等 microVM 沙箱(Purgatory 支持 Kata 运行时之前)
  • 在云 IDE 中编写代码 → Coder 或 GitHub Codespaces
  • 通过 SDK 运行短脚本的 Agent → E2B 或 Daytona

更多信息请参阅对比指南。

文档

p7y-dev.github.io/p7y:教程、安装、配置、让你的 Agent 部署应用、MCP、API,以及供 Agent 使用的 llms-full.txt。

安全性: 安装了 sysbox 时,沙箱无需特权容器即可运行;未安装时则会回退到特权 dind,适合彼此信任的团队,不适合运行恶意代码。在共享服务器上,请安装 sysbox 并设置 ALLOWED_RUNTIMES=sysbox(详情)。

贡献指南 · 安全问题 · AGPL-3.0

可免费使用,也可用于商业用途,既可部署在自己的服务器上,也可为客户提供服务。如果你修改了它,并让他人通过网络使用,那么也必须向他们提供你修改后的源代码,并遵循相同的许可证(AGPL-3.0)。所有基于 Purgatory 构建的产品都必须在其“关于”页面和文档中注明 Based on Purgatory (p7y),标明已修改,且不得使用“Purgatory”或“p7y”名称(NOTICE)。0.10.3 及之前的版本以 Apache-2.0 许可证发布。

评论

支持 Markdown

第一次接触 MCP?

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

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