Skip to main content
Glama
oborseth

Official Porkbun MCP Server

Update Contacts

update_contacts
Destructive

Edit a domain's registrant, admin, tech, or billing contacts, update selected roles or all four at once, and validate changes with dry_run before applying.

Instructions

Edit a domain's contacts. Provide contacts keyed by role with ANY subset of registrant/admin/tech/billing (unspecified roles keep their current values), or a single contact applied to all four. Mirrors the website: pushes to the registry on thick TLDs, and a registrant change (name/organization/email) fires the same new-owner notice/verification email — no 60-day transfer lock. Supports dry_run. Note: a registrant name/organization change on a .au domain, or any registrant change on an address-validation TLD (.de/.nrw), is rejected with REGISTRANT_CHANGE_NOT_SUPPORTED — do those at porkbun.com; admin/tech/billing edits still work.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to edit, e.g. `example.com`
contactNoA single contact applied to all four roles. Use this OR `contacts`, not both.
dry_runNoIf true, validate only — returns wouldSucceed without applying the change.
contactsNoPer-role contacts; include only the roles you want to change.
address_validation_choiceNoFor a registrant change on an address-validated TLD (.de/.nrw/.uk/.us/.ca/.nyc/.au/.eu/.in/.nz families) after an ADDRESS_VALIDATION_REQUIRED response: 'accept_suggestion' saves the standardized suggestedAddress returned there; 'use_as_entered' keeps the submitted address (rejected if a real correction was offered).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.39.4

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses registry push behavior on thick TLDs, that a registrant change fires the new-owner notice/verification email, that no 60-day transfer lock applies, and that certain TLD/role combinations are rejected with REGISTRANT_CHANGE_NOT_SUPPORTED. This is exactly the mutation-side context annotations leave out.

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?

Front-loaded with the core action, then dense parentheticals for the two input modes and the TLD exceptions. Information-dense with little waste, though the single long paragraph is packed and could be split for readability.

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 complex, destructive, no-output-schema mutation, it covers the edge cases an agent must know (dry_run behavior returns wouldSucceed, TLD rejections, role-subset semantics). It could state what a successful apply returns, but the operative guidance is 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 coverage is 100%, so all five parameters are already documented in-schema, including the role-keyed semantics and address_validation_choice. The description restates the 'unspecified roles keep their current values' behavior and the OR relationship, which the schema largely covers, adding only marginal meaning.

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?

Opens with a specific verb+resource ('Edit a domain's contacts') and immediately distinguishes the two invocation modes. An agent can tell this apart from get_contacts or register_domain without opening any schema.

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?

Clearly states when to use `contacts` (keyed by role, any subset) vs `contact` (applied to all four), and names the fallback path ('do those at porkbun.com') for TLD cases the tool rejects. It does not explicitly route against sibling tools, but the invocation guidance is strong.

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

Deploy Server

Other Tools