mcpField
O
Official Porkbun MCP Server

Official Porkbun MCP Server

已认证精选远程服务
porkbun.com开发工具34今天更新

关于 Official Porkbun MCP Server

Porkbun 官方 MCP 服务将 Porkbun v3 API 封装为 AI Agent 可调用的工具,面向域名和 DNS 管理场景。它提供托管连接,也可在沙盒或模拟环境中运行。

主要功能

  1. 01查询域名可用性与价格
  2. 02注册、续费和转移域名
  3. 03管理 DNS、DNSSEC 与转发
  4. 04管理联系人、名称服务器和 Webhook
  5. 05查询 Porkbun API 文档
  6. 06提供沙盒与模拟服务

适用场景

  1. 01查询域名注册或续费价格
  2. 02迁移域名前扫描并导入 DNS 记录
  3. 03维护域名的 DNS 和转发设置
  4. 04让 Agent 在沙盒中测试操作

MCP 相关

作为 MCP 服务,它向兼容客户端暴露 Porkbun v3 API 工具,可通过 Porkbun 托管端点连接,也提供沙盒和无凭据模拟服务。

配置

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

服务地址https://mcp.porkbun.com/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 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npm@porkbunllc/mcp-server0.53.0

工具

详细介绍

Porkbun MCP 服务(官方)

npm version npm downloads License: MIT

由 Porkbun 构建并维护的官方 MCP 服务(由 Owen Borseth,Porkbun 的 CTO 负责)。它以 @porkbunllc/mcp-server 的名称发布在 npm 上,由 Porkbun 托管于 https://mcp.porkbun.com/mcp。GitHub 上以及 MCP 目录中的其他 “Porkbun MCP” 项目都是围绕公共 API 开发的社区封装;它们并非由 Porkbun 制作或支持。在官方 MCP Registry 中,它以 com.porkbun/mcp 列出;Registry 仅向能证明自己控制 porkbun.com 的主体授予这一名称;社区项目则使用 io.github.* 名称。

一个 Model Context Protocol 服务,将 Porkbun v3 API 封装为供 AI Agent 使用的原生工具,可用于 Claude Desktop、Cursor、Cline 以及任何其他兼容 MCP 的客户端。

设置指南、客户端配置和完整工具列表:porkbun.com/mcp

无需安装:使用托管连接器。 Porkbun 在 https://mcp.porkbun.com/mcp 运行此服务。在 ChatGPT 或 Claude 中将该 URL 添加为自定义连接器(或在 Claude Code 中运行 claude mcp add --transport http porkbun https://mcp.porkbun.com/mcp),然后登录 Porkbun 并批准即可。无需复制 API 密钥。(如果应用要求 OAuth 客户端 ID 和密钥,可在 https://porkbun.com/oauth2/register 注册,使用 token_endpoint_auth_method: client_secret_post。不支持 OAuth 的客户端可以改用 X-API-Key + X-Secret-API-Key 标头发送账户的 API 密钥对,或者在只能存储一个密钥时,使用单个密钥 Authorization: Bearer pk1_…:sk1_…。)各客户端的操作步骤:连接 ChatGPT 或 Claude。部署方式:deploy/README.md。ChatGPT 和 Claude 目录中的服务使用功能较精简的版本 /mcp/no-purchases(不提供任何会花费资金或返回密钥的工具);这会改变提供哪些工具,但不会改变连接可以执行的操作。

状态: 完整支持 Porkbun v3(域名、DNS、SSL、托管、webhook;当前版本见上方 npm 徽章)。也以托管方式运行于 https://mcp.porkbun.com/mcp,供 ChatGPT 和 Claude 使用,登录即可,无需 API 密钥(不支持 OAuth 的客户端可以发送 API 密钥对)。可配置 Cloud for WordPress 并生成 WordPress REST API 凭据,让 Agent 管理刚创建的网站。可将域名迁移至客户自己的 Cloudflare 账户,随后管理这些记录、代理和区域设置。隔离的沙盒:使用 pk1_sb_ 密钥运行的所有工具都会针对模拟环境操作,并使用虚拟额度——不会执行真实的注册局操作、DNS 更改或收费——同时仍可发送签名的 webhook。无需凭据的模拟服务可为任何端点返回符合架构的示例响应。

包含内容

读取工具(免费、不花费资金、不改变状态)

