mcpField
P
Porkbun MCP Server

Porkbun MCP Server

本地服务
github.com/miraclebakelaser云与基础设施1535 周前更新

关于 Porkbun MCP Server

Porkbun MCP Server 将 Porkbun API v3 操作提供给客户端,用于管理域名、DNS、SSL、名称服务器、转发和 DNSSEC,适合通过工具执行域名管理的 MCP 兼容客户端。

主要功能

  1. 01列出域名并检查可用性
  2. 02创建、编辑和删除 DNS 记录
  3. 03获取 SSL 证书包
  4. 04管理名称服务器和 URL 转发
  5. 05创建、查询和删除 DNSSEC 记录

适用场景

  1. 01查看域名及其可用性
  2. 02更新域名的 DNS 记录
  3. 03管理转发和名称服务器设置
  4. 04维护域名 DNSSEC 记录

MCP 相关

它通过 stdio 传输向 MCP 客户端提供 Porkbun API 操作工具。访问需要 Porkbun API 密钥和密钥 Secret。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

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

详细介绍

Porkbun MCP Server

MCP

一个 Model Context Protocol(MCP)服务,提供用于与 Porkbun API(v3)交互的工具。

此服务允许兼容 MCP 的客户端(如 AI 助手、IDE 扩展等)通过标准化接口管理 Porkbun 域名、DNS 记录、SSL 证书等。

工具

  1. ping_porkbun

    • 测试 Porkbun API 连接和身份验证。
    • 输入:无
    • 返回:包含客户端公网 IP 地址的成功消息,或错误消息。
  2. list_domains

    • 获取 Porkbun 账户中的域名列表。
    • 输入:
      • start(可选数字):开始获取域名的索引(默认值为 0)。
      • includeLabels(可选枚举:"yes"):包含域名标签。
    • 返回:域名对象数组,其中包含状态、到期日期等详细信息。
  3. get_dns_records

    • 获取指定域名的所有 DNS 记录。
    • 输入:
      • domain(字符串):域名。
    • 返回:DNS 记录对象数组。
  4. create_dns_record

    • 为指定域名添加新的 DNS 记录。
    • 输入:
      • domain(字符串):域名。
      • name(可选字符串):子域名(根域名请留空,通配符请填写 *)。
      • type(字符串):记录类型(A、CNAME、MX、TXT、NS、AAAA、SRV、TLSA、CAA、HTTPS、SVCB)。
      • content(字符串):记录内容/应答。
      • ttl(可选数字):生存时间,单位为秒(默认值为 600,最小值为 600)。
      • prio(可选数字):优先级(MX/SRV 记录必填)。
    • 返回:包含新记录 ID 的成功消息。
  5. edit_dns_record

    • 使用记录 ID 修改现有 DNS 记录。
    • 输入:
      • domain(字符串):域名。
      • record_id(字符串):要编辑的记录 ID。
      • name(可选字符串):新的子域名。
      • type(字符串):新的记录类型(A、CNAME、MX 等)。
      • content(字符串):新的记录内容/应答。
      • ttl(可选数字):新的 TTL,单位为秒(默认值为 600,最小值为 600)。
      • prio(可选数字):新的优先级(适用于 MX/SRV 记录)。
    • 返回:成功消息。
  6. delete_dns_record

    • 使用记录 ID 删除指定 DNS 记录。
    • 输入:
      • domain(字符串):域名。
      • record_id(字符串):要删除的记录 ID。
    • 返回:成功消息。
  7. get_ssl_bundle

    • 获取指定域名的 SSL 证书包。
    • 输入:
      • domain(字符串):域名。
    • 返回:包含 certificatechain、privatekey 和 publickey 的对象。
  8. update_nameservers

    • 更新指定域名的名称服务器。
    • 输入:
      • domain(字符串):域名。
      • ns(字符串数组):名称服务器主机名数组。
    • 返回:成功消息。
  9. get_nameservers

    • 从注册局获取指定域名的权威名称服务器。
    • 输入:
      • domain(字符串):域名。
    • 返回:名称服务器主机名数组。
  10. add_url_forward

    • 为域名或子域名添加 URL 转发。
    • 输入:
      • domain(字符串):域名。
      • subdomain(可选字符串):要转发的子域名(根域名请留空)。
      • location(字符串):转发目标 URL。
      • type(枚举:"temporary"、"permanent"):转发类型。
      • includePath(可选枚举:"yes"、"no"):重定向时是否包含 URI 路径(默认值为 "no")。
      • wildcard(可选枚举:"yes"、"no"):是否同时转发所有子域名(默认值为 "no")。
    • 返回:成功消息。
  11. get_url_forwarding

    • 获取域名的 URL 转发记录。
    • 输入:
      • domain(字符串):域名。
    • 返回:URL 转发记录对象数组。
  12. delete_url_forward

    • 根据 ID 删除域名的 URL 转发记录。
    • 输入:
      • domain(字符串):域名。
      • forward_id(字符串):要删除的 URL 转发记录 ID。
    • 返回:成功消息。
  13. check_domain

    • 检查域名是否可用。
    • 输入:
      • domain(字符串):要检查的域名。
    • 返回:包含域名可用性、价格和高级域名状态详情的对象。
  14. edit_dns_record_by_name_type

    • 编辑与域名、子域名(可选)和类型匹配的所有 DNS 记录。
    • 输入:
      • domain(字符串):域名。
      • type(字符串):要编辑的记录类型。
      • name(可选字符串):要编辑的子域名(留空表示根域名,* 表示通配符)。
      • content(字符串):匹配记录的新应答内容。
      • ttl(可选数字):新的 TTL(默认值为 600,最小值为 600)。
      • prio(可选数字):新的优先级(用于 MX/SRV 记录)。
    • 返回:成功消息。
  15. delete_dns_record_by_name_type

    • 删除与域名、子域名(可选)和类型匹配的所有 DNS 记录。
    • 输入:
      • domain(字符串):域名。
      • type(字符串):要删除的记录类型。
      • name(可选字符串):要删除的子域名(留空表示根域名,* 表示通配符)。
    • 返回:成功消息。
  16. retrieve_dns_record_by_name_type

    • 获取与域名、子域名(可选)和类型匹配的所有 DNS 记录。
    • 输入:
      • domain(字符串):域名。
      • type(字符串):要获取的记录类型。
      • name(可选字符串):要获取的子域名(留空表示根域名,* 表示通配符)。
    • 返回:匹配的 DNS 记录对象数组。
  17. create_dnssec_record

    • 在注册局为域名创建 DNSSEC 记录。
    • 输入:
      • domain(字符串):域名。
      • keyTag(字符串):密钥标签。
      • alg(字符串):DS 数据算法。
      • digestType(字符串):摘要类型。
      • digest(字符串):摘要。
      • maxSigLife(可选字符串):最大签名有效期。
      • keyDataFlags(可选字符串):密钥数据标志。
      • keyDataProtocol(可选字符串):密钥数据协议。
      • keyDataAlgo(可选字符串):密钥数据算法。
      • keyDataPubKey(可选字符串):密钥数据公钥。
    • 返回:成功消息。
  18. get_dnssec_records

    • 获取注册局中与域名关联的 DNSSEC 记录。
    • 输入:
      • domain(字符串):域名。
    • 返回:一个对象,其中包含以密钥标签为键的 DNSSEC 记录。
  19. delete_dnssec_record

    • 根据密钥标签删除注册局中与域名关联的 DNSSEC 记录。
    • 输入:
      • domain(字符串):域名。
      • keyTag(字符串):要删除的 DNSSEC 记录的密钥标签。
    • 返回:成功消息。

