Skip to main content
Glama
oborseth

Porkbun MCP Server

by oborseth

Porkbun MCP Server

npm version npm downloads License: MIT

A Model Context Protocol server that exposes the Porkbun v3 API as native tools for AI agents — Claude Desktop, Cursor, Cline, and any other MCP-compatible client.

Setup guide, client configs and the full tool list: porkbun.com/mcp

Status: v0.22.0 — full Porkbun v3 coverage (domains, DNS, SSL, hosting, webhooks). Provisions Cloud for WordPress and mints WordPress REST API credentials so an agent can manage the site it just created. Moves domains to a customer's own Cloudflare account and then manages those records, the proxy and zone settings. An isolated sandbox: a pk1_sb_ key runs every tool against a simulated environment with fake credit — no real registry actions, DNS changes or charges — and still delivers signed webhooks. A credential-free mock server returns schema-accurate example responses for any endpoint.

What's included (81 tools)

Read tools (free, no spend, no state changes)

Tool

Description

ping

Verify API connectivity and credentials

check_domain

Check availability and pricing for a single domain

get_registration_requirements

TLD registration requirements as JSON Schema — is it API-registerable, the create payload, and registry eligibility fields (.us nexus, .ca legal type, …)

get_pricing

Get registration/renewal/transfer pricing for all TLDs (no auth needed)

list_marketplace

Browse the Porkbun aftermarket — filter by TLD, max price, name substring

list_domains

Paginate through domains; filter by tld, expiry, auto-renew, API access

get_domain

Get metadata for a single domain in the account

get_balance

Get account credit balance

get_api_settings

Get monthly spend limit, low-balance alert, auto top-up config, MTD spend

get_nameservers

Get current nameservers for a domain

list_dns_records

List DNS records for a domain

list_dnssec_records

List DNSSEC DS records published at the registry

list_url_forwards

List URL forwarding rules for a domain (incl. exact redirectType: 301/302/307/masked)

list_glue_records

List glue records (host-to-IP mappings) for a domain

list_transfers

List in-progress and recent inbound transfers

get_transfer_status

Get status of a specific inbound transfer

get_ssl_bundle

Retrieve the free Porkbun-issued SSL bundle for a domain

get_contacts

Get a domain's four contacts (registrant/admin/tech/billing) with current values

get_webhook_event_types

List the event types a webhook endpoint can subscribe to

list_webhooks

List webhook endpoints (URL, events, status, delivery health, secret)

get_webhook

Get a single webhook endpoint by id

list_webhook_deliveries

List recent delivery attempts (status, attempts, HTTP, error); ~30-day history

get_webhook_delivery

Get a single delivery incl. the full signed payload

list_doc_topics

List Porkbun API doc topics (the docs index)

read_doc

Read a doc page as Markdown (dns, webhooks, … or overview/full)

search_docs

Keyword-search the full reference; returns the most relevant sections

The list_doc_topics / read_doc / search_docs tools let an agent ground itself in Porkbun's own documentation (the /llms Markdown surface) mid-conversation — no web browsing required, and no API credentials needed. You can add the server purely to research the API, then supply keys when you're ready for live operations.

Domain lifecycle writes (spend account credit)

Tool

Description

register_domain

Register a new domain — call check_domain first to confirm price

renew_domain

Renew an existing domain

transfer_domain

Initiate an inbound transfer (returns transferId; takes 5-7 days)

Domain settings writes (free)

Tool

Description

update_auto_renew

Turn auto-renewal on or off

update_nameservers

Replace the nameserver list for a domain (full replace, not append)

update_contacts

Edit domain contacts — any subset of registrant/admin/tech/billing; a registrant change fires the new-owner notice email. On address-validated TLDs (.de/.nrw/.uk/.us/.ca/.au/.eu/.in/.nz families) it validates the registrant address — resolve with address_validation_choice. A .au registrant name/org change is a website-only ownership trade.

DNS / DNSSEC / URL-forwarding / glue writes (free)

Tool

Description

create_dns_record

Create a new DNS record (A, AAAA, CNAME, MX, TXT, etc.)

update_dns_record

Update an existing DNS record by its ID

delete_dns_record

Delete a DNS record by its ID

create_dnssec_record

Submit a DNSSEC DS record to the registry

delete_dnssec_record

Remove a DNSSEC DS record by key tag

create_url_forward

Create a URL forwarding rule (permanent/temporary/masked; optional redirect_type 301/302/307/masked)

delete_url_forward

Delete a URL forwarding rule by ID

create_glue_record

Create a glue record (host-to-IP mapping at the registry)

update_glue_record

Replace the IP list for a glue record

delete_glue_record

Delete a glue record by host

Secure Static Hosting

Tool

Description

list_hosting_plans

List API-provisionable hosting products + plans, with price (cents), interval, trial length, features

create_hosting

Provision hosting for a domain by sku (from list_hosting_plans) — first provision per domain is a 15-day free trial that auto-renews at the plan price; re-provision after deprovision is charged to account credit (one free trial per domain). Switches the domain to Porkbun NS (gated by agree_to_nameserver_change); requires acknowledged_cost. dry_run supported

get_hosting

Get hosting status for a domain (plan, trial, expiry, auto-renew)

deploy_site

Upload static files (base64, ≤10MB/call) to a domain's hosting

list_hosting_files

List files under a path in a domain's hosting

delete_hosting_file

Delete a file (or empty dir) from a domain's hosting

make_hosting_dir

Create a directory (and missing parents) in a domain's hosting (deploy auto-creates dirs in a file path)

delete_hosting

Deprovision (cancel) hosting for a domain

Cloud for WordPress