工具描述
ping验证 API 连通性和凭据
check_domain检查单个域名是否可注册及其价格
get_registration_requirements以 JSON Schema 格式获取 TLD 注册要求——是否可通过 API 注册、创建请求载荷,以及注册局资格字段(.us nexus、.ca 法律类型等)
get_pricing获取所有 TLD 的注册/续费/转移价格(无需身份验证)
list_marketplace浏览 Porkbun Marketplace(Porkbun 客户自行挂牌的域名);可按 TLD、最高价格和名称子串筛选。若要一次搜索所有域名交易平台,请使用 search_aftermarket
search_closeouts搜索过期域名清仓列表;可按注册年限、价格、TLD 和名称长度筛选;按注册日期排序
search_aftermarket查找已被注册但正在出售的域名(Afternic、Sedo、Atom、NameBright、DAX、Porkbun Marketplace),包括价格、销售类型以及在 porkbun.com 上购买的链接
get_closeout获取一项清仓域名及其绑定总价(清仓价格 + 一年的续费/转移费用)
buy_closeout直接购买清仓域名。会扣除账户余额
list_domains分页列出域名;可按 TLD、到期时间、自动续费和 API 访问权限筛选
get_domain获取账户中单个域名的元数据
get_balance获取账户余额
get_auto_topup查看自动充值设置、账户是否已绑定银行卡,以及充值将扣除的金额
top_up_with_usdc使用 Base 上的 USDC 充值($1-$500;Coinbase 会收取约 1% 的费用,因此请使用 INSUFFICIENT_FUNDS 中的 usdcAmountToCover):返回由 Agent 钱包直接支付的 x402 URL,以及供用户使用的支付页面
get_usdc_topup_status查看 USDC 充值是否已支付并入账
top_up_with_card_mpp生成支付链接,Agent 可通过 MPP 使用用户的银行卡支付(Stripe Link Agent 钱包);余额会立即到账
send_phone_verification_code向账户绑定的电话号码发送短信(或拨打电话)验证码,以解除 VERIFICATION_REQUIRED 状态
confirm_phone_verification使用用户收到的验证码验证电话号码
send_email_verification_code向账户绑定的邮箱发送验证码,以解除 VERIFICATION_REQUIRED 状态
confirm_email_verification使用该邮件中的验证码验证邮箱
list_invoices按时间倒序列出账户发票:日期、已付款/已退款状态、净总额、域名,以及每张发票在 porkbun.com 上的链接
get_invoice以数据形式获取一张发票:账单对象、付款方式、包含服务期限和到期日的明细行,以及总额
get_invoice_pdf获取以嵌入文件形式提供的发票 PDF,以及一个无需登录即可使用的 15 分钟下载链接
get_api_settings获取实际执行的月度限额(购买的 spendLimit、充值的 topupLimit;默认各为 $100)、本月已支出和已充值金额、提醒及自动充值配置
get_nameservers获取域名当前的名称服务器
list_dns_records列出域名的 DNS 记录
scan_dns_records从域名当前的名称服务器发现其发布的记录(转移前使用——域名转移不会携带区域数据)
import_dns_records根据提供的列表或实时扫描结果批量创建记录;支持幂等操作,已存在的记录会跳过
list_dnssec_records列出在注册局发布的 DNSSEC DS 记录
list_url_forwards列出域名的 URL 转发规则(包括准确的 redirectType:301/302/307/隐藏式转发)
list_email_forwards列出域名的邮件转发规则(地址 → 邮箱),以及限额和转发 MX 记录是否已配置
list_mailboxes列出邮件托管邮箱(包括等待设置的邮箱)、新增邮箱的价格以及邮件客户端设置
list_glue_records列出域名的 glue 记录(主机到 IP 的映射)
list_transfers列出进行中和近期的入站转移
get_transfer_status获取特定入站转移的状态
get_ssl_bundle获取 Porkbun 为域名签发的免费 SSL 套件
get_contacts获取域名的四类联系人(注册人/管理员/技术联系人/账单联系人)及其当前信息
get_webhook_event_types列出 Webhook 端点可订阅的事件类型
list_webhooks列出 Webhook 端点(URL、事件、状态、投递健康状况、密钥)
get_webhook按 ID 获取单个 Webhook 端点
list_webhook_deliveries列出近期投递尝试(状态、尝试次数、HTTP、错误);约保留 30 天历史记录
get_webhook_delivery获取单次投递,包括完整的签名载荷
list_doc_topics列出 Porkbun API 文档主题(文档索引)
read_doc以 Markdown 格式读取文档页面(dns、webhooks 等,或 overview/full)
search_docs在完整参考文档中按关键词搜索;返回最相关的章节
list_doc_topics / read_doc / search_docs 工具可让 Agent 在对话中途参考 Porkbun 自己的文档(/llms Markdown 页面)——无需浏览网页,也无需 API 凭据。你可以仅为调研 API 而添加该服务,准备好执行实际操作时再提供密钥。

