Porkbun MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORKBUN_API_KEY | Yes | Your Porkbun public API key | |
| PORKBUN_BASE_URL | No | Override the API base URL (e.g. for testing against api-betamax.porkbun.com/api/json/v3) | |
| PORKBUN_SECRET_API_KEY | Yes | Your Porkbun secret API key |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Verify the Porkbun API connection and credentials. Returns the caller's public IP and whether the API key is valid. Use this as a first sanity check before making other calls. |
| check_domainA | Check whether a single domain is available for registration and what it costs. Returns availability ( |
| get_pricingA | Get current Porkbun pricing for all supported TLDs. Returns registration, renewal, and transfer prices per TLD in USD. No authentication required. Useful when an agent needs to compare TLD costs before registering. Note: this returns standard pricing only — premium domains have their own per-domain pricing reported by check_domain. |
| list_marketplaceA | Browse domains for sale on the Porkbun marketplace (aftermarket — domains owned by other users, not new registrations). Returns each listing's domain, TLD, SLD length, price (in USD), and listing date. Filters (all optional, server-side, mirroring the porkbun.com/marketplace UI):
When any filter is set, server returns up to 1000 matching listings. With no filters, supports raw pagination via |
| list_domainsA | List domains in the authenticated Porkbun account. Returns one page (up to 1000) with metadata: expire date, auto-renew, security lock, WHOIS privacy, API access opt-in, and notLocal flag. Filters (all optional):
For a single domain by name, use |
| get_domainA | Get the metadata for a single domain in the authenticated account: status, TLD, create date, expire date, security lock, WHOIS privacy, auto-renew, API access opt-in, and (optionally) labels. Returns an error with code |
| get_balanceA | Get the available account credit balance for the authenticated Porkbun account. Returns the balance in cents (integer) and a human-readable display string (e.g. |
| get_api_settingsA | Get the authenticated account's API spend control configuration: monthly spend limit, low-balance alert threshold, auto top-up settings, and current month's API spend total. All amounts are in cents. Useful for an agent to check budget headroom before initiating expensive operations — |
| get_nameserversA | Get the current nameservers configured for a domain in the authenticated account. Returns an array of nameserver hostnames. Read-only complement to |
| list_dns_recordsA | List all DNS records for a domain in the authenticated account. Returns each record's id, type (A, AAAA, CNAME, MX, TXT, etc.), name (subdomain or empty for apex), content, ttl, and priority (where applicable). The |
| list_dnssec_recordsA | List the DNSSEC DS records currently submitted to the registry for a domain. Returns key tag, algorithm, digest type, and digest. Use this to verify DNSSEC chain-of-trust setup. Empty array = DNSSEC not configured. |
| list_url_forwardsA | List all URL forwarding rules configured for a domain. Each entry includes its |
| list_glue_recordsA | List glue records for a domain. Glue records associate a host (e.g. |
| list_transfersA | List all in-progress and recent inbound domain transfers for the authenticated account. Returns each transfer's domain, status ( |
| get_transfer_statusA | Get the status of a specific inbound transfer for a domain. Useful for polling after |
| get_ssl_bundleA | Retrieve the free Porkbun-issued SSL certificate bundle for a domain. Returns the certificate chain, private key, and public key (PEM-encoded strings). Porkbun automatically provisions Let's Encrypt certificates for all registered domains using Porkbun nameservers. Use this to install TLS on a server you control. |
| register_domainA | Spends account credit. Registers a new domain on the authenticated Porkbun account. The |
| renew_domainA | Spends account credit. Renews an existing domain in the authenticated account. The |
| transfer_domainA | Spends account credit. Initiates a transfer of an external domain into Porkbun. Returns immediately with a |
| update_auto_renewA | Turn auto-renewal on or off for a domain in the authenticated account. When auto-renew is on, Porkbun automatically charges your account credit at expiration. When off, you must manually renew or the domain expires. Idempotent. |
| update_nameserversA | Replace the nameservers for a domain in the authenticated account. This is a full replacement, not an append — the supplied list becomes the complete set of nameservers. Most TLDs require 2-13 entries. Setting custom nameservers disables Porkbun's free DNS hosting for the domain. Idempotent: applying the same NS list twice is a no-op. |
| create_dns_recordA | Create a DNS record on a domain in the authenticated account. Returns the new record's |
| update_dns_recordA | Update an existing DNS record by its numeric |
| delete_dns_recordA | Delete a single DNS record by its numeric |
| create_dnssec_recordA | Submit a DNSSEC DS record to the registry for a domain. Use when you sign DNS yourself (custom nameservers running BIND/Knot/PowerDNS/etc.) and need to publish the chain-of-trust at the parent zone. Required: keyTag, algorithm, digestType, digest. Optional key-data fields for registries that require full DNSKEY (rare). |
| delete_dnssec_recordA | Remove a DNSSEC DS record from the registry for a domain, identified by key tag. Use when retiring a key. Idempotent: deleting a non-existent key tag returns success. |
| create_url_forwardA | Add a URL forwarding rule for a domain. Forwards a subdomain (or apex if |
| delete_url_forwardA | Delete a URL forwarding rule by its |
| create_glue_recordA | Create a glue record for a host on a domain. Used when running your own nameservers on the same domain they serve (e.g. |
| update_glue_recordA | Update the IP addresses associated with an existing glue record. Replaces the full IP list — pass all IPs you want set, not just additions. Idempotent. |
| delete_glue_recordA | Delete a glue record by host on a domain. Idempotent: deleting a non-existent glue record returns success. |
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
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/oborseth/Porkbun-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server