ToolPin

run.domani/domani

run.domani/domani · v0.4.15 · MCP 2025-11-25

Internet identity for AI agents: register or broker domains, email, DNS - pay by card or USDC.

Reachability reachable
checked 2026-07-14 04:34 UTC
Registry status active
Tools pinned 117
7947b4777ffb
Tools last changed unchanged since first capture 2026-07-14

Provenance

Registry namespace run.domani (domain verified by the official registry)
Repository github.com/gwendall/domani
Website https://domani.run
Remote endpoints
https://domani.run/mcp (streamable-http)

Observed changes

When (UTC)EventDetail
2026-07-14 03:27 first capture 117 tools pinned

Pinned tool definitions (117)

ToolDescription
get_account Get your account details, payment status, contact info status (has_contact), and referral code. Contact info must be set before purchasing domains.
search Check availability and price for one or more domains. Pass full domain names (e.g. mysite.com). For bulk TLD search, pass an array like ["myapp.com", "myapp.io", "myapp.dev"]. Uses RDAP + retail pricing.
suggest_domains AI-powered domain suggestions. Given a project description, generates full domain names with creative TLDs (e.g. codebuddy.dev, wavify.fm), checks availability, and returns only available domains with pricing.
list_tlds List all available TLDs with registration and renewal pricing
dns_check Fast DNS-based domain existence check. Tests if a name is taken across many TLDs at once (faster than search, no pricing). Returns 'taken' (definitely registered) and 'candidates' (potentially available). Use this to narrow down before...
buy_domain Purchase one or more domains. Always confirm with the user before calling. Accepts a single domain or an array of up to 10 (card only for bulk). If the user wants to pay with crypto/USDC: call with payment_method: 'usdc' - you'll get a...
buy_aftermarket Buy a taken domain that's listed for sale on an aftermarket (Afternic/Sedo) at its buy-now price, natively - no external site. Use when search shows a domain with for_sale.buyable = true. Always confirm the price with the user first....
provision_agent Give an AI agent a complete internet identity in one call: buy a domain, set up email, create a mailbox, and (optionally) register a webhook for inbound email. Use this when someone wants to 'give my agent a domain and email' or 'set up...
list_domains List all domains you own
get_dns Get DNS records for a domain you own. Returns each record with a stable id, plus a zone_version token - pass it to set_dns to detect concurrent zone changes.
set_dns Upsert DNS records for a domain you own, at the rrset level: records at a (type, name) you send replace that rrset; rrsets you don't mention are preserved (NS never touched). An automatic zone backup is taken before every write. Best...
snapshot_dns Capture all DNS records for a domain via public DNS lookups. Discovers subdomains from CT logs, SPF, and common names. Stores a server-side backup. Use before migrations or transfers.
restore_dns Restore DNS records from the server-side backup (created by snapshot_dns or during transfers). Uses diff to avoid duplicates. Call snapshot_dns first to create a backup. Pass dry_run to preview what would be applied without writing.
clone_dns Copy the DNS setup of one domain you own onto another (e.g. brand.com → brand.dev with the same A/CNAME/MX). Merges by default (source wins on collisions, keeps the target's other records); set replace=true for an exact mirror.
claim_identity Give your agent a free identity at <handle>.domani.run - a live profile page, no domain purchase, instantly. The frictionless way to start; upgrade to your own real domain later. Optional name/bio/emoji/email/links.
list_identities List the free agent identities (<handle>.domani.run) you've claimed.
update_identity Update a free identity's name/bio/emoji/email/links.
release_identity Release a free identity handle so it's available again.
get_dnssec List the DNSSEC delegation-signer (DS) records for a domain you own, and whether DNSSEC is enabled. Pair with TLSA records (via set_dns) for DANE.
add_dnssec Publish a DNSSEC delegation-signer (DS) record at the registry to enable DNSSEC. Get the DS values from your zone provider after signing the zone.
delete_dnssec Remove a DNSSEC delegation-signer (DS) record at the registry by its key tag. Removing all DS records disables DNSSEC.
get_nameservers Get the authoritative nameservers configured for a domain you own. If empty, DNS operations (parking, email, connect) will fail.
set_nameservers Replace the nameservers for a domain you own. Requires 2–13 valid hostnames. Common values: OpenSRS DNS (ns1.systemdns.com, ns2.systemdns.com, ns3.systemdns.com), Cloudflare (assigned per account), custom NS.
setup_billing Get a checkout URL for the user to add a payment card. Returns a URL - tell the user to open it in their browser. After they complete the form, call get_account to verify has_payment_method is true. Only needed for card payments -...
upgrade_plan Get a Stripe checkout URL to upgrade the user to the Pro plan ($9/month). Returns a URL. Tell the user to open it in their browser to complete the upgrade. Pro includes 10,000 emails/month, unlimited mailboxes on custom domains,...
cancel_plan Cancel the user's Pro subscription. The subscription remains active until the end of the current billing period, then reverts to the free plan. Returns the cancellation date.
list_invoices List the user's payment invoices. Returns invoice number, amount, date, and links to view/download the PDF. Each invoice is generated by Stripe when a domain is purchased, renewed, or transferred.
list_tokens List all API tokens for your account. Shows token name, masked key, creation date, last used, and expiration status. Expired tokens are marked.
create_token Create a new API token with optional scoped permissions and spend caps. The full key is returned only once - save it immediately. A token can only grant scopes it already has (scope attenuation) and spend caps at or below its own....
list_audit_events The account's security audit trail, newest first: token lifecycle (created/revoked/escalation attempts), spend-cap and max_price denials, charges, payout requests. Use it to review what the account's tokens have been doing.
revoke_token Revoke an API token immediately. The token will stop working. Use list_tokens to find token IDs.
connect_domain Connect a domain to a hosting or email provider. Auto-detects provider from target, or accepts explicit provider name. For domains bought through the platform, DNS records are set automatically (status: dns_set). For imported domains...
domain_status Check domain health: DNS propagation, SSL status, email (MX) configuration, and expiry date
verify_connection Verify that a provider connection is working by checking DNS propagation. Use after connect_domain to confirm records are live.
verify_service Add DNS records to verify domain ownership for a third-party service (Stripe, Google Search Console, AWS SES, Postmark, Resend, Facebook, HubSpot, Microsoft 365). Unknown services fall back to a generic TXT record.
list_services List all supported services for domain verification (Stripe, Google Search Console, etc.)
whois_lookup Look up domain registration data via RDAP (modern WHOIS). Returns registrar, dates, status, nameservers, DNSSEC, and contact information (registrant, admin, tech, billing - often redacted for privacy). Works for any domain - no...
get_domain_preview Get website preview metadata (title, description, image, favicon) for any domain. Useful for understanding what a taken domain is currently used for. Data is cached for 7 days.
set_auto_renew Enable or disable auto-renew for a domain you own. When enabled, the domain will be renewed automatically before expiry.
set_whois_privacy Enable or disable WHOIS privacy for a domain you own. When enabled, your personal contact information is hidden from public WHOIS lookups.
set_security_lock Lock or unlock a domain's transfer lock (clientTransferProhibited). When locked, transfer requests are rejected. Unlock before transferring to another registrar.
set_domain_redirect Forward a domain you own to another URL (e.g. brand.com -> brand.dev). The domain must point at domani's nameservers/parking IP. Permanent (308) by default, or temporary (307). Send an empty url to stop forwarding.
get_auth_code Get the EPP/auth code needed to transfer a domain to another registrar. Automatically unlocks the domain if it's locked. Give this code to the new registrar to initiate the transfer.
get_transfer_away Check the status of an outbound domain transfer. Use after getting an auth code and initiating the transfer at the new registrar.
check_transfer_status Check the status of an inbound domain transfer. Returns detailed status (pending_owner, pending_admin, pending_registry, completed, cancelled) with actionable hints.
set_contact Set your WHOIS contact information (recommended for ICANN compliance, required before transfers). You can purchase domains without setting contact info first - a default contact is used until you set your own.
resend_email_verification Resend a verification email for your WHOIS contact email. If the contact email matches your login email, it's already verified. Rate limited to once per 15 minutes.
get_domain_info Get detailed information about a domain you own, including auto-renew status, security lock, WHOIS privacy, and provider data.
plan_domain_adoption Read-only planner for an existing domain. Inspects registrar, nameservers, DNS provider, DNSSEC, account state, transfer eligibility, and price. Returns safe next actions. Call this before asking for an EPP code. Connecting is free and...
check_transfer_eligibility Pre-check whether a domain can be transferred. Returns transfer price, eligibility status, and any blockers (unsupported TLD, ICANN waiting period, domain locked, etc.). Always call this before transfer_domain to verify eligibility and...
transfer_domain Initiate a domain transfer from another provider. PAID. The transfer includes 1 year of renewal, preserves current nameservers, and does not migrate DNS. Call plan_domain_adoption first, show the exact price and continuity plan, then...
watch_transfer Watch a domain and get notified (email + webhook) when it becomes eligible for transfer. Uses RDAP to check ICANN lock periods and EPP status codes. If the domain is already eligible, returns immediately without creating a watch. If not...
renew_domain Renew a domain you own for additional years. Always confirm with the user before calling this.
list_providers List all supported hosting and email providers with their connection methods, target requirements, and setup notes
import_domain Import an external domain you already own (registered at GoDaddy, Namecheap, Cloudflare, etc.) to manage through domani.run. Free, no transfer needed. Returns a TXT record to add at your DNS provider for ownership verification.
verify_import Verify DNS TXT record and complete domain import. Call after adding the TXT record from import_domain.
set_parking Enable or disable the parking page for a domain you own. When enabled, visitors to the domain see a default parking page (or a 'For Sale' page if a listing price is set). Parking is enabled by default for newly purchased domains....
get_parking_analytics Get visitor analytics for a parked domain - page views, inquiries, conversion rate, 30-day daily breakdown, and the 5 most recent inquiries. Use this to check how much traffic a parked domain gets and whether it's converting into buyer...
set_listing_price Set a 'For Sale' price on a parked domain, or remove the listing. When a price is set and parking is enabled, visitors see a 'For Sale' page with the price and a contact form to reach the domain owner. Set price to null to remove the listing.
sell_domain List a domain you own for sale on the Domani marketplace. Buyers can purchase it directly via the API. The domain must be active and not already listed. Requires domains:write scope.
update_listing Update the price and/or description of an active marketplace listing. Requires domains:write scope.
unsell_domain Remove an active for-sale listing for a domain you own. The domain stays in your account but is no longer purchasable on the marketplace. Requires domains:write scope.
make_offer Open an anonymous price negotiation on a listed domain with an initial offer (below or at the asking price). The seller can counter, accept, or decline. Neither side sees the other's identity. Requires deals:write scope.
respond_to_offer Counter, accept, or decline the current offer in a negotiation when it's your turn. 'accept' locks the price at the amount on the table; the buyer then finalizes payment. Requires deals:write scope.
finalize_negotiation As the buyer, pay the agreed price to create the escrow deal and start the transfer. Same payment methods as a purchase (card, USDC, x402). Requires domains:transfer scope. For a broker-sourced acquisition, if the agreed price is above...
list_negotiations List your active and past price negotiations (as buyer or seller). Counterparties are anonymized. Requires deals:read scope.
get_deal_invoice Get a role-aware receipt/statement for a marketplace deal. Buyers see what they paid; sellers see the sale, the platform commission line, and the net payout. Works for every payment method. Requires deals:read scope.
acquire_domain Ask domani to acquire a specific taken, unlisted domain on your behalf. Agents source the owner via RDAP, reach out anonymously, and negotiate - commission-only, no upfront fee. Owner interest opens an anonymous negotiation you can...
list_broker_requests List your domain acquisition requests and their status (sourcing/contacted/negotiating/agreed/no_contact/declined). Requires deals:read scope.
cancel_broker_request Cancel an active domain acquisition request. Requires deals:write scope.
respond_to_broker_inquiry Owner-agent path: respond to a broker's acquisition inquiry using the token from the outreach email in your inbox - fully autonomous, no email round-trip, no magic-link. offer/counter names a price and opens/advances an anonymous...
get_broker_inquiry_state Owner-agent read path: poll the current, anonymized state of a broker inquiry with your token before acting. Returns the domain, the buyer's offer on the table, whose move it is, and the actions available now. Never exposes the buyer's...
browse_marketplace Browse domains for sale on the Domani marketplace. Returns all active listings with prices. Use buy_domain to purchase a listed domain.
create_backorder Place a backorder on a domain that is currently registered to someone else. We watch it and automatically register it for the user when it becomes available (drops) - availability is polled every few minutes. The user is charged only if...
list_backorders List the user's backorders (watching, caught, failed, cancelled, expired). Optionally filter by status.
cancel_backorder Stop watching a domain by cancelling a backorder. Only backorders in the 'watching' state can be cancelled.
list_webhooks List all webhook endpoints configured for the user's account. Returns URL, subscribed events, and active status for each webhook.
create_webhook Register a new webhook endpoint to receive event notifications. The URL must use HTTPS. Choose which events to subscribe to (e.g. domain.purchased, transfer.completed). The webhook secret is returned only once - save it to verify...
update_webhook Update an existing webhook's URL, subscribed events, or active status. Use list_webhooks to get the webhook ID first.
delete_webhook Delete a webhook endpoint. All pending deliveries will be cancelled. This action cannot be undone.
list_webhook_deliveries Get recent delivery attempts for a webhook - shows event type, HTTP status, number of attempts, and any errors. Useful for debugging webhook issues.
setup_domain_email Pre-configure email DNS on a domain (optional). This is called automatically by create_mailbox when needed. Use this only to pre-configure DNS before creating mailboxes. Pass force=true to override existing email provider (Google...
get_domain_email_status Check if email is enabled on a domain and whether DNS records are verified. Returns record status and mailbox count.
create_mailbox Create an email address. Specify slug (required) and optionally domain. For custom domains: email DNS is auto-configured on first use. For imported domains (external registrar): returns DNS records to add manually at your registrar. For...
list_mailboxes List all your email addresses. Optionally filter by domain. API: GET /api/emails (or GET /api/email).
send_email Send an email from one of your mailboxes. Specify domain and slug to identify the sender mailbox. Supports text and/or HTML body, CC/BCC, attachments (base64), and threading via In-Reply-To/References. Rate limited to 100 sends per hour...
list_email_messages List messages in a system folder or virtual view. Defaults to Inbox. Supports pagination, direction and search filters. API: GET /api/emails/{address}/messages.
list_email_folders List canonical mailbox folders, virtual views, server-derived total/unread counts, and backend capabilities. API: GET /api/emails/{address}/folders.
update_email_messages Apply a reversible mailbox lifecycle action to up to 100 messages, or permanently delete messages already in Trash with email:delete. API: POST /api/emails/{address}/messages/actions.
get_message Get a single message by ID with full content, headers, delivery events, and attachment download URLs. API: GET /api/emails/{address}/messages/{id}.
set_email_webhook Set or remove the inbound webhook URL for a mailbox. When set, incoming emails are POSTed to this URL in real-time with HMAC-SHA256 signing. Must be HTTPS. Set to null to remove. API: PUT /api/emails/{address}/webhook or DELETE...
rotate_email_webhook_secret Regenerate the HMAC signing secret for a mailbox webhook. The old secret is immediately invalidated. API: POST /api/emails/{address}/webhook/rotate.
test_email_webhook Send a signed test payload to the mailbox webhook URL. Returns HTTP status and success/failure. API: POST /api/emails/{address}/webhook/test.
set_email_forward Configure inbound handling for a mailbox: forward incoming emails to another address (in addition to storing) and/or drop spam-flagged messages. Set forward_to to null to remove forwarding. API: PATCH /api/emails/{address}.
add_mailbox_alias Add an alias address that delivers into an existing mailbox, without using a mailbox slot. Useful for multiple public addresses (sales@, hello@, contact@) landing in one inbox. The alias must be on the same domain as the mailbox. API:...
list_mailbox_aliases List all alias addresses that deliver into a mailbox. API: GET /api/emails/{address}/aliases.
remove_mailbox_alias Remove an alias address from a mailbox. Email to that address stops being delivered. API: DELETE /api/emails/{address}/aliases/{alias}.
set_catch_all Route any email sent to an unmatched address on a domain into a designated mailbox. Anything that does not match a mailbox, subaddress, or alias lands in the catch-all. The mailbox must already exist on the domain. API: PUT...
clear_catch_all Remove the catch-all on a domain. Email to unmatched addresses will be dropped again. API: DELETE /api/domains/{domain}/email/catch-all.
list_suppressions List addresses on your suppression list - hard bounces and complaints (added automatically) plus manual entries. Sends to these addresses are skipped. API: GET /api/suppressions.
add_suppression Manually add an address to your suppression list so future sends skip it. Hard bounces and complaints are added automatically - use this for addresses you want to stop emailing. API: POST /api/suppressions.
remove_suppression Remove an address from your suppression list so you can email it again (e.g. after the recipient fixed their mailbox). API: DELETE /api/suppressions/{address}.
add_mail_rule Add an inbound filtering rule to a mailbox. If a message matches (by from/to/subject/body), the action runs: drop, mark_read, forward (to action_arg), webhook_only (skip forward-to), or label (with action_arg). Rules run in priority...
list_mail_rules List a mailbox's inbound filtering rules, in the priority order they are applied. API: GET /api/emails/{address}/rules.
remove_mail_rule Remove an inbound filtering rule from a mailbox. API: DELETE /api/emails/{address}/rules/{ruleId}.
delete_mailbox Delete a mailbox and all its messages (including attachments). Requires confirm=true. Call without confirm first to see what will be deleted. API: DELETE /api/emails/{address}.
mark_messages_read Mark one or more messages as read or unread. Useful for tracking which messages have been processed by your agent. API: PATCH /api/emails/{address}/messages/read.
delete_message Move an email message to Trash. This is reversible with update_email_messages action=restore. API: DELETE /api/emails/{address}/messages/{id}.
delete_messages Move multiple messages to Trash. This is reversible with update_email_messages action=restore. API: POST /api/emails/{address}/messages/delete.
forward_message Forward an email message to another address. Includes the original message context (sender, date, subject, body). Optionally prepend a note. Subject is auto-prefixed with 'Fwd:'. API: POST /api/emails/{address}/messages/{id}/forward.
reply_to_message Reply to an email message. Automatically sets To (from Reply-To or sender), Subject (Re: prefix), In-Reply-To and References headers for proper threading. Use all=true for reply-all (auto-populates CC from original recipients, excluding...
check_email Check email DNS health for a domain: MX records, SPF, DMARC, DKIM. Auto-detects the email provider from MX records.
create_hosted_mailbox Create a real IMAP/SMTP mailbox on a domain you own (connect Apple Mail, Thunderbird, or any mail client), instead of an API mailbox. Provisions the mailbox on our mail server, publishes DNS when we manage it, and returns the DNS...
get_mailbox_client_settings Get IMAP/SMTP settings for a hosted mailbox to configure a mail client (Apple Mail, Thunderbird). Username is the full address; password is an app password. API: GET /api/emails/{address}/client-settings.
create_mailbox_credential Create an app password for a hosted mailbox, used as the password in a mail client. The secret is returned once - store it. API: POST /api/emails/{address}/credentials.
list_mailbox_credentials List the app passwords for a hosted mailbox (labels + metadata; secrets are shown only once at creation). API: GET /api/emails/{address}/credentials.
revoke_mailbox_credential Revoke an app password on a hosted mailbox. Any mail client using it stops connecting. API: DELETE /api/emails/{address}/credentials/{id}.

Status badge

ToolPin status badge for run.domani/domani

[![ToolPin](https://toolpin.dev/badge/run.domani/domani.svg)](https://toolpin.dev/servers/run.domani/domani)

Maintain this server? Add the badge to your README — it links your users to this live status page.