账户充值(从已保存的银行卡扣款,而非使用余额)

工具功能
configure_auto_topup开启或关闭自动充值:低于 threshold_cents 时,从已保存的支付方式扣取 amount_cents。通过 API 设置的金额上限为 $500
top_up_account_credit立即从已保存的银行卡扣款并增加余额。省略 amount_cents 时使用账户设置的金额(若从未设置,则为 $50);也可传入 amount_cents(500-50000)指定单次金额。请先向用户确认金额(美元)。每天最多 5 次,每月最多 20 次,且不得超过月度支出限额

域名生命周期写入操作(使用账户余额)

工具描述
register_domain注册新域名——先调用 check_domain 确认价格。可使用余额、直接以 USDC 支付(pay_with_usdc),或通过银行卡预授权支付(pay_with_card)
renew_domain续订现有域名
transfer_domain发起转入转移(返回 transferId;需要 5-7 天)
get_transfer_setup查看待处理的转入转移处于什么状态,以及正在等待什么
prepare_transfer在域名转移前,为待处理的转移创建 DNS 区域
start_transfer将待处理的转移提交给注册局(区域为空时会拒绝)
cancel_transfer取消待处理的转入转移并退款
update_transfer_auth_code替换停滞转移的授权码并重新排队

域名设置写入操作(免费)

工具描述
update_auto_renew开启或关闭自动续订
update_nameservers替换域名的名称服务器列表(完全替换,不追加)
update_contacts编辑域名联系人——可修改注册人/管理员/技术联系人/账单联系人中的任意子集;更改注册人会触发向新所有者发送通知邮件。对于需要验证地址的 TLD(.de/.nrw/.uk/.us/.ca/.au/.eu/.in/.nz 系列),会验证注册人地址——使用 address_validation_choice 解决验证问题。.au 域名的注册人姓名/组织变更属于仅限网站操作的所有权转让。

DNS / DNSSEC / URL 和邮件转发 / Glue 写入操作(免费)

工具描述
create_dns_record创建新的 DNS 记录(A、AAAA、CNAME、MX、TXT 等)
update_dns_record根据 ID 更新现有 DNS 记录
delete_dns_record根据 ID 删除 DNS 记录
create_dnssec_record向注册局提交 DNSSEC DS 记录
delete_dnssec_record根据密钥标签移除 DNSSEC DS 记录
create_url_forward创建 URL 转发规则(永久/临时/掩蔽;可选 redirect_type 为 301/302/307/掩蔽)
delete_url_forward根据 ID 删除 URL 转发规则
create_email_forward将域名下的地址转发到另一个邮箱;替换其他邮件服务的 MX 或重写 SPF 前会先询问(DNS_CHANGE_CONFIRMATION_REQUIRED)
delete_email_forward删除邮件转发;删除最后一条转发时也会移除转发 MX/SPF
setup_mailbox设置待启用的邮件托管邮箱(付费,或使用每次注册都附带的免费试用);若未提供密码,则自动生成
set_email_password更改邮箱的密码
create_glue_record创建 Glue 记录(在注册局设置主机到 IP 的映射)
update_glue_record替换 Glue 记录的 IP 列表
delete_glue_record根据主机名删除 Glue 记录

Secure Static Hosting