create_hosting with a CLOUDWORDPRESS… sku provisions a managed WordPress site instead of static hosting (the file tools don't apply — manage it through WordPress).

Tool

Description

create_wp_credentials

Mint a WordPress Application Password (returned once) so an agent can drive the site via /wp-json/ with HTTP Basic. Defaults to a dedicated least-privilege editor user; administrator requires an explicit acknowledgement (it can install plugins = run code)

list_wp_credentials

List application passwords on the site (metadata only — passwords can't be re-read)

delete_wp_credentials

Revoke an application password by uuid, or all of them

Cloudflare connect (move domains to the customer's own Cloudflare account)

Connecting the Cloudflare account itself is a human step — Cloudflare's consent screen has to be completed in a browser — so get_cloudflare_connection hands you a URL to show your user, then acts as the poll target. Everything after that is automated.

  • get_cloudflare_connection — connected or not, and where to send the human if not (poll this)

  • list_cloudflare_inventory — every domain with its eligibility and a plain-English reason

  • preview_cloudflare_move — exactly which records a move would copy or drop, queueing nothing

  • connect_domains_to_cloudflare — queue one or many (async: returns queued, never connected)

  • get_cloudflare_queue / get_cloudflare_domain_status — progress, and the audit trail

  • retry_cloudflare_domain / rollback_cloudflare_domain — re-queue a failure, or restore Porkbun nameservers

  • get_cloudflare_records / create_cloudflare_record / edit_cloudflare_record / delete_cloudflare_record — manage DNS in the zone that actually answers once a domain has moved

  • set_cloudflare_proxy — turn the orange cloud on or off, per record (a move always imports DNS-only, on purpose)

  • get_cloudflare_zone — Cloudflare's own zone state, plus nameserver-drift detection

  • get_cloudflare_zone_settings / set_cloudflare_zone_settings — SSL mode and friends

  • disconnect_cloudflare — forget the grant (domains already moved keep working)

Sandbox / test mode

Use a sandbox API key (public key prefixed pk1_sb_, secret sk1_sb_) and every tool above runs against an isolated test environment — same server, you just swap the key. Registrations, renewals, transfers, DNS, contacts, glue, and DNSSEC are all simulated against a separate sandbox datastore: no real registry actions, no DNS changes, no certificates, and no charges. Your sandbox account starts with fake account credit, availability/pricing reflect the real catalog, and every response includes "sandbox": true. Create a sandbox key on porkbun.com/account/api. Or mint one instantly with create_sandbox_key — no signup, no credentials. (Hosting and email endpoints aren't simulated and return SANDBOX_UNSUPPORTED with a sandbox key.)

Tool

Description

create_sandbox_key

No credentials needed — instantly mint a throwaway sandbox key pair (pk1_sb_/sk1_sb_, $1000 fake credit) so an agent can start testing before it has any keys

sandbox_topup

Sandbox only — grant fake account credit (default $1000) so paid ops can keep being exercised after funds run out

sandbox_reset

Sandbox only — wipe the sandbox account's domains/DNS/orders/credit and re-grant $1000, for a clean slate between test runs

sandbox_trigger_webhook

Sandbox only — fire a sample signed webhook event of any type (incl. cron-driven domain.expiring) to your registered endpoints, to test your handler + signature verification on demand

Mock server (no credentials)

mock_call returns a schema-accurate example response for any endpoint with no key required — nothing to set up. Pass a path like domain/listAll or dns/create/example.com (omit it to list every mockable endpoint), or set error: true for the error shape. Responses touch no datastore and match the live API's shape exactly, so you can build and test client code before you have any credentials.

Tool

Description

mock_call

No credentials needed — schema-accurate example response for any endpoint (path mirrors the real route; error: true for the error shape; omit path to list all mockable endpoints)

Webhook writes (free)

Tool

Description

create_webhook

Register an HTTPS endpoint to receive signed event payloads; returns the signing secret

update_webhook

Change an endpoint's URL, events, or status (ACTIVE/DISABLED)

rotate_webhook_secret

Generate a new signing secret for an endpoint

test_webhook

Send a webhook.test event to confirm reachability and signature verification

resend_webhook

Re-queue a past delivery (reuses the original event id)

delete_webhook

Delete a webhook endpoint

Porkbun POSTs a signed JSON payload to your endpoint when subscribed events occur (domain.registered, domain.renewed, domain.transfer.completed, domain.expiring, dns.record.created|updated|deleted). Verify the X-Porkbun-Signature header — it's sha256= + HMAC-SHA256 of {timestamp}.{rawBody} keyed by the endpoint secret, where {timestamp} is the X-Porkbun-Webhook-Timestamp header.

Related MCP server: domain-suite-mcp

Install

You'll need Node.js 18 or newer.

npx -y @porkbunllc/mcp-server

This downloads and runs the latest version on demand. No global install needed.

Configure your MCP client

Claude Desktop

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "porkbun": {
      "command": "npx",
      "args": ["-y", "@porkbunllc/mcp-server"],
      "env": {
        "PORKBUN_API_KEY": "pk1_your_public_key_here",
        "PORKBUN_SECRET_API_KEY": "sk1_your_secret_key_here"
      }
    }
  }
}

Restart Claude Desktop. Porkbun tools should appear in the tool picker.

Docs-only, no keys: the documentation tools (search_docs, read_doc, list_doc_topics) work without credentials, so you can omit the env block entirely to use the server just for API research. The authenticated tools return a clear "set PORKBUN_API_KEY" message until you add keys.

Cursor / Cline / Continue

Most MCP-aware editors use a similar mcpServers config block. See your client's documentation for the exact location.

Get API keys

Create API keys at porkbun.com/account/api. You'll need both the public key (pk1_…) and the secret key (sk1_…).

By default, API access is opt-in per domain. To use the API to manage all your domains, enable the "Opt In All Domains" toggle in the same settings page. Otherwise you'll need to enable API access for each domain individually under Domain Management.

Each API key supports two optional restrictions, set via the gear icon next to the key in porkbun.com/account/api:

  • Allowed IPs — one entry per line; supports bare IPv4/IPv6 plus CIDR ranges (198.51.100.0/24, 2001:db8::/32). Requests from other IPs fail with HTTP 403 IP_NOT_ALLOWED before any other check runs.

  • Allowed domains — one entry per line, exact match. Operations against domains not in the list fail with HTTP 403 DOMAIN_NOT_ALLOWED.

Empty fields = no restriction (matches current behavior). When you give an MCP server a key, the recommended pattern is:

  1. Create a fresh key dedicated to the agent (not your master key).

  2. List the specific domains the agent should manage.

  3. If you know the agent's egress IP, list it too.

The blast radius of an accidentally-leaked key drops to "operations on these domains from this IP" instead of "anything on the account."

Environment variables

Variable

Required

Purpose

PORKBUN_API_KEY

for live ops

Your Porkbun public API key. Omit to use only the credential-free documentation tools.

PORKBUN_SECRET_API_KEY

for live ops

Your Porkbun secret API key. Omit to use only the credential-free documentation tools.

PORKBUN_BASE_URL

no

Override the API base URL (e.g. for testing against api-betamax.porkbun.com/api/json/v3)

PORKBUN_DOCS_BASE

no

Override the docs host used by the *_doc(s) tools (default https://porkbun.com)

Local development

git clone https://github.com/oborseth/Porkbun-MCP.git
cd Porkbun-MCP
npm install
npm run build
npm start          # or: node dist/index.js

The server speaks JSON-RPC 2.0 over stdio. Smoke test from a shell:

(printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}') \
  | PORKBUN_API_KEY=pk1_… PORKBUN_SECRET_API_KEY=sk1_… node dist/index.js

Reliability

Write operations automatically attach a per-call Idempotency-Key header. Retried calls within 24 hours return the cached response, so your agent can safely retry on network errors without double-charging or double-registering.

Privacy

This MCP server is a thin client that runs locally (on your machine, or wherever you host it) and relays your requests directly to the Porkbun API over HTTPS. It does not add any data collection of its own:

  • What it sends, and to whom. Your API key/secret and the arguments of each tool call are sent only to https://api.porkbun.com (and, for the credential-free documentation and mock tools, to https://porkbun.com). Nothing is sent anywhere else.

  • Storage. The server keeps your credentials in memory for the lifetime of the process (read from environment variables); it does not write them to disk, log them, or cache your data.

  • No telemetry. There is no analytics, tracking, or third-party sharing performed by this connector.

  • Data you access through it (domains, DNS, contacts, billing, etc.) is your Porkbun account data, handled by Porkbun under its policy.

Full data-handling, retention, third-party, and contact details are in Porkbun's privacy policy: https://porkbun.com/legal/agreement/privacy_policy

License

MIT

Available Tools

31 tools
check_domainA
Read-onlyIdempotent

Check whether a single domain is available for registration and what it costs. Returns availability (avail: yes|no), registration price, renewal price, transfer price, and (for premium domains) extended pricing details. Pricing is in USD. Use this BEFORE register_domain to confirm cost — Porkbun rejects registrations whose cost doesn't match the current quote.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFully qualified domain name to check, e.g. `example.com`

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint, openWorldHint), the description details the return fields (availability, registration price, renewal price, transfer price, premium details) and notes pricing is in USD. It also discloses behavioral implications of cost mismatch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences that deliver the purpose, key behavioral details, and usage guidance with zero waste. Information is front-loaded and efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single required parameter, full annotation coverage, and no output schema, the description provides complete context: it explains what the tool returns, how to use it, and a critical warning about registration rejection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear parameter description for 'domain'. The tool description does not add new information about the parameter beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks domain availability and pricing, specifying the resource (domain) and the action (check availability and cost). It distinguishes itself from the sibling register_domain by mentioning it should be used before registration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to use this tool BEFORE register_domain to confirm cost, citing that Porkbun rejects registrations with mismatched costs. Provides clear context for correct usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_dns_recordA
Idempotent

Create a DNS record on a domain in the authenticated account. Returns the new record's id so it can be referenced by update_dns_record and delete_dns_record. For the name field: omit or pass empty string for the apex/root, otherwise pass the subdomain prefix only (e.g. www, not www.example.com). For MX and SRV records, set prio (priority). Free, doesn't spend account credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to add the record to, e.g. `example.com`
typeYesRecord type. Common: A, AAAA, CNAME, MX, TXT.
contentYesRecord value (e.g. an IP for A, a hostname for CNAME, the text body for TXT).
nameNoSubdomain prefix (no domain). Empty string or omitted = apex. Examples: `www`, `mail`, `api.staging`.
ttlNoTime-to-live in seconds. Minimum 60. Defaults to 600 if omitted.
prioNoPriority — required for MX and SRV records, ignored otherwise.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-read-only, non-destructive, idempotent, open world. The description adds useful behavioral details: the tool is free (no credit cost) and returns the new record's id. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively brief (3 sentences) with the main purpose upfront. It conveys necessary information without excessive verbosity, though the information about name and prio could be more integrated but is still clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create tool with 6 parameters (3 required) and no output schema, the description covers key aspects: creation action, return value (id), cost, and important parameter nuances. It does not detail error handling or permissions, but given the rich schema and annotations, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds extra semantic guidance: explains name format (omit for apex, subdomain prefix only) and that prio is required for MX and SRV. This goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Create a DNS record on a domain', clearly specifying the verb and resource. It distinguishes from sibling tools by mentioning the returned id can be used by update_dns_record and delete_dns_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for usage: explains when to use (to create a DNS record), gives specific instructions for the name field (apex vs subdomain), and notes that prio is required for MX/SRV. States it's free, which aids decision-making. Lacks explicit when-not-to-use mentions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_dnssec_recordA
Idempotent

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to add the DS record to.
keyTagYesDNSSEC key tag (16-bit identifier of the key).
algYesAlgorithm number, e.g. `13` for ECDSA P-256 SHA-256, `8` for RSA SHA-256.
digestTypeYesDigest type, e.g. `2` for SHA-256, `4` for SHA-384.
digestYesHex-encoded DS digest value.
maxSigLifeNoMaximum signature lifetime in seconds (registry-specific, optional).
keyDataFlagsNoDNSKEY flags (optional — typically 256 or 257).
keyDataProtocolNoDNSKEY protocol (optional — almost always 3).
keyDataAlgoNoDNSKEY algorithm (optional).
keyDataPubKeyNoBase64-encoded public key (optional).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds context beyond annotations (readOnlyHint=false, idempotentHint=true) by explaining the purpose (publish chain-of-trust) and required fields. No contradictions; the Submit action aligns with mutating behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences: function, usage scenario, and parameter summary. No extraneous information; front-loaded with the key purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers purpose, usage, and parameters. It could mention post-submission behavior or validation, but given the complexity and annotations, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by grouping parameters as required vs optional and noting that key-data fields are rare, which aids parameter selection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool submits a DNSSEC DS record to the registry for a domain. It distinguishes from siblings like create_dns_record by specifying DNSSEC and the use case of custom nameservers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use when you sign DNS yourself...' and lists required/optional fields, providing clear context. It does not explicitly state when not to use or give alternatives, but the scenario is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_glue_recordA
Idempotent

Create a glue record for a host on a domain. Used when running your own nameservers on the same domain they serve (e.g. ns1.example.com serving example.com). The subdomain is just the host part (e.g. ns1), not the full FQDN. Provide IPs as an array of IPv4 and/or IPv6 addresses. Idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesParent domain, e.g. `example.com`
subdomainYesHost portion only (no domain), e.g. `ns1`.
ipsYesArray of IPv4 and/or IPv6 addresses to associate with the host.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include idempotentHint=true, and the description reinforces 'Idempotent.' It also adds behavioral detail beyond annotations: the subdomain must be only the host part, and IPs are an array of IPv4/IPv6 addresses. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each essential: purpose, usage case, and key parameter clarifications. No redundancy, well-structured, and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, usage, idempotency, and parameter semantics. It lacks explicit mention of behavior on existing records or error conditions, but for a simple creation tool with strong annotations, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description rephrases the subdomain and IPs details but does not add new parameter information beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states clearly that the tool creates a glue record for a host on a domain, and provides a specific use case (running own nameservers) that distinguishes it from sibling tools like create_dns_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool (for nameservers on the same domain) and clarifies the subdomain format. It does not explicitly state when not to use it, but the context and sibling tools imply alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_url_forwardA
Idempotent

Add a URL forwarding rule for a domain. Forwards a subdomain (or apex if subdomain is empty/omitted) to an arbitrary destination URL. Useful for redirects without setting up a web server. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to add the forward to, e.g. `example.com`
locationYesDestination URL to forward visitors to, e.g. `https://newsite.example.com`
typeYes`permanent` sends HTTP 301 (browsers cache); `temporary` is the configurable default redirect.
includePathYes`yes` appends the request URI path to the forward target; `no` always sends to the bare destination.
wildcardYes`yes` also forwards all sub-subdomains; `no` forwards only the exact subdomain.
subdomainNoSubdomain prefix to forward. Empty/omitted = the apex (root domain). Examples: `www`, `shop`.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-destructive, idempotent mutation. The description adds only that it is 'free', which is tangential. No contradiction found; the description does not significantly extend behavioral insight beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences front-load the core action, add scope specifics, and provide a use case and cost. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and the description does not mention return values, error behavior, or confirmation. For a creation tool with multiple parameters, this is adequate but leaves room for more context about expected results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description mentions that omitting subdomain targets the apex, but the schema already describes this. No new parameter-level information is added beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it adds a URL forwarding rule for a domain, specifies the scope (subdomain or apex), and distinguishes from sibling tools like create_dns_record or delete_url_forward by describing a specific use case (redirects without a web server).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (redirects without a web server) but does not explicitly state when not to use or compare with alternatives. Sibling tools cover DNS records, so the context is clear but lacks explicit exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_dns_recordA
DestructiveIdempotent

Delete a single DNS record by its numeric record_id (obtained from list_dns_records). Idempotent: deleting an already-deleted record returns success. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain the record belongs to, e.g. `example.com`
record_idYesNumeric record ID (as a string).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

As annotations already provide destructiveHint, idempotentHint, and openWorldHint, the description adds value by explicitly stating idempotent behavior (deleting already-deleted returns success) and that it is free, which are not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action, and contains no redundant information. Every sentence serves a clear purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters, the description is largely complete, mentioning idempotency and cost. It could optionally clarify behavior for non-existent IDs beyond already-deleted, but this is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds the context that record_id comes from list_dns_records, which aids the agent in understanding the parameter's origin beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Delete', the resource 'single DNS record', and specifies the source of the record_id, distinguishing it from other delete tools like delete_dnssec_record or delete_glue_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by describing the action, but it does not explicitly state when to use this tool versus alternatives like update_dns_record or other delete tools. No when-not guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_dnssec_recordA
DestructiveIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to remove the DS record from.
keyTagYesKey tag of the DS record to remove (from `list_dnssec_records`).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds valuable detail: 'Idempotent: deleting a non-existent key tag returns success,' which aligns with annotations and provides extra behavioral clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and purpose. Every word earns its place. No fluff or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main action and idempotency, but lacks details about prerequisites (e.g., domain must exist, DNSSEC enabled) and return behavior. Given the simplicity and no output schema, it is minimally adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description mentions 'key tag from list_dnssec_records,' but this is already implied in the schema. No additional parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (remove), resource (DNSSEC DS record), and context (identified by key tag, used when retiring a key). It distinguishes from siblings like create_dnssec_record and list_dnssec_records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use when retiring a key,' providing a clear use case. However, it does not mention when not to use or list alternatives, but the context is specific enough for most agents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_glue_recordA
DestructiveIdempotent

Delete a glue record by host on a domain. Idempotent: deleting a non-existent glue record returns success.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesParent domain, e.g. `example.com`
subdomainYesHost portion only, e.g. `ns1`.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds useful context by explicitly stating that deleting a non-existent glue record returns success, which explains the idempotent behavior beyond the annotation flag.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no redundant words, and front-loads the main action. Every sentence serves a purpose: stating the function and clarifying idempotency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (2 required parameters, full schema coverage, annotations present, no output schema), the description adequately covers purpose and idempotency. Minor missing details like error behavior on invalid domain are acceptable for this scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes both parameters (domain and subdomain) with clear descriptions. The description does not add any additional meaning or usage details for the parameters, so it meets the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a glue record by host on a domain', providing a specific verb (delete) and resource (glue record). This distinguishes it from sibling tools like create_glue_record or list_glue_records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives, such as prerequisites or context for deletion. It does not mention when not to use it or compare to other deletion or record tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_url_forwardA
DestructiveIdempotent

Delete a URL forwarding rule by its id (obtained from list_url_forwards). Idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain the forward belongs to.
record_idYesNumeric forward record ID from `list_url_forwards`.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive and idempotent. Description adds context about the source of the record_id, but does not contradict annotations. No additional side effects disclosed beyond the standard deletion implied by destructiveHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence conveying action, identifier source, and idempotency. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a delete tool with no output schema, the description, combined with annotations, provides sufficient information: what it does, how to get the required ID, and idempotency. No missing context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters are described adequately in the schema. The description reinforces the source of record_id but adds no new meaning beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states action (delete), resource (URL forwarding rule), and source of identifier (list_url_forwards). Distinguishes from sibling tools like create_url_forward and list_url_forwards.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions that the id comes from list_url_forwards, providing clear context for when to use. Idempotent hint reassures safe retries, but no explicit alternatives or when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_api_settingsA
Read-onlyIdempotent

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 — register_domain will be hard-blocked if it would push monthly spend over the configured limit.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly and idempotent. The description adds value beyond these by specifying that amounts are in cents and that register_domain will be hard-blocked if over limit, which is relevant behavioral context for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main action, no wasted words. Perfectly sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 params, no output schema), the description covers what it returns, units, and usage context, leaving no obvious gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage (empty schema), the description fully compensates by detailing the exact data returned (monthly spend limit, low-balance alert threshold, etc.), adding meaning that the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the API spend control configuration (specific resource), lists the returned fields, and explicitly distinguishes itself from siblings by linking to register_domain, which is a key consumer of this data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It advises using this tool before expensive operations and gives register_domain as an example, but does not explicitly mention when not to use or compare with alternatives like get_balance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceA
Read-onlyIdempotent

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. $12.34). Use this to check spend headroom before initiating registrations or renewals.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds valuable behavioral context by explaining the return format (integer cents and display string) and the intended use case, which goes beyond what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences that front-load the main action and return format, with no wasted words. Every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description fully explains what the tool returns and why to use it. The context is complete for a simple read-only balance check tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100% (no parameters to document). The description does not need to add parameter semantics, and the baseline score of 4 applies since there are no parameters and no omissions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the available account credit balance for the authenticated Porkbun account, specifies the return format (cents and display string), and distinguishes its purpose from sibling tools by noting it is used to check spend headroom before registrations or renewals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('check spend headroom before initiating registrations or renewals'), providing clear context. It does not explicitly list when not to use it or mention alternatives, but the guidance is sufficient for agent decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_domainA
Read-onlyIdempotent

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 DOMAIN_NOT_FOUND if the domain isn't in the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFully qualified domain name in the account, e.g. `example.com`
include_labelsNoInclude user-defined domain labels in the response.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly, idempotent, and openWorld hints. The description adds that it returns specific metadata fields and an error code if domain not found, providing useful behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, then lists key fields and an error condition. No wasted words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 2 parameters, no output schema, and good annotations, the description sufficiently covers the tool's behavior. It could mention the response format, but the annotations and schema make it complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. The description mentions 'domain' and 'include_labels' implicitly but adds no extra detail beyond the schema, so meets baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves metadata for a single domain, listing specific fields like status, TLD, dates, etc. It distinguishes from list_domains (multiple domains) and check_domain (likely availability) by focusing on 'a single domain in the authenticated account'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates when to use (to get details of a specific domain you own) and explains the error condition for nonexistent domains. However, it does not explicitly contrast with siblings like check_domain or list_domains, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_nameserversA
Read-onlyIdempotent

