域名管理服务器

一个基于Model Context Protocol (MCP)的服务器,提供与Porkbun API交互的工具,用于管理域名、DNS记录、SSL证书等。

  • by miraclebakelaser
  • TypeScript
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 miraclebakelaser/porkbun-mcp-server

使用说明

Porkbun MCP服务器

一个模型上下文协议(MCP)服务器,提供与 Porkbon 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 (string):域名。
    • 返回:DNS记录对象数组。
  4. create_dns_record

    • 将新DNS记录添加到指定域。
    • 输入:
      • domain (string):域名。
      • name (可选字符串):子域(根为空,通配符为*)。
      • type (string):记录类型(A、CNAME、MX、TXT、NS、AAAA、SRV、TLSA、CAA、HTTPS、SVCB)。
      • content (string):记录内容/答案。
      • ttl (可选数字):生存时间,以秒为单位(默认值600,min 600)。
      • prio (可选编号):优先级(MX/SRV记录需要)。
    • 返回:带有新记录ID的成功消息。
  5. edit_dns_record

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

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

    • 检索指定域的SSL证书包。
    • 输入:
      • domain (string):域名。
    • 返回:一个包含 certificatechain, privatekey,以及 publickey.
  8. update_nameservers

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

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

    • 为域或子域添加URL转发。
    • 输入:
      • domain (string):域名。
      • subdomain (可选字符串):要转发的子域(root留空)。
      • location (string):要转发到的URL。
      • type (枚举:“临时”、“永久”):转发类型。
      • includePath (可选枚举:“是”、“否”):在重定向中包含URI路径(默认为“否”)。
      • wildcard (可选枚举:“yes”,“no”):同时转发所有子域(默认为“no”。
    • 返回:成功消息。
  11. get_url_forwarding

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

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

    • 检查域名的可用性。
    • 输入:
      • domain (string):要检查的域名。
    • 返回:一个详细说明域的可用性、定价和高级状态的对象。
  14. edit_dns_record_by_name_type

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

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

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

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

    • 获取与注册表中的域关联的DNSSEC记录。
    • 输入:
      • domain (string):域名。
    • 返回值:一个包含DNSSEC记录的对象,由密钥标签键控。
  19. delete_dnssec_record

    • 通过密钥标记删除注册表中与域关联的DNSSEC记录。
    • 输入:
      • domain (string):域名。
      • keyTag (string):要删除的DNSSEC记录的密钥标签。
    • 返回:成功消息。

先决条件

  • Node.js (建议使用v18或更高版本)
  • npm(通常包含在Node.js中)
  • Porkbon API密钥和密钥(在此处生成)

设置

  1. 克隆存储库:

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

    npm install
    
  3. 配置API密钥: 您可以通过多种方式提供Porkbun API密钥和密钥(优先顺序最高):

    • 系统环境变量: 集 PORKBUN_API_KEY 和 PORKBUN_SECRET_API_KEY 在您的系统环境中。
    • 自定义 .env 文件: 创建一个 .env 将文件放置在自定义位置,并使用指定其路径 --dotenv-path (或 -p)运行服务器时的命令行参数(请参阅运行服务器部分)。
    • 默认 .env 文件: 创建一个名为的文件 .env 在项目根目录中(porkbun-mcp-server/.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/ 目录。

运行服务器

您可以直接使用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 脚本监视更改并自动重建/重新启动。传递以下论点 --dotenv-path 到底层 node 使用时的命令 npm run dev,您通常需要使用 --:

# 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应用程序一起使用,请将以下配置添加到您的“mcpServers”部分 claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %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 如果使用了路径,请在系统上使用正确的绝对路径。保存配置文件并 重新启动克劳德桌面.

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

许可证

此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅 许可证 项目存储库中的文件。