Plonki

MCP tools

27 tools. Each returns JSON as text and as structured content. Errors come back with isError and the same { error: { code, message, hint } } as the REST API.

ToolWhat it does
search_domainsSearch domains
suggest_domainsSuggest available domains
get_pricesGet prices
register_domainRegister a domain
get_orderGet order status
list_domainsList domains
get_domainGet domain
point_domainPoint domain at a website
set_nameserversSet nameservers
list_dns_recordsList DNS records
add_dns_recordAdd DNS record
delete_dns_recordDelete DNS record
renew_domainRenew domain
get_transfer_codeGet transfer code
check_transferCheck a transfer in
transfer_domainTransfer a domain in
set_transfer_lockTurn the transfer lock on or off
list_email_forwardsList email forwards
add_email_forwardForward an email address
delete_email_forwardRemove an email forward
list_url_forwardsList redirects
add_url_forwardRedirect the domain to a URL
delete_url_forwardRemove a redirect
list_contactsList registrant contacts
create_contactSave a registrant contact
get_accountGet account
create_topup_linkTop up balance

search_domains

Check if domains are available and what they cost. Pass an exact domain (acme.com) or a name/phrase (Acme Coffee), which is tried across popular extensions. Prices are AUD cents per year.

Read only. Needs domains:read.

FieldTypeDescription
querystringA domain (acme.com) or a name/phrase (Acme Coffee). Phrases are checked across popular extensions.
up to 200 chars
domainsarray of stringExact domains to check, up to 50
tldsarray of stringExtensions to try for a phrase, e.g. ['com','io','com.au']

suggest_domains

Generate available domain ideas from keywords describing the project, cheapest first.

Read only. Needs domains:read.

FieldTypeDescription
keywords
required
stringWhat the site is about, e.g. 'dog grooming melbourne'
up to 200 chars
tldsarray of string
limitinteger
1 to 30, default 10

get_prices

Registration and renewal prices per extension (AUD cents per year). Optionally filter to one extension.

Read only. Needs domains:read.

FieldTypeDescription
tldstringe.g. com, io, com.au

register_domain

Buy a domain. Spends money: only call after the user confirms the domain and price. Pays from the account balance, or returns a checkout_url for the user to pay. Always set max_price and idempotency_key.

Makes changes. Needs the domains:write scope. Safe to retry.

FieldTypeDescription
domain
required
stringThe domain to register, e.g. acme.com
yearsinteger
1 to 10, default 1
max_priceintegerMost you will pay, in AUD cents, for the whole order. Use total from search/quote. Order fails if the price is higher.
contact_idstringSaved registrant contact. Defaults to the account's default contact.
contactobjectRegistrant details, if there's no saved contact. Saved for next time.
contact.first_name
required
string
up to 60 chars
contact.last_name
required
string
up to 60 chars
contact.organisationstring
up to 120 chars
contact.email
required
email
contact.phone
required
stringMobile, e.g. 0412 345 678, +61 412 345 678 or +61.412345678
contact.address1
required
string
up to 120 chars
contact.address2string
up to 120 chars
contact.city
required
string
up to 60 chars
contact.state
required
stringFor Australia use the abbreviation: NSW, VIC, QLD, SA, WA, TAS, ACT, NT
up to 60 chars
contact.postcode
required
string
up to 12 chars
contact.country
required
stringISO 3166-1 alpha-2, e.g. AU, US, GB
up to 2 chars
au_eligibilityobjectRequired for .com.au, .net.au, .org.au, .id.au and .au names (auDA rules)
au_eligibility.registrant_name
required
stringLegal name of the registrant (company or person)
up to 255 chars
au_eligibility.registrant_id
required
stringABN, ACN or other ID number, digits only
up to 50 chars
au_eligibility.registrant_id_type
required
"ABN" | "ACN" | "OTHER"OTHER covers state business registration numbers and incorporated associations
au_eligibility.eligibility_type
required
string (see list)Entity type. Most businesses are 'Company' (Pty Ltd), 'Sole Trader' or 'Registered Business'. .id.au only allows 'Citizen/Resident'.
au_eligibility.eligibility_namestringTrading or business name the domain is based on, if different from registrant_name
up to 255 chars
au_eligibility.eligibility_idstringID that backs eligibility_name (e.g. a trademark number or state business number)
up to 50 chars
au_eligibility.eligibility_id_typestring (see list)
nameserversarray of stringCustom nameservers. Leave empty to use Plonki DNS (needed for the DNS tools).
payment"auto" | "balance" | "checkout"auto: use balance, or return a pay link if it's short. checkout: always return a pay link.
default "auto"
idempotency_keystringSame key returns the same order instead of buying twice
up to 100 chars
external_refstringYour own reference, e.g. your customer's ID
up to 200 chars