Get the current nameservers configured for a domain in the authenticated account. Returns an array of nameserver hostnames. Read-only complement to update_nameservers.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFully qualified domain name, e.g. `example.com`

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds that it 'Returns an array of nameserver hostnames', which is a minor behavioral detail beyond the annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the core purpose, and contains no extraneous information. It is highly efficient for the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one parameter and no output schema, the description adequately covers the return type (array) and the relationship to update_nameservers. It implicitly covers the domain requirement by mentioning 'authenticated account'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a detailed schema description for the 'domain' parameter. The description does not add additional parameter meaning beyond what is already in the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Get', the resource 'nameservers configured for a domain', and the scope 'in the authenticated account'. It also distinguishes itself from the sibling 'update_nameservers' by noting it is the read-only counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states it is a 'read-only complement to update_nameservers', which implies the appropriate context (viewing vs. modifying). However, it does not explicitly list when not to use or provide alternatives beyond that sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pricingA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds valuable context: no authentication required and that pricing is standard only. This aligns with annotations and provides additional behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences cover all necessary information with no fluff. The most important details are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description fully explains purpose, usage guidance, and limitations. It is complete for an agent to decide when and how to invoke.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so description cannot add meaning beyond schema. Baseline for 0 parameters is 4, and the description does not need to elaborate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves current Porkbun pricing for all supported TLDs, specifying registration, renewal, and transfer prices. This is a specific verb and resource, and it distinguishes from sibling tools like check_domain by noting that premium domains are handled separately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (comparing TLD costs before registering), provides exclusions (premium domains), and names an alternative tool (check_domain). Also notes that no authentication is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ssl_bundleA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFully qualified domain name registered at Porkbun, e.g. `example.com`

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly, idempotent, openWorld. Description adds that it returns certificate chain, private key, and public key as PEM strings, and explains Porkbun's automatic provisioning, which is valuable context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler, front-loaded with action. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (1 param, no output schema), the description covers purpose, return values, and background, making it complete for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already fully describes the single parameter 'domain' with 100% coverage. Description implicitly references it but adds no new detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'free Porkbun-issued SSL certificate bundle for a domain', distinguishing it from sibling tools that manage DNS or domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use this to install TLS on a server you control', providing clear context for when to use. It does not explicitly exclude alternatives, but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transfer_statusA
Read-onlyIdempotent

