article
README
🚀 porkbun-mcp
porkbun-mcp 是一个适用于 Porkbun DNS API 的 MCP 服务器。借助模型上下文协议,它能够管理 DNS 记录、域名、DNSSEC、SSL 证书等内容。
🚀 快速开始
你可以直接使用 uvx 运行该项目(无需安装):
uvx porkbun-mcp
SSE 传输
uvx porkbun-mcp --transport sse
✨ 主要特性
- 支持通过模型上下文协议管理 Porkbun 的 DNS 记录、域名、DNSSEC、SSL 证书等。
- 具备只读模式,保障操作安全,可按需启用写操作。
- 提供多种 MCP 客户端配置方式,方便集成到不同的开发环境中。
- 拥有丰富的工具集,涵盖 DNS、域名、DNSSEC、SSL、定价等多个方面的操作。
- 提供预定义的工作流,指导常见的 DNS 操作。
📦 安装指南
配置 Porkbun API 凭证
将你的 Porkbun API 凭证设置为环境变量:
export PORKBUN_API_KEY="pk1_..."
export PORKBUN_SECRET_KEY="sk1_..."
你可以从 Porkbun API 访问页面 获取 API 密钥。
只读模式(默认)
为了安全起见,porkbun-mcp 默认以只读模式运行。在显式启用之前,写操作(创建、编辑、删除)将返回错误。
启用写操作
你可以通过以下两种方式启用写操作:
环境变量方式:
export PORKBUN_GET_MUDDY=true
CLI 标志方式:
uvx porkbun-mcp --get-muddy
💻 使用示例
MCP 客户端配置
Claude Desktop
在 ~/.config/claude/claude_desktop_config.json 中添加以下内容:
{
"mcpServers": {
"porkbun": {
"command": "uvx",
"args": ["porkbun-mcp", "--get-muddy"],
"env": {
"PORKBUN_API_KEY": "pk1_...",
"PORKBUN_SECRET_KEY": "sk1_..."
}
}
}
}
⚠️ 重要提示:为了安全起见,建议在只读模式下移除
args中的--get-muddy。
Claude Code / Codex
在 ~/.claude/settings.json 中添加以下内容:
{
"mcpServers": {
"porkbun": {
"command": "uvx",
"args": ["porkbun-mcp", "--get-muddy"],
"env": {
"PORKBUN_API_KEY": "pk1_...",
"PORKBUN_SECRET_KEY": "sk1_..."
}
}
}
}
VS Code
在你的工作区的 .vscode/mcp.json 中添加以下内容(或者使用 MCP: Add Server 命令):
{
"servers": {
"porkbun": {
"command": "uvx",
"args": ["porkbun-mcp", "--get-muddy"],
"env": {
"PORKBUN_API_KEY": "pk1_...",
"PORKBUN_SECRET_KEY": "sk1_..."
}
}
}
}
OpenCode
在你的 opencode.json 配置文件中添加以下内容:
{
"mcp": {
"porkbun": {
"type": "local",
"command": ["uvx", "porkbun-mcp", "--get-muddy"],
"environment": {
"PORKBUN_API_KEY": "pk1_...",
"PORKBUN_SECRET_KEY": "sk1_..."
}
}
}
}
📚 详细文档
可用工具
DNS
dns_list- 列出域名的所有 DNS 记录dns_get- 通过 ID 获取特定的 DNS 记录dns_get_by_name_type- 通过子域名和类型获取 DNS 记录dns_create- 创建新的 DNS 记录dns_edit- 通过 ID 编辑 DNS 记录dns_edit_by_name_type- 通过子域名和类型编辑 DNS 记录dns_delete- 通过 ID 删除 DNS 记录dns_delete_by_name_type- 通过子域名和类型删除 DNS 记录
域名
domains_list- 列出账户中的所有域名domains_get_nameservers- 获取域名的名称服务器domains_update_nameservers- 更新域名的名称服务器domains_get_url_forwards- 获取 URL 转发规则domains_add_url_forward- 添加 URL 转发规则domains_delete_url_forward- 删除 URL 转发规则domains_check_availability- 检查域名可用性和定价domains_get_glue_records- 获取域名的胶水记录
DNSSEC
dnssec_list- 列出域名的 DNSSEC 记录dnssec_create- 创建 DNSSEC 记录dnssec_delete- 删除 DNSSEC 记录
SSL
ssl_retrieve- 获取域名的 SSL 证书捆绑包
定价
pricing_get- 获取所有可用 TLD 的定价
实用工具
ping- 测试 API 连接性并获取你的公共 IP
预定义工作流
预定义的工作流可指导常见的 DNS 操作:
dns_setup- 为新服务器设置基本 DNS(根 A + www 记录)dns_audit- 审核 DNS 配置是否存在问题(重复记录、缺少电子邮件记录、低 TTL 等)email_dns_setup- 配置电子邮件 DNS(MX、SPF、DKIM、DMARC)update_server_ip- 在迁移到新服务器 IP 时更新 DNS 记录subdomain_setup- 为新子域名创建 A/CNAME 记录
🔧 技术细节
开发
# 安装依赖
uv sync --dev
# 运行所有检查
make check
# 单独的命令
make lint # ruff 检查
make format # ruff 格式化
make typecheck # ty 类型检查
make test # 带覆盖率的 pytest 测试
📄 许可证
本项目采用 MIT 许可证。
微信扫一扫