工具描述
list_hosting_plans列出可通过 API 订购的托管产品和套餐,包括价格(美分)、计费周期、试用时长和功能
create_hosting根据 sku(来自 list_hosting_plans)为域名开通托管服务——每个域名首次开通可享受 15 天免费试用,之后按套餐价格自动续订;取消后重新开通将从账户余额扣费(每个域名仅限一次免费试用)。将域名切换到 Porkbun NS(需满足 agree_to_nameserver_change);必须提供 acknowledged_cost。支持 dry_run
create_mailbox购买并一次性完成电子邮件托管邮箱的设置(每年 $36,按年续订);cost_cents 必须匹配,dry_run 可用于报价;从账户余额扣费,或使用 pay_with_card / pay_with_usdc 付款
renew_mailbox按邮箱当前的 renewalPrice 为其续订一年(已设置的邮箱也会自动续订);从账户余额扣费,或使用 pay_with_card / pay_with_usdc 付款
get_hosting获取域名的托管状态(套餐、试用、到期时间、自动续订)
deploy_site将静态文件(base64 格式,每次调用不超过 10MB)上传到域名的托管空间
list_hosting_files列出域名托管空间指定路径下的文件
delete_hosting_file删除域名托管空间中的文件(或空目录)
make_hosting_dir在域名托管空间中创建目录(以及缺失的父目录)(部署会自动创建文件路径中的目录)
delete_hosting取消域名的托管服务

Cloud for WordPress

使用 CLOUDWORDPRESS… sku 调用 create_hosting,即可开通托管式 WordPress 站点,而非静态托管(文件工具不适用——请通过 WordPress 管理)。

工具描述
create_wp_credentials创建一个 WordPress 应用程序密码(仅返回一次),以便 Agent 通过 /wp-json/ 和 HTTP Basic 操作站点。默认使用专用的最小权限 editor 用户;使用 administrator 需要明确确认(该用户可以安装插件,即运行代码)
list_wp_credentials列出站点上的应用程序密码(仅限元数据——无法再次读取密码)
delete_wp_credentials按 uuid 撤销一个应用程序密码,或撤销所有密码

Cloudflare 连接(将域名迁移到客户自己的 Cloudflare 账户)

连接 Cloudflare 账户本身需要由人工完成——必须在浏览器中完成 Cloudflare 的授权页面——因此,get_cloudflare_connection 会提供一个 URL 供你展示给用户,然后作为轮询目标。之后的所有操作均可自动完成。

  • get_cloudflare_connection — 查看是否已连接;如果未连接,查看应将人工引导至何处(轮询此工具)
  • list_cloudflare_inventory — 列出所有域名及其是否符合条件和通俗易懂的原因
  • preview_cloudflare_move — 准确预览迁移会复制或丢弃哪些记录,不会将任何内容加入队列
  • connect_domains_to_cloudflare — 将一个或多个域名加入队列(异步:返回 queued,绝不会返回 connected)
  • get_cloudflare_queue / get_cloudflare_domain_status — 查看进度和审计记录
  • retry_cloudflare_domain / rollback_cloudflare_domain — 将失败的域名重新加入队列,或恢复 Porkbun 名称服务器
  • get_cloudflare_records / create_cloudflare_record / edit_cloudflare_record / delete_cloudflare_record — 管理域名迁移后实际响应请求的区域中的 DNS
  • set_cloudflare_proxy — 按记录开启或关闭橙色云朵(迁移时始终仅导入 DNS,不启用代理)
  • get_cloudflare_zone — 查看 Cloudflare 自身的区域状态,以及名称服务器偏差检测结果
  • get_cloudflare_zone_settings / set_cloudflare_zone_settings — 管理 SSL 模式等设置
  • disconnect_cloudflare — 撤销授权(已迁移的域名仍可正常运行)

沙盒 / 测试模式 使用沙盒 API 密钥(公钥前缀为 pk1_sb_,密钥前缀为 sk1_sb_),上述每个工具都会在隔离的测试环境中运行——使用同一服务,只需更换密钥即可。注册、续费、转移、DNS、联系人、胶水记录和 DNSSEC 均会在独立的沙盒数据存储中模拟:不会执行真实的注册局操作、不会更改 DNS、不会签发证书,也不会产生费用。你的沙盒账户初始包含虚拟账户余额,可用性和价格与真实目录一致,且每个响应都包含 "sandbox": true。在 porkbun.com/account/api 创建沙盒密钥。或者使用 create_sandbox_key 立即生成一个——无需注册,无需凭据。(托管和电子邮件端点不会被模拟,使用沙盒密钥时会返回 SANDBOX_UNSUPPORTED。)

