# Porkbun DNS 🐷

Manages Porkbun domains, DNS zones, DNSSEC, and SSL bundles directly from chat. Useful for handling records and mail configurations without opening the browser console.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 23
- Author: major
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/major/porkbun-mcp
- Updated: 2026-06-01
- HTML: https://affpapa.org/en/nevibecode/mcp/porkbun-dns

## What it 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.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `PORKBUN_API_KEY`, `PORKBUN_SECRET_KEY`, `PORKBUN_GET_MUDDY` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
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-mcp
```
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>

### Codex

**Platform CLI**
```bash
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-mcp
```
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>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "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>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "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>

### Gemini CLI

**Platform CLI**
```bash
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-mcp
```
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>

## When to use it
- 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
- 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

## Similar
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/en/nevibecode/mcp/oh-my-posh-validator.md) — MCP server · ★ 23643
- [Keploy](https://affpapa.org/en/nevibecode/mcp/keploy.md) — MCP server · ★ 18727
- [Coder](https://affpapa.org/en/nevibecode/mcp/coder.md) — MCP server · ★ 17160
- [mcp](https://affpapa.org/en/nevibecode/mcp/kubeshark-mcp.md) — MCP server · ★ 12109

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