前提条件

  • Node.js(建议使用 v18 或更高版本)
  • npm(通常随 Node.js 一同安装)
  • Porkbun API 密钥和 Secret Key(在此生成)

设置

  1. 克隆仓库:

    git clone https://github.com/miraclebakelaser/porkbun-mcp-server.git
    cd porkbun-mcp-server
    
  2. 安装依赖:

    npm install
    
  3. 配置 API 密钥: 你可以通过多种方式提供 Porkbun API 密钥和 Secret Key(优先级从高到低):

    • 系统环境变量: 在系统环境中设置 PORKBUN_API_KEY 和 PORKBUN_SECRET_API_KEY。
    • 自定义 .env 文件: 在自定义位置创建 .env 文件,并在运行服务时使用 --dotenv-path(或 -p)命令行参数指定其路径(参见“运行服务”部分)。
    • 默认 .env 文件: 在项目根目录(porkbun-mcp-server/.env)中创建名为 .env 的文件,内容如下:
      PORKBUN_API_KEY=YOUR_API_KEY
      PORKBUN_SECRET_API_KEY=YOUR_SECRET_API_KEY
      

    将 YOUR_API_KEY 和 YOUR_SECRET_API_KEY 替换为你的实际密钥。 重要: 如果你计划将此项目提交到版本控制,请将 .env 文件添加到 .gitignore。

构建

将 TypeScript 代码编译为 JavaScript:

npm run build

这将在 build/ 目录中创建可执行的 JavaScript 文件。

运行服务

你可以使用 Node.js 直接运行编译后的服务。

标准启动: 使用默认 .env 路径或系统环境变量。

npm start
# or directly:
node build/index.js

使用自定义 .env 路径启动: 使用 --dotenv-path 或 -p 参数指定 .env 文件的位置:

node build/index.js --dotenv-path /path/to/your/.env
# or shorthand:
node build/index.js -p /path/to/your/.env

开发模式: dev 脚本会监视更改,并自动重新构建和重启。使用 npm run dev 时,要向底层 node 命令传递 --dotenv-path 等参数,通常需要使用 --:

# Development with default .env
npm run dev

# Development with custom .env path
npm run dev -- --dotenv-path /path/to/your/.env
# or
npm run dev -- -p /path/to/your/.env

该服务通过 MCP stdio 传输(标准输入/输出)进行通信。

在 Claude Desktop 中使用

要在 Claude Desktop 应用中使用此服务,请将以下配置添加到 claude_desktop_config.json 的“mcpServers”部分:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json (如果文件不存在,请创建该文件。)

重要: 请将下方的占位路径替换为你系统上的正确绝对路径。

请确保使用此项目中 build/index.js 文件的绝对路径。如有需要,也可以在此处传入 --dotenv-path 参数:

{
  "mcpServers": {
    "porkbun": {
      "command": "node",
      "args": [
        "/absolute/path/to/your/porkbun-mcp-server/build/index.js",
        // Optional: Add custom .env path if needed
        // "--dotenv-path",
        // "/absolute/path/to/your/.env"
      ]
      // Optional: If keys aren't in the environment where Claude runs the server
      // (and not using .env or --dotenv-path), you can add them here:
      // "env": {
      //   "PORKBUN_API_KEY": "YOUR_API_KEY",
      //   "PORKBUN_SECRET_API_KEY": "YOUR_SECRET_API_KEY"
      // }
    }
    // Add other servers here if needed
  }
}

请记得将 /absolute/path/to/your/porkbun-mcp-server/build/index.js(以及使用时的可选 .env 路径)替换为你系统上的正确绝对路径。保存配置文件并重启 Claude Desktop。

现在应该可以在 Claude 中使用 Porkbun 工具了。

许可证

此 MCP 服务采用 MIT 许可证。这意味着你可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。详情请参阅项目仓库中的 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

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

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