mcpField
P
pntr

pntr

本地服务
github.com/oddunits开发工具213 周前更新

关于 pntr

pntr 是用于管理免费开发者子域名、DNS、临时邮箱和 Webhook 捕获的命令行工具及 MCP 服务。它支持终端工作流和 MCP 客户端,也可为测试创建隔离的邮箱与 Webhook 资源。

主要功能

  1. 01注册和管理子域名
  2. 02添加和更新 DNS 记录
  3. 03接收临时邮件
  4. 04捕获并检查 Webhook
  5. 05等待符合筛选条件的邮件和请求
  6. 06创建隔离测试资源

适用场景

  1. 01将开发子域名指向部署环境
  2. 02测试注册和 OTP 邮件流程
  3. 03检查 Stripe 或 GitHub Webhook 投递
  4. 04创建并清理隔离的 CI 测试资源

MCP 相关

提供子域名与 DNS 管理、邮箱收件箱和 HTTP 请求捕获工具。可作为本地 stdio 服务运行,也可连接 https://api.pntr.dev/mcp 上的远程 MCP 服务。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"dev-pntr-pntr": {
"command": "npx",
"args": [
"-y",
"@pntr/cli"
]
}
}
}
启动命令npx -y @pntr/cli

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

安装包
npm@pntr/cli0.3.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

@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。

常见工作流

命令

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 上最新的邮件”*。

备注

评论

支持 Markdown

第一次接触 MCP?

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

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