DomainKits
Server Details
Search newly registered, expired, aged, active, deleted and for-sale domains, plus WHOIS and DNS.
- Status
- Healthy
- Uptime
- 100.0% over 50 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- ABTdomain/domainkits-mcp
- GitHub Stars
- 6
- Server Listing
- domainkits-mcp
TDQS
Scored across 31 tools
The domain-search family (active, aged, market, nrds, nrds_live, expired, deleted, unregistered_short_domains) all return registered-domain lists filtered by keyword/TLD/length, and the boundaries are only made clear by lengthy prose descriptions. nrds vs nrds_live and bulk_tld vs tld_check are especially fine distinctions that descriptions attempt to explain but still invite misselection.
Names are uniformly lowercase snake_case (bulk_available, tld_trends, unregistered_short_domains), which is predictable. There is no consistent verb_noun convention—several tools are bare nouns or adjectives (active, aged, market, price, whois, usage)—but the style is internally coherent.
At 31 tools this exceeds the 25+ threshold and is heavy for a single server, with several near-duplicate search entry points. The breadth of the domain-intelligence domain partially justifies it, but the surface is clearly oversized.
Coverage is broad: lifecycle search, availability checks, DNS/NS/IP, WHOIS/epp/registrar, pricing, trends, backlinks, typosquatting, and monitoring/strategy state. Minor gaps exist (no bulk WHOIS, no SSL/certificate search, no ownership-history tool), but core workflows are fully supported.
Available Tools
31 toolsactiveActive Domain SearchARead-onlyIdempotentInspect
Search active gTLD domains from a database of ~240 million registered domains, filtered by keyword, TLD, length, and character set. A market-analysis instrument for keyword distribution and saturation; results are registered domains, not available for registration.
Related: expired, whois, dns.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Filter by TLD (e.g., 'com', 'net', 'org'); when keyword is omitted, this is the browse target (TLD browse mode requires a registered account) | |
| page | No | Page number for pagination | |
| sort | No | Sort order | |
| type | No | Character set filter | |
| length | No | Domain name length filter | |
| status | No | Filter by status: 'forsale' for domains listed for sale | |
| keyword | No | Brand or industry term (min 2 chars). Omit to use TLD browse mode, which requires a registered account. | |
| position | No | Keyword placement in domain name. Default is 'all' (substring match). Unlike the other search tools, this one has no minimum-length restriction on substring matching. | |
| no_hyphen | No | Exclude hyphenated domains (true/false) | |
| no_number | No | Exclude domains containing numbers (true/false) | |
| tld_count_max | No | Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min. | |
| tld_count_min | No | Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| error | No | Error message when success is false |
| total | No | Number of results on this page |
| success | Yes | |
| max_page | No | |
| total_found | No | Total matching results across all pages; the primary metric for comparative analysis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine context beyond that: the ~240M domain corpus size, the market-analysis framing, and the crucial caveat that returned domains are registered (not acquirable). It omits auth/account requirements and pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load what the tool is and its most important caveat, followed by a compact 'Related:' routing line. No filler, though the Related line is slightly thin compared to a full alternatives statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and all 12 parameters are covered by the schema and annotations. The description supplies the essential framing (market analysis, registered-not-available) an agent needs to select it correctly; only explicit alternative-routing guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 12 parameters are documented in the schema itself. The description only restates the filter categories (keyword, TLD, length, character set) without adding syntax or defaults, so the baseline of 3 applies when structured data does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Search active gTLD domains') with concrete scope ('~240 million registered domains') and enumerates the filter dimensions. It explicitly distinguishes itself from the sibling 'available' tool by clarifying results are 'registered domains, not available for registration', so an agent can tell it apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Frames the use case as 'a market-analysis instrument for keyword distribution and saturation' and clarifies the registered-vs-available distinction, which implicitly routes registration checks to 'available'. It names related tools (expired, whois, dns) but stops short of explicit when-to-use/when-not phrasing for each alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agedAged Domains SearchARead-onlyIdempotentInspect
Search currently registered domains with 5-20+ years of history, filtered by keyword, TLD, age range, length, and sale status. These are live domains owned by someone, not free to register.
Related: expired, whois, dns.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Filter by TLD (e.g., 'com', 'net', 'org') | |
| page | No | Page number for pagination | |
| sort | No | Sort order | |
| type | No | Character set filter | |
| length | No | Domain name length filter | |
| exclude | No | Negative keywords to exclude | |
| keyword | No | Search term (min 2 chars). Substring matching applies at every length, including 2-character terms. | |
| has_sale | No | Filter to domains listed for sale by their owner | |
| position | No | Keyword placement in domain name. Default is 'all' (substring match). | |
| age_range | No | Domain age filter in years | |
| no_hyphen | No | Exclude hyphenated domains | |
| no_number | No | Exclude domains containing numbers | |
| tld_count_max | No | Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min. | |
| tld_count_min | No | Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| error | No | Error message when success is false |
| total | No | Number of results on this page |
| success | Yes | |
| max_page | No | |
| total_found | No | Total matching results across all pages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds the useful behavioral note that results are live, owned domains (not registrable), which is genuine context beyond the annotations. But it says nothing about pagination limits, rate limits, or result shape beyond the registered-only constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first delivers purpose and filters, the second delivers the critical usage constraint, and the trailing 'Related:' line provides routing with minimal tokens. Front-loaded and waste-free.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 optional parameters, an output schema, and full annotation coverage, the description provides the essential distinguishing context (live/owned vs registrable) an agent needs. It stops short of explaining pagination behavior or result fields, but the output schema exists and the most critical ambiguity is resolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 14 parameters, including the enum values and the tld_count_min/max range pattern. The description's generic list of filter axes ('keyword, TLD, age range, length, and sale status') adds no syntax or format detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search currently registered domains') with a precise qualifier (5-20+ years of history) and enumerates the filter axes. The key sentence 'These are live domains owned by someone, not free to register' crisply distinguishes it from siblings like 'available' and 'unregistered_ai'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Related: expired, whois, dns' line explicitly names alternatives, and the 'not free to register' clause implies when this tool is preferred over 'available'. However, it doesn't state when to choose this over 'expired'/'deleted' or what those siblings return instead, so the routing guidance is suggestive rather than decisive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
availableDomain Availability CheckARead-onlyIdempotentInspect
Confirm a single domain's registrability and price. The definitive availability check for one domain.
Related: bulk_available, whois, monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Full domain with TLD (e.g., 'example.com') |
Output Schema
| Name | Required | Description |
|---|---|---|
| price | No | Registration price with currency (e.g., '9.99 USD'). Only present when status=available. |
| domain | Yes | |
| status | Yes | Domain status: available = registrable, registered = taken, expiring = in the expiration pipeline, reserved = registry-reserved, invalid = malformed input, unknown = inconclusive |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the scope ('single domain') and output focus ('registrability and price') but no further behavioral traits such as rate limits or error handling, so it offers modest value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the action and scope, the second reinforces authority, and the Related line adds cross-reference. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter, a complete schema description, strong annotations, and an output schema present, the description adequately covers what the tool does and when to use it. The related-tools pointer adds contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'domain', is fully documented in the schema with format example. The description adds no additional parameter semantics, leaving this at the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Confirm a single domain's registrability and price' with a specific verb and resource, and explicitly contrasts with bulk_available, whois, and monitor via the 'Related' line, effectively distinguishing this tool from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes it is for a single domain, implying bulk_available is for multiple, and lists whois and monitor as related alternatives. This provides clear context for when to use this tool, though it stops short of explicit 'use X instead' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlink_summarySEO Backlink AnalysisBRead-onlyIdempotentInspect
Return a domain's backlink profile: domain rank, total backlinks, referring domains, spam score, and link distribution.
Related: whois.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Bare domain name such as example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...). |
Output Schema
| Name | Required | Description |
|---|---|---|
| cms | No | |
| rank | No | Domain rank (0-1000 logarithmic scale) |
| error | No | Error message when success is false |
| cached | No | |
| domain | No | |
| server | No | |
| country | No | |
| success | Yes | |
| backlinks | No | Total number of backlinks |
| first_seen | No | |
| ip_address | No | |
| broken_pages | No | |
| crawled_pages | No | |
| referring_ips | No | |
| referring_pages | No | |
| broken_backlinks | No | |
| referring_domains | No | |
| referring_subnets | No | |
| target_spam_score | No | Spam score of domain itself (0-100) |
| referring_links_tld | No | Backlink count by referring TLD |
| backlinks_spam_score | No | Spam score of incoming backlinks (0-100) |
| external_links_count | No | |
| internal_links_count | No | |
| referring_links_types | No | Backlink count by link type (anchor, image, redirect, etc.) |
| referring_main_domains | No | |
| referring_pages_nofollow | No | |
| referring_links_attributes | No | Backlink count by link attribute (nofollow, sponsored, ugc, etc.) |
| referring_links_platform_types | No | Backlink count by platform type (blogs, news, ecommerce, etc.) |
| referring_main_domains_nofollow | No | |
| referring_links_semantic_locations | No | Backlink count by semantic HTML location |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds only a list of returned metrics, which is largely redundant with the existing output schema, and says nothing about rate limits, caching, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and payload in a single efficient sentence, followed by a short pointer. No filler or repetition of the title. The 'Related: whois' fragment is minimal but doesn't clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema and full annotation coverage on a read-only, idempotent single-parameter tool, the description is close to sufficient. Its only real gap is the absence of guidance about when this analysis is the right one to call relative to the many sibling SEO tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'domain' parameter has 100% schema description coverage, including format constraints (bare domain, no protocol/path/port, punycode for IDN), so the schema carries the full burden. The description adds no additional parameter meaning, which matches the baseline 3 for high coverage with a non-zero parameter count.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Return) and resource (a domain's backlink profile) and enumerates the profile components (domain rank, total backlinks, referring domains, spam score, link distribution). It does not differentiate itself meaningfully from the many sibling analysis tools beyond a bare 'Related: whois' pointer, which is about a different tool rather than a contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no statement of when another sibling (e.g. keyword_data, tld_rank, whois) would be the better choice. The trailing 'Related: whois' hints at adjacency but offers no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_availableBatch Domain Availability CheckARead-onlyIdempotentInspect
Check the registration status of up to 50 domains at a point in time. available means the domain can be registered; registered means it is already registered; expiring means it is in an expiry-related lifecycle and is not directly registrable; reserved means it is reserved by the registry; unknown means no check produced a reliable conclusion. A failed check does not count as available.
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | Comma-separated fully qualified domain names, maximum 50. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Error message when success is false. |
| total | No | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the bar is lowered. The description still adds real value: it defines what each result state means and warns that a failed check must not be treated as available, which is non-obvious failure semantics an agent could otherwise get wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence front-loads purpose and scope, and the status glossary is compact and information-dense rather than padded. The enumeration is slightly long, but every clause defines a distinct state the caller must interpret.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-shape explanation is unnecessary, and the description instead supplies the interpretation layer for the status values plus failure semantics. The only real gap is guidance on when to prefer this over a single-domain or monitoring alternative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, so the schema already documents format and the 50-domain cap. The description only echoes the limit and adds no syntax or format detail beyond the schema, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Check the registration status of ... domains') and adds scope ('up to 50', 'at a point in time'). It is clearly distinguishable from status-oriented siblings like available or tld_check, though it never names the single-domain sibling it complements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Bulk usage is strongly implied by 'up to 50 domains' and 'at a point in time', which hints this is a snapshot rather than a monitoring tool. However, there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. available for a single domain, monitor for ongoing tracking).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_tldKeyword TLD Popularity CheckARead-onlyIdempotentInspect
For up to 50 keywords, count how many TLDs each exact name is registered in (keyword.tld), among the TLDs DomainKits tracks, split into popular TLDs, country-code TLDs, and other gTLDs. Returns counts only: it does not list individual TLDs, check availability, or report sale status.
Related: tld_check (per-TLD status for one keyword), bulk_available (status of specific domains).
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Comma-separated keywords to check (max 50) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | |
| total | No | Number of keywords checked |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (read-only, idempotent, non-destructive, closed-world). The description adds genuinely useful behavior beyond that: the output is counts only, it does not enumerate TLDs, and it tracks a bounded TLD set rather than all TLDs. That scope and output-shape disclosure is the kind of context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight paragraphs, front-loaded with the core behavior and scoping, followed by the routing line. Every sentence carries information and none is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return formatting need not be explained, yet the description still clarifies that counts (not lists) are returned. Combined with annotations covering safety, nothing an agent needs to select and call this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'keywords' param already documents itself with the max-50 constraint. The description adds the exact-match semantics (each name is evaluated as keyword.tld), which is meaningful, but otherwise restates the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: count how many TLDs each exact name is registered in, with the scope ('among the TLDs DomainKits tracks') and the breakdown (popular/country-code/other gTLDs). It also names the sibling tools it is not (tld_check, bulk_available), so it is distinguishable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Related' line routes the agent well: tld_check for per-TLD status on one keyword and bulk_available for specific domain status, plus the 'does not list individual TLDs, check availability, or report sale status' exclusions. It stops short of an explicit 'use this when you want aggregate counts across keywords' trigger, 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.
deletedDeleted Domains SearchARead-onlyIdempotentInspect
Search domains that were deleted after expiring, filtered by keyword, TLD, age before deletion, length, character set, and registry hold flag. Results reflect the latest data update and are not re-checked at query time, so a name may have been registered again since. Confirm with available or bulk_available before registering.
Related: available, bulk_available, whois.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Filter by TLD (e.g., 'com', 'net', 'org') | |
| hold | No | Filter by registry hold flag (has_hold or no_hold). Neither value confirms current availability. | |
| page | No | Page number for pagination | |
| sort | No | Sort order | |
| type | No | Character set filter | |
| length | No | Domain name length filter | |
| exclude | No | Negative keywords to exclude | |
| keyword | Yes | Search term (min 2 chars). Substring matching applies at every length, including 2-character terms. | |
| position | No | Keyword placement in domain name. Default is 'all' (substring match). | |
| age_range | No | Historical age before deletion | |
| no_hyphen | No | Exclude hyphenated domains | |
| no_number | No | Exclude domains containing numbers | |
| tld_count_max | No | Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min. | |
| tld_count_min | No | Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| error | No | Error message when success is false |
| total | No | Number of results on this page |
| success | Yes | |
| max_page | No | |
| total_found | No | Total matching results across all pages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive profile, and the description adds genuinely new behavioral context: results reflect the latest data update and are not re-checked at query time, so a name may have been re-registered. That staleness caveat is exactly the sort of thing structured fields cannot convey, though pagination and rate-limit behavior are unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with no padding; the freshness caveat and the verification step are placed where an agent will read them. The trailing 'Related:' list duplicates sibling names that are already visible in the tool list, a minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and rich annotations, the description needn't explain return values, and it covers the one non-obvious risk (stale results). Nothing essential is missing, though the interplay of tld_count_min/max and the exclusion flags is left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% across 14 parameters, and the description's filter list (keyword, TLD, age before deletion, length, character set, hold flag) largely restates what the schema already documents in detail. No syntax or interaction guidance is added, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and a precisely scoped resource ('domains that were deleted after expiring'), and lists the filter dimensions. This distinguishes it from siblings like expired, active, and available without any schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to confirm with 'available' or 'bulk_available' before registering, naming the alternatives and the condition that selects them. It stops short of stating when NOT to use this tool versus 'expired' or 'aged', so it is clear but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnsDNS Record LookupARead-onlyIdempotentInspect
Resolve a DNS name's records: A, AAAA, MX, NS, TXT, CNAME and SOA. Underscore-prefixed names work too, such as _dmarc. or ._domainkey..
A domain offered for sale may publish an RFC 10023 record at _for-sale.: read only the TXT strings starting with v=FORSALE1;, and treat what they say as the holder's own unverified claim.
Related: whois, ns_reverse.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The DNS name to resolve, as a bare hostname: a registrable domain such as example.com, or a fuller name such as _dmarc.example.com or mail.example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...). |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| domain | No | |
| message | No | Set when the name has no DNS records; records is then empty |
| records | No | DNS records grouped by type |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description still adds substantive context: how to read underscore-prefixed records and, critically, that _for-sale TXT strings starting with v=FORSALE1; are the holder's own unverified claim. That interpretation guidance is exactly the kind of value structured fields cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads verb and resource, then layers edge-case handling in short, self-contained paragraphs. Efficient, though the _for-sale paragraph is dense enough that it could be trimmed slightly without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, and the description still covers record types, name syntax, and result interpretation. The only thin spot is explicit routing versus whois/ns_reverse, which is named but not explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the domain parameter's own description already covers bare hostname vs. fuller name, punycode, and the no-protocol/no-port rule. The description slightly reinforces this with underscore examples, but adds little beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Resolve') and resource ('a DNS name's records') and enumerates the supported record types (A, AAAA, MX, NS, TXT, CNAME, SOA). This is clearly distinct from siblings like whois or ns_reverse, so an agent can pick it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage context for edge cases: underscore-prefixed names (_dmarc, _domainkey) and the RFC 10023 _for-sale convention. It names related tools (whois, ns_reverse) but does not state when to prefer this tool over them, so routing is left partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_changesPremium Domain Changes Monitor (7d)BRead-onlyIdempotentInspect
List registration and status changes to premium .com domains (short 1-4 letter and high-value single-word names) over a rolling 7-day window, filtered by change reason and length.
Related: whois, ns_reverse.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | TLD filter (e.g., 'com') | |
| page | No | Page number for pagination | |
| sort | No | Sort order | |
| length | No | Prefix length filter (characters before TLD) | |
| reason | No | Filter by change type | |
| keyword | No | Search by domain or keyword within the monitored pool | |
| has_digit | No | false = letters only (default), true = contains digits, all = digits only |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Error message when success is false |
| total | No | Number of results on this page |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact — that the window is a rolling 7 days — but says nothing about result caps, pagination behavior, or how the 'premium' pool is defined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence front-loads the scope, followed by a short cross-reference line. No waste, though the cross-reference names tools without explaining the relationship, making it marginal rather than earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and all 7 params documented in-schema, the description covers the essentials for a read-only filtered listing. It falls short only on disambiguating from siblings that surface expired/deleted domains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 7 well-documented params including four enums, so the schema already carries the semantics. The description's 'filtered by change reason and length' merely restates two schema fields and adds no syntax, defaults, or format detail beyond them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List), resource (registration and status changes), and a precise scope (premium .com domains, 1-4 letter and high-value single-word names, rolling 7-day window). That is far more specific than most siblings, though it does not explicitly differentiate itself from overlapping siblings such as expired and deleted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing aid is 'Related: whois, ns_reverse,' which names adjacent tools but never says when to use this one instead of expired, deleted, aged, or market. The reason enum ('Domain Expired', 'New Registration') overlaps siblings' territory without any disambiguation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epp_statusEPP Status Code ReferenceARead-onlyIdempotentInspect
Explain domain EPP status codes: what a code means, why it is set, how serious it is, and what the holder can do. Matches on the code, its aliases, or a category name; call with no query to list every code. Use this to interpret the status field returned by whois instead of relying on recall.
Related: whois, expired, monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Status code, alias, or category (e.g. 'clientHold', 'redemption period', 'Grace Period'). Omit to list every code |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Matching status codes |
| error | No | |
| total | No | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior, so the bar is lower. The description adds valuable behavioral context: matching on code, aliases, or category; the ability to list all codes when query is omitted; and the nature of output (explanation of meaning, severity, actions). These are not redundant with annotations and enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then usage details, then context. No fluff, every sentence contributes value. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with one optional parameter, an output schema, and safe annotations, the description covers all essential aspects: what it does, how to invoke it, what to expect, and when to use it. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already explains the query parameter (code, alias, or category, omittable). The description adds extra clarity by emphasizing aliases and categories and reinforcing the listing behavior when query is omitted. This is a minor enhancement over the schema, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States exactly what the tool does: 'Explain domain EPP status codes' with detail on what aspects it covers (meaning, why set, severity, holder actions). Clearly distinguishes from siblings like whois by positioning itself as an interpretation layer for the status field returned by whois. The description is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use this to interpret the status field returned by whois instead of relying on recall.' Also clarifies the invocation pattern for both query and no-query cases. Does not explicitly state when not to use it, but the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expiredExpiring Domains SearchARead-onlyIdempotentInspect
Search domains in the deletion cycle: expired, in redemption, or pending delete. Still held by the current registrant, with time-sensitive acquisition windows. Filter by lifecycle status, TLD, age range, length, and character set.
Note: registrars may renew a domain after it expires, and expiry information here is gathered through multiple channels, so some domain statuses may not match live WHOIS.
Related: monitor, deleted, whois.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Filter by TLD (e.g., 'com', 'net', 'org') | |
| hold | No | Registry hold status | |
| page | No | Page number for pagination | |
| sort | No | Sort order | |
| type | No | Character set filter | |
| length | No | Domain name length filter | |
| status | No | expired = in registrar auction, redemption = owner can reclaim, pending_delete = drops in 1-5 days | |
| exclude | No | Negative keywords to exclude | |
| keyword | No | Search term (min 2 chars). Substring matching applies at every length, including 2-character terms. | |
| position | No | Keyword placement in domain name. Default is 'all' (substring match). | |
| age_range | No | Historical age of the domain | |
| no_hyphen | No | Exclude hyphenated domains | |
| no_number | No | Exclude domains containing numbers | |
| tld_count_max | No | Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min. | |
| tld_count_min | No | Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| error | No | Error message when success is false |
| total | No | Number of results on this page |
| success | Yes | |
| max_page | No | |
| total_found | No | Total matching results across all pages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds valuable behavioral context beyond annotations: registrars may renew a domain after expiry, the data is gathered through multiple channels, and some statuses may not match live WHOIS. This is a meaningful, honest disclosure about data freshness and reliability that an agent needs when interpreting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core purpose, the second clarifies the domain state and acquisition window, and the note provides an important reliability caveat. The 'Related' line aids tool selection without bloat. Every sentence earns its place, and there is no redundant restating of schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is well-supported by structured data: 15 parameters all described in the schema, 7 enums, an output schema, and safety annotations. The description adds the missing behavioral nuance about data staleness and renewal risk, which is essential for interpreting search results. An agent has everything it needs to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents every parameter thoroughly, including enums and meaning. The description briefly lists the filter dimensions (lifecycle status, TLD, age range, length, character set), which maps to the schema but adds no new parameter-level meaning. Baseline 3 is appropriate because the schema carries the full burden and the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and scope: 'Search domains in the deletion cycle' and enumerates the exact lifecycle statuses covered: expired, in redemption, or pending delete. It also distinguishes this from sibling tools by noting these domains are 'still held by the current registrant,' which separates it from already-deleted domains. The purpose is unambiguous and clearly differentiated from nearby tools like deleted and monitor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate: searching domains in the deletion cycle with time-sensitive acquisition windows. It names related tools ('monitor, deleted, whois') and the 'still held by the current registrant' clause implies when not to use it, but it does not explicitly explain when to choose expired over each alternative. This is clear context with no explicit exclusions, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_lookupIP and Host GeolocationARead-onlyIdempotentInspect
Resolve an IP address or domain name to its network operator and approximate location: ASN, organization, country, region, city, coordinates, and timezone. Domains are resolved to their first IPv4 address before lookup. Location is IP-level and approximate; it is not the address of the site owner.
Related: dns, whois, ns_reverse.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | IP address or domain name. Scheme, port, path, and a leading www. are stripped automatically |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Zero or one record |
| error | No | |
| total | No | 1 when the address is in the database, 0 when it is not |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds genuine behavioral context beyond them: domains are resolved to their first IPv4 before lookup, and results are IP-level/approximate and not the site owner's address. This is useful postcondition and limitation disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences plus a short related-tools line. The purpose and result set are front-loaded ahead of the caveat and related list, with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations carry the safety profile. The description still covers purpose, input forms, domain-handling behavior, and the approximate-location caveat, leaving nothing an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the query param is already documented (scheme/port/path/www stripping). The description adds meaning beyond the schema by clarifying that domains are accepted and resolved to their first IPv4 address, which the schema does not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Resolve') and precise resource ('an IP address or domain name'), then enumerates the returned fields (ASN, organization, country, region, city, coordinates, timezone). It names related siblings (dns, whois, ns_reverse), so an agent can distinguish this geolocation/ASN tool from adjacent lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Related: dns, whois, ns_reverse' line points at siblings but never states when to choose this tool over them or any exclusions. Usage is only implied by the returned fields and the domain-resolution note, with no explicit routing condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyword_dataKeyword Search Volume & CPCBRead-onlyIdempotentInspect
Return search-volume, CPC, and competition data for a keyword.
Related: keywords_trends.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Market. Default: US-EN | |
| keyword | Yes | Keyword to research |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when success is false |
| keyword | No | |
| low_cpc | No | Low range cost-per-click in USD |
| success | Yes | |
| high_cpc | No | High range cost-per-click in USD |
| competition | No | Competition index (0 to 1) |
| search_volume | No | Average monthly search volume |
| competition_level | No | LOW, MEDIUM, or HIGH |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only the metric list, not caching behavior, rate limits, or whether data is live vs. cached. Adequate but thin beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the metric list front-loaded before the sibling reference. Every phrase earns its place in a description this short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations carry the safety profile. Parameters are fully documented in the schema. The definition is functionally complete for invocation, with only the usage-routing gap keeping it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the country enum and default (US-EN) and the keyword parameter fully documented in the schema. The description adds no format, syntax, or constraint detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns search-volume, CPC, and competition data for a keyword. It names the exact metrics returned, so an agent knows what it does at a glance. It hints at the sibling keywords_trends via 'Related' but does not articulate how the two differ, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the bare line 'Related: keywords_trends.' There is no statement of when to use this tool versus that sibling, no prerequisites, and no exclusions. The agent is left to infer all routing decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keywords_trendsKeyword Registration TrendsARead-onlyIdempotentInspect
Return provider-computed keyword registration statistics. hot and emerging cover rolling keyword cohorts; prefix returns prefix activity buckets. scope=all represents the provider's filtered all-gTLD sample, while scope=com represents its pure-letter .com subset and is not available for prefix. Results are representative samples, not a complete registry feed, demand measurement, valuation, or investment recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Trend dataset to return. | |
| scope | No | all = filtered all-gTLD sample; com = pure-letter .com subset. prefix supports all only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| type | No | |
| error | No | Error message when success is false. |
| scope | No | |
| total | No | |
| success | Yes | |
| coverage | No | Provider coverage identifier, such as all_gTLDs or com_letters_only. |
| data_date | No | Provider data date when supplied; not derived from the request time. |
| updated_at | No | Provider update timestamp when supplied; not derived from the request time. |
| sample_type | No | Provider sampling description, such as filtered_representative_sample. |
| window_days | No | Provider-defined rolling observation window when supplied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), so the bar is lower, yet the description adds genuinely useful context beyond them: results are representative samples rather than a complete registry feed, and explicitly not demand measurement, valuation, or investment advice. It also flags the constraint that scope=com is unavailable for prefix, a behavioral limit not visible from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense, front-loaded sentences with no filler; the core purpose leads and the scope caveats follow. Slightly long, but each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and annotations carry the safety profile; the description covers parameter meaning and the sampling disclaimer. The only notable gap is the absence of explicit routing guidance against sibling trend/keyword tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond the thin schema text ('Trend dataset to return') by explaining that hot/emerging represent rolling keyword cohorts and prefix represents prefix activity buckets. That adds real semantic meaning to the enum values rather than restating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Return provider-computed keyword registration statistics') and explains what the three type values produce, so the agent knows exactly what the tool yields. It does not, however, explicitly contrast itself with near-siblings like keyword_data or tld_trends, leaving that differentiation implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies what each type and scope value covers ('hot and emerging cover rolling keyword cohorts; prefix returns prefix activity buckets'), which implicitly guides selection among the enum values. It gives no explicit when-to-use or when-not-to-use guidance relative to alternative tools such as keyword_data or tld_trends.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketDomain Marketplace SearchARead-onlyIdempotentInspect
Search currently registered domains that carry marketplace listing data, filtered by keyword, TLD, listing status, length, and character set. Results are live domains owned by someone.
Related: keyword_data, tld_check.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Filter by TLD (e.g., 'com', 'net', 'org'). Provide WITHOUT keyword to enter TLD browse mode (gTLDs only; requires a registered account) | |
| page | No | Page number for pagination | |
| sort | No | Sort order | |
| type | No | Character set filter | |
| length | No | Domain name length filter | |
| status | No | Filter by status: 'forsale' for domains listed for sale | |
| exclude | No | Negative keywords to exclude | |
| keyword | No | Brand or industry term (min 2 chars). Substring matching applies at every length, including 2-character terms. | |
| position | No | Keyword placement in domain name. Default is 'all' (substring match). | |
| no_hyphen | No | Exclude hyphenated domains (true/false) | |
| no_number | No | Exclude domains containing numbers (true/false) | |
| tld_count_max | No | Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min. | |
| tld_count_min | No | Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| total | No | Number of results on this page |
| success | Yes | |
| max_page | No | |
| total_found | No | Total matching results across all pages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the important behavioral fact that results are live, owned domains – but omits pagination/result-volume behavior and the TLD-browse account requirement, which only appears in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: purpose and scope first, siblings second. No filler. Could be marginally tighter but is well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% schema coverage, the description needn't explain returns or parameters; it correctly focuses on scope and sibling routing. It stops just short of full completeness by omitting the TLD-browse account requirement and pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 13 parameters; the description only paraphrases the filter axes. Baseline 3 is appropriate since the description adds no syntax, defaults, or interaction rules beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Search currently registered domains that carry marketplace listing data') and enumerates the filter axes, plus adds a crucial scoping fact ('Results are live domains owned by someone') that distinguishes it from registration-availability siblings. The 'Related:' line explicitly routes to keyword_data and tld_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names two related alternatives (keyword_data, tld_check), giving the agent a routing signal. However, it does not state when to use market vs. market_price, available, or expired, all of which are adjacent sibling tools in the same list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_priceDomain Market Price CheckARead-onlyIdempotentInspect
Check whether a domain is listed for sale on a supported aftermarket and, if it is, the asking price. Returns for_sale with the asking price in USD, make_offer when it is listed without a fixed price, or not_found when no listing was found. Coverage is limited to a few marketplaces, so not_found does not mean the domain is not for sale elsewhere.
Related: available, aged.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name (e.g., 'example.com') |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| domain | Yes | |
| status | Yes | Market status: for_sale, make_offer, or not_found |
| message | No | |
| success | Yes | |
| currency | No | Price currency (e.g., USD) |
| estimated_price | No | Seller's listing price (only when status=for_sale) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and non-openWorld, so the safety profile is covered. The description adds real value beyond that: it enumerates the outcome states (for_sale, make_offer, not_found) and explains that not_found is scoped to a few marketplaces rather than a definitive negative, which aligns with and enriches openWorldHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, followed by return states and the coverage caveat — all earning their place. The trailing 'Related: available, aged.' is a thin, unqualified dangling line that slightly dilutes the structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with an output schema, this is nearly complete: it explains outcome semantics and the coverage limitation so an agent will not over-interpret not_found. The remaining gap is sibling disambiguation against 'price' and 'market', which the description does not address.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 100% and only one parameter, the schema already documents 'domain' including an example. The description adds no format, normalization, or TLD constraints beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Check whether a domain is listed for sale on a supported aftermarket... the asking price'), and names the related siblings available and aged. An agent can distinguish this from a general price or market tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Related: available, aged.' line implies related tooling but gives no condition for choosing between them, and critically does not differentiate from the sibling tools literally named 'price' and 'market'. The coverage caveat ('not_found does not mean the domain is not for sale elsewhere') is useful interpretive guidance, but explicit when-to-use routing is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitorPersonalized Domain MonitorADestructiveInspect
Manage cross-platform domain monitoring tasks that track changes in WHOIS, DNS, and host-supplied page content. Data is encrypted at rest (AES-256-GCM) in a private per-user directory.
Actions:
get: retrieve monitors and check eligible WHOIS/DNS targets, returning current and previous data with change flags.
set: create a monitor, subject to the account tier's maximum.
update: save host-supplied page, WHOIS, or DNS state for a monitor.
delete: remove a monitor.
history: list the changes actually observed over time, optionally for one domain. get compares against the previous check only; history answers when a domain changed and what it changed from.
Requires a registered account with memory enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Monitor task ID (update and delete) | |
| dns | No | DNS result, backward compatibility (update only) | |
| days | No | history only: how far back to look, in days. Default 30, maximum 365. | |
| note | No | What to watch for: the user's intent in natural language (set only) | |
| page | No | Page content summary from web_fetch (update only) | |
| tools | No | Comma-separated: whois, dns, web_fetch. Default: whois,dns (set only) | |
| whois | No | WHOIS result, backward compatibility (update only) | |
| action | No | 'get', 'set', 'update', 'delete', or 'history'. Defaults to 'get' if not specified. | |
| domain | No | Domain to monitor (set; also optional on history to filter to one domain) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when success is false |
| total | No | Number of active monitors (get only) |
| message | No | Human-readable result message |
| monitor | No | Created monitor details (set only) |
| success | Yes | Whether the request was successful |
| monitors | No | List of monitors with auto-check results (get only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered; the description adds non-obvious context beyond that: AES-256-GCM encryption in a per-user directory, the requirement of a registered account with memory enabled, and that set is capped by the account tier's maximum. It lacks detail on pagination or failure behavior, but the additions are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose sentence, then a scannable action list, then prerequisites. Every line earns its place, though the action list is slightly verbose relative to the information density needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and annotations cover the safety profile. The description supplies prerequisites, encryption, tier limits, and action meanings, leaving little an agent needs for correct invocation, though sibling routing remains unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining what the action values actually do (get/set/update/delete/history) and clarifies the get-vs-history relationship, which the bare enum list in the schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Manage cross-platform domain monitoring tasks that track changes in WHOIS, DNS, and host-supplied page content'), which clearly conveys what the tool does. It does not, however, differentiate itself from plausible siblings like domain_changes or whois/dns, so an agent must infer which of the overlapping tools to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit per-action semantics and a genuinely useful distinction between get (compares against the previous check only) and history (when a domain changed and what it changed from). It stops short of naming sibling alternatives or when NOT to use this multi-action tool over e.g. domain_changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrdsNewly Registered Domains SearchARead-onlyIdempotentInspect
Search newly registered domains from the last 60 days by keyword, or browse a single TLD without a keyword (browsing requires a registered account). Covers generic TLDs plus these country-code TLDs: .ai, .io, .co, .si, .sh, .so, .cc, and .br, .mx, .cl, .gg, .id, .my including their second-level registrations such as .com.br, .com.mx, .co.id and .com.my (tld 'br' returns the whole .br family, 'com.br' returns that suffix alone); government, military, education and non-profit categories are not included. Which country-code TLDs you can see depends on your plan; asking for one outside it returns a message saying so. Filter by recency, registration term, length, character set, and sale status; returns the cross-TLD count for each name. New registrations are folded in continuously, typically 15 to 20 minutes after registration. Dates here are day-level, not clock times; when you need the exact registration time, use nrds_live.
Related tools: nrds_live, whois, dns, ns_reverse, typosquat
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Filter by TLD, e.g. 'com', 'ai', or a second-level suffix such as 'com.br'. A family country code ('br', 'mx', 'cl', 'gg', 'id', 'my') covers all of its second-level registrations. | |
| page | No | Page number for pagination | |
| sort | No | Sort order | |
| type | No | Character set filter | |
| length | No | Domain name length filter | |
| period | No | Registration term length in years | |
| exclude | No | Negative keywords to exclude | |
| keyword | No | Search term (min 2 chars). Substring matching applies at every length, including 2-character terms. | |
| has_sale | No | Filter to domains listed for sale | |
| position | No | Keyword placement in domain name. Default is 'all' (substring match). | |
| no_hyphen | No | Exclude hyphenated domains | |
| no_number | No | Exclude domains containing numbers | |
| days_range | No | Registration recency | |
| tld_count_max | No | Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min. | |
| tld_count_min | No | Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results. Domains first seen only hours ago (live rows) carry a count of 1. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| error | No | Error message when success is false |
| total | No | Number of results on this page |
| success | Yes | |
| max_page | No | |
| total_found | No | Total matching results across all pages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only/idempotent/non-destructive, but the description adds substantial context: the 60-day window, which ccTLDs and second-level registrations are covered, that categories like government/education are excluded, that plan limits produce an explanatory message rather than an error, and the 15-20 minute ingestion latency. This is exactly the kind of behavior an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and scope, and every sentence carries information (coverage, exclusions, latency, sibling routing). It is a dense single block, however, and the TLD enumeration is lengthy where a compact list or structure would read faster.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with full schema coverage, an output schema and rich annotations, the description supplies everything needed to call it correctly: scope, coverage limits, account/plan constraints, data freshness and the sibling to use for exact timestamps. Return values need not be described since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and 7 of 15 parameters carry enums, so the schema already documents each filter. The description largely restates the same filter set and the tld family behavior that the schema's tld description already explains, adding little beyond it; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search newly registered domains from the last 60 days') plus the alternate browse mode, and explicitly contrasts itself with nrds_live. An agent can tell it apart from siblings like nrds_live, whois and dns without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear routing ('when you need the exact registration time, use nrds_live') and a real prerequisite ('browsing requires a registered account'), plus plan-dependent TLD visibility. It names the key alternative with its condition but does not say when this tool should be avoided versus the other domain siblings (whois, dns, typosquat) beyond the related-tools list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nrds_liveLive Newly Registered DomainsARead-onlyInspect
Search newly registered domains from a live feed with exact registration and expiry timestamps; names usually appear within minutes of registration. Covers generic TLDs plus these country-code TLDs: .ai, .io, .co, .si, .sh, .so, .cc, and .br, .mx, .cl, .gg, .id, .my including their second-level registrations such as .com.br and .co.id (tld 'br' returns the whole .br family; combine it with a keyword); government, military, education and non-profit categories are not included. Which country-code TLDs you can see depends on your plan; asking for one outside it returns a message saying so. The listed country-code TLDs reach back 60 days, while generic TLDs cover only the last few days, so this tool works best for the most recent three days. Use nrds instead for older generic-TLD history, for filtering by a second-level suffix such as com.br, for registration-term or for-sale filters, for the cross-TLD count, or for deeper paging.
Related tools: nrds, whois, dns, typosquat
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Filter by a single TLD without dots (e.g., 'com', 'ai', 'io'). 'br', 'mx', 'cl', 'gg', 'id' or 'my' covers that country's whole family; combine it with a keyword. One TLD per call; omit to cover all TLDs. | |
| page | No | Page number for pagination. The live feed pages through the first 10000 matches; narrow the filters to reach beyond that. | |
| sort | No | Sort order. Default is reg_date_desc (most recent first). | |
| type | No | Character set filter | |
| length | No | Domain name length filter | |
| exclude | No | Negative keywords to exclude, comma-separated | |
| keyword | No | Search term, 2-64 characters, letters/digits/hyphens only. Matches anywhere in the name unless position is set. | |
| position | No | Keyword placement in domain name. Default is 'all' (substring match). Requires keyword. | |
| no_hyphen | No | Exclude hyphenated domains | |
| no_number | No | Exclude domains containing numbers |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| error | No | Error message when success is false |
| total | No | Number of results on this page |
| success | Yes | |
| max_page | No | |
| total_found | No | Total matching results across all pages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly/openWorld/idempotent/destructive hints; the description adds real behavioral context beyond them: plan-gated TLD visibility with an explicit error-message behavior, a 60-day vs few-day coverage asymmetry between ccTLD and generic TLDs, and category exclusions (government, military, education, non-profit). This is unusually rich disclosure for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and scope before the alternative-tool routing, and every sentence carries information. It is dense and long for an MCP description, with the TLD coverage enumeration consuming considerable space, but nothing is pure padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter zero-required open-world search with an output schema present, the description covers everything the agent needs: coverage windows, plan limits, family-TLD behavior, category exclusions, and alternate-tool routing. Return-value explanation is correctly omitted since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description does contribute cross-parameter semantics: the 'br'-style family behavior when combined with a keyword, and the practical paging limit ('narrow the filters to reach beyond' 10000 matches). However, most filter semantics (sort, length, type, position, exclude) are left entirely to the schema, so it earns only a modest lift over baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Search newly registered domains from a live feed') and immediately narrows scope with timestamps and freshness ('names usually appear within minutes of registration'). It also explicitly distinguishes itself from the sibling nrds, so an agent can route correctly without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use conditions (best for the most recent three days; ccTLDs reach back 60 days) and a detailed when-not-to-use list routing to nrds for older generic-TLD history, second-level suffixes, registration-term/for-sale filters, cross-TLD counts, and deeper paging. It also warns that which ccTLDs are visible depends on the plan and what happens when one is out of plan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ns_reverseReverse NS LookupARead-onlyIdempotentInspect
Reverse NS lookup: find gTLD domains hosted on a specific nameserver, filtered by TLD and keyword. Give several nameservers to find domains that use all of them at once (intersection; available on higher plans).
Related: whois, dns.
| Name | Required | Description | Default |
|---|---|---|---|
| ns | Yes | Target nameserver hostname (e.g., 'ns1.example.com'). Comma-separate up to 10 to match only domains that use all of them (intersection, unlike tld where commas mean any); multiple nameservers are available on higher plans. | |
| tld | No | Filter by TLD (e.g., 'com') | |
| page | No | Page number for pagination | |
| sort | No | Sort order | |
| keyword | No | Substring filter within domain names | |
| max_len | No | Maximum domain name length (integer) | |
| min_len | No | Minimum domain name length (integer) | |
| no_hyphen | No | Exclude hyphens | |
| no_number | No | Exclude numbers | |
| pure_alpha | No | Letters only (strictest quality filter) | |
| pure_digit | No | Numbers only |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| error | No | |
| total | No | Number of results on this page |
| success | Yes | |
| max_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description adds genuine behavioral context: comma-separated nameservers resolve to an AND/intersection rather than an OR, and that capability is gated to higher plans. No rate limits or result-size behavior are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose before the intersection nuance and the sibling pointer. Efficient and free of filler, though the trailing 'Related: whois, dns.' is a thin addition rather than a routing instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup tool with rich annotations, a 100%-covered 11-parameter schema, and an output schema, the description supplies everything an agent needs to select and invoke it correctly. Return format and pagination are handled by the output schema and parameter docs respectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's explanation of intersection semantics largely restates what the 'ns' parameter description already says verbatim, and it says nothing about page, sort, or the length/character filters, so it does not meaningfully exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'find gTLD domains hosted on a specific nameserver', which is precisely the inverse of a forward DNS lookup and clearly distinct from sibling tools like dns and whois. The added scoping ('filtered by TLD and keyword') and the 'Related: whois, dns' pointer make the tool's identity immediately legible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage context (find domains on a nameserver) plus the multi-nameserver intersection pattern and the plan-tier caveat, which tells the agent when the feature is even available. It lacks explicit 'when not to use' guidance or a direct alternative to route to for forward lookups, keeping it out of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preferencesUser Preferences & MemoryADestructiveIdempotentInspect
Manage user preferences and memory settings. Data is encrypted at rest (AES-256-GCM) in isolated per-user directories.
Actions:
get: report whether memory is enabled and return saved preferences.
set: save preferences; memory_enabled must be true before any preferences, monitors, or strategies can be stored, and requires explicit user consent.
delete: permanently erase all stored user data (GDPR Article 17).
Related: monitor, strategy.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | 'short', 'brandable', 'keyword' (set only) | |
| action | No | 'get', 'set', or 'delete'. Defaults to 'get' if not specified. | |
| budget | No | 'low', 'medium', 'high' (set only) | |
| industry | No | Industry type (set only) | |
| memory_enabled | No | 'true' to enable memory, 'false' to disable. Must be enabled before using monitors or strategies. (set only) | |
| preferred_tlds | No | Comma-separated TLDs, e.g. 'com,net,io' (set only) | |
| exclude_hyphens | No | 'true' or 'false' (set only) | |
| exclude_numbers | No | 'true' or 'false' (set only) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Saved preference data (get only, when memory is enabled) |
| message | No | Human-readable result message |
| success | Yes | Whether the request was successful |
| memory_enabled | No | Whether memory is enabled for this user |
| monitors_count | No | Number of active monitors (get only) |
| monitors_summary | No | Monitor overview (get only, when monitors_count > 0) |
| strategies_count | No | Number of active strategies (get only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing AES-256-GCM encryption at rest, isolated per-user directories, the memory_enabled gating dependency, an explicit-consent requirement for writes, and irreversible GDPR-scoped deletion. The 'permanently erase all stored user data' line concretely backs the destructiveHint=true annotation rather than merely restating it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose sentence, then a scannable action list, then related tools — a clean, well-ordered structure. The encryption sentence slightly interrupts the purpose statement but is short and load-bearing. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, multi-action tool with annotations and an output schema, the description covers the key operational facts: action semantics, prerequisites, consent, and data-handling/destruction behavior. Return values are delegated to the output schema, which is appropriate. Only minor gaps remain (e.g., behavior of omitted set fields).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by stating that memory_enabled must be true before preferences, monitors, or strategies can be stored, and by flagging the consent prerequisite — an ordering/precondition detail the schema only partially conveys. It does not clarify partial-update or default behavior for unset fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource (manage user preferences and memory) with three clearly differentiated actions (get/set/delete), each with its own one-line behavior. It distinguishes itself from siblings by naming 'monitor' and 'strategy' as related but separate tools. The umbrella verb 'manage' is broad, but the action breakdown removes ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Each action carries actionable context: get reports memory status, set requires memory_enabled=true and explicit user consent before storing preferences/monitors/strategies, delete is for GDPR erasure. It routes the agent toward monitor/strategy for related work. It stops short of explicit when-not-to-use guidance, but the per-action prerequisites are strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
priceTLD PricingBRead-onlyIdempotentInspect
Return standard registration and renewal price for a TLD.
Related: available.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | Yes | TLD to query, comma-separated for multiple (e.g., 'com', 'com,io,ai') |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | |
| total | No | Number of TLDs returned |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds the detail that it returns both registration and renewal pricing, which is useful context beyond the annotations. However, it does not disclose whether pricing is current, cached, or subject to variation, so it only partially complements 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence plus a related note. Every word earns its place, and the key information is front-loaded. It is not overlong, though the 'Related: available' line could be seen as slightly tacked-on rather than integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter), the presence of a full output schema, and strong annotations, the description covers the core functionality adequately. It states what is returned and hints at a related tool. It lacks a bit of context about edge cases (e.g., unsupported TLDs), but for a simple pricing query it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the sole parameter 'tld', explaining comma-separated multiple TLDs. The description does not add any additional parameter semantics beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'standard registration and renewal price for a TLD', specifying the resource and action. It is not a tautology and provides a concrete function. However, it does not explicitly distinguish from siblings like 'market_price' or 'tld_trends', so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage hint is the vague 'Related: available', which implies a connection to availability checks but does not explain when to use this tool vs alternatives. There is no explicit when-to-use or when-not-to-use guidance, and sibling names like 'market_price' remain unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registrarICANN Registrar DirectoryARead-onlyIdempotentInspect
Look up ICANN-accredited registrars by name, alias, or IANA ID. Returns accreditation status, RDAP endpoint, business contact details, a drop-catch flag, and the parent entity for reseller shells. Around 60 percent of accredited registrars are shells operated by a handful of parents, so parent_id is what tells you who actually runs a name.
Related: whois, available, expired.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| query | Yes | Registrar name, alias, or IANA ID (e.g. 'namecheap', 'gname', '1441') |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Matching registrars |
| page | No | |
| error | No | |
| total | No | Rows on this page |
| success | Yes | |
| max_page | No | |
| total_found | No | Total matches across all pages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description earns credit for adding domain semantics instead: it explains that ~60% of registrars are reseller shells and that parent_id reveals the actual operator. That is genuine behavioral context beyond the structured fields, though pagination behavior is left unmentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and the return shape, followed by the parent_id insight that actually affects interpretation. The shell-statistic framing is somewhat verbose but it is the highest-value content in the definition, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out; the description goes further and flags the semantically important field (parent_id). With annotations covering safety and the schema covering both parameters, nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only 2 parameters, so the schema already documents 'query' and 'page'. The description repeats the accepted query forms without adding format or syntax detail beyond what the schema provides, and says nothing about the pagination parameter. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('look up') and resource ('ICANN-accredited registrars') plus the three lookup keys (name, alias, IANA ID), and enumerates the returned fields. It also names related siblings (whois, available, expired), so an agent can locate it in the toolset without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool applies (looking up a registrar by name/alias/IANA ID) and points at related tools, but it lists those siblings without stating the conditions under which one should be preferred over registrar. No explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strategySaved User Strategy StateADestructiveInspect
Store user-authored strategy text, execution timestamps, and the most recent result in encrypted per-user storage. This tool does not provide presets, define opportunities, choose domains, or execute a workflow. Requires a registered account with memory enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Saved strategy ID for update or delete. | |
| name | No | Optional user-defined name for set. | |
| action | No | get, set, update, or delete. Defaults to get. | |
| result | No | Latest user- or host-supplied result summary for update. | |
| strategy | No | User-authored text, maximum 500 characters, for set. |
Output Schema
| Name | Required | Description |
|---|---|---|
| max | No | |
| error | No | |
| total | No | |
| message | No | |
| success | Yes | |
| strategy | No | |
| strategies | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds value beyond that by disclosing encrypted per-user storage and the auth/memory prerequisite. It stops short of explaining what a delete destroys or how update merges fields, so it is good but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, purpose front-loaded before the exclusion list, with no filler. Slightly awkward phrasing ("in encrypted per-user storage") but efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. The description covers purpose, the prerequisite, and the exclusions, and annotations carry the safety profile. Nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters and the action enum. The description echoes the strategy and result concepts but adds no format, length, or update-semantics detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Store user-authored strategy text") and scopes what is persisted (strategy text, timestamps, latest result). The negative clause lists what the tool does NOT do, which helps distinguish it, though it never names the get/set/update/delete actions that the 'action' param enables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite ("Requires a registered account with memory enabled") and excludes several adjacent capabilities (presets, opportunities, domains, workflow execution), which is useful context. However, it gives no guidance on when to choose get vs set vs update vs delete, and names no alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tld_checkCross-TLD Registration CheckARead-onlyIdempotentInspect
Check how a prefix is registered across core TLDs, returning per-TLD status and aggregate counts.
Related: bulk_tld, available.
| Name | Required | Description | Default |
|---|---|---|---|
| prefix | Yes | Keyword without extension (e.g., 'openai') |
Output Schema
| Name | Required | Description |
|---|---|---|
| tlds | No | Status of core TLDs (com, net, org, io, ai, de). Values: registered, for_sale, expiring, or might_available |
| count | No | Total number of TLDs with this prefix registered |
| error | No | Error message when success is false |
| prefix | Yes | |
| success | Yes | |
| gtlds_count | No | Number of gTLDs with this prefix registered |
| cctlds_count | No | Number of ccTLDs with this prefix registered |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds behavioral context by specifying the return shape (per-TLD status and aggregate counts) and the scope (core TLDs), which goes beyond the annotations. It doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action, and includes a compact pointer to related tools. Every sentence contributes value; no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only tool with one parameter and an output schema present. The description sufficiently communicates what it does and what it returns, and the output schema handles detailed return values. The mention of 'core TLDs' and aggregated counts completes the contextual picture without being verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for the single 'prefix' parameter is highly detailed ('Keyword without extension, e.g., openai'), providing 100% coverage. The tool description adds no parameter-level detail, so the schema carries the full burden. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks registration of a prefix across core TLDs and returns per-TLD status plus aggregate counts. It uses a specific verb ('check') and resource ('prefix across core TLDs'), and explicitly names related tools (bulk_tld, available), distinguishing its cross-TLD scope from bulk and single-TLD alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when you need to see how a prefix is registered across multiple TLDs. It names related tools (bulk_tld, available) as alternatives, but stops short of explicit 'use this instead of X when...' guidance. Still, the purpose and related tools give enough signal for appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tld_rankgTLD RankingsARead-onlyIdempotentInspect
Rank TLDs by registration volume and related metrics over a chosen period.
Related: tld_trends.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Ranking type: 'newly' for today's new registrations, 'active' for total active domains | |
| limit | No | Number of results (default 20, max 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| date | No | Data date (YYYY-MM-DD) |
| type | No | Ranking type: 'newly' or 'active' |
| error | No | |
| total | No | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description adds little beyond that—'related metrics' is vague, and 'chosen period' is inaccurate given the parameter schema. It does not contradict the annotations, but also does not provide additional meaningful behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences: one for the core purpose and one pointing to a related tool. It is front-loaded and every word earns its place, with no unnecessary elaboration or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 optional params, output schema present) and strong annotations, the description is minimally viable. However, it lacks details about what 'related metrics' include, how the ranking is ordered, and the 'chosen period' phrase creates confusion because no period parameter exists. This gap is significant enough to prevent a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, as both 'type' and 'limit' have descriptions. The description does not add meaning beyond the schema and actually introduces a 'chosen period' concept that does not map to any parameter. Since the schema already explains the parameters, the baseline of 3 is appropriate, but no additional semantic value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool ranks TLDs by registration volume, which is a specific verb and resource. It also mentions 'related metrics' and points to tld_trends as a sibling, providing some differentiation. However, the phrase 'over a chosen period' is misleading because the type parameter only allows 'newly' (today) or 'active' (total) with no actual date range selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says 'Related: tld_trends,' which implies an alternative exists but does not explain when to use tld_rank versus tld_trends. No explicit conditions, prerequisites, or exclusions are given. The usage context is thus implied rather than clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tld_trendsgTLD Registration TrendsARead-onlyIdempotentInspect
Return registration trend data for a TLD over time, or compare multiple TLDs, in active-total or newly-registered mode.
Related: tld_rank, keywords_trends.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Single TLD for 'data' mode, gTLDs only (e.g., 'com', 'xyz'). Country-code TLDs are not covered and return an error. | |
| days | No | Time horizon | |
| tlds | No | Comma-separated TLDs for 'compare' mode (max 5, gTLDs only, e.g. 'xyz,online,shop,store'). Country-code TLDs such as io, ai, co are not covered by this dataset. | |
| type | No | 'newly' for daily new registrations, 'active' for total active domains | |
| action | No | 'data' for single TLD deep-dive, 'compare' for multi-TLD comparison |
Output Schema
| Name | Required | Description |
|---|---|---|
| tld | No | TLD name (data mode only) |
| data | No | In 'data' mode: array of data points. In 'compare' mode: object keyed by TLD name, each value is an array of data points. |
| days | No | |
| type | No | 'newly' or 'active' |
| error | No | |
| notice | No | Compare mode only: present when some requested TLDs had no data; explains which and why. |
| success | Yes | |
| tlds_missing | No | Compare mode only: requested TLDs that returned no trend data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safe read-only behavior is covered. The description adds mode and comparison context but does not disclose additional behavioral traits such as data-source coverage, rate limits, or response characteristics beyond what the schema and output schema provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and resource, and includes related tool names without unnecessary verbosity. Every sentence contributes useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema, full parameter coverage, annotations, and an output schema, the description is sufficiently complete for a read-only trend tool. It communicates the core modes and related tools, though it leaves sibling differentiation to the reader.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented in the input schema. The description mirrors the modes (active-total vs newly-registered, single vs compare) but does not add new semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns registration trend data for a TLD over time or multiple TLDs in active/newly-registered modes. It is specific about verb and resource, but it does not explicitly differentiate itself from the related sibling tools tld_rank and keywords_trends beyond 'Related'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description and elaborated by the schema's mode descriptions, but there is no explicit when-to-use guidance or direct comparison to tld_rank or keywords_trends. The gTLD-only exclusion is present only in the parameter schema, not in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
typosquatTyposquat ScannerARead-onlyIdempotentInspect
Generate typosquat permutations for a domain and check which variants are registered. Produces omission, transposition, keyboard-adjacent replacement, insertion, repetition, hyphenation, vowel-swap, homoglyph, plural/singular, and TLD-swap variants. Each result includes the variant domain, mutation type, prefix TLD count (how many TLDs the prefix is registered under), and registration date if known.
Use for brand protection, phishing detection, and defensive registration planning.
Related tools: nrds, ns_reverse, dns, whois.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to scan (e.g. example.com) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| total | No | Number of permutations generated |
| domain | No | The input domain |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and non-open-world behavior, so the safety profile is covered. The description adds real value beyond that by disclosing the mutation taxonomy and the exact per-result fields (variant domain, mutation type, prefix TLD count, registration date), plus the caveat that registration date is only known sometimes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then result shape, then use cases, then related tools. Dense but every sentence carries information; no filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description need not explain return values, and it still describes the result fields usefully. The only shortfall is that the listed related tools are not qualified with when each applies, leaving tool selection partly to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and the schema documents it at 100% coverage with its own example (example.com). The description adds no format or constraint details beyond what the schema already provides, so this is the baseline case where the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (generate permutations) and resource (domain variants), then enumerates the ten mutation classes it produces. Distinctly different from siblings like dns, whois, or nrds, which are lookups rather than permutation generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names three motivating scenarios (brand protection, phishing detection, defensive registration planning) and lists related tools. It stops short of saying when to prefer a sibling (e.g. nrds vs whois) or when not to use this tool, so it is clear context without real differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unregistered_short_domainsUnregistered Short DomainsARead-onlyIdempotentInspect
Search short .ai, .io, .si, .sh, .so and .md names that were unregistered at the latest data update: 3-letter names and 4-letter names, including CVCV, VCVC, and CCVV shapes (C = consonant, V = vowel), with how many other TLDs each name is registered in. Without a registered account, only .ai names are shown and filters are not available. Not re-checked at query time; confirm with available or bulk_available before registering.
Related: available, bulk_available.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Extension: ai, io, si, sh, so or md. Comma-separate to combine (e.g., 'io,sh'); omit for all. | |
| page | No | Page number, 10 results per page. Page depth depends on your plan. | |
| sort | No | Sort order | |
| type | No | Pattern type filter | |
| exclude | No | Exclude characters (comma-separated) | |
| keyword | No | Filter by characters in prefix | |
| no_hyphen | No | Exclude hyphens | |
| no_number | No | Exclude numbers | |
| tld_count | No | Filter by cross-TLD registration count |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| error | No | |
| total | No | Number of results on this page |
| success | Yes | |
| max_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's real added value is the data-freshness caveat ('at the latest data update', 'Not re-checked at query time') and the auth-tier gating of results and filters. It stops short of describing pagination depth or rate limits beyond the passing plan reference in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the resource and scope, then caveats and verification workflow in descending priority; every sentence carries information. The opening sentence is dense, packing six TLDs, two length classes and three pattern notations into one clause, which costs a little readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values need no explanation, and the definition still covers the items an agent must know to call it correctly: data staleness, account-tier limitations on results and filters, and which sibling to use before acting on a result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning the schema lacks: it defines the CVCV/VCVC/CCVV pattern notation (C = consonant, V = vowel) that the `type` enum only labels as 'Pattern type filter', and notes that filters are unavailable without an account.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource (search short unregistered domain names) plus the exact scope: six TLDs, 3-letter and 4-letter names, and CVCV/VCVC/CCVV shapes. It also names the sibling tools it is not (available, bulk_available), so an agent can route without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives when-to-use and when-not-to-use: this is a snapshot list, not a live check, so 'confirm with available or bulk_available before registering.' It also states the account-level precondition that changes behavior (without an account only .ai is shown and filters are unavailable).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usageUsage and QuotaARead-onlyIdempotentInspect
Return the current account tier, per-tool-group usage, rate limits, and stateful Monitor and Strategy quotas.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | Yes | Account tier. |
| tools | Yes | Usage and quota information grouped by tools that share a limit. |
| monitor | Yes | |
| strategy | Yes | |
| upgrade_hint | No | Optional account-capacity information for tiers that have an upgrade path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful context by enumerating the exact categories returned (tier, usage, rate limits, quotas) and notes that Monitor and Strategy quotas are 'stateful,' which is useful behavioral insight 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence contains zero filler and conveys the full purpose. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter complexity and the presence of an output schema, the description sufficiently covers what the tool returns. No further details about return value structure are needed, and the description is complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description does not need to explain any. Baseline 4 is appropriate because no parameter guidance is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Return' and clearly identifies the resource as 'current account tier, per-tool-group usage, rate limits, and stateful Monitor and Strategy quotas.' This precisely distinguishes the tool from siblings like 'monitor' and 'strategy' by framing it as the quota/usage overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking account-level limits and quotas but provides no explicit 'when to use' vs alternatives or exclusions. An agent can infer the use case, but the tool does not state when it should be preferred over other information-gathering tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoisRDAP WHOIS Registration InfoBRead-onlyIdempotentInspect
Return WHOIS/RDAP registration data for a domain: registrar, dates, status, and nameservers.
Related: dns.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Bare domain name such as example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...). |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | |
| status | No | Domain status codes |
| created | No | Registration creation date |
| expires | No | Expiration date |
| updated | No | Last updated date |
| registered | Yes | Whether the domain is currently registered |
| nameservers | No | Configured nameservers |
| registrar_name | No | Registrar name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is fully covered without the description. The description adds the field categories returned, which is mild context, but discloses nothing about rate limits, auth, or lookup failures -- acceptable given the rich annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste; the core capability is front-loaded before the relational note. Nothing should be cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values needn't be explained, and the single required parameter is fully described. The only gap is the missing when-to-use guidance relative to sibling lookups, which matters given the dense sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the domain parameter is fully documented in the schema (bare domain, punycode, no protocol/path/port), so the description correctly does not duplicate it. Baseline 3 applies because the schema carries all parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Return) and resource (WHOIS/RDAP registration data) and enumerates the payload (registrar, dates, status, nameservers), so the agent knows exactly what it retrieves. It gestures at a sibling with 'Related: dns' but does not differentiate from the more ambiguous neighbors registrar, domain_changes, or epp_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Related: dns' is the only usage cue and it neither states when to prefer this tool nor when to avoid it. No exclusions or prerequisites are given, so the agent must infer that this is the raw registration lookup versus the registrar/status-specific siblings.
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.
2 tool updates
- Changed
ip_lookup2 fields changed- changed
Output schema / properties / data / items / properties / latitude / descriptionPrevious value: -"Null when unknown, never 0 (which is a real coordinate)"New value: +"Null when unknown (0 is a real coordinate, so it is not used as a placeholder)" - changed
Output schema / properties / data / items / properties / longitude / descriptionPrevious value: -"Null when unknown, never 0 (which is a real coordinate)"New value: +"Null when unknown (0 is a real coordinate, so it is not used as a placeholder)"
- Changed
keywords_trends2 fields changed- changed
Output schema / properties / data_date / descriptionPrevious value: -"Provider data date when supplied; never synthesized from request time."New value: +"Provider data date when supplied; not derived from the request time." - changed
Output schema / properties / updated_at / descriptionPrevious value: -"Provider update timestamp when supplied; never synthesized from request time."New value: +"Provider update timestamp when supplied; not derived from the request time."
2 tool updates
- Removed
unregistered_ai - Added
unregistered_short_domains
2 tool updates
- Changed
nrds1 field changed- changed
Input schema / properties / tld / descriptionPrevious value: -"Filter by TLD, e.g. 'com', 'ai', or a second-level suffix such as 'com.br'"New value: +"Filter by TLD, e.g. 'com', 'ai', or a second-level suffix such as 'com.br'. A family country code ('br', 'mx', 'cl', 'gg', 'id', 'my') covers all of its second-level registrations."
- Changed
nrds_live1 field changed- changed
Input schema / properties / tld / descriptionPrevious value: -"Filter by a single TLD without dots (e.g., 'com', 'ai', 'io'). One TLD per call; omit to cover all TLDs."New value: +"Filter by a single TLD without dots (e.g., 'com', 'ai', 'io'). 'br', 'mx', 'cl', 'gg', 'id' or 'my' covers that country's whole family; combine it with a keyword. One TLD per call; omit to cover all TLDs."
2 tool updates
- Changed
nrds1 field changed- changed
Input schema / properties / tld / descriptionPrevious value: -"Filter by TLD (e.g., 'com', 'ai', 'io')"New value: +"Filter by TLD, e.g. 'com', 'ai', or a second-level suffix such as 'com.br'"
- Changed
nrds_live1 field changed- changed
Input schema / properties / tld / descriptionPrevious value: -"Filter by a single TLD (e.g., 'com', 'ai', 'io'). One TLD per call; omit to cover all TLDs."New value: +"Filter by a single TLD without dots (e.g., 'com', 'ai', 'io'). One TLD per call; omit to cover all TLDs."
6 tool updates
- Changed
active1 field changed- changed
Output schema / properties / data / items / properties / marketplace / descriptionPrevious value: -"Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname. Present only when the domain is listed for sale."New value: +"Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname, hu=HugeDomains. Present only when the domain is listed for sale."
- Changed
aged1 field changed- changed
Output schema / properties / data / items / properties / marketplace / descriptionPrevious value: -"Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname. Present only when the domain is listed for sale."New value: +"Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname, hu=HugeDomains. Present only when the domain is listed for sale."
- Changed
domain_changes1 field changed- removed
Output schema / properties / data / items / properties / combinationRemoved value: -{ - "description": "Word segmentation of the prefix", - "type": "string" -}
- Changed
market2 fields changed- removed
Output schema / properties / data / items / properties / componentsRemoved value: -{ - "description": "Word segmentation of the domain prefix", - "type": "string" -} - changed
Output schema / properties / data / items / properties / marketplace / descriptionPrevious value: -"Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname. Present only when the domain is listed for sale."New value: +"Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname, hu=HugeDomains. Present only when the domain is listed for sale."
- Changed
nrds1 field changed- changed
Output schema / properties / data / items / properties / marketplace / descriptionPrevious value: -"Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname. Present only when the domain is listed for sale."New value: +"Sale platform code where the domain is listed: se=Sedo, go=GoDaddy, at=Atom, vn=Venture, pd=PerfectDomain, gn=Gname, hu=HugeDomains. Present only when the domain is listed for sale."
- Changed
nrds_live1 field changed- removed
Output schema / properties / data / items / properties / componentsRemoved value: -{ - "description": "Word segmentation of the name, space-separated. Absent when the feed supplies none.", - "type": "string" -}
5 tool updates
- Changed
active1 field changed- changed
Output schema / properties / total_found / descriptionPrevious value: -"Total matching results across all pages — primary metric for comparative analysis"New value: +"Total matching results across all pages; the primary metric for comparative analysis"
- Changed
bulk_tld4 fields changed- changed
Output schema / properties / data / items / properties / cctld / descriptionPrevious value: -"Count in country-code TLDs"New value: +"Count in country-code TLDs outside the popular set" - changed
Output schema / properties / data / items / properties / other / descriptionPrevious value: -"Count in other gTLDs"New value: +"Count in other gTLDs outside the popular set" - changed
Output schema / properties / data / items / properties / popular / descriptionPrevious value: -"Count in popular TLDs (com, net, org, io, ai, app, etc.)"New value: +"Count in popular TLDs (com, net, org, io, ai, app, and similar; io and ai count here, not in cctld)" - changed
Output schema / properties / data / items / properties / total / descriptionPrevious value: -"Total TLDs with this keyword registered"New value: +"Number of TLDs where keyword.tld is registered (popular + cctld + other)"
- Changed
deleted1 field changed- changed
Input schema / properties / hold / descriptionPrevious value: -"Registry hold status — no_hold = immediately registrable"New value: +"Filter by registry hold flag (has_hold or no_hold). Neither value confirms current availability."
- Changed
monitor1 field changed- changed
Input schema / properties / note / descriptionPrevious value: -"What to watch for — user's intent in natural language (set only)"New value: +"What to watch for: the user's intent in natural language (set only)"
- Changed
unregistered_ai2 fields changed- changed
Output schema / properties / data / items / properties / length / descriptionPrevious value: -"Prefix character length — 3 = ultra premium, 4 = premium"New value: +"Prefix character length (3 or 4)" - changed
Output schema / properties / data / items / properties / prefix / descriptionPrevious value: -"Available short name (e.g., tuyu, hamu)"New value: +"Short name without the .ai extension (e.g., tuyu, hamu)"
1 tool update
- Changed
keyword_data1 field changed- changed
Output schema / properties / search_volume / descriptionPrevious value: -"Average monthly search volume on Google"New value: +"Average monthly search volume"
1 tool update
- Removed
safety
1 tool update
- Changed
ns_reverse1 field changed- changed
Input schema / properties / ns / descriptionPrevious value: -"Target nameserver hostname (e.g., 'ns1.example.com')"New value: +"Target nameserver hostname (e.g., 'ns1.example.com'). Comma-separate up to 10 to match only domains that use all of them (intersection, unlike tld where commas mean any); multiple nameservers are available on higher plans."
6 tool updates
- Changed
active2 fields changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"Brand or industry term (min 2 chars). Omit to use TLD browse mode."New value: +"Brand or industry term (min 2 chars). Omit to use TLD browse mode, which requires a registered account." - changed
Input schema / properties / tld / descriptionPrevious value: -"Filter by TLD (e.g., 'com', 'net', 'org'); when keyword is omitted, this is the browse target"New value: +"Filter by TLD (e.g., 'com', 'net', 'org'); when keyword is omitted, this is the browse target (TLD browse mode requires a registered account)"
- Changed
bulk_available1 field changed- changed
Output schema / properties / data / items / properties / price / descriptionPrevious value: -"Price including currency when supplied by the upstream service."New value: +"Registration price including currency, when available."
- Changed
dns1 field changed- changed
Output schema / properties / records / properties / CAA / descriptionPrevious value: -"Certification Authority Authorization records. If this field is omitted, the upstream DNS service did not provide CAA data; omission is not proof that no CAA record exists."New value: +"Certification Authority Authorization records. If this field is omitted, no CAA data was returned; omission is not proof that no CAA record exists."
- Changed
keywords_trends2 fields changed- changed
Output schema / properties / data / items / properties / top_registrar / descriptionPrevious value: -"Deprecated Top-1 compatibility field used by the current Gateway until it passes top_registrars through unchanged."New value: +"Deprecated: the first entry of top_registrars, kept for compatibility." - changed
Output schema / properties / data / items / properties / top_registrars / descriptionPrevious value: -"Provider-computed registrar ranking. MCP does not derive this from nrds."New value: +"Registrar ranking computed by the data source; not derived from nrds."
- Changed
market1 field changed- changed
Input schema / properties / tld / descriptionPrevious value: -"Filter by TLD (e.g., 'com', 'net', 'org'). Provide WITHOUT keyword to enter TLD browse mode (gTLDs only)"New value: +"Filter by TLD (e.g., 'com', 'net', 'org'). Provide WITHOUT keyword to enter TLD browse mode (gTLDs only; requires a registered account)"
- Changed
registrar1 field changed- changed
Output schema / properties / data / items / properties / rdap_fetched / descriptionPrevious value: -"False means the RDAP record could not be retrieved this time (time budget or upstream). It does NOT mean the registrar has no address on file"New value: +"False means the RDAP record could not be retrieved this time (time budget or source unavailable). It does NOT mean the registrar has no address on file"
4 tool updates
- Changed
backlink_summary1 field changed- changed
Input schema / properties / domain / descriptionPrevious value: -"Domain name (no protocol or path)"New value: +"Bare domain name such as example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...)."
- Changed
dns2 fields changed- changed
Input schema / properties / domain / descriptionPrevious value: -"The DNS name to resolve. A registrable domain such as example.com, or a fuller name such as _dmarc.example.com or mail.example.com."New value: +"The DNS name to resolve, as a bare hostname: a registrable domain such as example.com, or a fuller name such as _dmarc.example.com or mail.example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...)." - added
Output schema / properties / messageAdded value: +{ + "description": "Set when the name has no DNS records; records is then empty", + "type": "string" +}
- Changed
safety1 field changed- changed
Input schema / properties / domain / descriptionPrevious value: -"Domain name"New value: +"Bare domain name such as example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...)."
- Changed
whois1 field changed- changed
Input schema / properties / domain / descriptionPrevious value: -"Domain name"New value: +"Bare domain name such as example.com. No protocol (https://), path, or port; internationalized names in punycode (xn--...)."
1 tool update
- Changed
dns1 field changed- changed
Input schema / properties / domain / descriptionPrevious value: -"Domain name"New value: +"The DNS name to resolve. A registrable domain such as example.com, or a fuller name such as _dmarc.example.com or mail.example.com."
4 tool updates
- Changed
aged2 fields changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"Search term (min 2 chars). IMPORTANT: 2-character keywords match the START of the name only; 'contain' and 'end' are unavailable at this length and total_found will exclude mid-name matches. Use 3+ characters for true substring matching."New value: +"Search term (min 2 chars). Substring matching applies at every length, including 2-character terms." - changed
Input schema / properties / position / descriptionPrevious value: -"Keyword placement in domain name. Default is 'all' (substring match). Ignored when keyword is 2 characters (always start)."New value: +"Keyword placement in domain name. Default is 'all' (substring match)."
- Changed
deleted2 fields changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"Search term (min 2 chars). IMPORTANT: 2-character keywords match the START of the name only; 'contain' and 'end' are unavailable at this length and total_found will exclude mid-name matches. Use 3+ characters for true substring matching."New value: +"Search term (min 2 chars). Substring matching applies at every length, including 2-character terms." - changed
Input schema / properties / position / descriptionPrevious value: -"Keyword placement in domain name. Default is 'all' (substring match). Ignored when keyword is 2 characters (always start)."New value: +"Keyword placement in domain name. Default is 'all' (substring match)."
- Changed
expired2 fields changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"Search term (min 2 chars). IMPORTANT: 2-character keywords match the START of the name only; 'contain' and 'end' are unavailable at this length and total_found will exclude mid-name matches. Use 3+ characters for true substring matching."New value: +"Search term (min 2 chars). Substring matching applies at every length, including 2-character terms." - changed
Input schema / properties / position / descriptionPrevious value: -"Keyword placement in domain name. Default is 'all' (substring match). Ignored when keyword is 2 characters (always start)."New value: +"Keyword placement in domain name. Default is 'all' (substring match)."
- Changed
market2 fields changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"Brand or industry term (min 2 chars). IMPORTANT: 2-character keywords match the START of the name only; 'contain' and 'end' are unavailable at this length and total_found will exclude mid-name matches. Use 3+ characters for true substring matching."New value: +"Brand or industry term (min 2 chars). Substring matching applies at every length, including 2-character terms." - changed
Input schema / properties / position / descriptionPrevious value: -"Keyword placement in domain name. Default is 'all' (substring match). Ignored when keyword is 2 characters (always start)."New value: +"Keyword placement in domain name. Default is 'all' (substring match)."
6 tool updates
- Changed
active2 fields changed- added
Input schema / properties / tld_count_maxAdded value: +{ + "description": "Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.", + "type": "string" +} - added
Input schema / properties / tld_count_minAdded value: +{ + "description": "Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count.", + "type": "string" +}
- Changed
aged2 fields changed- added
Input schema / properties / tld_count_maxAdded value: +{ + "description": "Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.", + "type": "string" +} - added
Input schema / properties / tld_count_minAdded value: +{ + "description": "Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results.", + "type": "string" +}
- Changed
deleted2 fields changed- added
Input schema / properties / tld_count_maxAdded value: +{ + "description": "Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.", + "type": "string" +} - added
Input schema / properties / tld_count_minAdded value: +{ + "description": "Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results.", + "type": "string" +}
- Changed
expired2 fields changed- added
Input schema / properties / tld_count_maxAdded value: +{ + "description": "Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.", + "type": "string" +} - added
Input schema / properties / tld_count_minAdded value: +{ + "description": "Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results.", + "type": "string" +}
- Changed
market2 fields changed- added
Input schema / properties / tld_count_maxAdded value: +{ + "description": "Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.", + "type": "string" +} - added
Input schema / properties / tld_count_minAdded value: +{ + "description": "Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results.", + "type": "string" +}
- Changed
nrds2 fields changed- added
Input schema / properties / tld_count_maxAdded value: +{ + "description": "Maximum cross-TLD registration count for the name. Integer 0-10000. See tld_count_min.", + "type": "string" +} - added
Input schema / properties / tld_count_minAdded value: +{ + "description": "Minimum cross-TLD registration count for the name. Integer 0-10000. Combine with tld_count_max for a range; set both equal for an exact count. Matches the prefix_tld_count field in results. Domains first seen only hours ago (live rows) carry a count of 1.", + "type": "string" +}
1 tool update
- Changed
monitor3 fields changed- changed
Input schema / properties / action / descriptionPrevious value: -"'get', 'set', 'update', or 'delete'. Defaults to 'get' if not specified."New value: +"'get', 'set', 'update', 'delete', or 'history'. Defaults to 'get' if not specified." - added
Input schema / properties / daysAdded value: +{ + "description": "history only: how far back to look, in days. Default 30, maximum 365.", + "type": "string" +} - changed
Input schema / properties / domain / descriptionPrevious value: -"Domain to monitor (set only)"New value: +"Domain to monitor (set; also optional on history to filter to one domain)"
1 tool update
- Changed
nrds2 fields changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"Search term (min 2 chars). IMPORTANT: 2-character keywords match the START of the name only; 'contain' and 'end' are unavailable at this length and total_found will exclude mid-name matches. Use 3+ characters for true substring matching."New value: +"Search term (min 2 chars). Substring matching applies at every length, including 2-character terms." - changed
Input schema / properties / position / descriptionPrevious value: -"Keyword placement in domain name. Default is 'all' (substring match). Ignored when keyword is 2 characters (always start)."New value: +"Keyword placement in domain name. Default is 'all' (substring match)."
4 tool updates
- Added
epp_status - Added
ip_lookup - Added
registrar - Changed
tld_trends4 fields changed- changed
Input schema / properties / tld / descriptionPrevious value: -"Single TLD for 'data' mode, gTLDs only (e.g., 'com', 'xyz')"New value: +"Single TLD for 'data' mode, gTLDs only (e.g., 'com', 'xyz'). Country-code TLDs are not covered and return an error." - changed
Input schema / properties / tlds / descriptionPrevious value: -"Comma-separated TLDs for 'compare' mode (max 5, e.g., 'io,ai,co,xyz')"New value: +"Comma-separated TLDs for 'compare' mode (max 5, gTLDs only, e.g. 'xyz,online,shop,store'). Country-code TLDs such as io, ai, co are not covered by this dataset." - added
Output schema / properties / noticeAdded value: +{ + "description": "Compare mode only: present when some requested TLDs had no data; explains which and why.", + "type": "string" +} - added
Output schema / properties / tlds_missingAdded value: +{ + "description": "Compare mode only: requested TLDs that returned no trend data.", + "items": { + "type": "string" + }, + "type": "array" +}
1 tool update
- Added
nrds_live
Related MCP Connectors
Domain intelligence for DNS, WHOIS/RDAP, TLS, reputation, valuation, and brand protection.
- NetAPIOAuthcom.netapi
Domain data: Top 1M domain ranks, compromised checks, new domain search, registered domain lists.
Watch domains and forecast when they drop; check a name's domain, handles, and trademark.
Screen expired domains: availability, drop stage, history, brandability, trademark risk.
Related MCP Servers
- AlicenseAqualityCmaintenanceDomain intelligence for DNS, WHOIS/RDAP, SSL/TLS, subdomain discovery, availability, valuation, email security, and typosquatting and brand protection.11MIT
- FlicenseNot gradedqualityDmaintenanceEnables checking domain availability using WHOIS and DNS resolution, with support for single and batch queries.29-
- AlicenseAqualityCmaintenanceFast domain availability checker that searches across multiple registrars (Porkbun, Namecheap) and protocols (RDAP, WHOIS) to find available domains, compare pricing, get suggestions, and check social media username availability.7230 npm28MIT
- AlicenseNot gradedqualityFmaintenanceCheck domain name availability via RDAP. Single lookups, bulk checks (up to 50), and smart name suggestions with registration links. No API key needed.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.