返回市场
猪肉包-MCP服务器

猪肉包-MCP服务器

作者:miraclebakelaser10 星标更新:2025-07-22

项目介绍

Porkbun MCP 服务器

MCP

这是一个提供与Porkbun API (v3)交互工具的模型上下文协议(MCP)服务器。

此服务器允许兼容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(可选数字):新的生存时间(秒,默认600,最小600)。
      • prio(可选数字):新的优先级(MX/SRV记录需要)。
    • 返回:成功消息。
  6. delete_dns_record

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

    • 获取指定域名的SSL证书捆绑包。
    • 输入:
      • domain(字符串):域名。
    • 返回:包含certificatechainprivatekeypublickey的对象。
  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(可选数字):新的生存时间(秒,默认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密钥和秘密密钥(在这里生成

设置

  1. 克隆仓库:

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

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

    • 系统环境变量: 在系统环境中设置PORKBUN_API_KEYPORKBUN_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_KEYYOUR_SECRET_API_KEY替换为您实际的密钥。 重要提示: 如果您计划将此项目提交到版本控制系统,请将.env文件添加到.gitignore中。

构建

编译TypeScript代码为JavaScript:

npm run build

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

运行服务器

您可以直接使用Node.js运行已编译的服务器。

标准启动: 使用默认的.env位置或系统环境变量。

npm start
# 或直接:
node build/index.js

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

node build/index.js --dotenv-path /path/to/your/.env
# 或简写:
node build/index.js -p /path/to/your/.env

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

# 开发模式,使用默认的.env
npm run dev

# 开发模式,使用自定义的.env路径
npm run dev -- --dotenv-path /path/to/your/.env
# 或
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",
        // 可选:如果需要,添加自定义的.env路径
        // "--dotenv-path",
        // "/absolute/path/to/your/.env"
      ]
      // 可选:如果在运行服务器的环境中没有密钥
      // (且不使用.env或--dotenv-path),可以在这里添加它们:
      // "env": {
      //   "PORKBUN_API_KEY": "YOUR_API_KEY",
      //   "PORKBUN_SECRET_API_KEY": "YOUR_SECRET_API_KEY"
      // }
    }
    // 如有需要,可以添加其他服务器
  }
}

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

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

许可证

此MCP服务器根据MIT许可证发布。这意味着您可以在遵守MIT许可证条款和条件的前提下自由使用、修改和分发软件。更多详情,请参阅项目存储库中的LICENSE文件。