THE NYMWELL FOUNDATION

Give agents tools.
Keep human authority.

A hosted MCP server with 30 tools: search, buy, renew, transfer and run domains, with a person approving every change.

Connect to /mcp (Streamable HTTP, JSON-RPC). Sites-authenticated callers and scoped X-Nymwell-Key agent keys are isolated per organization. Registration, renewal, transfers and domain changes run only where the server has a registrar and a payment provider configured; nymwell_status and GET /api/v1/status say which. Without them those calls answer integration_not_configured and nothing is charged.
ToolAccessWhat it does
nymwell_statusPublicRead Nymwell backend, database and provider-adapter readiness.
list_domainsRead / scopedList domains visible to the signed-in Nymwell organization.
list_dns_recordsRead / scopedList DNS records for a managed domain. refresh: true first pulls the records from the registrar (including ones changed outside Nymwell).
list_invoicesRead / scopedList invoice metadata for the signed-in Nymwell organization.
list_membersRead / scopedList members and roles for the signed-in Nymwell organization.
list_audit_eventsRead / scopedRead recent immutable audit evidence for the signed-in Nymwell organization.
stage_dns_changeNeeds approvalPrepare DNS changes (create, update, delete) for review. Nothing is written until an owner or admin approves; then Nymwell applies them at the registrar in order. For update and delete, pass record_id from list_dns_records when a name has more than one record of that type.
search_domainsPublicCheck which domain names can be registered and what they cost, from the registrar itself (not DNS or RDAP). Pass exact domains, or a name plus endings. Prices are USD for the minimum term; get_quote gives the exact price for a chosen term. No sign-in needed.
screen_domainsPublicFast first pass over many names: is there a registration record, since when, with which registrar, is it parked for sale. Uses public RDAP and DNS, so it works before any registrar is configured. It is NOT availability: no_record still has to be confirmed with search_domains or get_quote. No sign-in needed.
get_quotePaid by the personLock the exact price for one domain: action "register" (default) for an available name, "renew" for a domain this organization holds, or "transfer" to bring one from another registrar (adds one year; the owner then submits the auth code in the console). Valid for 40 minutes; purchase_domain charges exactly this.
purchase_domainPaid by the personStart paying for a quote (registration, renewal or transfer). Returns a checkout_url: give it to the person, who pays once; paying is their approval. The registrar call (and, for a registration, the DNS records you pass) then runs on its own. Poll get_order for the result. An agent never pays by itself.
get_orderRead / scopedRead where a purchase is: awaiting_payment, registering, registered, needs_attention or failed_refunded, with the DNS records that were created.
list_dns_presetsPublicList the DNS presets purchase_domain and apply_dns_preset accept (Vercel, Netlify, GitHub Pages, Cloudflare Pages, Agent Lab Deploy, Google Workspace email). No sign-in needed.
apply_dns_presetNeeds approvalPrepare DNS records for a domain this organization already manages. It creates a change set a person approves in the console; nothing is written before that.
suggest_domainsPublicNames the registrar can sell now that fit a keyword, with prices (registration inventory only). No sign-in needed.
get_tld_infoPublicWhat an ending costs (registration, renewal, transfer) and its rules: allowed terms, days left to renew after expiry, WHOIS privacy, DNSSEC, HSTS preload. No sign-in needed.
get_domainRead / scopedLive state of a domain this organization holds through Nymwell: expiry, renewal price, transfer lock, WHOIS privacy, registry locks, nameservers, contact verification and any transfer in progress.
set_auto_renewRead / scopedRecord whether this domain should be renewed. No money moves; Nymwell reminds the workspace 30 and 7 days before expiry, and every renewal is a checkout the person pays. The registrar's own auto-renew always stays off.
update_domain_settingsNeeds approvalPrepare a WHOIS privacy or transfer lock change. An owner or admin approves it in the console before the registrar is touched.
set_nameserversNeeds approvalPrepare a nameserver change: 2 to 13 hostnames, or "default" to return to Nymwell DNS. Pointing elsewhere means the records in Nymwell stop applying. Needs approval.
set_contactsNeeds approvalPrepare a contact change. registrant is required (it is the legal holder); admin, tech and billing are optional. A new registrant must confirm by email within 15 days or the domain stops resolving. Needs approval.
request_auth_codeNeeds approvalPrepare unlocking a domain and revealing its transfer auth code, to move it to another registrar. After approval the code is shown once to the approving person; an agent never sees it. Not possible within 60 days of a registration or transfer.
cancel_registrationNeeds approvalPrepare cancelling a registration made in the last few days (the registry's add grace period, about 5 days). Once approved the domain is deleted and the payment refunded.
list_domain_servicesRead / scopedRead DNSSEC DS records, URL forwarding, email forwarding or branded (vanity) nameservers for a domain, live from the registrar.
change_domain_serviceNeeds approvalPrepare a DNSSEC, URL forwarding, email forwarding or vanity nameserver change. Needs approval. data: dnssec {key_tag, algorithm, digest_type, digest} (delete: digest); url_forwarding {host, forwards_to, type: masked|redirect|302, title?, meta?} (delete: host); email_forwarding {email_box, email_to} (delete: email_box); vanity_nameservers {hostname, ips} (delete: hostname).
list_transfersRead / scopedTransfers into Nymwell for this organization and where each one is.
cancel_transferNeeds approvalPrepare cancelling a transfer: direction "in" stops one coming to Nymwell (the payment is refunded), "out" stops a domain leaving for another registrar. Needs approval.
list_unverified_contactsRead / scopedRegistrant emails still waiting for ICANN verification on this organization's domains, with the deadline. A domain whose registrant misses it stops resolving.
list_approvalsRead / scopedChanges waiting for a person to approve, and the ones already decided. Approving is done by a person in the console, never through MCP.
resend_contact_verificationRead / scopedSend the ICANN verification email again for one verification_id from list_unverified_contacts.

Hosted authorization

Sites authenticates the MCP caller and forwards the signed-in user identity; agent keys carry scopes, a domain allowlist and an expiry. Nymwell applies the same server-side boundary as the REST API. External OAuth client registration is not enabled.

Secrets stay outside the model

A transfer auth code is entered by the signed-in owner (POST /api/v1/transfers), sealed with AES-GCM and wiped once the transfer is submitted; it is never a tool argument. An outgoing auth code is shown once, to the person who approved revealing it.

Approval cannot come from the model

Agents prepare; people decide. Buying, renewing and transferring are approved by paying the checkout. Settings, nameservers, contacts, DNS, forwarding, DNSSEC and cancellations wait for an owner or admin to approve in the console; list_approvals shows where each one is. There is no approval tool.

Download live tool schemas ↓