工具描述
request_api_key开始创建一个实时 API 密钥,由账户持有人在浏览器中批准(可选择仅授予部分权限);返回批准链接
retrieve_api_key批准后,一次性获取新的密钥对
create_sandbox_key无需凭据——立即生成一个临时沙盒密钥对(pk1_sb_/sk1_sb_,含 $1000 虚拟余额),让 Agent 无需任何密钥即可开始测试。可选的 scopes(例如 ["dns"])可生成受限密钥,用于测试最小权限配置
sandbox_topup仅限沙盒——增加虚拟账户余额(默认 $1000),以便余额耗尽后仍可继续测试付费操作
sandbox_reset仅限沙盒——清除沙盒账户中的域名、DNS、订单和余额,并重新发放 $1000,以便在测试运行之间恢复干净状态
sandbox_trigger_webhook仅限沙盒——向已注册的端点发送任意类型的示例签名 Webhook 事件(包括由 cron 触发的 domain.expiring),按需测试你的处理程序和签名验证

模拟服务器(无需凭据)

mock_call 可为任何端点返回符合架构的示例响应,无需密钥——无需进行任何设置。传入类似 domain/listAll 或 dns/create/example.com 的 path(省略则列出所有可模拟的端点),或设置 error: true 以获取错误响应格式。响应不会涉及任何数据存储,且与实时 API 的格式完全一致,因此你可以在获取凭据之前构建和测试客户端代码。

工具描述
mock_call无需凭据——为任何端点返回符合架构的示例响应(path 对应实际路由;设置 error: true 可获取错误响应格式;省略 path 则列出所有可模拟的端点)

Webhook 写入操作(免费)

工具描述
create_webhook注册一个 HTTPS 端点以接收签名事件负载;返回签名密钥
update_webhook更改端点的 URL、事件或状态(ACTIVE/DISABLED)
rotate_webhook_secret为端点生成新的签名密钥
test_webhook发送 webhook.test 事件,以确认端点可访问且签名验证正常
resend_webhook重新排队发送过去的投递(复用原始事件 ID)
delete_webhook删除 Webhook 端点

订阅的事件发生时,Porkbun 会向你的端点 POST 签名 JSON 负载(domain.registered、domain.renewed、domain.transfer.completed、domain.expiring、dns.record.created|updated|deleted、cloudflare.connect.completed|failed、account.verification.code_sent|completed;各事件的字段参见:https://porkbun.com/llms/webhooks)。验证 X-Porkbun-Signature 标头——其值为 sha256= 加上 {timestamp}.{rawBody} 的 HMAC-SHA256,使用端点密钥计算,其中 {timestamp} 来自 X-Porkbun-Webhook-Timestamp 标头。

Claude 插件

plugin/ 是一个 Claude 插件(claude.ai、Cowork 和 Claude Code):托管连接器 https://mcp.porkbun.com/mcp/no-purchases,以及四个技能: publish-website(将 Claude 构建的网站发布到 Porkbun Secure Static Hosting,而不是提供上传步骤)、change-dns-safely、diagnose-domain (网站宕机、邮件退回、DNS 未更新)和 move-dns-to-porkbun。它不包含任何代码。可在 Claude Code 中使用 /plugin marketplace add oborseth/Porkbun-MCP 然后运行 /plugin install porkbun@porkbun 安装(仓库根目录包含一个市场清单文件 .claude-plugin/marketplace.json,指向 ./plugin),也可以使用 claude --plugin-dir ./plugin 试用工作副本。每次更改此文件夹时,都要提高 plugin/.claude-plugin/plugin.json 中的 version 值。

Gemini CLI

gemini extensions install https://github.com/oborseth/Porkbun-MCP

添加托管服务(位于仓库根目录的 gemini-extension.json)和包含使用规则的简短 GEMINI.md。然后运行 /mcp auth porkbun,使用你的 Porkbun 账户登录。保持 gemini-extension.json 中的 version 与 package.json 一致:扩展程序库会获取已标记的版本。

安装

你需要 Node.js 18 或更高版本。

npx -y @porkbunllc/mcp-server

这会按需下载并运行最新版本,无需全局安装。

配置 MCP 客户端

Claude Desktop

将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "porkbun": {
      "command": "npx",
      "args": ["-y", "@porkbunllc/mcp-server"],
      "env": {
        "PORKBUN_API_KEY": "pk1_your_public_key_here",
        "PORKBUN_SECRET_API_KEY": "sk1_your_secret_key_here"
      }
    }
  }
}

重启 Claude Desktop。工具选择器中应会显示 Porkbun 工具。

仅文档,无需密钥: 文档工具(search_docs、read_doc、list_doc_topics)无需凭据即可使用,因此如果只想用此服务进行 API 研究,可以完全省略 env 块。在添加密钥之前,经过身份验证的工具会返回清晰的「设置 PORKBUN_API_KEY」提示。