Get the status of a specific inbound transfer for a domain. Useful for polling after transfer_domain to know when the transfer completes (typical window: 5-7 days). Returns the same status values as list_transfers, plus a human-readable description.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain whose transfer status to check, e.g. `example.com`

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds behavioral info beyond annotations: returns same status values as list_transfers plus human-readable description. Annotations already indicate read-only, idempotent, open-world; description complements well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose, second adds usage context and output info. No fluff, highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Fully covers purpose, usage context (polling after transfer), and output (status values plus description). No output schema, but description explains what to expect. Adequate for a simple 1-param read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and description for domain parameter matches schema description exactly. Description adds no new semantics beyond what's in the input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get', resource 'status of a specific inbound transfer for a domain'. Distinguishes from sibling tools like list_transfers (which lists all).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends polling after transfer_domain, with typical window (5-7 days). Could mention alternatives like list_transfers but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dns_recordsA
Read-onlyIdempotent

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 id field is required when editing or deleting a specific record.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFully qualified domain name registered at Porkbun, e.g. `example.com`

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds value by detailing the returned fields (id, type, name, content, ttl, priority) and clarifying the `name` field behavior. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose and return info, and every sentence adds value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no output schema, the description covers return fields and a note on the `id` field. It lacks pagination or ordering details, but given the likely scale of DNS records per domain, this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for `domain`. The description adds minimal extra meaning beyond the schema (e.g., 'in the authenticated account'), but this is not parameter-specific. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'all DNS records for a domain', and distinguishes from sibling tools like create/delete/update DNS records and other list tools (e.g., list_dnssec_records) by specifying the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to view DNS records) and notes that the `id` field is needed for editing/deleting, providing context for alternative actions. It does not explicitly exclude other list tools but is clear enough for the primary use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dnssec_recordsA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFully qualified domain name, e.g. `example.com`

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the description does not need to reaffirm safety. It adds value by specifying the return fields (key tag, algorithm, digest type, digest) and the meaning of an empty array.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loaded with the action and resource. Every sentence adds value with no redundancy or wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple tool with one parameter and no output schema, the description adequately describes the return fields and the meaning of an empty array. It lacks error conditions but is sufficient for a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'domain', which is described as 'Fully qualified domain name, e.g. example.com'. The description does not add additional parameter information beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'List the DNSSEC DS records currently submitted to the registry for a domain', providing a specific verb (list), resource (DNSSEC DS records), and scope (for a domain). It clearly distinguishes from sibling tools like list_dns_records and create_dnssec_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states 'Use this to verify DNSSEC chain-of-trust setup', giving a clear use case. It also explains that an empty array means not configured. It does not explicitly exclude alternatives but context implies usage for DNSSEC verification.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_domainsA
Read-onlyIdempotent

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):

  • domain: exact match. Returns 0 or 1.

  • name_contains: substring search on domain name.

  • tlds: limit to these TLDs (no leading dot).

  • expiring_within_days: only domains expiring within N days. Useful for renewal automation.

  • auto_renew: 'yes' or 'no'.

  • api_access: 'yes' or 'no'. Filter to domains an API key can actually operate on — eliminates API_ACCESS_DISABLED errors downstream.

  • sort_name: 'domain' | 'tld' | 'create_date' | 'expire_date'. Default expire_date.

  • sort_direction: 'asc' | 'desc'. Default asc.

