porkbun-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| 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 | true |
| PORKBUN_MCP_AUDIT_HANDLER | No | Audit handler (jsonl, absolute path, or 'none' to disable) | jsonl |
| PORKBUN_PRICING_CACHE_TTL | No | Pricing cache TTL in seconds (default: 86400, '0' = no cache) | 86400 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Authenticated ping against Porkbun. Returns {"status", "yourIp"}. Useful as a readiness probe — confirms credentials work and your public IP is on Porkbun's allowlist (if you've enabled IP restriction). |
| get_pricingA | Public TLD pricing table from Porkbun. Served from a disk cache
(~/.cache/porkbun-mcp/pricing.json, XDG-aware) with a 24h TTL
(override via PORKBUN_PRICING_CACHE_TTL, seconds).
|
| get_account_balanceA | Current Porkbun account credit balance. |
| check_availabilityA | Check whether |
| check_bulk_availabilityA | Check availability for multiple domains. Client-side fan-out — one API call per domain. Per-domain errors surface in the results map without aborting the batch. |
| get_pricing_for_tldA | Pricing for a single TLD (e.g. 'com'). Derived from the same
cached pricing table as |
| list_supported_tldsA | All TLDs Porkbun supports for registration. Sorted alphabetically.
Derived from the same cached pricing table as |
| get_api_settingsA | Get the account's API spend control settings and current month's spend total. All amounts are in cents. |
| get_ipA | Get the caller's public IP address. No authentication required
(though our client always sends credentials, which is harmless).
Similar to |
| create_inviteA | Create a one-time account registration invite. The invite expires
in 48 hours. |
| get_invite_statusC | Check the status of a registration invite. Returns PENDING,
ACCEPTED (with |
| set_email_passwordB | Set the password for an email hosting account. |
| request_api_keyA | Initiate an API key authorization request. Returns a
|
| retrieve_api_keyB | Poll to check whether an API key authorization request has been approved. Returns PENDING while awaiting approval, or the public API key on approval. |
| get_marketplaceA | Browse domains listed for sale on the Porkbun marketplace.
Supports pagination ( |
| list_domainsA | List all domains in the Porkbun account. |
| get_url_forwardingC | List URL-forwarding rules for |
| get_domainA | Get detailed info for a single domain — expiry date, status, auto-renew setting, creation date, lock state, etc. |
| get_glueA | List glue records (host A/AAAA records at the registrar) for |
| list_labelsA | List all domain labels (Porkbun's tagging system). |
| register_domainA | Register a new domain using account credit. |
| renew_domainA | Renew a domain using account credit. |
| transfer_domainA | Initiate an inbound domain transfer. |
| get_transfer_statusC | Get the most recent transfer record for |
| list_transfersA | List all active inbound domain transfers (excludes completed and canceled transfers). |
| update_auto_renewA | Toggle auto-renewal for |
| create_glueA | Create a glue record (host A/AAAA records served by the registrar).
Required for custom nameservers like ns1.example.com that point at
IPs you control. |
| update_glueC | Replace the IPs on an existing glue record. action=GLUE_UPDATE. |
| delete_glueC | Remove a glue record by host name. action=GLUE_DELETE. |
| add_url_forwardB | Add a URL forward. |
| delete_url_forwardA | Remove a URL forward by record id (from get_url_forwarding). action=URLFWD_DELETE. |
| add_labelA | Create a Porkbun label and attach it to |
| remove_labelC | Detach a label from |
| get_name_serversC | Get the active nameservers for |
| update_name_serversA | Replace |
| list_dns_recordsA | List ALL DNS records for |
| get_dns_recordB | Fetch a single DNS record by Porkbun's record id. |
| get_dns_records_by_name_typeA | Filter DNS records by type ('A','TXT','MX',...) and subdomain (empty string for apex). Useful for checking whether a specific record exists without scanning the full zone. |
| create_dns_recordC | Create a DNS record on |
| edit_dns_recordA | Edit an existing DNS record by Porkbun's record id. Porkbun's
edit is a full replace — pass every field. |
| edit_dns_records_by_name_typeB | Bulk-edit every record matching (type, subdomain) on |
| delete_dns_recordC | Delete a DNS record by Porkbun's record id. |
| delete_dns_records_by_name_typeA | Bulk-delete every record matching (type, subdomain) on |
| bulk_create_dns_recordsA | Create multiple DNS records on |
| get_dnssec_recordsA | List the DS records Porkbun publishes for |
| create_dnssec_recordA | Publish a DNSSEC DS record at the registrar. Required: key_tag,
alg, digest_type, digest. Optional key_data_* fields apply only when
you're also publishing the DNSKEY-derived form. |
| delete_dnssec_recordA | Remove a DNSSEC DS record by key tag. |
| get_ssl_bundleA | Retrieve Porkbun's free DV SSL certificate bundle for |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Avicennasis/porkbun-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server