关于 pntr
pntr 是用于管理免费开发者子域名、DNS、临时邮箱和 Webhook 捕获的命令行工具及 MCP 服务。它支持终端工作流和 MCP 客户端,也可为测试创建隔离的邮箱与 Webhook 资源。
主要功能
- 01注册和管理子域名
- 02添加和更新 DNS 记录
- 03接收临时邮件
- 04捕获并检查 Webhook
- 05等待符合筛选条件的邮件和请求
- 06创建隔离测试资源
适用场景
- 01将开发子域名指向部署环境
- 02测试注册和 OTP 邮件流程
- 03检查 Stripe 或 GitHub Webhook 投递
- 04创建并清理隔离的 CI 测试资源
MCP 相关
提供子域名与 DNS 管理、邮箱收件箱和 HTTP 请求捕获工具。可作为本地 stdio 服务运行,也可连接 https://api.pntr.dev/mcp 上的远程 MCP 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
@pntr/cli
适用于 PNTR 的 CLI 和 MCP 服务——为开发者提供免费的 *.pntr.dev 子域名、
DNS 记录、一次性邮箱收件箱,以及原生
MCP 集成。
使用一个易记的主机名指向某个部署、接收注册和 OTP 邮件,或捕获 Stripe 和 GitHub webhook 请求。你可以在终端、Claude Code、Claude Desktop、Cursor 或其他 MCP 客户端中管理同一工作流。
快速开始
npx @pntr/cli setup-mcp
此操作会让你登录(设备授权流程),并将 PNTR 配置为你电脑上检测到的 AI 客户端(Claude Desktop、Claude Code、Cursor)的 MCP 服务。之后,你就可以让助手注册子域名、添加 DNS 记录、查看收件箱或检查捕获的 webhook。
常见工作流
- 将免费子域名连接到 Vercel 或 GitHub Pages
- 检查 Stripe webhook 和 GitHub 投递记录
- 使用 Playwright 测试注册邮件
- 从 Claude Code 管理 DNS
命令
pntr login Authenticate with PNTR using the device flow
pntr logout Clear stored credentials
pntr status Show authentication status
pntr recipient Generate a unique catch-all address for one test run
pntr email wait Wait for an exact test email
pntr webhook wait Wait for a matching captured HTTP request
pntr env create Create isolated mail and webhook test resources
pntr env delete Delete the two exact resources from a manifest
pntr serve Start the stdio MCP server (used by AI clients)
pntr setup-mcp Configure MCP for detected AI clients
TestKit CLI
在已有的启用邮件功能的子域名上生成唯一收件地址:
pntr recipient testbox.pntr.dev \
--prefix signup
不使用 --run-id 时,每次调用都会获得随机后缀。这是并行测试最安全的默认选项。如果需要可重复的地址,请在 --run-id 中包含测试用例和工作器标识,而不只是 CI 运行 ID。
等待该收件地址对应的邮件,而不是读取最后收到的任意邮件:
pntr email wait "$PNTR_MAIL_SUBDOMAIN_ID" \
--to "[email protected]" \
--subject "verification" \
--since 5m \
--timeout 25s \
--json
等待任意捕获的请求,或组合精确的请求筛选条件:
pntr webhook wait "$PNTR_WEBHOOK_SUBDOMAIN_ID" \
--method POST \
--path /stripe \
--header "stripe-signature: expected-value" \
--body-contains '"type":"payment_intent.succeeded"' \
--since 5m \
--timeout 25s \
--json
等待调用使用服务端长轮询。--since 接受 RFC3339 时间戳或相对时长,例如 5m。服务端接受 1 到 25 秒的超时时间。超时会输出简短诊断信息并以状态码 2 退出;其他错误以状态码 1 退出。JSON 输出中绝不会包含凭据。
要完成一次完整的 CI 运行,请创建两个相互隔离的同级子域名,并保存它们的确切 ID:
pntr env create "e2e-$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT" \
--output "$RUNNER_TEMP/pntr-testkit.json"
邮件同级子域名启用了收件箱,webhook 同级子域名启用了捕获功能。它们无法安全地共用一个主机名,因此一个环境会占用账户配额中的 2 个子域名。创建过程中若发生部分失败,会回滚已创建的内容。
即使测试失败,也始终根据清单进行清理:
pntr env delete \
--manifest "$RUNNER_TEMP/pntr-testkit.json" \
--confirm
删除操作只使用带版本号的清单中的两个 ID。它不会按名称搜索或执行大范围删除,并且允许任一资源已不存在。参见可运行的 Playwright 注册/OTP 示例。
MCP 设置方式
自动设置(推荐)
npx @pntr/cli setup-mcp
远程服务——无需本地进程
PNTR 还运行着一个支持 GitHub OAuth 的远程 MCP 服务。将任意支持可流式 HTTP 的客户端指向:
https://api.pntr.dev/mcp
对于 Claude Code:
claude mcp add --transport http pntr https://api.pntr.dev/mcp
对于 Claude Desktop / Cursor(mcpServers 配置):
{
"mcpServers": {
"pntr": { "url": "https://api.pntr.dev/mcp" }
}
}
首次连接时,客户端会打开浏览器窗口,让你使用 GitHub 登录。旧版客户端可使用 SSE 端点(https://api.pntr.dev/mcp/sse)。
本地 stdio 服务
npx @pntr/cli login
npx @pntr/cli serve # speaks MCP over stdio, proxies the PNTR API
也可以使用 mcpServers 配置块:
{
"mcpServers": {
"pntr": {
"command": "npx",
"args": ["-y", "@pntr/cli", "serve"]
}
}
}
服务启动后,无需凭据即可列出工具;调用会访问账户的工具前,请运行 npx @pntr/cli login(或设置 PNTR_TOKEN)。MCP 返回的邮件和捕获请求内容会被标记为不可信数据;助手应检查这些内容,但绝不能遵循其中嵌入的指令。
工具
list_domains- 列出可用的父域名check_subdomain- 检查名称是否可用list_subdomains- 列出你的子域名及其 DNS 记录register_subdomain- 注册子域名,可选择同时添加初始 DNS 记录update_subdomain- 设置或替换 DNS 记录,更新描述delete_dns_record- 删除单条 DNS 记录toggle_subdomain- 启用或停用子域名delete_subdomain- 删除子域名toggle_email- 启用或停用一次性收件箱list_emails- 列出收到的邮件(保留 48 小时,付费版保留 90 天)read_email- 阅读收到邮件的完整内容wait_for_email- 等待发送到指定测试收件人的邮件,可选择使用筛选条件toggle_capture- 将子域名设为 HTTP 请求捕获端点set_capture_response- 设置捕获端点返回的状态码、内容类型和正文list_requests- 列出捕获到的 HTTP 请求read_request- 读取捕获请求的标头和正文wait_for_request- 等待符合 HTTP 筛选条件的捕获请求toggle_wildcard- 启用通配符 DNS(*.name.pntr.dev,付费版)
你可以向助手提出这样的请求:“注册 storm.pntr.dev 并指向 203.0.113.10”、“在 storm 上启用邮件并留意验证码”,或者*“读取 storm.pntr.dev 上最新的邮件”*。
备注
- 需要 Node 18+。
- 凭据通过 conf 存储在本地。
- 文档:https://pntr.dev/docs · 问题反馈:https://github.com/oddunits/pntr-cli/issues
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。