For a single domain by name, use get_domain instead — cleaner shape and 404-on-not-found semantics.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoExact domain match — returns 0 or 1 result.
name_containsNoCase-insensitive substring on the full domain name.
tldsNoLimit to these TLDs (no leading dot). Example: ['com', 'io']
expiring_within_daysNoOnly domains expiring within this many days from now.
auto_renewNoFilter to domains with auto-renew on or off.
api_accessNoFilter to domains opted in to API access.
sort_nameNoSort field.
sort_directionNoSort direction.
startNoPagination offset. Default 0.
include_labelsNoInclude user-defined domain labels in the response.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and idempotentHint; description adds transparency about pagination (up to 1000 per page), return metadata fields, and filter semantics. No contradiction with annotations, which already cover read-only behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a clear opening sentence and a bulleted list of filters. While slightly lengthy, every sentence adds meaning and avoids redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description comprehensively covers return metadata, pagination limits, and all 10 parameters with optional filters. Differentiates from sibling tool and addresses common use cases adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions. The description adds contextual value beyond schema, such as noting that api_access filter eliminates downstream errors and that expiring_within_days is useful for renewal automation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists domains in the authenticated Porkbun account, specifies return metadata (expire date, auto-renew, etc.), and distinguishes from the sibling tool get_domain for single-domain lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use this tool vs. get_domain for single domains, and explains each filter's purpose (e.g., api_access prevents errors). Does not explicitly compare to all siblings but offers sufficient context for common use cases like renewal automation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_glue_recordsA
Read-onlyIdempotent

