Porkbun MCP服务器

一个模型上下文协议(MCP)服务器,提供与 Porkbon API(v3).
此服务器允许MCP兼容客户端(如AI助手、IDE扩展等)通过标准化接口管理Porkbun域、DNS记录、SSL证书等。
工具
ping_porkbun
- 测试Porkbun API连接和身份验证。 - 输入:无 - 返回:成功消息,包括客户端的公共IP地址,或错误消息。
list_domains
- 检索Porkbun帐户中的域列表。 - 输入: - start (可选数字):开始检索域的索引(默认值0)。 - includeLabels (可选枚举:“yes”):包括域标签。 - 返回:一个域对象数组,包含状态、到期日期等详细信息。
get_dns_records
- 检索指定域的所有DNS记录。 - 输入: - domain (string):域名。 - 返回:DNS记录对象数组。
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的成功消息。
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记录)。 - 返回:成功消息。
delete_dns_record
- 使用特定DNS记录的ID删除该记录。 - 输入: - domain (string):域名。 - record_id (string):要删除的记录的ID。 - 返回:成功消息。
get_ssl_bundle
- 检索指定域的SSL证书包。 - 输入: - domain (string):域名。 - 返回:一个包含 certificatechain, privatekey,以及 publickey.
update_nameservers
- 更新指定域的名称服务器。 - 输入: - domain (string):域名。 - ns (字符串数组):名称服务器主机名数组。 - 返回:成功消息。
get_nameservers
- 从注册表获取指定域的权威名称服务器。 - 输入: - domain (string):域名。 - 返回:名称服务器主机名数组。
add_url_forward
- 为域或子域添加URL转发。 - 输入: - domain (string):域名。 - subdomain (可选字符串):要转发的子域(root留空)。 - location (string):要转发到的URL。 - type (枚举:“临时”、“永久”):转发类型。 - includePath (可选枚举:“是”、“否”):在重定向中包含URI路径(默认为“否”)。 - wildcard (可选枚举:“yes”,“no”):同时转发所有子域(默认为“no”。 - 返回:成功消息。
get_url_forwarding
- 获取域的URL转发记录。 - 输入: - domain (string):域名。 - 返回:URL转发记录对象的数组。
delete_url_forward
- 按ID删除域的URL转发记录。 - 输入: - domain (string):域名。 - forward_id (string):要删除的URL转发记录的ID。 - 返回:成功消息。
check_domain
- 检查域名的可用性。 - 输入: - domain (string):要检查的域名。 - 返回:一个详细说明域的可用性、定价和高级状态的对象。
edit_dns_record_by_name_type
- 编辑与域、子域(可选)和类型匹配的所有DNS记录。 - 输入: - domain (string):域名。 - type (string):要编辑的记录类型。 - name (可选字符串):要编辑的子域(根为空,通配符为\*)。 - content (string):匹配记录的新答案内容。 - ttl (可选数字):新的TTL(默认值600,最小值600)。 - prio (可选编号):新的优先级(适用于MX/SRV记录)。 - 返回:成功消息。
delete_dns_record_by_name_type
- 删除与域、子域(可选)和类型匹配的所有DNS记录。 - 输入: - domain (string):域名。 - type (string):要删除的记录类型。 - name (可选字符串):要删除的子域名(根为空,通配符为\*)。 - 返回:成功消息。
retrieve_dns_record_by_name_type
- 检索与域、子域(可选)和类型匹配的所有DNS记录。 - 输入: - domain (string):域名。 - type (string):要检索的记录类型。 - name (可选字符串):要检索的子域(根为空,通配符为\*)。 - 返回:匹配的DNS记录对象数组。
create_dnssec_record
- 在注册表中为域创建DNSSEC记录。 - 输入: - domain (string):域名。 - keyTag (string):密钥标签。 - alg (string):DS数据算法。 - digestType (string):摘要类型。 - digest (string):摘要。 - maxSigLife (可选字符串):最大信号寿命。 - keyDataFlags (可选字符串):关键数据标志。 - keyDataProtocol (可选字符串):密钥数据协议。 - keyDataAlgo (可选字符串):密钥数据算法。 - keyDataPubKey (可选字符串):密钥数据公钥。 - 返回:成功消息。
get_dnssec_records
- 获取与注册表中的域关联的DNSSEC记录。 - 输入: - domain (string):域名。 - 返回值:一个包含DNSSEC记录的对象,由密钥标签键控。
delete_dnssec_record
- 通过密钥标记删除注册表中与域关联的DNSSEC记录。 - 输入: - domain (string):域名。 - keyTag (string):要删除的DNSSEC记录的密钥标签。 - 返回:成功消息。
先决条件
- (建议使用v18或更高版本)
- npm(通常包含在Node.js中)
- Porkbon API密钥和密钥(在此处生成)
设置
- 克隆存储库:
git clone https://github.com/miraclebakelaser/porkbun-mcp-server.git
cd porkbun-mcp-server- 安装依赖项:
npm install- 配置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许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅 许可证 项目存储库中的文件。

