porkbun-mcp-server
MCP server for managing Porkbun domains, DNS, and related services via Porkbun's API. Every mutation requires a reason and is audited for traceability.
README
porkbun-mcp-server
Model Context Protocol server for Porkbun's API v3 — full coverage of domains, DNS records, DNSSEC, SSL bundle retrieval, glue records, URL forwarding, labels, domain registration/renewal/transfers, marketplace, account management, email hosting, and API key management.
Every mutation tool requires a reason argument and emits an audit row via a pluggable handler, so DNS changes are always traceable.
Install
pip install porkbun-mcp-server
Or from source:
git clone https://github.com/Avicennasis/porkbun-mcp-server.git
cd porkbun-mcp-server
pip install -e ".[dev]"
Register with Claude Code
claude mcp add porkbun -- porkbun-mcp
Or for other MCP clients, add to your configuration:
{
"mcpServers": {
"porkbun": {
"command": "porkbun-mcp",
"env": {
"PORKBUN_API_KEY": "pk1_...",
"PORKBUN_SECRET_KEY": "sk1_..."
}
}
}
}
Configure
| Variable | Required | Description |
|---|---|---|
PORKBUN_API_KEY |
Yes | Your Porkbun API key (pk1_...) |
PORKBUN_SECRET_KEY |
Yes | Your Porkbun secret key (sk1_...) |
PORKBUN_MCP_AUDIT_ENABLED |
No | Set false to disable audit logging |
PORKBUN_MCP_AUDIT_HANDLER |
No | Audit handler — see Audit Handler |
PORKBUN_PRICING_CACHE_TTL |
No | Pricing cache TTL in seconds (default: 86400, 0 = no cache) |
Get your API keys at porkbun.com/account/api. Ensure API access is enabled for the domains you want to manage.
Tools (49)
DNS Records
list_dns_records create_dns_record bulk_create_dns_records get_dns_record get_dns_records_by_name_type edit_dns_record edit_dns_records_by_name_type delete_dns_record delete_dns_records_by_name_type
DNSSEC
get_dnssec_records create_dnssec_record delete_dnssec_record
Domains
list_domains get_domain check_availability check_bulk_availability register_domain renew_domain transfer_domain get_transfer_status list_transfers update_auto_renew list_labels add_label remove_label create_glue update_glue get_glue delete_glue create_invite get_invite_status
Nameservers
get_name_servers update_name_servers
SSL
get_ssl_bundle
URL Forwarding
get_url_forwarding add_url_forward delete_url_forward
Account & Pricing
ping get_ip get_account_balance get_api_settings get_pricing get_pricing_for_tld list_supported_tlds request_api_key retrieve_api_key
Email & Marketplace
set_email_password get_marketplace
Audit Handler
Every mutation tool emits an audit row. The handler is configured via PORKBUN_MCP_AUDIT_HANDLER:
| Value | Behavior |
|---|---|
unset or jsonl |
Append JSONL to ~/.local/share/porkbun-mcp/audit.jsonl (default) |
| Absolute path | Shell out to the binary with --source, --category, --action, --service, --reason, --target, --payload flags |
none |
Disable audit (not recommended) |
Audit failures are always swallowed — mutations are never blocked by logging issues.
JSONL format
{"ts": "2026-06-12T18:00:00+00:00", "source": "porkbun-mcp", "category": "dns", "action": "POST", "service": "example.com", "target": "A `www`", "reason": "point www to new server"}
Pricing Cache
get_pricing, get_pricing_for_tld, and list_supported_tlds are served from a disk cache at $XDG_CACHE_HOME/porkbun-mcp/pricing.json (default ~/.cache/porkbun-mcp/pricing.json). TTL defaults to 24 hours; override with PORKBUN_PRICING_CACHE_TTL. Pass force_refresh=true to bypass the cache. Mutable data (DNS records, domain inventory) is never cached.
Development
git clone https://github.com/Avicennasis/porkbun-mcp-server.git
cd porkbun-mcp-server
pip install -e ".[dev]"
pytest -v
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.