List glue records for a domain. Glue records associate a host (e.g. ns1.example.com) with one or more IP addresses at the registry, used when running your own nameservers on the same domain they serve. Returns the host, IPv4 addresses, and IPv6 addresses for each glue record.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to list glue records for, e.g. `example.com`

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint, so the bar is lower. The description adds valuable behavioral context by specifying the exact return fields (host, IPv4 addresses, IPv6 addresses), which is beyond what annotations provide. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (three sentences), front-loaded with the core action, and efficiently explains the concept of glue records. Every sentence adds value without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one required parameter and no output schema, the description fully covers the purpose, return values, and provides an example. It is complete and well-suited for agent selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the domain parameter well-described. The description does not add additional meaning beyond confirming the domain context, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('List glue records for a domain') and explains what glue records are and what the tool returns (host, IPv4, IPv6). It effectively distinguishes from sibling tools like create_glue_record or delete_glue_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly communicates when to use this tool (when you need to view glue records), but it does not explicitly provide when-not-to-use scenarios or alternatives. The contrast with create/delete/update is clear from the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_marketplaceA
Read-onlyIdempotent

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):

  • query: SLD substring match. Multi-word queries: prefix a word with - to exclude it (e.g. "ai -test" matches SLDs containing 'ai' but not 'test').

  • tlds: limit to a list of TLDs (without the leading dot).

  • sld_length_min, sld_length_max: SLD character length bounds.

  • sort_name: domain | tld | price | sld_length.

  • sort_direction: asc | desc.

When any filter is set, server returns up to 1000 matching listings. With no filters, supports raw pagination via start / limit (max 5000).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSLD substring search. Use `-word` to exclude. Example: `'ai -test'`.
tldsNoLimit to these TLDs (no leading dot). Example: `['com', 'io', 'ai']`.
sld_length_minNoMinimum SLD character length.
sld_length_maxNoMaximum SLD character length.
sort_nameNoSort field. Default: `sld_length` asc when query is set, else `create_date` desc.
sort_directionNoSort direction.
startNoPagination offset (no-filter mode only). Default 0.
limitNoPage size (no-filter mode only). Default 1000, max 5000.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and idempotentHint=true, which the description aligns with by describing a read-only browse operation. The description adds valuable behavioral details: server-side filters, pagination limits (1000 with filters, up to 5000 without), and return fields. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear opening sentence stating purpose, followed by return fields, then detailed parameter explanations. Every sentence is informative and no fluff. Front-loaded with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 optional parameters and no output schema, the description covers purpose, parameter details, and behavioral differences. It omits explicit error handling or rate limits, but the read-only and idempotent annotations reduce the need. The return fields are mentioned, so it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, baseline is 3. The description adds meaning beyond the schema by explaining the query substring semantics (including exclusion with '-'), pagination modes (with vs. without filters), and sort defaults. This adds value, hence a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is for browsing domains for sale on the Porkbun marketplace, distinguishing it from related tools like list_domains (which likely lists owned domains) and check_domain (availability). It explicitly mentions 'aftermarket — domains owned by other users, not new registrations' and lists the returned fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching/sorting aftermarket domains and explains filter behavior (with filters vs. without). However, it does not explicitly state when not to use it or name alternative tools for other domain operations, though the clarity of purpose compensates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_transfersA
Read-onlyIdempotent

List all in-progress and recent inbound domain transfers for the authenticated account. Returns each transfer's domain, status (NEW, PENDINGAUTH, PENDINGSUBMIT, PENDINGTRANSFER, DONE, CANCELED, etc.), and create date. Use this to monitor transfers initiated by transfer_domain.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds value by specifying the return structure (domain, status, create date) and listing example statuses, exceeding what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. It front-loads the main action and then provides return details and a usage hint. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no nested objects), the description fully covers what an agent needs: what it does, what it returns, and when to use it. No output schema exists, but the return fields are described adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage, the description needs no parameter details. Baseline 4 applies per instructions; the description focuses on the tool's purpose, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all in-progress and recent inbound domain transfers, using a specific verb and resource. It distinguishes itself from sibling list tools like list_domains by focusing on transfers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to monitor transfers initiated by transfer_domain', providing a clear usage context. However, it doesn't mention when not to use it or alternatives like get_transfer_status for specific transfers, leaving a slight gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_url_forwardsA
Read-onlyIdempotent

