dns_auditLABSCO SUMMARY
DNS changes an assistant can make, because it has to show the plan first.
The safety model is what makes this worth handing to an agent: writing is off until the server is started for it, every scenario tool dry-runs by default, and the dangerous ones carry their own ceilings — a maximum number of deletions, a change limit on batch apply, a separate confirmation before replacing redirects or adding a second SPF record. That turns the risky part of domain work into something reviewable. Start with the health check on a domain you already run to see what it reports before letting it change anything.
What it is
A Porkbun client in two layers: direct API calls for domains, DNS records, DNSSEC, SSL and URL forwarding, and scenario tools that fold a whole operator task — a cutover, a bulk change, an email setup — into one planned operation.
What you get
- Domains listed, checked for availability singly or in bulk, registered, auto-renew set, nameservers and glue records read and changed
- DNS records listed, read by id or by type and subdomain, created, edited and deleted, with DNSSEC records managed alongside
- URL forwarding rules read, added and removed, and the SSL certificate bundle retrieved
- A unified record lookup that accepts either a record id or a type and subdomain, returning matches, count and which selector was used
- Upsert: a record brought to the state you describe — created if missing, edited if present, no-op if already right — reporting before, after and what changed, and refusing when several records match ambiguously
- Deletion with a maximum, which hard-fails rather than proceeding when the plan would remove more records than you allowed
- A batch apply for migrations: plan first and read the create, edit, delete and no-op diff, then apply with explicit confirmation and a ceiling on how many changes are acceptable
- A guided web cutover producing steps, planned changes, verification and warnings — including that propagation timing is not something the tool can promise
- Redirects converged to a desired set, with merge as the default and replace requiring its own confirmation so a mass cleanup cannot happen by accident
- Beginner-safe helpers: apex and www set up in one call, a host's A and AAAA pointed at a new server IP, one subdomain record created or edited, and baseline email DNS for Google Workspace, Protonmail or your own records — which asks for confirmation rather than adding a second SPF record
- Read-only diagnostics: a health check across nameservers, DNS, DNSSEC, SSL and forwards with an overall status and recommendations, and a beginner-facing audit that warns about the apex, www and email basics
Requirements
Porkbun API credentials — PORKBUN_API_KEY and PORKBUN_SECRET_KEY, both from the API Access page in your account. Account-level keys are not enough on their own: each domain has to be marked as available via API in its own settings, or calls against it fail. Node.js 20 or newer; it runs as npx -y porkbun-mcp. The server starts read-only, and writes stay refused until it is launched in write mode with the --get-muddy flag or PORKBUN_GET_MUDDY=true. Scenario tools default to dry_run: true, so a changing call reports its plan until you ask for the change. Bulk availability checks are capped at 100 domains and run sequentially by default with an 11-second delay, to stay inside Porkbun's rate limits.
Setup effort
One command plus a key — npx -y porkbun-mcp, then supply credentials
USE CASES
Pointing a domain at a new server
Update the host's A and AAAA records to the new IP, dry run first, and let it refuse rather than guess when several records match.
Setting a record to the right value without checking first
Describe the record you want; it creates, edits or does nothing, and tells you which of the three it did along with the before and after.
Migrating a whole zone
Plan the desired record set and read the create, edit, delete and no-op diff, then apply with a confirmation and a cap on how many changes are allowed.
Moving web traffic to a new target
Run the guided cutover for its step list, planned changes, verification and warnings — with propagation stated as something outside the tool's control.
Checking a domain is configured properly
Run the health check across nameservers, DNS, DNSSEC, SSL and forwards for a status with evidence and recommendations, or the beginner audit for apex, www and email warnings.
Setting up email DNS without breaking what is there
Apply the baseline records for your provider; if an SPF record already exists it stops and asks, rather than leaving you with two.
Shortlisting domains to register
Check a list for availability in one call, rate-limited by default, then read pricing before registering the one you want.
40 tools
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
dns_batch_applydns_createdns_deletedns_delete_by_name_typedns_editdns_edit_by_name_typedns_getdns_get_by_name_typedns_listdns_querydns_removedns_setupdns_upsertdnssec_creatednssec_deletednssec_listdomain_cutover_webdomain_health_checkdomain_redirect_ensuredomains_add_url_forwarddomains_check_availabilitydomains_check_bulkdomains_createdomains_create_glue_recorddomains_delete_glue_recorddomains_delete_url_forwarddomains_get_glue_recordsdomains_get_nameserversdomains_get_url_forwardsdomains_listdomains_update_auto_renewdomains_update_glue_recorddomains_update_nameserversemail_dns_setuppingpricing_getssl_retrievesubdomain_setupupdate_server_ipBEFORE YOU INSTALL
What to know first
Tools you get
40 tools when we connected. Writes are refused unless --get-muddy or PORKBUN_GET_MUDDY=true is set; domains_create also needs --enable-domain-create plus dry_run=false, confirm_apply=true and agree_to_terms=true per call. Domains must be API-accessible in the Porkbun panel.
Requires
- npx on PATH
- Node.js >=20
- PORKBUN_API_KEY in your environment
- PORKBUN_SECRET_KEY in your environment
Where it runs
All 6 documented setups run the server on your machine.
CONTEXT COST
Moderate Standing cost
Rated by the size of the 40 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
Connect your client
Server setup
npx -y porkbun-mcpMCP Clients
Any MCP client — read-only, Cursor, Claude Desktop, Other MCP clients
{
"mcpServers": {
"porkbun-mcp": {
"command": "npx",
"args": [
"-y",
"porkbun-mcp"
],
"env": {
"PORKBUN_API_KEY": "<YOUR_PORKBUN_API_KEY>",
"PORKBUN_SECRET_KEY": "<YOUR_PORKBUN_SECRET_KEY>"
}
}
}
}Any MCP client — write mode
{
"mcpServers": {
"porkbun-mcp": {
"command": "npx",
"args": [
"-y",
"porkbun-mcp",
"--get-muddy"
],
"env": {
"PORKBUN_API_KEY": "<YOUR_PORKBUN_API_KEY>",
"PORKBUN_SECRET_KEY": "<YOUR_PORKBUN_SECRET_KEY>"
}
}
}
}Any MCP client — domain create
{
"mcpServers": {
"porkbun-mcp": {
"command": "npx",
"args": [
"-y",
"porkbun-mcp",
"--get-muddy",
"--enable-domain-create"
],
"env": {
"PORKBUN_API_KEY": "<YOUR_PORKBUN_API_KEY>",
"PORKBUN_SECRET_KEY": "<YOUR_PORKBUN_SECRET_KEY>"
}
}
}
}