get_order

Status of a registration or renewal order. Poll this after register_domain until status is completed or failed.

Read only. Needs domains:read.

FieldTypeDescription
order_id
required
string

list_domains

Domains in this account. Filter by external_ref to find a specific end customer's domains.

Read only. Needs domains:read.

FieldTypeDescription
external_refstring

get_domain

Details for one domain: expiry, nameservers, whether Plonki manages its DNS.

Read only. Needs domains:read.

FieldTypeDescription
domain
required
stringe.g. acme.com

point_domain

Connect a domain to where the site is hosted, e.g. target 'myapp.vercel.app', 'myapp.netlify.app', 'myapp.pages.dev' or an IP address. Sets the right DNS records for the root and www and returns next steps for the host.

Makes changes. Needs the domains:write scope. Safe to retry.

FieldTypeDescription
domain
required
string
target
required
stringWhere the site is hosted: an IPv4 address (76.76.21.21) or a hostname (myapp.vercel.app, myapp.pages.dev, myapp.netlify.app)
include_wwwboolean
default true

set_nameservers

Use another DNS provider's nameservers (Cloudflare, Vercel...). Pass an empty list to go back to Plonki DNS.

Makes changes. Needs the domains:write scope. Safe to retry.

FieldTypeDescription
domain
required
string
nameservers
required
array of stringHostnames, e.g. ['ns1.vercel-dns.com','ns2.vercel-dns.com']. Send an empty array to switch back to Plonki DNS.

list_dns_records

DNS records for a domain whose DNS is managed by Plonki.

Read only. Needs domains:read.

FieldTypeDescription
domain
required
stringe.g. acme.com

add_dns_record

Add a DNS record (A, AAAA, CNAME, MX, TXT, SRV, CAA, NS). Use name '@' for the root. Good for domain verification TXT records and email MX records.

Makes changes. Needs the domains:write scope.

FieldTypeDescription
domain
required
string
namestringHost label: '@' for the root, 'www', 'api', etc.
default "@"
type
required
"A" | "AAAA" | "CNAME" | "MX" | "TXT" | "SRV" | "CAA" | "NS"
content
required
string
up to 2048 chars
ttlinteger
300 to 86400, default 3600
priorityintegerMX and SRV only
0 to 65535

delete_dns_record

Delete a DNS record by id (from list_dns_records).

Makes changes. Needs the domains:write scope. Deletes data. Safe to retry.

FieldTypeDescription
domain
required
string
record_id
required
string

renew_domain

Extend a domain's registration. Spends money: confirm with the user first.

Makes changes. Needs the domains:write scope. Safe to retry.

FieldTypeDescription
domain
required
string
yearsinteger
1 to 10, default 1
max_priceinteger
payment"auto" | "balance" | "checkout"
default "auto"
idempotency_keystring
up to 100 chars

get_transfer_code

The EPP/auth code needed to move the domain to another registrar.

Read only. Needs the domains:write scope.

FieldTypeDescription
domain
required
stringe.g. acme.com

check_transfer

Check whether a domain the user already owns elsewhere can move to Plonki, and what it costs. Needs the transfer (EPP/auth) code from the current registrar. Doesn't buy anything.

Read only. Needs domains:read.

FieldTypeDescription
domain
required
stringThe domain to move to Plonki, e.g. acme.com
auth_code
required
stringTransfer (EPP/auth) code from the current registrar
up to 100 chars

transfer_domain

Move a domain from another registrar to Plonki. Spends money: call check_transfer first and confirm the price with the user. Transfers take 1 to 7 days; poll get_order.

Makes changes. Needs the domains:write scope. Safe to retry.