List all URL forwarding rules configured for a domain. Each entry includes its id (used by delete_url_forward), the source subdomain, the destination URL, the redirect type (permanent/temporary), and whether the request path and wildcards are forwarded.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFully qualified domain name, e.g. `example.com`

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds the output structure but no additional behavioral traits like pagination or rate limits. With annotations covering safety, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose, second details entry contents. No redundancy, straight to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the output structure well despite no output schema. However, it lacks mention of pagination or sorting, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage with a description for the 'domain' parameter. The tool description does not add significant meaning beyond the schema's 'Fully qualified domain name' example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists URL forwarding rules for a domain, and specifies the contents of each entry including 'id' used by sibling 'delete_url_forward'. It distinguishes from other list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides clear context for when to use (list all URL forwards for a domain) and cross-references the 'id' field with 'delete_url_forward'. However, it does not explicitly exclude alternative tools or scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld. Description adds that it returns public IP and API key validity, and that it is a verification tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description is complete: it states purpose, return values, and usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; description adds meaning by explaining what the tool returns (public IP, API key validity), which is not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Verify' and resource 'Porkbun API connection and credentials', and distinguishes from sibling tools (all domain/DNS management) by being a health check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Use this as a first sanity check before making other calls.' Provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_domainA
Idempotent

Spends account credit. Registers a new domain on the authenticated Porkbun account. The cost parameter must exactly match the current registration price returned by check_domain (in cents) — Porkbun rejects mismatched quotes. Workflow: call check_domain first to get availability + price, confirm the spend with the user, then call this. The order is idempotency-safe: retries within 24 hours via the same Idempotency-Key return the original response without re-charging. Premium domains, .uk, and a handful of registry-specific TLDs cannot be registered via API and must be done on the website. The account's email and phone number must be verified, and the account must have at least one prior registration order before this works.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFully qualified domain name to register, e.g. `example.com`
costYesRegistration price in cents. Must match the value returned by `check_domain` for this domain (multiplied by years if duration > 1).

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds critical context beyond annotations: 'Spends account credit,' cost mismatch rejection, idempotency details (24-hour retries), and registration limitations. Annotations indicate idempotentHint=true and openWorldHint=true, which the description corroborates and enriches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph with no fluff. Uses bold for key warning ('Spends account credit'). Information is logically ordered: warning, action, parameter constraint, workflow, idempotency, limitations, prerequisites. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers most practical concerns: prerequisite checks, idempotency, domain limitations. Lacks description of return value (no output schema), but this is a payment tool where response is likely standard. Minor gap for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description adds workflow context (check_domain first, years multiplier) but does not significantly enhance semantic understanding beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Registers') and resource ('domain on the authenticated Porkbun account'), clearly distinguishing from sibling tools like check_domain (checking availability) and renew_domain (renewing an existing domain).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit workflow: call check_domain first, confirm with user, then call this. States when NOT to use (premium domains, .uk, etc.) and prerequisites (verified email/phone, prior registration). Provides clear guidance on idempotency and retries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

renew_domainA
Idempotent

Spends account credit. Renews an existing domain in the authenticated account. The cost parameter must exactly match the current renewal price returned by check_domain (in cents). The domain must be opted in to API access (per-domain or global toggle in account settings). Domains registered within the last 30 days, or already renewed within the last 30 days, cannot be renewed yet — the API returns RENEWAL_TOO_SOON. Premium domain renewals are not supported via API. Idempotency-safe: retries within 24 hours don't double-charge.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to renew, e.g. `example.com`. Must already be in your account.
costYesRenewal price in cents. Must match the value returned by `check_domain`.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds critical context beyond annotations: spends account credit, idempotency with 24-hour retry window, error condition RENEWAL_TOO_SOON, premium domain exclusion. Annotations already indicate idempotent and not read-only/destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with a bold warning about spending credit, then clear purpose, then constraints. Each sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers preconditions, error behavior, and idempotency well. No output schema, so lack of return format info is minor; tool is action-oriented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and schema descriptions already state cost must match check_domain. Description reinforces this but adds domain API opt-in requirement (not parameter-specific). Little new parameter-level meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it renews an existing domain, distinguishes from sibling tools like register_domain, transfer_domain, and update_auto_renew.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides specific conditions for use: must match price from check_domain, domain must be API-opted-in, cannot renew too soon, premium not supported. Lacks explicit alternatives but gives clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transfer_domainA
Idempotent

Spends account credit. Initiates a transfer of an external domain into Porkbun. Returns immediately with a transferId; the actual registry transfer takes 5-7 days for most TLDs. Use get_transfer_status to poll. Requires the auth/EPP code from the losing registrar. The cost must match the current transfer price from check_domain. .uk domains and a few TLDs do not support inbound API transfers. Idempotency-safe.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to transfer in, e.g. `example.com`
costYesTransfer price in cents. Must match the value returned by `check_domain`.
auth_codeYesAuthorization (EPP) code from the losing registrar.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds critical behavior not in annotations: spends credit, async with 5-7 day delay, cost matching requirement, TLD restrictions. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence adds value. Front-loaded with the most important note (spends credit). Structure is clear and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers return value (transferId), polling advice, prerequisites, restrictions, and idempotency. No output schema, but description provides sufficient context for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover basics, but description adds must-match constraint for cost and emphasizes auth code requirement, improving parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it initiates a domain transfer, spends account credit, and returns a transferId. Distinguishes from siblings like check_domain and get_transfer_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to poll with get_transfer_status, warns about TLD restrictions (.uk etc.), and specifies prerequisites (auth code, cost matching check_domain).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_auto_renewA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to update, e.g. `example.com`
statusYes`on` enables auto-renew, `off` disables it.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (idempotentHint=true), the description adds that turning auto-renew on charges account credit, and turning it off requires manual renewal. This provides valuable behavioral context not present in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, no redundancy. The first sentence states purpose, the second explains consequences, and the third states idempotency. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with only two parameters and clear behavior. The description covers purpose and consequences, but lacks information about return values or prerequisites (e.g., domain must exist). Still sufficient for the simple operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters are described in the schema. The description does not add additional meaning beyond the schema's descriptions, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Turn auto-renewal on or off') and resource ('for a domain in the authenticated account'), clearly distinguishing it from sibling tools like register_domain or update_dns_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the consequence of auto-renew being on (automatic charge) and off (manual renewal), giving context for when to toggle. It doesn't explicitly state when not to use it, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_dns_recordA
Idempotent

