Porkbun DNS 🐷 — Claude Code MCP server: what it does, how to install
Manages Porkbun domains, DNS zones, DNSSEC, and SSL bundles directly from chat. Useful for handling records and mail configurations without opening the browser console.
claude mcp add --env PORKBUN_API_KEY=<PORKBUN_API_KEY> --env PORKBUN_SECRET_KEY=<PORKBUN_SECRET_KEY> --env PORKBUN_GET_MUDDY=<PORKBUN_GET_MUDDY> --transport stdio porkbun-dns -- uvx porkbun-mcpWhat Porkbun DNS 🐷 does
This server links your assistant to the Porkbun API via the Model Context Protocol. It exposes tools to inspect domains, update nameservers, configure URL redirects, verify availability, and fetch SSL certificate archives. Pre-built workflows assist with common tasks like server IP migrations, DNS audits, and setting up mail records.
Safety comes first: read-only mode is active until you enable writes. Any edit or deletion call fails unless you supply the PORKBUN_GET_MUDDY=true environment variable or the --get-muddy command line flag. Running it requires Python 3.13 or newer alongside active Porkbun API credentials.
What it helps with
- audit domain zone records for duplicates and low TTL values
- set up email routing records including MX, SPF, DKIM, and DMARC
- repoint DNS records to a new host IP during migration
- download SSL certificate bundles for active domains
Example prompts for the agent
- Check the availability and renewal pricing for mynextproject.io
- List all DNS entries for devsite.com and verify there are no duplicate records
- Update the root A record for api.service.net to point to 192.0.2.1
How to install Porkbun DNS 🐷
Platform CLI
claude mcp add --env PORKBUN_API_KEY=<PORKBUN_API_KEY> --env PORKBUN_SECRET_KEY=<PORKBUN_SECRET_KEY> --env PORKBUN_GET_MUDDY=<PORKBUN_GET_MUDDY> --transport stdio porkbun-dns -- uvx porkbun-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from porkbun-mcp <command>
Platform CLI
codex mcp add porkbun-dns --env PORKBUN_API_KEY=<PORKBUN_API_KEY> --env PORKBUN_SECRET_KEY=<PORKBUN_SECRET_KEY> --env PORKBUN_GET_MUDDY=<PORKBUN_GET_MUDDY> -- uvx porkbun-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from porkbun-mcp <command>
Config file
{
"mcpServers": {
"porkbun-dns": {
"command": "uvx",
"args": [
"porkbun-mcp"
],
"env": {
"PORKBUN_API_KEY": "<PORKBUN_API_KEY>",
"PORKBUN_SECRET_KEY": "<PORKBUN_SECRET_KEY>",
"PORKBUN_GET_MUDDY": "<PORKBUN_GET_MUDDY>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from porkbun-mcp <command>
Config file
{
"servers": {
"porkbun-dns": {
"type": "stdio",
"command": "uvx",
"args": [
"porkbun-mcp"
],
"env": {
"PORKBUN_API_KEY": "<PORKBUN_API_KEY>",
"PORKBUN_SECRET_KEY": "<PORKBUN_SECRET_KEY>",
"PORKBUN_GET_MUDDY": "<PORKBUN_GET_MUDDY>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from porkbun-mcp <command>
Platform CLI
gemini mcp add -e PORKBUN_API_KEY=<PORKBUN_API_KEY> -e PORKBUN_SECRET_KEY=<PORKBUN_SECRET_KEY> -e PORKBUN_GET_MUDDY=<PORKBUN_GET_MUDDY> porkbun-dns uvx porkbun-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from porkbun-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Porkbun DNS 🐷
How do I install Porkbun DNS 🐷 in Claude Code?
Run claude mcp add porkbun -e PORKBUN_API_KEY=<PORKBUN_API_KEY> -e PORKBUN_SECRET_KEY=<PORKBUN_SECRET_KEY> -- uvx porkbun-mcp. Replace placeholders with keys from your Porkbun API dashboard.
What does Porkbun DNS 🐷 do?
It provides MCP tools to interact with Porkbun services. The agent can inspect and manage DNS records, check domain availability, configure DNSSEC, and retrieve SSL certificates.
Why do create or delete operations return an error?
Write access is blocked by default. Pass --get-muddy as an argument or set PORKBUN_GET_MUDDY=true in your environment to permit changes.