FieldTypeDescription
domain
required
stringThe domain to move to Plonki, e.g. acme.com
auth_code
required
stringTransfer (EPP/auth) code from the current registrar
up to 100 chars
max_priceintegerMost you will pay, in AUD cents. Use the price from check_transfer.
contact_idstringSaved owner contact. Defaults to the account's default contact.
contactobjectOwner details, if there's no saved contact. Saved for next time.
contact.first_name
required
string
up to 60 chars
contact.last_name
required
string
up to 60 chars
contact.organisationstring
up to 120 chars
contact.email
required
email
contact.phone
required
stringMobile, e.g. 0412 345 678, +61 412 345 678 or +61.412345678
contact.address1
required
string
up to 120 chars
contact.address2string
up to 120 chars
contact.city
required
string
up to 60 chars
contact.state
required
stringFor Australia use the abbreviation: NSW, VIC, QLD, SA, WA, TAS, ACT, NT
up to 60 chars
contact.postcode
required
string
up to 12 chars
contact.country
required
stringISO 3166-1 alpha-2, e.g. AU, US, GB
up to 2 chars
payment"auto" | "balance" | "checkout"
default "auto"
idempotency_keystringSame key returns the same order instead of transferring twice
up to 100 chars
external_refstringYour own reference, e.g. your customer's ID
up to 200 chars

set_transfer_lock

Lock a domain so it can't be transferred away (locked: true), or turn the lock off before moving it to another registrar (locked: false). Not available for .au.

Makes changes. Needs the domains:write scope. Safe to retry.

FieldTypeDescription
domain
required
string
locked
required
booleantrue stops the domain being transferred away; false allows a transfer out

list_email_forwards

Email addresses on the domain that forward to another inbox.

Read only. Needs domains:read.

FieldTypeDescription
domain
required
stringe.g. acme.com

add_email_forward

Make an address like hello@yourdomain forward to an existing inbox (Gmail, Outlook...). Needs the domain on Plonki DNS.

Makes changes. Needs the domains:write scope.

FieldTypeDescription
domain
required
string
alias
required
stringThe part before the @, e.g. hello for hello@yourdomain
forward_to
required
emailInbox that receives the mail, e.g. sam@gmail.com

delete_email_forward

Stop forwarding an address (id from list_email_forwards).

Makes changes. Needs the domains:write scope. Deletes data. Safe to retry.

FieldTypeDescription
domain
required
string
forward_id
required
string

list_url_forwards

Hostnames on the domain that redirect to another URL.

Read only. Needs domains:read.

FieldTypeDescription
domain
required
stringe.g. acme.com

add_url_forward

Send visitors to another web address with a permanent (301) redirect, e.g. the root domain to an Instagram or Facebook page. Replaces any website on that hostname.

Makes changes. Needs the domains:write scope.

FieldTypeDescription
domain
required
string
hoststring@ for the domain itself, or a label like www
default "@"
destination
required
stringFull URL to send visitors to, e.g. https://instagram.com/acmecoffee

delete_url_forward

Delete a redirect (id from list_url_forwards).

Makes changes. Needs the domains:write scope. Deletes data. Safe to retry.

FieldTypeDescription
domain
required
string
forward_id
required
string

list_contacts

Saved domain owner contacts. The default is used when register_domain gets no contact.

Read only. Needs domains:read.

No inputs.

create_contact

Save the domain owner's details for future registrations.

Makes changes. Needs the domains:write scope.

FieldTypeDescription
first_name
required
string
up to 60 chars
last_name
required
string
up to 60 chars
organisationstring
up to 120 chars
email
required
email
phone
required
stringMobile, e.g. 0412 345 678, +61 412 345 678 or +61.412345678
address1
required
string
up to 120 chars
address2string
up to 120 chars
city
required
string
up to 60 chars
state
required
stringFor Australia use the abbreviation: NSW, VIC, QLD, SA, WA, TAS, ACT, NT
up to 60 chars
postcode
required
string
up to 12 chars
country
required
stringISO 3166-1 alpha-2, e.g. AU, US, GB
up to 2 chars
make_defaultboolean
default false

get_account

Account email, balance (AUD cents) and whether this is test mode.

Read only. Needs domains:read.

No inputs.