Update an existing DNS record by its numeric record_id (obtained from list_dns_records). All fields except record_id and domain are optional — pass only the ones you want to change. Idempotent: applying the same update twice is a no-op.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain the record belongs to, e.g. `example.com`
record_idYesNumeric record ID (as a string). Get this from `list_dns_records`.
typeNoNew record type (rarely changed).
contentNoNew record value.
nameNoNew subdomain prefix (empty string = apex).
ttlNoNew TTL in seconds.
prioNoNew priority (MX/SRV only).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide idempotentHint=true and destructiveHint=false. The description reinforces idempotency ('applying the same update twice is a no-op') and adds the partial-update behavior, which provides additional context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each serving a distinct purpose: stating the action, explaining partial updates, and noting idempotence. No superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks information about the return value (e.g., whether it returns the updated record or a success status). While the tool is simple and annotations cover safety, the absence of output schema makes this a noteworthy gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% parameter description coverage. The description adds value by explicitly stating that all fields except record_id and domain are optional and that record_id comes from list_dns_records, which helps the agent understand parameter usage without repeating schema details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a DNS record, specifying the record_id and its source (list_dns_records). This distinguishes it from create, delete, and other update tools among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies that only the fields to change should be passed, and that the operation is idempotent. While it doesn't explicitly exclude alternatives, the context (sibling tool names) and partial-update guidance are clear enough for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_glue_recordA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesParent domain, e.g. `example.com`
subdomainYesHost portion only, e.g. `ns1`.
ipsYesFull replacement set of IPv4/IPv6 addresses for the host.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (idempotentHint=true, destructiveHint=false), the description adds behavioral context: it replaces the full IP list. This is critical for correct usage. However, it doesn't detail side effects or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, concise and front-loaded. Every sentence adds value: the first states the purpose, the second clarifies behavior. No unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (3 parameters, no output schema), the description is largely complete. It covers the core behavior, though it could benefit from noting that the record must exist or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all parameters with descriptions (100% coverage). The description reinforces the replacement behavior for 'ips', but adds no new semantic information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Update the IP addresses associated with an existing glue record' with the specific resource 'glue record'. It distinguishes from sibling tools like 'create_glue_record' and 'delete_glue_record' by focusing on modification of existing records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on usage: 'pass all IPs you want set, not just additions' and 'Idempotent'. It implies usage when updating an existing glue record, but does not explicitly state prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_nameserversA
DestructiveIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to update, e.g. `example.com`
nameserversYesFull list of nameservers (e.g. `['ns1.example.com', 'ns2.example.com']`). Minimum 2, maximum 13.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true and idempotentHint=true. The description adds value by explaining the full replacement semantics, the consequence of disabling free DNS hosting, and a plain-language idempotency statement that reinforces the annotation without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each serving a purpose: stating the action, clarifying the replacement nature with constraints, and noting idempotency. No redundant or missing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 required params, no output schema), the description covers all needed behavioral and usage aspects. The side effect of disabling free DNS hosting is a valuable addition that ensures complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. The description adds semantic value for nameservers by clarifying it is a full replacement and explaining the 2-13 entry requirement beyond the schema's range constraints. Domain parameter adds no extra semantics, but overall the description enhances understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the action 'Replace the nameservers for a domain' with a clear verb and resource. It distinguishes from read-only siblings like get_nameservers by emphasizing replacement, and explicitly states it is not an append.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context: full replacement (not append), TLD constraints (2-13 entries), and side effect (disabling free DNS hosting). It does not explicitly compare to sibling tools or state when not to use, but overall guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 31 tool updatesv0.4.1
    • First observedcheck_domain
    • First observedcreate_dns_record
    • First observedcreate_dnssec_record
    • First observedcreate_glue_record
    • First observedcreate_url_forward
    • First observeddelete_dns_record
    • First observeddelete_dnssec_record
    • First observeddelete_glue_record
    • First observeddelete_url_forward
    • First observedget_api_settings
    • First observedget_balance
    • First observedget_domain
    • First observedget_nameservers
    • First observedget_pricing
    • First observedget_ssl_bundle
    • First observedget_transfer_status
    • First observedlist_dns_records
    • First observedlist_dnssec_records
    • First observedlist_domains
    • First observedlist_glue_records
    • First observedlist_marketplace
    • First observedlist_transfers
    • First observedlist_url_forwards
    • First observedping
    • First observedregister_domain
    • First observedrenew_domain
    • First observedtransfer_domain
    • First observedupdate_auto_renew
    • First observedupdate_dns_record
    • First observedupdate_glue_record
    • First observedupdate_nameservers

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: domain check vs register vs renew vs transfer; DNS record CRUD vs DNSSEC vs glue vs forwarding; account balance vs API settings vs marketplace browsing. Overlapping actions (e.g., get_domain vs list_domains) are differentiated by singular vs plural and description details.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern (check_domain, create_dns_record, delete_glue_record, list_dns_records, update_nameservers). Small variations (get_domain vs list_domains) follow a standard convention for single vs multiple resources. The lone exception ping is a standalone health check.

Tool Count4/5

31 tools is high for a typical MCP server, but the domain management domain requires many discrete operations: CRUD for DNS, DNSSEC, glue records, URL forwards, plus registration lifecycle, account monitoring, marketplace browsing, and transfer management. Each tool earns its place, though some consolidation could be possible.

Completeness4/5

The tool surface covers the full domain lifecycle (check, register, renew, transfer) along with DNS management (records, DNSSEC, glue, nameservers), URL forwarding, SSL, account balance, API spend control, and marketplace. Minor gaps exist (e.g., no explicit WHOIS privacy toggle, no domain metadata update), but the core required operations are present.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables comprehensive domain and DNS management through the Porkbun API, including domain registration checks, DNS record operations, URL forwarding, DNSSEC configuration, and SSL certificate management. Provides 27 tools for complete domain administration through natural language interactions.
    3
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    domain-suite-mcp is an MCP server that gives AI agents full autonomous control over the domain lifecycle. From checking availability and registering domains to managing DNS records, SSL certificates, and email authentication across Porkbun, Namecheap, GoDaddy, and Cloudflare through a unified set of 21 tools.
    21
    25
    17
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    AgentDomain MCP allows AI agents to register, buy, and manage internet domains via the Model Context Protocol. Features include domain search, availability check, purchase, DNS record management, and wallet operations.
    13
    3
    MIT

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