Cursor / Cline / Continue

Cursor,一键安装: 将 Porkbun 添加到 Cursor 会添加托管服务(https://mcp.porkbun.com/mcp);首次使用时使用 Porkbun 登录,无需 API 密钥。如果此处的链接无法打开(某些网站会移除 cursor:// 链接),请使用 https://porkbun.com/mcp 上的按钮。

对于本地服务,大多数支持 MCP 的编辑器都使用与上述相同的 mcpServers 配置块。确切位置请参阅客户端文档。安装它的 Agent 可以参阅 llms-install.md。

获取 API 密钥

在 porkbun.com/account/api 创建 API 密钥。你需要公钥(pk1_…)和密钥(sk1_…)。

也可以让助手获取密钥:服务无需密钥即可启动,request_api_key(无需凭据)会返回一个链接,你可以通过该链接批准创建新密钥,并可选择仅授予部分权限;随后 retrieve_api_key 会向助手提供一次密钥对。将其填入下方配置并重启服务。

默认情况下,API 访问权限按域名单独选择加入。若要使用 API 管理所有域名,请在同一设置页面启用「Opt In All Domains」开关。否则,你需要在「Domain Management」下为每个域名单独启用 API 访问权限。

推荐:限制 Agent 使用的密钥

每个 API 密钥都支持三项可选限制。创建密钥时可在 porkbun.com/account/api 设置,也可之后点击密钥旁边的齿轮图标设置:

  • 允许的 IP — 每行一个条目;支持纯 IPv4/IPv6 地址以及 CIDR 范围(198.51.100.0/24、2001:db8::/32)。来自其他 IP 的请求会在运行任何其他检查前失败,并返回 HTTP 403 IP_NOT_ALLOWED。
  • 允许的域名 — 每行一个条目,精确匹配。针对列表中未包含的域名执行操作会失败,并返回 HTTP 403 DOMAIN_NOT_ALLOWED。
  • 权限 — 完全访问、只读、可管理,但不可购买,或自定义范围(read、dns、domains、email、hosting、purchase、funding、account)。超出权限范围的工具调用会失败,并返回 HTTP 403 INSUFFICIENT_SCOPE,且不会产生任何更改;ping 会显示密钥的 scopes。

字段留空 = 不设限制(与当前行为一致)。向 MCP 服务提供密钥时,建议采用以下做法:

  1. 创建一个专供 Agent 使用的新密钥(不要使用主密钥)。
  2. 列出 Agent 应管理的特定域名。
  3. 仅授予其所需权限(通常为可管理,但不可购买)。
  4. 如果知道 Agent 的出口 IP,也将其列出。

这样一来,意外泄露密钥造成的影响范围就会从“账户上的任何操作”缩小到“来自此 IP、针对这些域名的操作”。

环境变量

变量必需用途
PORKBUN_API_KEY用于实时操作你的 Porkbun 公共 API 密钥。省略后只能使用无需凭据的工具(文档、create_sandbox_key、request_api_key / retrieve_api_key)。
PORKBUN_SECRET_API_KEY用于实时操作你的 Porkbun 私有 API 密钥。省略后只能使用无需凭据的工具(文档、create_sandbox_key、request_api_key / retrieve_api_key)。
PORKBUN_BASE_URL否覆盖 API 基础 URL(例如,用于针对 api-betamax.porkbun.com/api/json/v3 进行测试)
PORKBUN_DOCS_BASE否覆盖 *_doc(s) 工具使用的文档主机(默认为 https://porkbun.com)
PORKBUN_X402_PRIVATE_KEY否持有 USDC 的 Base 钱包私钥(0x…)。让购买工具能通过 pay_with_usdc: true 在一次调用中直接付款。请使用仅持有你愿意花费金额的钱包。
PORKBUN_X402_MAX_CENTS否服务端将签署的单笔 USDC 付款上限,以美分为单位(默认为 5000,即 50 美元)。

本地开发

git clone https://github.com/oborseth/Porkbun-MCP.git
cd Porkbun-MCP
npm install
npm run build
npm start          # or: node dist/index.js

该服务通过标准输入输出使用 JSON-RPC 2.0。从 shell 进行冒烟测试:

(printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}') \
  | PORKBUN_API_KEY=pk1_… PORKBUN_SECRET_API_KEY=sk1_… node dist/index.js

直接使用 USDC 支付购买费用(x402)

register_domain、renew_domain、transfer_domain、buy_closeout、create_hosting、create_mailbox 和 renew_mailbox 支持 pay_with_usdc: true,可完全跳过账户余额。API 会返回 x402 付款要求(在 Base 网络上使用 USDC,金额为确切价格),并且:

  • 设置了 PORKBUN_X402_PRIVATE_KEY 时,此服务会为其签名,并在同一次工具调用中完成购买。它只会对价格与报价完全一致、以 Base 网络上的 USDC 支付的条款签名,且金额绝不会超过 PORKBUN_X402_MAX_CENTS;
  • 未设置该变量时(以及始终如此的托管连接器,因为它不持有任何人的密钥),工具会返回包含 checkoutId、x402Url 和 payUrl 的 status: PAYMENT_REQUIRED。使用钱包工具支付 x402Url(例如 Coinbase 的 awal x402 pay <x402Url> --scheme auth-capture),或让用户通过 payUrl 页面付款,然后再次调用同一工具并传入 usdc_checkout_id。

如果购买在付款后失败,款项不会退回钱包,而是保留为 Porkbun 账户余额(错误信息会说明这一点并显示新的余额),可用于重试购买或支付其他费用。指南:使用 USDC 付款(x402)。

使用银行卡支付购买,先进行预授权(Stripe MPP)

同样的五个工具支持为使用 Stripe Link Agent 钱包的用户设置 pay_with_card: true。工具会返回 status: PAYMENT_REQUIRED,其中包含一次性 payUrl 和 cardPaymentId;使用 MPP 钱包工具支付该链接(link-cli mpp pay <payUrl> -X POST --context "...";用户在 Link 中批准),这只会对银行卡进行预授权。再次调用同一工具并传入 card_payment_id:如果购买成功,就会扣款;如果失败,则会解除预授权(不扣款)。指南:使用用户的银行卡支付(MPP)。

金额参数以美分为单位,并明确说明

每个金额参数都以 _cents 结尾,接受整数形式的美分:cost_cents: 1108 表示 $11.08,amount_cents: 803 表示 $8.03。参数名中包含单位,是因为有些客户端会根据原始参数生成确认提示词,而单独的 amount: 803 曾被显示为“$803”。旧名称(cost、amount、threshold、acknowledged_cost、price_min、price_max)仍会以相同单位接受;如果同时传入新旧名称且值不同,请求会在到达 API 前被拒绝。

可靠性

写操作会自动附加每次调用专用的 Idempotency-Key 标头。24 小时内重试的调用会返回缓存的响应,因此 Agent 可以在发生网络错误时安全重试,不会重复扣款或重复注册。

隐私

此 MCP 服务是一个轻量客户端,在本地运行(在你的机器上或你托管它的任何位置),并通过 HTTPS 将请求直接转发至 Porkbun API。它不会自行收集任何数据:

  • 发送内容及接收方。 你的 API 密钥/密钥和每次工具调用的参数只会发送至 https://api.porkbun.com(对于无需凭据的文档和模拟工具,则发送至 https://porkbun.com)。不会发送到其他任何地方。
  • 存储。 服务会在进程运行期间将你的凭据保存在内存中(从环境变量读取);不会将它们写入磁盘、记录到日志或缓存你的数据。
  • 托管连接器。 在 mcp.porkbun.com 上,同一代码运行于 Porkbun 的基础设施中。它不会存储 API 密钥:每个请求都会携带用户的 OAuth 访问令牌(或者,对于无法使用 OAuth 的客户端,携带用户的 API 密钥对),并将其转发至 Porkbun API;令牌只会在内存中短暂保留(按哈希值索引,有效期为 30 秒)。请求日志会记录方法、路径、状态和耗时,绝不会记录令牌、密钥或请求正文。
  • 无遥测。 此连接器不会进行分析、跟踪或与第三方共享数据。
  • 通过此连接器访问的数据(域名、DNS、联系人、账单等)属于你的 Porkbun 账户数据,由 Porkbun 按其政策处理。

完整的数据处理、保留、第三方及联系信息,请参阅 Porkbun 的隐私政策:https://porkbun.com/legal/agreement/privacy_policy

许可证

MIT

链接

评论

支持 Markdown

第一次接触 MCP?

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

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