Connects Claude to domain lookup via RDAP, the ICANN standard protocol for querying domain registration data. No API keys required. Part of the Pipeworx gateway, which offers access to 673+ data sources through a single MCP endpoint. You can call domain tools directly or use the ask_pipeworx function to query in plain English and let the gateway route to the right tool automatically. Useful when you need to check domain availability, ownership details, or registration info without leaving your AI workflow. Runs as a hosted service over streamable HTTP, so no local server setup needed.
Public tool metadata for what this MCP can expose to an agent.
ud_domains_searchSearch for ICANN domain availability and pricing. Can check a specific domain or search terms across multiple TLDs. Supports multiple queries in a single request. **Use Cases:** - **Single domain availability check**: Pass the full domain name (e.g., "example.com") to check if...4 paramsSearch for ICANN domain availability and pricing. Can check a specific domain or search terms across multiple TLDs. Supports multiple queries in a single request. **Use Cases:** - **Single domain availability check**: Pass the full domain name (e.g., "example.com") to check if...
tldsarraylimitnumberqueryvalueoffsetnumberud_tld_listList all available ICANN TLDs (top-level domains) supported by our registrar. **Inputs:** None required **Returns:** - tlds: Array of TLD extension strings (e.g., ["com", "io", "org"]) - count: Total number of supported TLDs **Example:** Input: {} Output: { "tlds": ["com", "io...List all available ICANN TLDs (top-level domains) supported by our registrar. **Inputs:** None required **Returns:** - tlds: Array of TLD extension strings (e.g., ["com", "io", "org"]) - count: Total number of supported TLDs **Example:** Input: {} Output: { "tlds": ["com", "io...
No parameter schema in public metadata yet.
ud_portfolio_listList domains in the authenticated user's portfolio with filtering, sorting, and pagination. **Inputs:** - page (number, optional): Page number, 1-indexed (default: 1) - pageSize (number, optional): Number of domains per page, 1-100 (default: 50) - searchTerm (string, optional)...13 paramsList domains in the authenticated user's portfolio with filtering, sorting, and pagination. **Inputs:** - page (number, optional): Page number, 1-indexed (default: 1) - pageSize (number, optional): Number of domains per page, 1-100 (default: 50) - searchTerm (string, optional)...
pageintegerstatusstringall · for-sale · unlistedexpiredbooleanorderBystringname · length · purchasedAt · expiresAt · listingPrice · offerspageSizeintegermaxLengthintegerminLengthintegersearchTermstringtagFiltersarrayautoRenewalstringtrue · falseregistryTypestringdns · web3orderDirectionstringasc · descexpiringWithinDaysintegerud_contacts_listList ICANN contacts configured for the authenticated user's account. **Inputs:** - includeDisabled (boolean, optional): Include disabled contacts. Default: false **Returns:** - contacts: Array of contact summaries with: - id: Contact ID (use this for checkout) - firstName, las...1 paramsList ICANN contacts configured for the authenticated user's account. **Inputs:** - includeDisabled (boolean, optional): Include disabled contacts. Default: false **Returns:** - contacts: Array of contact summaries with: - id: Contact ID (use this for checkout) - firstName, las...
includeDisabledbooleanud_contact_createCreate a new ICANN contact for DNS domain registration. **Required for:** Registering DNS domains (.com, .org, .net, etc.) **Not required for:** Web3 domains (.crypto, .nft, .x, etc.) **Inputs:** - firstName (string): Contact first name - lastName (string): Contact last name -...10 paramsCreate a new ICANN contact for DNS domain registration. **Required for:** Registering DNS domains (.com, .org, .net, etc.) **Not required for:** Web3 domains (.crypto, .nft, .x, etc.) **Inputs:** - firstName (string): Contact first name - lastName (string): Contact last name -...
citystringemailstringphoneobjectstreetstringlastNamestringfirstNamestringpostalCodestringcountryCodestringorganizationstringstateProvincestringud_cart_getGet the authenticated user's shopping cart with comprehensive pricing breakdown. **Inputs:** - discountCode (string, optional): Promo/discount code to apply for pricing calculation **Returns:** - items: Array of cart items with per-item pricing breakdown: - productId: Unique p...1 paramsGet the authenticated user's shopping cart with comprehensive pricing breakdown. **Inputs:** - discountCode (string, optional): Promo/discount code to apply for pricing calculation **Returns:** - items: Array of cart items with per-item pricing breakdown: - productId: Unique p...
discountCodestringud_cart_add_domain_registrationAdd one or more primary (unregistered) domains to the authenticated user's shopping cart. **IMPORTANT:** This tool is ONLY for domains with "Available" status (marketplace.source = "unstoppable_domains", marketplace.status = "available"). For other domain types: - **UD Marketp...1 paramsAdd one or more primary (unregistered) domains to the authenticated user's shopping cart. **IMPORTANT:** This tool is ONLY for domains with "Available" status (marketplace.source = "unstoppable_domains", marketplace.status = "available"). For other domain types: - **UD Marketp...
domainsarrayud_cart_add_domain_listedAdd marketplace-listed domains to the authenticated user's shopping cart. **IMPORTANT:** This tool is ONLY for Unstoppable Domains secondary marketplace listings (marketplace.source = "unstoppable_domains", marketplace.status = "registered-listed-for-sale" or "registered-liste...1 paramsAdd marketplace-listed domains to the authenticated user's shopping cart. **IMPORTANT:** This tool is ONLY for Unstoppable Domains secondary marketplace listings (marketplace.source = "unstoppable_domains", marketplace.status = "registered-listed-for-sale" or "registered-liste...
domainsarrayud_cart_add_domain_afternicAdd Afternic marketplace domains to the authenticated user's shopping cart. **IMPORTANT:** This tool is ONLY for domains from the Afternic marketplace (marketplace.source = "afternic" in search results). The domain must have a buy-now price available. **When to Use:** Use this...1 paramsAdd Afternic marketplace domains to the authenticated user's shopping cart. **IMPORTANT:** This tool is ONLY for domains from the Afternic marketplace (marketplace.source = "afternic" in search results). The domain must have a buy-now price available. **When to Use:** Use this...
domainsarrayud_cart_add_domain_sedoAdd Sedo marketplace domains to the authenticated user's shopping cart. **IMPORTANT:** This tool is ONLY for domains from the Sedo marketplace (marketplace.source = "sedo" in search results). The domain must have a buy-now price available. **When to Use:** Use this tool when s...1 paramsAdd Sedo marketplace domains to the authenticated user's shopping cart. **IMPORTANT:** This tool is ONLY for domains from the Sedo marketplace (marketplace.source = "sedo" in search results). The domain must have a buy-now price available. **When to Use:** Use this tool when s...
domainsarrayud_cart_add_domain_renewalAdd one or more domain renewals to the authenticated user's shopping cart. This tool is for renewing domains that the user already owns. The user must own the domain to renew it. **Inputs:** - domains (array, required): Array of domain objects to renew: - name (string, require...1 paramsAdd one or more domain renewals to the authenticated user's shopping cart. This tool is for renewing domains that the user already owns. The user must own the domain to renew it. **Inputs:** - domains (array, required): Array of domain objects to renew: - name (string, require...
domainsarrayud_cart_removeRemove items from the authenticated user's shopping cart by product ID. **Inputs:** - productIds (number[], required): Array of product IDs to remove (get IDs from ud_cart_get) **Returns:** - removedProductIds: Array of IDs that were removed - removedCount: Number of items rem...1 paramsRemove items from the authenticated user's shopping cart by product ID. **Inputs:** - productIds (number[], required): Array of product IDs to remove (get IDs from ud_cart_get) **Returns:** - removedProductIds: Array of IDs that were removed - removedCount: Number of items rem...
productIdsarrayud_cart_get_payment_methodsGet available payment methods for checkout including saved credit cards, account balance, and promo credits. **Inputs:** None required **Returns:** - savedCards: Array of saved credit cards with: - id: Payment method ID (use this for checkout) - brand: Card brand (e.g., "visa"...Get available payment methods for checkout including saved credit cards, account balance, and promo credits. **Inputs:** None required **Returns:** - savedCards: Array of saved credit cards with: - id: Payment method ID (use this for checkout) - brand: Card brand (e.g., "visa"...
No parameter schema in public metadata yet.
ud_cart_add_payment_method_urlGet a URL to add a new payment method to the user's account. **Purpose:** Returns a link to the Unstoppable Domains payment management page where users can securely add a new credit card to their account. **Inputs:** None required **Returns:** - url: Link to the payment manage...Get a URL to add a new payment method to the user's account. **Purpose:** Returns a link to the Unstoppable Domains payment management page where users can securely add a new credit card to their account. **Inputs:** None required **Returns:** - url: Link to the payment manage...
No parameter schema in public metadata yet.
ud_cart_checkoutComplete checkout for items in the cart using saved payment method or account balance. **IMPORTANT - DNS Domain Requirements:** For DNS/ICANN domains (.com, .org, .net, .io, etc.), an ICANN contact must be configured before checkout. 1. Call ud_contacts_list to check if user h...4 paramsComplete checkout for items in the cart using saved payment method or account balance. **IMPORTANT - DNS Domain Requirements:** For DNS/ICANN domains (.com, .org, .net, .io, etc.), an ICANN contact must be configured before checkout. 1. Call ud_contacts_list to check if user h...
contactIdstringdiscountCodestringpaymentMethodIdstringuseAccountBalancebooleanud_cart_get_urlGenerate a checkout URL for completing the purchase in a browser. **Inputs:** - discountCode (string, optional): Promo code to apply at checkout **Returns:** - checkoutUrl: URL to complete purchase in browser - cartSummary: Current cart contents: - itemCount: Number of items -...1 paramsGenerate a checkout URL for completing the purchase in a browser. **Inputs:** - discountCode (string, optional): Promo code to apply at checkout **Returns:** - checkoutUrl: URL to complete purchase in browser - cartSummary: Current cart contents: - itemCount: Number of items -...
discountCodestringud_listing_createCreate marketplace listings to sell one or more domains. **Inputs:** - domains (array, required): Array of domain listing objects (1-50): - domainName (string, required): The domain to list - priceInCents (number, optional): Buy-now price in cents (0 for offers-only). Range: $...1 paramsCreate marketplace listings to sell one or more domains. **Inputs:** - domains (array, required): Array of domain listing objects (1-50): - domainName (string, required): The domain to list - priceInCents (number, optional): Buy-now price in cents (0 for offers-only). Range: $...
domainsarrayud_listing_updateUpdate one or more existing marketplace listings. **Inputs:** - listings (array, required): Array of listing updates (1-50): - id (number, required): The listing ID to update - priceInCents (number, optional): New buy-now price in cents - expiresAt (string, optional): New list...1 paramsUpdate one or more existing marketplace listings. **Inputs:** - listings (array, required): Array of listing updates (1-50): - id (number, required): The listing ID to update - priceInCents (number, optional): New buy-now price in cents - expiresAt (string, optional): New list...
listingsarrayud_listing_cancelCancel one or more marketplace listings. **Inputs:** - listingIds (array of numbers, required): Array of listing IDs to cancel (1-50) **Returns:** - results: Array of cancellation results with: - listingId: The listing ID - domainName: The domain name - success: Whether cancel...1 paramsCancel one or more marketplace listings. **Inputs:** - listingIds (array of numbers, required): Array of listing IDs to cancel (1-50) **Returns:** - results: Array of cancellation results with: - listingId: The listing ID - domainName: The domain name - success: Whether cancel...
listingIdsarrayud_offers_listList incoming offers on domains you own. **Inputs:** - domainName (string, optional): Filter offers by specific domain name - group (string, optional): Filter by group - "active" (pending offers, default) or "sold" (completed sales) - page (number, optional): Page number, 1-in...3 paramsList incoming offers on domains you own. **Inputs:** - domainName (string, optional): Filter offers by specific domain name - group (string, optional): Filter by group - "active" (pending offers, default) or "sold" (completed sales) - page (number, optional): Page number, 1-in...
pageintegergroupstringactive · solddomainNamestringud_offer_respondAccept or reject incoming offers on your domains. **Inputs:** - offers (array, required): Array of offer responses (1-50): - id (number, required): The offer ID - action (string, required): "accept" or "reject" **Returns:** - results: Array of results per offer with: - offerId...1 paramsAccept or reject incoming offers on your domains. **Inputs:** - offers (array, required): Array of offer responses (1-50): - id (number, required): The offer ID - action (string, required): "accept" or "reject" **Returns:** - results: Array of results per offer with: - offerId...
offersarrayud_leads_listList your domain conversation leads (buyer-seller messages). **Inputs:** - domain (string, optional): Filter by specific domain name - skipEmpty (boolean, optional): Skip conversations with no messages (default: true) - skip (number, optional): Pagination offset (default: 0) -...4 paramsList your domain conversation leads (buyer-seller messages). **Inputs:** - domain (string, optional): Filter by specific domain name - skipEmpty (boolean, optional): Skip conversations with no messages (default: true) - skip (number, optional): Pagination offset (default: 0) -...
skipintegertakeintegerdomainstringskipEmptybooleanud_lead_getContact the seller of a domain to start a conversation. **Inputs:** - domain (string, required): The domain name to inquire about - buyerId (string, optional): Encoded buyer ID for sellers responding to an offer **Returns:** - conversation: The conversation details with: - id:...2 paramsContact the seller of a domain to start a conversation. **Inputs:** - domain (string, required): The domain name to inquire about - buyerId (string, optional): Encoded buyer ID for sellers responding to an offer **Returns:** - conversation: The conversation details with: - id:...
domainstringbuyerIdstringud_lead_messages_listGet messages in a domain conversation (lead). **Inputs:** - conversationId (number, required): The conversation ID from ud_leads_list or ud_lead_get - cursor (string, optional): Pagination cursor for loading older messages **Returns:** - messages: Array of messages (newest fir...2 paramsGet messages in a domain conversation (lead). **Inputs:** - conversationId (number, required): The conversation ID from ud_leads_list or ud_lead_get - cursor (string, optional): Pagination cursor for loading older messages **Returns:** - messages: Array of messages (newest fir...
cursorstringconversationIdintegerud_lead_message_sendSend a message in a domain conversation (lead). **Inputs:** - conversationId (number, required): The conversation ID from ud_leads_list or ud_lead_get - content (string, required): Message content (1-1000 characters) **Returns:** - message: The sent message with: - id: Message...2 paramsSend a message in a domain conversation (lead). **Inputs:** - conversationId (number, required): The conversation ID from ud_leads_list or ud_lead_get - content (string, required): Message content (1-1000 characters) **Returns:** - message: The sent message with: - id: Message...
contentstringconversationIdintegerud_dns_records_listList DNS records for a domain in your portfolio. **Inputs:** - domain (string, required): The domain name (e.g., "example.com") - type (string, optional): Filter by record type (A, AAAA, CNAME, MX, TXT, NS, etc.) - subName (string, optional): Filter by subdomain/host ("www", "...4 paramsList DNS records for a domain in your portfolio. **Inputs:** - domain (string, required): The domain name (e.g., "example.com") - type (string, optional): Filter by record type (A, AAAA, CNAME, MX, TXT, NS, etc.) - subName (string, optional): Filter by subdomain/host ("www", "...
typestringcursorstringdomainstringsubNamestringud_dns_record_addAdd DNS records to one or more domains in your portfolio. Supports bulk operations for up to 50 records across multiple domains. **Inputs:** - records (array, required): Array of DNS record configurations (1-50): - domain (string, required): The domain name (e.g., "example.com...2 paramsAdd DNS records to one or more domains in your portfolio. Supports bulk operations for up to 50 records across multiple domains. **Inputs:** - records (array, required): Array of DNS record configurations (1-50): - domain (string, required): The domain name (e.g., "example.com...
recordsarrayupsertModestringappend · replace · disallowedud_dns_record_updateUpdate existing DNS records for one or more domains in your portfolio. Supports bulk operations for up to 50 record updates. **Inputs:** - records (array, required): Array of record updates (1-50): - domain (string, required): The domain name (e.g., "example.com") - recordId (...1 paramsUpdate existing DNS records for one or more domains in your portfolio. Supports bulk operations for up to 50 record updates. **Inputs:** - records (array, required): Array of record updates (1-50): - domain (string, required): The domain name (e.g., "example.com") - recordId (...
recordsarrayud_dns_record_removeRemove specific DNS records from one or more domains in your portfolio. Supports bulk operations for up to 50 record removals. **Inputs:** - records (array, required): Array of records to remove (1-50): - domain (string, required): The domain name (e.g., "example.com") - recor...1 paramsRemove specific DNS records from one or more domains in your portfolio. Supports bulk operations for up to 50 record removals. **Inputs:** - records (array, required): Array of records to remove (1-50): - domain (string, required): The domain name (e.g., "example.com") - recor...
recordsarrayud_dns_records_remove_allRemove ALL user-created DNS records from one or more domains in your portfolio. **DANGER:** This is a highly destructive operation that removes all DNS records you have created from ALL specified domains. System-managed records (marked as readonly) are preserved. Supports bulk...2 paramsRemove ALL user-created DNS records from one or more domains in your portfolio. **DANGER:** This is a highly destructive operation that removes all DNS records you have created from ALL specified domains. System-managed records (marked as readonly) are preserved. Supports bulk...
domainsarrayconfirmDeleteAllbooleanud_dns_nameservers_listList nameservers for a domain in your portfolio. **Inputs:** - domain (string, required): The domain name (e.g., "example.com") - includeDnssec (boolean, optional): Include DNSSEC info if available **Returns:** - domain: The domain name - nameservers: Array of nameserver hostn...2 paramsList nameservers for a domain in your portfolio. **Inputs:** - domain (string, required): The domain name (e.g., "example.com") - includeDnssec (boolean, optional): Include DNSSEC info if available **Returns:** - domain: The domain name - nameservers: Array of nameserver hostn...
domainstringincludeDnssecbooleanud_dns_nameservers_set_customSet custom (external) nameservers for one or more domains in your portfolio. This switches DNS management from Unstoppable Domains to your external DNS provider (Cloudflare, Route 53, etc.). Supports bulk operations for up to 50 domains. **Inputs:** - domains (array, required)...1 paramsSet custom (external) nameservers for one or more domains in your portfolio. This switches DNS management from Unstoppable Domains to your external DNS provider (Cloudflare, Route 53, etc.). Supports bulk operations for up to 50 domains. **Inputs:** - domains (array, required)...
domainsarrayud_dns_nameservers_set_defaultReset one or more domains to use Unstoppable Domains' default nameservers. This switches DNS management back to Unstoppable Domains from an external DNS provider. Supports bulk operations for up to 50 domains. **Inputs:** - domains (array, required): Array of domains to reset...1 paramsReset one or more domains to use Unstoppable Domains' default nameservers. This switches DNS management back to Unstoppable Domains from an external DNS provider. Supports bulk operations for up to 50 domains. **Inputs:** - domains (array, required): Array of domains to reset...
domainsarrayud_dns_hosting_listList hosting/forwarding configurations for a domain in your portfolio. Hosting configurations control what happens when someone visits your domain. **Inputs:** - domain (string, required): The domain name (e.g., "example.com") - cursor (string, optional): Pagination cursor fro...2 paramsList hosting/forwarding configurations for a domain in your portfolio. Hosting configurations control what happens when someone visits your domain. **Inputs:** - domain (string, required): The domain name (e.g., "example.com") - cursor (string, optional): Pagination cursor fro...
cursorstringdomainstringud_dns_hosting_addAdd or update hosting configurations for one or more domains in your portfolio. This tool uses an **upsert pattern**: if a domain already has hosting configured, calling this tool will **replace** the existing configuration with the new one. Use this to both set up new hosting...1 paramsAdd or update hosting configurations for one or more domains in your portfolio. This tool uses an **upsert pattern**: if a domain already has hosting configured, calling this tool will **replace** the existing configuration with the new one. Use this to both set up new hosting...
domainsarrayud_dns_hosting_removeRemove hosting/forwarding configurations from one or more domains in your portfolio. This disables web hosting features (listing pages or redirects) for domains. Supports bulk operations for up to 50 domains. **Inputs:** - domains (array, required): Array of domains to remove...2 paramsRemove hosting/forwarding configurations from one or more domains in your portfolio. This disables web hosting features (listing pages or redirects) for domains. Supports bulk operations for up to 50 domains. **Inputs:** - domains (array, required): Array of domains to remove...
domainsarrayconfirmDeleteAllbooleanud_domain_pending_operationsCheck for pending DNS operations across multiple domains in your portfolio. DNS changes are processed asynchronously. Use this tool to: - Track the status of recent DNS changes across multiple domains - Check if domains are ready for new changes - Debug why changes might be qu...2 paramsCheck for pending DNS operations across multiple domains in your portfolio. DNS changes are processed asynchronously. Use this tool to: - Track the status of recent DNS changes across multiple domains - Check if domains are ready for new changes - Debug why changes might be qu...
domainsarrayincludeCompletedbooleanud_domain_auto_renewal_updateEnable or disable auto renewal for ICANN DNS domains that the user owns. This tool manages auto renewal subscriptions for ICANN DNS domains (.com, .net, .org, .io, etc.). When auto renewal is enabled, the domain will be automatically renewed before expiration using the saved p...3 paramsEnable or disable auto renewal for ICANN DNS domains that the user owns. This tool manages auto renewal subscriptions for ICANN DNS domains (.com, .net, .org, .io, etc.). When auto renewal is enabled, the domain will be automatically renewed before expiration using the saved p...
actionstringenable · disabledomainsarraypaymentMethodIdstringud_domain_getGet comprehensive information about domains in your portfolio. Returns all data from ud_portfolio_list plus additional detail per domain. This tool retrieves aggregated information for domains you own, including: - **Identity**: Domain name parts (extension, label, SLD), punyc...1 paramsGet comprehensive information about domains in your portfolio. Returns all data from ud_portfolio_list plus additional detail per domain. This tool retrieves aggregated information for domains you own, including: - **Identity**: Domain name parts (extension, label, SLD), punyc...
domainsarrayud_domain_tags_addAdd tags to domains in your portfolio. Creates new tags automatically if they don't exist. **Inputs:** - domains (array, required): Array of domain names to add tags to (e.g., ["example.com", "mysite.io"]) - tags (array, required): Array of tag names to add (e.g., ["Work", "Im...2 paramsAdd tags to domains in your portfolio. Creates new tags automatically if they don't exist. **Inputs:** - domains (array, required): Array of domain names to add tags to (e.g., ["example.com", "mysite.io"]) - tags (array, required): Array of tag names to add (e.g., ["Work", "Im...
tagsarraydomainsarrayud_domain_tags_removeRemove tags from domains in your portfolio. **Inputs:** - domains (array, required): Array of domain names to remove tags from (e.g., ["example.com", "mysite.io"]) - tags (array, required): Array of tag names to remove (e.g., ["Work", "Old"]) **Returns:** - results: Array with...2 paramsRemove tags from domains in your portfolio. **Inputs:** - domains (array, required): Array of domain names to remove tags from (e.g., ["example.com", "mysite.io"]) - tags (array, required): Array of tag names to remove (e.g., ["Work", "Old"]) **Returns:** - results: Array with...
tagsarraydomainsarrayud_domain_flags_updateUpdate domain flags (WHOIS privacy, transfer lock) for domains in your portfolio. **Inputs:** - domains (array, required): Array of domain names to update (e.g., ["example.com", "mysite.io"]) - flags (object, required): Flags to update: - DNS_TRANSFER_OUT: Transfer lock. ENABL...2 paramsUpdate domain flags (WHOIS privacy, transfer lock) for domains in your portfolio. **Inputs:** - domains (array, required): Array of domain names to update (e.g., ["example.com", "mysite.io"]) - flags (object, required): Flags to update: - DNS_TRANSFER_OUT: Transfer lock. ENABL...
flagsobjectdomainsarrayud_domain_pushPush domains to another Unstoppable Domains user. Requires MFA (two-factor authentication) verification. **IMPORTANT:** You must have MFA enabled on your account to use this feature. The recipient must accept the transfer. **Inputs:** - domains (array, required): Array of doma...3 paramsPush domains to another Unstoppable Domains user. Requires MFA (two-factor authentication) verification. **IMPORTANT:** You must have MFA enabled on your account to use this feature. The recipient must accept the transfer. **Inputs:** - domains (array, required): Array of doma...
domainsarrayotpCodestringtargetAccountIdstringDomains MCP — RDAP domain lookup (ICANN standard, free, no auth)
Part of Pipeworx — an MCP gateway connecting AI agents to 884+ live data sources.
| Tool | Description |
|---|
Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):
{
"mcpServers": {
"domains": {
"url": "https://gateway.pipeworx.io/domains/mcp"
}
}
}
Or connect to the full Pipeworx gateway for access to all 884+ data sources:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
Instead of calling tools directly, you can ask questions in plain English:
ask_pipeworx({ question: "your question about Domains data" })
The gateway picks the right tool and fills the arguments automatically.
MIT