Skip to main content
Glama

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
gwendall/domani
GitHub Stars
1
Server Listing
domani

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 122 of 122 tools scored. Lowest: 3.3/5.

Server CoherenceC
Disambiguation3/5

While most tools have distinct purposes, several clusters overlap significantly (e.g., check_email, check_email_deliverability, get_email_deliverability, get_domain_email_status; buy_domain, buy_aftermarket, acquire_domain). The descriptions are detailed and help differentiate, but the sheer number of tools makes it challenging for an agent to select the correct one without careful reading.

Naming Consistency3/5

The dominant pattern is verb_noun with underscores (e.g., create_mailbox, list_domains), but there are notable inconsistencies: destructive actions mix delete/remove/cancel/revoke/unsell, and a few names deviate entirely (search, dns_check, domain_status). The pattern is recognizable but not uniformly applied.

Tool Count1/5

With 122 tools, this vastly exceeds the 50+ threshold for extreme mismatch. Even for a comprehensive domain and email platform, the tool count is overwhelming and will likely hinder agent performance through excessive choice and context bloat.

Completeness4/5

The server covers a wide range of domains, DNS, email, marketplace, negotiations, transfers, webhooks, tokens, and billing. Minor gaps exist, such as no update operation for mail rules, no direct domain deletion, and limited mailbox configuration beyond forwarding and credentials, but most lifecycle workflows are supported.

Available Tools

122 tools
acquire_domainAcquire Domain (Broker)AInspect

Ask domani to acquire a specific taken, unlisted domain on your behalf. Agents source the owner via RDAP, reach out anonymously, and negotiate - commission-only, no upfront fee. Owner interest opens an anonymous negotiation you can accept/counter. Note: many owners are unreachable (GDPR-redacted WHOIS). Requires deals:write scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe taken domain you want, e.g. dream.com
max_budgetNoYour ceiling in USD (optional)
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it reveals the internal process (RDAP sourcing, anonymous outreach, negotiation), pricing model (commission-only), and a key limitation (GDPR-redacted WHOIS makes many owners unreachable). It also states the required scope 'deals:write.' While it doesn't describe every edge case (e.g., non-response handling), it gives substantial behavioral insight beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the main purpose and then expanding into process and caveats. Every clause adds value—no fluff or repetition. It is concise yet information-dense, making efficient use of the format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only 2 parameters and no output schema, the description is quite complete: it covers the action, process, risks, cost structure, and auth requirement. It does not explicitly mention the response format or next steps after negotiation, but the described workflow (accept/counter) implies a result. This is solid for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with descriptions for both 'domain' and 'max_budget.' The description adds no additional parameter-specific details, but the process context (e.g., negotiation, budget ceiling) is implicitly relevant. Since schema coverage is complete, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb-resource-action: 'acquire a specific taken, unlisted domain on your behalf.' It distinguishes from siblings like buy_domain and buy_aftermarket by specifying the domain is taken and unlisted, implying a broker service is needed. The title 'Acquire Domain (Broker)' reinforces the unique purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: for taking a 'specific taken, unlisted domain' rather than an available or listed one. It also notes caveats like 'many owners are unreachable' and 'commission-only, no upfront fee,' which help users decide if this approach is appropriate. However, it does not explicitly name alternative tools for other scenarios, so it stops short of full alternative guidance.

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

add_dnssecAdd DNSSEC DS RecordAInspect

Publish a DNSSEC delegation-signer (DS) record at the registry to enable DNSSEC. Get the DS values from your zone provider after signing the zone.

ParametersJSON Schema
NameRequiredDescriptionDefault
flagsNoOptional DNSKEY flags, e.g. 257 (KSK)
digestYesHex digest of the DNSKEY
domainYesDomain name to enable DNSSEC for
keyTagYesKey tag, e.g. 12345
algorithmYesDNSSEC algorithm number, e.g. 13 (ECDSAP256SHA256)
digestTypeYesDigest type number, e.g. 2 (SHA-256)
maxSigLifeNoOptional max signature life in seconds
Behavior2/5

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

No annotations are provided, so the description must disclose side effects. It states 'publish at the registry' but does not mention that this is a mutation, potential propagation delay, irreversibility, or required permissions. Similar to the update_drive example, this is a significant gap for a write operation without annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, no redundant words, purposeful second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 7 parameters and no output schema or annotations. The description provides the core purpose and prerequisite but does not cover expected response, error cases, or side effects. It's minimally acceptable but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description adds value by explaining the source of the DS values ('from your zone provider after signing the zone'), which clarifies parameter origin beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'publish' and resource 'DNSSEC delegation-signer (DS) record', clearly stating the outcome (enable DNSSEC). It distinguishes from siblings like get_dnssec and delete_dnssec by focusing on the add action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides context: 'after signing the zone' and instructs to get DS values from provider. This implies the use case, though it does not explicitly exclude alternatives or mention when not to use. It's clear but lacks explicit alternatives.

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

add_mailbox_aliasAdd Mailbox AliasAInspect

Add an alias address that delivers into an existing mailbox, without using a mailbox slot. Useful for multiple public addresses (sales@, hello@, contact@) landing in one inbox. The alias must be on the same domain as the mailbox. API: POST /api/emails/{address}/aliases.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug the alias delivers to, e.g. inbox
aliasYesAlias address - a bare slug ('sales') or a full address on the same domain ('sales@mysite.com')
domainYesMailbox domain, e.g. mysite.com
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses key behaviors: alias delivery, no mailbox slot consumption, same-domain requirement, and the API endpoint. However, it does not state side effects, reversibility, required permissions, or error behavior, leaving some transparency gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the primary action, followed by a practical use case and a constraint. Every sentence adds value with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple additive tool with no output schema, the description provides purpose, use case, constraints, and API route. It lacks explicit return/error information, but the operation is straightforward and the existing mailbox prerequisite is implied. This is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all three parameters with clear descriptions and examples (100% coverage). The description's mention of alias formats and domain adds little beyond what the schema already provides, so the score stays 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add an alias address'), the resource ('mailbox'), and the key distinguishing behavior ('delivers into an existing mailbox, without using a mailbox slot'). It also specifies a domain constraint, effectively differentiating it from create_mailbox and similar tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a concrete use case ('multiple public addresses... landing in one inbox') and a critical prerequisite ('must be on the same domain as the mailbox'). While it does not explicitly name alternatives, the 'without using a mailbox slot' phrasing and sibling tools like create_mailbox make the intended usage evident.

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

add_mail_ruleAdd Mail RuleAInspect

Add an inbound filtering rule to a mailbox. If a message matches (by from/to/subject/body), the action runs: drop, mark_read, forward (to action_arg), webhook_only (skip forward-to), or label (with action_arg). Rules run in priority order (lower first); first match wins. API: POST /api/emails/{address}/rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
actionYesWhat to do on match
domainYesMailbox domain
enabledNoDefault true
match_opYesHow to match
priorityNoLower runs first (default 0)
action_argNoFor 'forward': the destination email. For 'label': the label value.
match_fieldYesWhich field to match on
match_valueYesThe value/pattern to match
Behavior4/5

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

With no annotations provided, the description carries the full transparency burden. It discloses key behaviors: actions performed on match, forward/label argument requirements, the webhook_only special case, and priority ordering with first-match-wins. It omits permission requirements and return values but still offers substantial behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loaded with the tool's purpose, and each sentence adds critical information: action types, match criteria, priority behavior, and API endpoint. There is zero filler and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter creation tool with no annotations and no output schema, the description covers match fields, all actions, priority ordering, and the API endpoint. It does not mention the enabled flag's default behavior or error/duplicate-rule handling, but the provided context is sufficient for an agent to construct a correct request. A 5 would require explicit coverage of these minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 value beyond the schema by explicitly linking action_arg to forward and label actions, clarifying that webhook_only skips forward-to, and explaining the priority field's lower-first ordering. This enriches the parameter understanding without duplicating schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Add' and the resource 'inbound filtering rule to a mailbox.' It distinguishes itself from siblings like list_mail_rules and remove_mail_rule by describing the exact creation action and enumerating the actions and match fields supported.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides strong usage context by explaining rule execution semantics (priority order, first match wins) and the action_arg dependency for forward and label actions. However, it does not explicitly state when not to use the tool or mention alternative tools like send_email or set_email_forward, so exclusions are only implied.

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

add_suppressionAdd SuppressionAInspect

Manually add an address to your suppression list so future sends skip it. Hard bounces and complaints are added automatically - use this for addresses you want to stop emailing. API: POST /api/suppressions.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoReason (default: manual)
addressYesEmail address to suppress
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It explains the core effect (future sends skip the address) and contrasts with automatic additions, but it does not mention idempotency, behavior when the address already exists, or required permissions. These gaps are noteworthy given the absence of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the primary action, and each sentence adds value: purpose, usage context, and API endpoint. There is no wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (2 params, no nested objects, no output schema), the description is fairly complete. It explains the tool's purpose, the automatic-vs-manual distinction, and the HTTP method. It falls short only in not addressing potential edge cases like handling of duplicate suppressions, but this is minor for such a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for both parameters ('address' and 'reason' with enum and default). The description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate—schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Manually add an address to your suppression list so future sends skip it.' It uses a specific verb and resource, and distinguishes this from the existing sibling tools like remove_suppression and list_suppressions by focusing on manual addition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool ('use this for addresses you want to stop emailing') and notes that hard bounces and complaints are handled automatically, implying the tool is for manual cases. It does not explicitly name alternative tools or exclusions, but the guidance is sufficient for a simple add operation.

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

browse_marketplaceBrowse MarketplaceAInspect

Browse domains for sale on the Domani marketplace. Returns all active listings with prices. Use buy_domain to purchase a listed domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort by price or TLD (default: price)
orderNoSort order (default: asc)
max_priceNoMaximum price in USD
Behavior3/5

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

With no annotations, the description discloses that the tool returns active listings with prices, implying a read-only operation. It does not describe pagination, how sort/order/max_price affect results, or authentication requirements. This is acceptable for a simple browse tool but leaves gaps beyond the basics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action and return value, and ends with a useful pointer to buy_domain. Every sentence earns its place with no redundant or vague wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with no required parameters and no output schema, the description adequately communicates the primary output (all active listings with prices). It does not need to detail return format or error handling, though mentioning that results respect the provided filters would have been slightly more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all three parameters (sort, order, max_price) with clear descriptions. The tool description adds no additional parameter-specific meaning, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear purpose: 'Browse domains for sale on the Domani marketplace.' It specifies the scope ('Returns all active listings with prices') and distinguishes from the purchase action by referencing buy_domain, making it distinct from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (browsing marketplace listings) and explicitly directs users to buy_domain for purchasing, establishing an alternative. However, it does not mention other alternatives like search or list_domains, nor does it state when not to use this tool.

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

buy_aftermarketBuy Aftermarket DomainAInspect

Buy a taken domain that's listed for sale on an aftermarket (Afternic/Sedo) at its buy-now price, natively - no external site. Use when search shows a domain with for_sale.buyable = true. Always confirm the price with the user first. Pass max_price to cap it. If the listing is make-offer only (not buyable), use acquire_domain (broker) to negotiate instead. Crypto/USDC works like buy_domain (402 -> pay -> retry with payment_tx).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe taken, for-sale domain to buy, e.g. kami.world
max_priceNoHard ceiling in USD. Defaults to the listing's buy-now price. The purchase is rejected if the live price is above this.
payment_txNoTx hash of a USDC payment already sent on-chain (step 2 of the USDC flow).
payment_chainNoChain the USDC payment was sent on. Required with payment_tx.
payment_methodNo'card' to charge the card on file, 'usdc' to pay with crypto.
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the buy-now price cap via max_price, the USDC payment flow ('402 -> pay -> retry with payment_tx'), and the requirement to confirm price with the user. It doesn't fully detail error responses beyond 402, but the payment flow context is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact (four sentences) and front-loaded with the core purpose. Every sentence contributes: purpose, when to use, user confirmation, max_price, alternative tool, and crypto payment flow. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description covers essential operational context: the buyable precondition, the cap mechanism, the alternative for non-buyable listings, and the payment flow. It omits specifics like success response or fees, but for the complexity of a buy action, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 explaining max_price as a hard cap, referencing the USDC flow with payment_tx/payment_chain, and noting payment_method options. This enriches understanding of how parameters interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: buying a taken domain listed on aftermarket at its buy-now price, natively. It distinguishes itself from siblings by specifying Afternic/Sedo, buy-now pricing, and the native (no external site) aspect, and contrasts with acquire_domain for make-offer listings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use: 'Use when search shows a domain with for_sale.buyable = true' and when-not-to-use: 'If the listing is make-offer only (not buyable), use acquire_domain (broker) to negotiate instead.' Also includes a user confirmation step, giving clear operational guidance.

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

buy_domainBuy DomainAInspect

Purchase one or more domains. Always confirm with the user before calling. Accepts a single domain or an array of up to 10 (card only for bulk). If the user wants to pay with crypto/USDC: call with payment_method: 'usdc' - you'll get a 402 with a wallet address and amount. Tell the user to send that amount in USDC, then once they give you the tx hash, retry with payment_tx and payment_chain. Don't explain protocol details to the user - just tell them the address, amount, and chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearsNoNumber of years to register (1-10, default 1). Price is multiplied by years.
domainNoSingle domain to purchase, e.g. mysite.com
domainsNoArray of domains to purchase, e.g. ["a.com", "b.dev"]. Max 10.
max_priceNoCeiling in USD for the total charge. If the real price is above it, the purchase fails with PRICE_ABOVE_MAX and nothing is charged. Set it from the price the user approved.
payment_txNoTransaction hash of a USDC payment already sent on-chain. Required for step 2 of USDC flow.
payment_chainNoChain the USDC payment was sent on. Required with payment_tx.
payment_methodNoPayment method: 'card' to charge card on file, 'usdc' to pay with USDC. Overrides the user's default preference for this request.
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses key behaviors: the 402 response with wallet address/amount, the two-step USDC flow, and the instruction to not explain protocol details. It does not mention success responses or error cases beyond PRICE_ABOVE_MAX, but the most unusual and important behaviors are well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph but every sentence contributes operational value. It front-loads the core purpose and then logically covers confirmation, bulk limits, and the USDC flow. While it is a bit long, it avoids fluff and is well organized for the complexity involved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, and a complex payment flow, the description covers the critical contextual aspects: when to confirm, bulk constraints, USDC handling, and the 402 case. It does not describe post-purchase outcomes, but that is not essential for tool selection and invocation. The guidance is sufficient for an agent to execute the operation correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes all 7 parameters with 100% coverage, so the baseline is 3. The description adds meaningful guidance beyond the schema, such as 'card only for bulk', the USDC payment flow linking payment_method, payment_tx, and payment_chain, and how max_price should be set from the user-approved price. This goes beyond mere schema repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Purchase one or more domains', a specific verb+resource statement. It clearly distinguishes itself from siblings by clarifying it handles purchases (not aftermarket or transfers) and supports bulk up to 10. The purpose is unambiguous and immediately knowable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage instructions: always confirm with the user, use card for bulk, and a detailed USDC flow with retry steps. It does not explicitly contrast with sibling tools like acquire_domain, but it covers the main decision points for when to use this tool and how to handle alternate payment methods.

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

cancel_backorderCancel BackorderAInspect

Stop watching a domain by cancelling a backorder. Only backorders in the 'watching' state can be cancelled.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe backorder ID to cancel
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It reveals a key constraint (only 'watching' state backorders can be cancelled) and the effect (stops watching a domain), but it doesn't describe error behavior for invalid states, reversibility, or any side effects beyond stopping the watch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short, front-loaded sentences with no filler. The core action and the state constraint are presented clearly and efficiently, earning every word its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter cancel operation, the description covers the essential purpose and constraint, making it reasonably complete. It omits error handling and postcondition details, but given the simple scope and lack of an output schema, it provides enough context 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the only parameter ('id') fully, and the description adds no further semantic detail. Since schema coverage is 100%, the baseline of 3 is appropriate, as the description doesn't need to compensate for missing parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('cancelling a backorder') and the purpose ('Stop watching a domain'), using a specific verb and resource. It also differentiates from sibling cancel tools like cancel_broker_request and cancel_plan by focusing on backorders and the 'watching' state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use this tool: when you want to stop watching a domain via a backorder, and it explicitly notes that only backorders in the 'watching' state are eligible. It doesn't name alternative tools, but the precondition provides actionable usage guidance.

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

cancel_broker_requestCancel Broker RequestAInspect

Cancel an active domain acquisition request. Requires deals:write scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYesThe broker request ID
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the mutation (cancellation) and the required scope (deals:write), but does not mention reversibility, side effects on related negotiations, or error behavior if the request is not active. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, no fluff. The scope requirement is the only extra context and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter mutation tool with no output schema and no annotations, the description is adequately complete. It states the action, the prerequisite scope, and the parameter is fully documented in the schema. Minor gaps like error conditions are not critical given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (request_id is described as 'The broker request ID'). The description adds no additional parameter semantics, but with full coverage the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Cancel an active domain acquisition request.' This clearly identifies the tool's function and distinguishes it from sibling tools like cancel_backorder, which targets a different resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use the tool (against an active domain acquisition request) and notes the required deals:write scope. It doesn't explicitly name alternatives or exclusions, but the specificity of 'active' and the scope requirement provide sufficient guidance.

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

cancel_planCancel Pro PlanAInspect

Cancel the user's Pro subscription. The subscription remains active until the end of the current billing period, then reverts to the free plan. Returns the cancellation date.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the subscription remains active until the end of the billing period and then reverts to free, plus notes the return value (cancellation date). This is meaningful behavioral context, though it does not cover reversibility or confirmation requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action and then adding relevant behavioral details. There is no fluff or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter tool with no output schema, the description fully covers what happens (billing-period grace, revert to free) and what is returned (cancellation date). It is complete enough 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema is empty, so there is nothing to document. Per the baseline for 0-parameter tools, a score of 4 is appropriate; the description adds no parameter info because none exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (cancel) on a specific resource (Pro subscription), immediately clarifying the tool's function. It also distinguishes from sibling tools like 'upgrade_plan' and 'cancel_backorder' by mentioning the subscription context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the tool for canceling the user's Pro subscription and explains the post-cancellation behavior, but it does not explicitly state when to use it over alternatives or provide any exclusions. Since it is the only cancel-plan tool, the usage context is fairly clear, but no explicit guidance is given.

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

check_emailCheck EmailAInspect

Check email DNS health for a domain: MX records, SPF, DMARC, DKIM. Auto-detects the email provider from MX records.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check email health for
Behavior4/5

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

No annotations are present, so the description carries the behavioral burden. It clearly discloses the specific checks performed (MX, SPF, DMARC, DKIM) and the auto-detection of the email provider, which is valuable beyond the tool name. It does not, however, describe return format, error conditions, or network behavior, but for a read-only check the core behavior is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and specific records. No redundant or filler content; every clause adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema and annotations, the tool is simple (one parameter, no nested objects). The description adequately covers what the tool does and the auto-detection behavior. It doesn't explain the return format, which would be useful, but the description is sufficiently complete for selection and basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single 'domain' parameter with 100% coverage. The description restates 'for a domain' without adding format, validation, or examples beyond the schema. Baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a clear purpose with specific verb and resource: checking email DNS health, listing MX, SPF, DMARC, DKIM. This distinguishes it from siblings like dns_check (generic DNS) and check_email_deliverability (deliverability focused).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance about when to prefer this tool over check_email_deliverability or dns_check. Usage is only implied by the purpose statement; no alternatives or exclusions are mentioned.

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

check_email_deliverabilityCheck Email DeliverabilityAInspect

Run the same deliverability and abuse-safety checks used by send_email, without sending or consuming quota. Use this before authentication, payment, onboarding, or high-volume messages. API: POST /api/emails/{address}/deliverability-check.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlNoHTML body
slugYesSender mailbox slug, e.g. hello
textNoPlain-text body
domainYesSender mailbox domain, e.g. mysite.com or domani.run
subjectNoEmail subject line
attachmentsNoAttachment metadata only; content is not required for preflight
idempotency_keyNoStable idempotency key for this logical message
allow_risky_contentNoDeprecated compatibility field. Public HTTPS third-party auth links are allowed with a warning; objective safety blocks cannot be overridden
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses key behavioral traits: it runs the same checks as send_email, does not send an email, and does not consume quota. This reassures the agent that it is a non-mutating preflight, though it does not explicitly state all side-effect-free behavior or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first states the core function, second gives usage context, third provides the endpoint. No fluff or redundancy, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides good usage context but does not explain what the check returns or how to interpret the result, especially since there is no output schema. Additionally, the API endpoint's address concept is not reconciled with the domain/slug parameters, leaving a minor gap for an agent trying to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema; the API path uses an '{address}' placeholder while the schema requires separate 'domain' and 'slug' fields, which could cause slight confusion but does not break understanding since the schema descriptions are clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: running the same deliverability and abuse-safety checks as send_email, but without sending or consuming quota. This specific verb+resource+scope distinguishes it from the sibling send_email tool and other email-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit guidance on when to use: 'before authentication, payment, onboarding, or high-volume messages.' It also implies when not to use (when you want to actually send) by noting it does not send. However, it does not explicitly name alternative tools or provide exclusion scenarios.

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

check_transfer_eligibilityCheck Transfer EligibilityAInspect

Pre-check whether a domain can be transferred. Returns transfer price, eligibility status, and any blockers (unsupported TLD, ICANN waiting period, domain locked, etc.). Always call this before transfer_domain to verify eligibility and show the user the price.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check, e.g. mysite.com
Behavior4/5

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

With no annotations, the description carries the burden. It discloses that the operation is a pre-check, returns price and eligibility status, and lists possible blockers. It implicitly suggests no side effects, but does not explicitly state safety or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main purpose, followed by return values and usage. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 param, no output schema), the description covers what it does, when to use, and what it returns. It could be slightly richer on the exact shape of the response or error cases, but it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single domain parameter, and the schema already provides an example ('mysite.com'). The description adds 'domain' in context but does not add new syntactic or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Pre-check' plus the resource 'whether a domain can be transferred', clearly distinguishing it from transfer_domain and check_transfer_status. It also lists what it returns, reinforcing the tool's role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Always call this before transfer_domain', which is a strong usage directive. It does not mention exclusions or alternatives like check_transfer_status, but the timing relative to transfer_domain is clear.

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

check_transfer_statusCheck Transfer StatusAInspect

Check the status of an inbound domain transfer. Returns detailed status (pending_owner, pending_admin, pending_registry, completed, cancelled) with actionable hints.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check transfer status for
Behavior4/5

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

With no annotations, the description carries the burden of disclosure. It specifies the output: detailed status with a set of enumerated values and actionable hints. It does not mention potential side effects (likely none) or errors, but for a read-only status check this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action, and includes the key return values. No wasted words, and the structure is effective for quick parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers the essential information: what it does, what it returns, and the specific valid statuses. It lacks detail on 'actionable hints' but this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% since the only parameter 'domain' is described in the schema. The description does not add additional semantics about the parameter format or constraints, so it relies on the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Check the status') on a specific resource ('an inbound domain transfer'). It also lists the exact status values returned, distinguishing it from sibling tools like check_transfer_eligibility and watch_transfer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when you need the current status of an inbound domain transfer. It does not provide explicit exclusions or alternatives, but the context is clear enough for an agent to select it appropriately.

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

claim_identityClaim a free identityAInspect

Give your agent a free identity at .domani.run - a live profile page, no domain purchase, instantly. The frictionless way to start; upgrade to your own real domain later. Optional name/bio/emoji/email/links.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioNoShort description (<= 280 chars)
nameNoDisplay name
slugYesThe handle - becomes <slug>.domani.run (lowercase letters, numbers, hyphens)
emailNoPublic contact email (e.g. your free @domani.run inbox)
emojiNoAvatar emoji
linksNoUp to 6 links
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the identity is free, instant, and results in a live profile page, and mentions the future upgrade path. However, it doesn't address details like slug uniqueness, whether identities can be reclaimed, or return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. The first sentence front-loads the core action and value, while the last sentence succinctly lists optional fields. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple claim tool with no output schema, the description provides adequate context: the subdomain format, the live profile page nature, and the upgrade path. It doesn't describe return values or error handling, but the schema and simplicity of the operation make this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter coverage with descriptions for all six fields, so the baseline is 3. The description summarizes the optional fields ('Optional name/bio/emoji/email/links') but doesn't add meaning beyond the schema, which already explains each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Give your agent a free identity') with a specific resource ('at <handle>.domani.run') and conveys the key differentiator ('no domain purchase, instantly'). This distinguishes it from sibling domain-acquisition tools like acquire_domain and buy_domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'The frictionless way to start; upgrade to your own real domain later' provides clear context for when to use this tool—as an initial step before committing to a custom domain. It implicitly contrasts with purchasing/acquiring domains but doesn't explicitly name alternative tools.

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

clear_catch_allClear Catch-AllAInspect

Remove the catch-all on a domain. Email to unmatched addresses will be dropped again. API: DELETE /api/domains/{domain}/email/catch-all.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to clear the catch-all on
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the key behavioral effect: email to unmatched addresses will be dropped again, and specifies the DELETE API endpoint. This goes beyond a simple 'remove' statement. However, it does not mention error behavior or idempotency, but for a straightforward removal tool, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the primary action, and includes only essential details: the action, the consequence, and the API endpoint. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter delete operation with no output schema, the description is complete. It explains what happens (removal) and the effect (dropped emails), plus the API endpoint. It doesn't discuss reversibility, but that is covered by the existence of the counterpart 'set_catch_all'. The complexity is low, and the description suffices.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'domain' parameter, with the schema already describing it as 'Domain to clear the catch-all on'. The description mentions the API path containing the domain, but adds no further semantic detail. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'Remove the catch-all on a domain', which is a specific verb and resource. It clearly distinguishes from the sibling tool 'set_catch_all' by indicating removal rather than creation. The API endpoint further reinforces the exact operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates when to use the tool: when you want to remove the catch-all. The consequence ('Email to unmatched addresses will be dropped again') implies the context. It does not explicitly name the alternative 'set_catch_all', but the inverse relationship is evident from the sibling tools, providing adequate guidance.

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

clone_dnsClone DNSAInspect

Copy the DNS setup of one domain you own onto another (e.g. brand.com → brand.dev with the same A/CNAME/MX). Merges by default (source wins on collisions, keeps the target's other records); set replace=true for an exact mirror.

ParametersJSON Schema
NameRequiredDescriptionDefault
replaceNoExact mirror - drop target records the source doesn't have. Default: merge
to_domainYesTarget domain to write the DNS onto (must be yours)
from_domainYesSource domain to copy DNS from (must be yours)
Behavior4/5

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

No annotations are provided, so the description must carry the full behavioral burden. It explicitly discloses the default merge behavior, collision policy (source wins), and the replace=true mode for an exact mirror. It does not cover potential side effects like propagation or reversibility, but the core behavioral nuances are well addressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core purpose, and efficiently packs in the default behavior and the replace flag. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderate-complexity tool with no output schema and no annotations, the description provides sufficient context: it explains the action, the default and alternative behaviors, and gives an example. It does not explain return values, but this is not required without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds a useful example of record types (A/CNAME/MX) and reiterates the merge/replace semantics, but these are already captured in the schema. No significant new parameter-related meaning is provided beyond what the schema offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Copy'), identifies the resource ('DNS setup of one domain you own'), and provides a concrete example (brand.com → brand.dev). It clearly distinguishes itself from sibling DNS tools like set_dns or snapshot_dns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys the context for use (copying DNS between two owned domains) and defines the default merge behavior. It does not explicitly exclude alternatives or name sibling tools, but the use case is unambiguous.

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

connect_domainConnect DomainAInspect

Connect a domain to a hosting or email provider. Auto-detects provider from target, or accepts explicit provider name. For domains bought through the platform, DNS records are set automatically (status: dns_set). For imported domains (external registrar), returns the records as instructions to add manually (status: manual_setup_required). If the connect would REPLACE existing MX records pointing at another provider, it fails with MX_REPLACEMENT_REQUIRES_CONFIRMATION - preview with dry_run, confirm with the user, then retry with confirm_replace_mx. The response includes a next_steps array with provider-specific actions. Supported hosting: vercel, netlify, cloudflare-pages, github-pages, railway, fly. Email: google-workspace, fastmail, proton.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to connect, e.g. mysite.com
methodNoConnection method if provider has multiple, e.g. cname-only
targetNoTarget URL for auto-detection, e.g. my-app.vercel.app
dry_runNoPreview only - returns the diff (create/replace/keep) without writing
providerNoExplicit provider name, e.g. vercel, google-workspace
confirm_replace_mxNoConfirm replacing existing MX records that point at another provider (moves the domain's email)
Behavior5/5

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

With no annotations provided, the description carries the full burden and excels: it discloses automatic DNS setup for platform domains, manual instruction generation for imported domains, the specific MX_REPLACEMENT_REQUIRES_CONFIRMATION failure mode, and the presence of a next_steps array. This is far beyond what annotations would typically provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary purpose and every sentence earns its place. It covers auto-detection, two status paths, the MX conflict resolution, next_steps, and provider lists without any fluff. The structure is logical and compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is highly complete: it explains the main behavior, domain provenance variants, a tricky edge case, and hints at the output shape (next_steps). It doesn't fully elaborate on the method parameter or the complete response object, but these are minor gaps for an otherwise thorough description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful context: it links target to auto-detection, explains dry_run as a preview, and relates confirm_replace_mx to replacing MX records. It also enumerates valid provider values, giving the provider parameter richer semantics than the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource statement: 'Connect a domain to a hosting or email provider.' It further distinguishes itself from siblings by detailing auto-detection, platform vs imported domain handling, and listing supported providers (vercel, google-workspace, etc.), making its purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: auto-detect provider from target or pass explicit provider, and it gives a concrete workflow for the MX replacement edge case (use dry_run, confirm with user, retry with confirm_replace_mx). It does not explicitly say when not to use this tool or name alternatives, but the guidance is sufficiently actionable.

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

create_backorderCreate BackorderAInspect

Place a backorder on a domain that is currently registered to someone else. We watch it and automatically register it for the user when it becomes available (drops) - availability is polled every few minutes. The user is charged only if the catch succeeds - no upfront fee. Requires a card on file or payment_method 'balance'. Confirm the domain with the user first. Best-effort: a contested drop may be taken by a specialized drop-catcher first.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe currently-taken domain to watch and catch on drop, e.g. taken.com
max_priceNoMax USD to pay when caught. Defaults to the current registration price.
payment_methodNoHow to pay when caught: 'card' or 'balance' (marketplace credit).
Behavior5/5

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

With no annotations, the description fully carries the behavioral burden. It discloses critical behaviors: availability polling every few minutes, charging only on successful catch, the need for a card on file or 'payment_method: balance', and the best-effort nature with potential competition from drop-catchers. This is rich transparency beyond what any annotation could provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact, well-organized paragraph. Every sentence adds new, essential information: purpose, polling behavior, payment condition, user confirmation, and risk. There is no redundancy or filler, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description covers all necessary context for a 3-parameter action tool: target domain, payment prerequisites, cost model, and failure mode. It also implies how to check outcome (via list_backorders) without needing to state it. 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.

Parameters4/5

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 meaningful nuance by clarifying that a card on file is required unless payment_method is set to 'balance', and by emphasizing the need to confirm the domain with the user. These details go beyond the schema descriptions, enriching parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb and resource: 'Place a backorder on a domain that is currently registered to someone else.' It distinguishes itself from siblings like buy_domain by focusing on domains that are taken and will be watched for availability, making its scope obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: when the domain is already registered to someone else and you want to catch it on drop. It also instructs to 'Confirm the domain with the user first,' which is a practical usage guideline. However, it does not explicitly name alternative tools or state when-not-to-use, so it falls short of a 5.

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

create_hosted_mailboxCreate Hosted MailboxAInspect

Create a real IMAP/SMTP mailbox on a domain you own (connect Apple Mail, Thunderbird, or any mail client), instead of an API mailbox. Pass workspace_id to create it in a workspace you own and atomically adopt the domain boundary. Provisions the mailbox on our mail server, publishes DNS when we manage it, and returns the DNS records, mail client settings, and a one-time app password. API: POST /api/emails with kind=hosted.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name for the mailbox
slugYesLocal part, e.g. 'me' for me@mysite.com
domainYesA domain you own, e.g. mysite.com
workspace_idNoWorkspace ID from list_workspaces; owner-only
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses side effects ('Provisions the mailbox on our mail server, publishes DNS when we manage it') and states exactly what is returned (DNS records, mail client settings, one-time app password). It lacks mention of costs, failure conditions, or reversibility, but covers the core behavior well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and packs in the core concept, the alternative, a key parameter condition, the provisioning behavior, and the return payload. No filler or redundancy; it's front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking output schema and annotations, it explains what the tool returns, when to use it, and the prerequisite of owning the domain. It also includes the API route. It doesn't detail post-creation steps or edge cases, but for a creation tool with 4 params, this is solid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all 4 parameters with descriptions, so the baseline is 3. The description adds value by explaining the workspace_id semantics ('atomically adopt the domain boundary') and giving a concrete slug example ('me' for me@mysite.com). It also implicitly maps domain/slug to the mailbox address.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Create a real IMAP/SMTP mailbox on a domain you own.' It explicitly contrasts with 'an API mailbox,' differentiating it from sibling create_mailbox. This makes the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'instead of an API mailbox' gives an explicit alternative, and 'on a domain you own' establishes a prerequisite. The condition around workspace_id ('Pass workspace_id to create it in a workspace you own and atomically adopt the domain boundary') clarifies when to include it. However, it doesn't enumerate other sibling alternatives or state when not to use it in more detail.

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

create_mailboxCreate MailboxAInspect

Create an email address. Specify slug (required) and optionally domain. Pass workspace_id to create it inside a workspace you own; custom-domain creation atomically adopts the domain and all unscoped sibling mailboxes so a domain is never split. For custom domains: email DNS is auto-configured on first use. For imported domains (external registrar): returns DNS records to add manually at your registrar. For domani.run: omit domain. Max 5 mailboxes per account, 1 free @domani.run per user. Pass force=true to override existing email provider (Google Workspace, etc.). API: POST /api/emails with {address}.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name for outbound emails, e.g. 'John Doe'. Shows as 'John Doe <slug@domain>' in recipients' inboxes
slugYesLocal part of the email address, e.g. 'hello' for hello@mysite.com
forceNoOverride existing MX records (e.g. Google Workspace). Default: false
domainNoDomain for the mailbox. Omit for domani.run
workspace_idNoWorkspace ID from list_workspaces; owner-only
Behavior4/5

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

With no annotations, the description carries full responsibility for disclosing side effects. It reveals atomic domain adoption, DNS auto-configuration, DNS records for imported domains, mailbox limits, and force override behavior. This is strong behavioral disclosure, though it omits return value format and potential error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than ideal but every sentence serves a purpose. It is front-loaded with the core action, then systematically covers domain scenarios, limits, and override. The structure is logical and achieves high information density without being overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, no output schema), the description covers many important edge cases: domain types, account limits, workspace ownership, and DNS handling. It does not describe the response payload, which would be helpful, and it misses explicit differentiation from create_hosted_mailbox, but overall it is quite complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing a baseline of 3. The description adds meaning beyond the schema by explaining domain type nuances (custom, imported, domani.run), ownership requirements for workspace_id, and the effect of force=true. This enriches the raw parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create an email address' with a specific verb and resource. It goes into detail about slug, domain, workspace, and force options, but does not explicitly distinguish from the sibling 'create_hosted_mailbox', which could be a similar or overlapping function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides contextual guidance for different scenarios: 'For custom domains', 'For imported domains', 'For domani.run', and explains when to use workspace_id and force. However, it does not explicitly mention alternatives or when NOT to use this tool, such as pointing to create_hosted_mailbox or other sibling tools.

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

create_mailbox_credentialCreate App PasswordAInspect

Create an app password for a hosted mailbox, used as the password in a mail client. The secret is returned once - store it. API: POST /api/emails/{address}/credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesHosted mailbox slug
labelNoLabel to identify this app password, e.g. 'Laptop Mail'
domainYesHosted mailbox domain
Behavior4/5

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

With no annotations, the description takes on the transparency burden. It discloses a crucial behavioral trait: 'The secret is returned once - store it,' which alerts the agent to capture the secret immediately. It also includes the API endpoint. However, it omits other details like permission requirements or limits, but the one-time secret is a key disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences plus an API path. The first sentence states the primary action, the second provides a critical caveat, and the API reference is a compact technical detail. No wasted words; it is front-loaded and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple create tool with no output schema, the description covers the essential context: what it does, the one-time secret behavior, and the API endpoint. It does not detail the response format, but the description of the secret being returned implies it. The sibling context and schema fill in the remaining gaps, making this sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are already described: slug ('Hosted mailbox slug'), label ('Label to identify this app password'), and domain ('Hosted mailbox domain'). The description adds no additional parameter-specific semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Create an app password for a hosted mailbox, used as the password in a mail client.' This specific verb+resource combination distinguishes it from siblings like create_mailbox (which likely creates a mailbox account) and list_mailbox_credentials (which lists credentials). The title 'Create App Password' further reinforces the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you need an app password for a mail client to access a hosted mailbox. It does not explicitly mention alternatives or when not to use, but the wording 'used as the password in a mail client' provides clear context. The sibling tool list also helps differentiate, but explicit exclusion is absent.

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

create_tokenCreate API TokenAInspect

Create a new API token with optional scoped permissions and spend caps. The full key is returned only once - save it immediately. A token can only grant scopes it already has (scope attenuation) and spend caps at or below its own. Scopes: domains:read (GET /api/domains, GET /api/domains/{domain}, GET /api/domains/{domain}/dns, /dnssec, /status, /email/check, /auth-code, /transfer-away, /transfer-status, /analytics), domains:write (PUT /api/domains/{domain}/dns, POST/DELETE /api/domains/{domain}/dnssec, POST /connect, POST /verify, PUT /settings, PUT /parking, PUT/DELETE /api/domains/{domain}/for-sale, POST /api/domains/import, POST /import/verify), domains:transfer (POST /api/domains/buy, POST /transfer, POST /renew (involves payment, includes marketplace purchases)), tokens:read (GET /api/tokens), tokens:write (POST /api/tokens, DELETE /api/tokens/{id}), webhooks:read (GET /api/webhooks, GET /api/webhooks/{id}/deliveries), webhooks:write (POST /api/webhooks, PATCH /api/webhooks/{id}, DELETE /api/webhooks/{id}), email:read (GET /api/emails, /api/emails/{address}, /api/emails/{address}/messages, /api/emails/{address}/aliases, /api/email/changes, /api/domains/{domain}/email/status, /api/domains/{domain}/email/deliverability, /api/suppressions), email:write (POST /api/emails, POST /api/emails/{address}/send, POST /api/domains/{domain}/email/setup, aliases + catch-all, POST/DELETE /api/suppressions), email:delete (Permanently delete messages already in Trash. Moving messages to Trash only requires email:write. Grant this scope only to agents allowed to irreversibly erase email content), email:auth_secrets (Read messages classified as authentication mail (OTP / verification codes, password resets, magic links). Without it, email:read still lists them but subject and body come back redacted - so a stolen agent token can't harvest 2FA codes. Grant it only to agents that genuinely need to complete logins), account:read (GET /api/me, GET /api/agents/identity), account:write (DELETE /api/me, POST /api/billing/setup, POST /api/billing/subscribe, POST /api/billing/cancel, POST /api/me/resend-verification, POST/PATCH/DELETE /api/agents/identity), billing:read (GET /api/billing/invoices), search (GET /api/domains/search, /suggest, /whois, /dns-check, GET /api/tlds), deals:read (GET /api/deals, GET /api/deals/{id}), deals:write (POST /api/domains/sell, PATCH /api/deals/{id}), notifications:read (GET /api/notifications, GET /api/notifications/count), backorders:read (GET /api/backorders, GET /api/backorders/{id}), backorders:write (POST /api/backorders, DELETE /api/backorders/{id}). Use ['*'] for full access (default). When minting a token for a sub-agent that can buy, ALWAYS set max_per_tx/max_per_month.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoHuman-readable label, e.g. 'CI/CD', 'Sub-Agent'. Defaults to 'CLI'
scopesNoPermission scopes for this token. Defaults to parent token's scopes. Use ['*'] for full access
expires_atNoAbsolute expiration date (ISO 8601). Alternative to expires_in
expires_inNoToken lifetime in seconds (min 3600 = 1h, max 31536000 = 1y). Omit for no expiration
max_per_txNoPer-transaction spend cap in USD - any single charge above it is rejected server-side (SPEND_CAP_EXCEEDED)
max_per_monthNoRolling calendar-month spend cap in USD for all paid operations with this token
agent_identity_idNoOptional owned AgentIdentity id. Mail actions made with this token are attributed to that agent
Behavior5/5

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

With no annotations, the description carries the full burden and excels. It discloses critical behavioral traits: the key is returned only once ('save it immediately'), scope attenuation limits what can be granted, and spend caps are enforced server-side. It also details the implications of each scope, including irreversible actions like email:delete and the redaction of auth secrets without email:auth_secrets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long due to the exhaustive scope enumeration, but it is well-structured as a scoped list with parenthetical endpoint details and warnings. Key behavioral notes are front-loaded, and the imperative final sentence adds actionable guidance. It earns its length by providing essential reference material for an AI agent, though it could be trimmed by referencing external docs for the full scope list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 7 optional parameters and no output schema, the description covers the critical aspects: key delivery, scope restrictions, spend caps, and dangerous permission warnings. It does not explicitly outline the response structure beyond the key, but the warning to save it immediately implies the response contains it. Overall, it is sufficiently complete for an agent to use the tool correctly, with minor gaps around exact response fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100% (baseline 3), the description significantly enriches parameter understanding. It expands the scopes parameter with a comprehensive list of valid values and their endpoints, explains the semantics of spend caps, and adds imperative usage guidance for max_per_tx/max_per_month. This goes well beyond the schema's brief descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Create a new API token with optional scoped permissions and spend caps,' clearly stating the specific verb (create), resource (API token), and key features. It distinguishes itself from sibling tools like list_tokens and revoke_token by focusing on creation and its associated options.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides strong contextual guidance, such as 'When minting a token for a sub-agent that can buy, ALWAYS set max_per_tx/max_per_month.' It also explains scope attenuation and warns about dangerous scopes like email:delete. However, it does not explicitly name alternatives or state when-not-to-use, so it falls short of a 5.

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

create_webhookCreate WebhookAInspect

Register a new webhook endpoint to receive event notifications. The URL must use HTTPS. Choose which events to subscribe to (e.g. domain.purchased, transfer.completed). The webhook secret is returned only once - save it to verify incoming payloads with HMAC-SHA256.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS URL that will receive webhook POST requests
eventsYesEvent types to subscribe to, e.g. ["domain.purchased", "dns.updated"]. Use list_webhook_events to see all available types.
Behavior4/5

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

With no annotations, the description takes on the transparency burden. It meaningfully discloses that the secret is returned only once and that HMAC-SHA256 is used for verification, but omits potential behaviors like duplicate URL handling or idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the purpose, and every sentence contributes essential information (constraint, event selection, secret handling). No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no output schema, the description adequately covers the key return value (secret) and usage constraints. However, it omits the webhook ID needed for subsequent updates/deletes, and does not address duplicate URL behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds no additional meaning beyond what the schema already provides for url and events (e.g., HTTPS, example events). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Register a new webhook endpoint') and resource ('event notifications'), clearly distinguishing it from sibling tools like update_webhook or delete_webhook.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when to use (setting up a webhook, selecting events, HTTPS requirement) but does not explicitly contrast with alternatives like update_webhook or list_webhooks, and gives no exclusions.

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

delete_dnssecDelete DNSSEC DS RecordAInspect

Remove a DNSSEC delegation-signer (DS) record at the registry by its key tag. Removing all DS records disables DNSSEC.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name
keyTagYesKey tag of the DS record to remove
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It adds useful context about registry-level operation and the consequence of removing all DS records, but does not disclose potential side effects like propagation delays, reversibility, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, and zero wasted words. The description is efficient and directly to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description provides sufficient information to understand the operation and an important side effect. It could mention what happens on success or error handling, but overall it is complete for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters ('Domain name' and 'Key tag of the DS record to remove'). The description does not add significant meaning beyond the schema, aside from reinforcing that the key tag identifies the DS record.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Remove'), a specific resource ('DNSSEC delegation-signer (DS) record'), and a specific method ('at the registry by its key tag'). It clearly distinguishes from sibling tools like add_dnssec and get_dnssec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool (when you need to remove a specific DS record) and adds the context that removing all DS records disables DNSSEC. It does not explicitly name alternatives or exclusions, but the purpose is unambiguous.

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

delete_mailboxDelete MailboxAInspect

Delete a mailbox and all its messages (including attachments). Requires confirm=true. Call without confirm first to see what will be deleted. API: DELETE /api/emails/{address}.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
confirmNoMust be true to actually delete. Omit to preview.
Behavior5/5

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

With no annotations, the description carries full burden. It discloses destructive scope (all messages and attachments), the confirm requirement, and the preview step. This goes beyond simple 'delete' and gives the agent essential safety information. The API endpoint is a useful technical detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences. The first states the destructive action, the second gives the safety requirement, and the third provides the API endpoint. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, the description covers the key context: what gets deleted, the confirmation requirement, and the preview mechanism. It could mention irreversibility explicitly or note effects on aliases, but the provided information is sufficient for an agent to invoke the tool safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds critical meaning for the confirm parameter: 'Requires confirm=true. Call without confirm first to see what will be deleted.' This goes beyond the schema's 'Must be true to actually delete. Omit to preview.' by explaining the two-step usage pattern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a mailbox and all its messages (including attachments)', which uses a specific verb and resource with scope. It distinguishes itself from sibling tools like delete_message and delete_messages by focusing on the entire mailbox.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to call without confirm first to preview, then with confirm=true to delete. This provides clear operational guidance. Although it doesn't explicitly name alternative tools for deleting individual messages, the preview/confirm workflow and scope make usage clear.

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

delete_messageDelete MessageAInspect

Move an email message to Trash. This is reversible with update_email_messages action=restore. API: DELETE /api/emails/{address}/messages/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
message_idYesID of the message to delete
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states the message is moved to Trash (not permanently deleted) and is reversible, which is critical context. It does not mention permissions or error scenarios, but the key reversibility trait is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences plus the API endpoint, with no wasted words. The action is front-loaded, making it immediately clear what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-message deletion tool, the description provides purpose, reversibility, and endpoint. It does not mention the return format, but given the simplicity and the rich schema, it is nearly complete for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already documented. The description adds the API endpoint structure showing how parameters map to the URL path, but this is marginal beyond the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool moves a single email message to Trash, with a specific verb and resource. It distinguishes from the sibling delete_messages by its singular scope ('an email message') and includes the API endpoint for added specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that deletion is reversible via update_email_messages action=restore, providing an alternative for restoration. While it does not explicitly contrast with delete_messages, the singular phrasing implies single-message use, offering clear context without 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.

delete_messagesDelete Messages (Bulk)AInspect

Retry-safely move messages to Trash and return a durable per-item receipt. Reuse the exact idempotency key after timeouts. Reversible with update_email_messages action=restore. API: POST /api/emails/{address}/messages/delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
message_idsYesIDs of messages to delete
idempotency_keyYesCaller-stable key for this exact logical batch
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so excellently: it discloses that messages are moved to Trash (not permanently deleted), that the operation is retry-safe via idempotency key, that a durable per-item receipt is returned, and that it is reversible via update_email_messages. This is substantial behavioral context beyond merely saying 'delete messages'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: four short sentences, each adding distinct value (purpose, retry behavior, reversibility, and explicit API endpoint). There is no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given moderate complexity (bulk operation, idempotency, no output schema), the description covers the key aspects: endpoint, retry semantics, reversibility, and return receipt. It does not describe partial-failure behavior or the exact structure of the receipt, but the provided information is sufficient for an agent to proceed with a reasonable degree of confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adds meaningful context for the idempotency_key parameter by explaining when and how to reuse it ('after timeouts'), and it clarifies the nature of the result ('durable per-item receipt'). This adds value beyond the schema's field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('move messages to Trash') and the resource ('messages'), and distinguishes this bulk operation from the sibling delete_message via 'Retry-safely' and 'per-item receipt'. The endpoint 'POST /api/emails/{address}/messages/delete' further reinforces the specific resource and operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear retry guidance ('Reuse the exact idempotency key after timeouts') and explicitly names an alternative for reversing the operation ('update_email_messages action=restore'). However, it does not explicitly state when to choose this bulk tool over the singular delete_message or other message-related tools.

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

delete_webhookDelete WebhookAInspect

Delete a webhook endpoint. All pending deliveries will be cancelled. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_idYesID of the webhook to delete
Behavior4/5

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

With no annotations provided, the description carries the burden of disclosing side effects. It explicitly states that 'All pending deliveries will be cancelled' and 'This action cannot be undone,' which are critical behavioral traits beyond a simple delete. This provides valuable context about irreversibility and impact on ongoing deliveries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using only two sentences to convey the core action and key caveats. It is front-loaded with the main verb and includes only essential information without any filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with one parameter and no output schema, the description covers the essential aspects: what it does, the cancellation of pending deliveries, and irreversibility. It doesn't mention error handling or where to find the webhook_id, but these are not critical for this level of simplicity. Overall, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides complete coverage for the single parameter webhook_id, with a clear description. The description adds no additional meaning or format details beyond the schema, so it provides minimal added value. Baseline score of 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb and resource: 'Delete a webhook endpoint.' This distinguishes it from sibling tools like create_webhook and update_webhook. The purpose is immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a webhook needs to be removed, but does not explicitly state when to use it over alternatives or mention any prerequisites. It does not name alternative tools like update_webhook or provide exclusion criteria. Thus, usage is only implied.

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

dns_checkDNS CheckAInspect

Fast DNS-based domain existence check. Tests if a name is taken across many TLDs at once (faster than search, no pricing). Returns 'taken' (definitely registered) and 'candidates' (potentially available). Use this to narrow down before calling search for pricing. Use preset: 'extended' to check 30+ creative/exotic TLDs when basic ones are all taken.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDomain name without TLD, e.g. 'myapp'
tldsNoTLDs to check, e.g. ['com', 'dev', 'ai', 'io']. Optional if preset is provided.
presetNoUse a curated TLD preset: 'basic' (10 common TLDs) or 'extended' (30+ including creative/exotic TLDs). Merged with explicit tlds if both provided. Defaults to 'basic' when tlds is omitted.
Behavior4/5

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

No annotations are provided, but the description discloses the operational mechanism (DNS-based), the two output categories (taken vs candidates), and a limitation (no pricing). It also notes the speed advantage over search. This is meaningful behavioral context beyond the tool's name and schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each providing distinct information: function, output, usage guidance, and a specific preset recommendation. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains the return categories and clearly defines the workflow context (pre-search filter). It covers the main decision points an agent needs: what the tool does, when to use it, and how to leverage the extended preset. The absence of output schema is compensated by the explicit 'taken/candidates' summary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with clear descriptions for all three parameters. The description adds limited additional parameter meaning, mainly the strategic use of the 'extended' preset in certain scenarios, but the schema already documents the parameter values and defaults. Thus baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('tests/checks') and resource ('domain existence across many TLDs at once'). Clearly distinguishes from sibling 'search' by noting speed and lack of pricing, and explicitly positions it as a pre-filter before search. Also indicates output types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use this to narrow down before calling search for pricing.' Also recommends using the 'extended' preset when basic TLDs are taken. This tells the agent exactly when to invoke this tool and when to defer to search.

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

domain_statusDomain StatusAInspect

Check domain health: DNS propagation, SSL status, email (MX) configuration, and expiry date

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check status for
Behavior3/5

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

With no annotations provided, the description must carry the behavioral burden. It conveys a read-only intent via the verb 'check' and lists the data points, but it does not disclose whether it works for any domain or only domains under the account, nor does it describe the output format or any side effects (e.g., external queries). This leaves some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently lists the key checks. No wasted words; it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and no output schema. The description sufficiently captures the core scope (DNS, SSL, email, expiry) for an agent to select it appropriately. It does not explain the return structure, but that is not critical for a straightforward health check tool. Sibling context is available, though not directly referenced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'domain' parameter, with 'Domain to check status for' already explaining its meaning. The tool description adds no additional parameter detail beyond restating that it is a domain health check, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb-resource pair ('Check domain health') and enumerates distinct aspects (DNS propagation, SSL status, email MX configuration, expiry date). This differentiates it from sibling tools like dns_check or whois_lookup, which focus on individual checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage as a domain health overview but does not explicitly state when to prefer it over alternatives like dns_check or whois_lookup. There are no exclusions or alternative tool mentions, so guidance is only implicit.

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

finalize_negotiationFinalize NegotiationAInspect

As the buyer, pay the agreed price to create the escrow deal and start the transfer. Same payment methods as a purchase (card, USDC, x402). Requires domains:transfer scope. For a broker-sourced acquisition, if the agreed price is above the max_budget you set, this returns BUDGET_EXCEEDED - retry with confirm_over_budget: true to proceed anyway.

ParametersJSON Schema
NameRequiredDescriptionDefault
negotiation_idYesThe agreed negotiation to finalize
payment_methodNo
confirm_over_budgetNoSet true to finalize a broker deal above the max_budget you set on the acquisition request
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses the required domains:transfer scope, the BUDGET_EXCEEDED return and retry behavior, and that the operation creates an escrow deal and starts the transfer. It does not mention other failure modes or whether finalization is irreversible, but the key behavioral traits are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, followed by scope and an edge case. Each sentence adds value, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema and moderate complexity, the description covers the primary action, required scope, and a specific error/retry path. It does not describe the success response format or other potential errors, but the essential information for invocation is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds useful context for confirm_over_budget (the BUDGET_EXCEEDED flow) and for payment_method by claiming the same methods as purchase (card, USDC, x402). However, the schema enum lists 'balance' instead of 'x402', creating a discrepancy. negotiation_id and payment_method still rely mostly on schema descriptions, and with 67% coverage, the description only partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: the buyer pays the agreed price to create an escrow deal and start the transfer. It uses specific verbs like 'pay', 'create', and 'start', and distinguishes this from sibling negotiation tools like make_offer and respond_to_offer by focusing on finalization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context on when to use the tool: as the buyer finalizing an agreed negotiation. It also explains the special over-budget flow for broker-sourced acquisitions and the retry with confirm_over_budget, but does not explicitly name alternative tools or exclusion cases beyond the budget scenario.

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

forward_messageForward EmailAInspect

Forward an email message to another address. Includes the original message context (sender, date, subject, body). Optionally prepend a note. Subject is auto-prefixed with 'Fwd:'. API: POST /api/emails/{address}/messages/{id}/forward.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email address(es)
slugYesMailbox slug
textNoOptional note to prepend to the forwarded message
domainYesMailbox domain
message_idYesID of the message to forward
Behavior4/5

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

With no annotations, the description carries the full disclosure burden. It explains that the original message context is included, that a note can be prepended, and that the subject is auto-prefixed with 'Fwd:'. It does not cover permissions, rate limits, or failure behavior, but for a forwarding operation, these key behaviors are well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action, and each sentence adds value. The API endpoint is useful for technical integration, and there is no redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters, all documented, and no output schema. The description explains the forwarding behavior, the inclusion of original context, and the optional note, which is sufficient for an agent to correctly invoke the tool. It does not mention return values, but for a straightforward forward operation this is not a critical gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all parameter descriptions (100% coverage), so baseline is 3. The description adds meaningful context beyond the schema: it explains the 'text' parameter as an optional note to prepend, and the auto-prefix behavior clarifies why there is no subject parameter. This enriches the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Forward') with a clear resource ('an email message to another address'). It also distinguishes from siblings like send_email or reply_to_message by noting it includes original message context and auto-prefixes subject with 'Fwd:'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is for forwarding emails, but it does not explicitly mention when to use this instead of alternatives like reply_to_message or send_email. The context is clear enough for an agent to infer, but there is no explicit when/when-not guidance.

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

get_accountGet AccountAInspect

Get your account details, payment status, contact info status (has_contact), and referral code. Contact info must be set before purchasing domains.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. It clearly indicates a read operation ('Get') and lists return fields, but does not disclose authentication prerequisites, error cases, or rate limits. This is adequate for a simple getter, but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no extraneous information. The first enumerates return fields, and the second provides a relevant prerequisite context. Every word contributes to understanding the tool's purpose and use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool, the description covers the key return fields and a relevant business rule. It doesn't describe response structure, but given the simplicity, the provided information is sufficient. The lack of an output schema is partially compensated by listing the fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so parameter semantics are trivially satisfied. The rubric sets a baseline of 4 for no-parameter tools, and the description correctly avoids inventing parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' with the resource 'your account details' and enumerates the exact fields returned (payment status, has_contact, referral code). This clearly distinguishes it from sibling getter tools like get_domain_info or get_activation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence 'Contact info must be set before purchasing domains' provides a concrete use case for checking contact status before a purchase. This gives clear contextual guidance, though it does not explicitly mention alternatives or when-not-to-use.

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

get_activationGet ActivationAInspect

Get truthful product milestones and the next useful actions for this account. Use this after authentication instead of treating token setup as success.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It does not state whether the operation is read-only, has side effects, or requires any permissions. The agent cannot determine if this call is safe or destructive without additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, each serving a distinct purpose: defining functionality and providing usage context. No unnecessary words, front-loaded key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description covers purpose and usage well. However, it could be improved by briefly mentioning the return value format or that it's a safe read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100%. According to the rubric, zero parameters earn a baseline of 4, and the description adds value by clarifying the tool's purpose beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves 'product milestones and next useful actions for this account', providing a specific verb and resource. It distinguishes itself from siblings by its unique focus on activation status, though it does not explicitly differentiate from similar tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this after authentication instead of treating token setup as success', providing clear context and a specific alternative to avoid. This is excellent guidance for the agent.

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

get_auth_codeGet Auth CodeAInspect

Get the EPP/auth code needed to transfer a domain to another registrar. Automatically unlocks the domain if it's locked. Give this code to the new registrar to initiate the transfer.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to get auth code for
Behavior4/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It explicitly notes a side effect: 'Automatically unlocks the domain if it's locked,' which is important for a tool that might otherwise appear read-only. It does not mention return format or permissions, but the key behavior is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: what the tool does, a key side effect, and how to use the result. It is concise and front-loaded with the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single parameter and no output schema, the description covers the essential context: the purpose, the workflow (initiating a transfer), and a side effect. It could mention eligibility prerequisites, but the core is well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the 'domain' parameter already described as 'Domain to get auth code for.' The description adds no additional semantic detail about the parameter, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: obtaining the EPP/auth code needed to transfer a domain. It uses a specific verb ('Get') and resource ('EPP/auth code'), and distinguishes itself from sibling tools like check_transfer_eligibility and transfer_domain by focusing on the code retrieval step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: when transferring a domain to another registrar, and instructs to give the code to the new registrar. It does not explicitly mention alternative tools or exclusions, but the use case is well implied.

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

get_broker_inquiry_stateRead Broker Inquiry State (Owner)AInspect

Owner-agent read path: poll the current, anonymized state of a broker inquiry with your token before acting. Returns the domain, the buyer's offer on the table, whose move it is, and the actions available now. Never exposes the buyer's identity or budget.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesThe outreach token from your inquiry email
Behavior4/5

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

No annotations are present, so the description must convey behavioral traits. It discloses that the tool is a read-only 'poll' and includes a privacy guarantee ('Never exposes the buyer's identity or budget'), which is valuable beyond typical read operations. It doesn't detail error cases or idempotency, but these are less critical for a read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the essential 'Owner-agent read path' label, and no redundant words. Every sentence adds value: the first states the action and return fields; the second sets privacy expectations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description explicitly lists the returned information (domain, offer, whose move, available actions) and what is deliberately withheld (identity, budget). For a single-parameter read tool with strong schema coverage, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the token parameter is well-described in the schema. The description's mention of 'your token' adds no new meaning beyond the schema's 'outreach token from your inquiry email.' Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource+scope: 'poll the current, anonymized state of a broker inquiry.' It distinguishes itself from sibling write tools (e.g., respond_to_broker_inquiry) and listing tools (list_broker_requests) by explicitly labeling it as the 'Owner-agent read path.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides the context of use ('before acting') and identifies the audience (owner-agent). It does not explicitly name alternative tools, but the phrase 'before acting' implies using this to gather state prior to operations, which is clear enough.

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

get_deal_invoiceGet Deal InvoiceAInspect

Get a role-aware receipt/statement for a marketplace deal. Buyers see what they paid; sellers see the sale, the platform commission line, and the net payout. Works for every payment method. Requires deals:read scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
deal_idYesThe deal ID
Behavior4/5

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

With no annotations, description carries full burden. It discloses role-aware output behavior, works for all payment methods, and required scope. However, it doesn't explicitly state read-only nature, though implied by 'get'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-param read tool, the description covers purpose, output behavior, and access requirements. It doesn't detail exact return fields, but no output schema exists; the role-aware examples give sufficient expectation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes deal_id fully (100% coverage), and description adds no additional parameter details. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states a specific verb and resource: 'Get a role-aware receipt/statement for a marketplace deal.' The role-aware detail distinguishes it from generic list_invoices and other marketplace tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when to use (need a deal-specific receipt) and prerequisites (deals:read scope), but does not explicitly name alternatives like list_invoices for when all invoices are needed.

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

get_dnsGet DNS RecordsAInspect

Get DNS records for a domain you own. Returns each record with a stable id, plus a zone_version token - pass it to set_dns to detect concurrent zone changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to get DNS records for
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that each record has a stable id and that a zone_version token is returned, which is crucial for understanding output stability and concurrency behavior. The phrase 'for a domain you own' also implies an ownership requirement, adding behavioral context beyond 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the main purpose front-loaded in the first sentence. Every sentence adds necessary information: the resource and ownership in the first, return values and relationship to set_dns in the second. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema or annotations, the description covers all essentials: what it does, who can use it, what it returns, and how the output can be used downstream. The mention of stable id and zone_version is particularly valuable given the lack of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the 'domain' parameter completely, so baseline is 3. The description adds semantic value by indicating the domain must be owned by the user, which is not stated in the schema. This extra constraint helps the agent avoid errors when selecting domains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb and resource: 'Get DNS records for a domain you own.' It distinguishes this from sibling tools like set_dns (which modifies), dns_check (which verifies external DNS), and get_dnssec (which gets DNSSEC data) by narrowing scope to owned domains and emphasizing the read-only nature of the action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a common workflow by mentioning 'pass it to set_dns to detect concurrent zone changes,' which tells the agent when this tool is useful as a precursor to updates. It does not explicitly name alternatives or exclusions, but the ownership qualifier ('for a domain you own') sets clear expectations about when it applies.

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

get_dnssecGet DNSSECAInspect

List the DNSSEC delegation-signer (DS) records for a domain you own, and whether DNSSEC is enabled. Pair with TLSA records (via set_dns) for DANE.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to inspect
Behavior3/5

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

No annotations are provided, so the description carries the full burden. The verb 'List' and read-only nature are clear, and the 'domain you own' constraint is disclosed. However, it does not mention what happens if the domain is not owned, whether an empty result is returned if DNSSEC is disabled, or any authorization requirements. This is acceptable for a simple read tool but lacks deeper 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action ('List'), and every phrase adds value. It includes a cross-reference to set_dns without extra fluff, making it highly efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with a single parameter and no output schema, the description covers what the tool does, what it returns (DS records, DNSSEC status), and the ownership prerequisite. It also provides broader context (DANE integration), making it complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the 'domain' parameter described as 'Domain name to inspect'. The description adds the ownership requirement ('a domain you own') and specifies output content (DS records and enabled status), which goes beyond the schema. This adds meaningful semantic value, though the parameter format is not elaborated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists DNSSEC DS records and indicates whether DNSSEC is enabled. The verb 'List' and resource 'DNSSEC delegation-signer (DS) records' are specific, and the scope 'for a domain you own' distinguishes it from siblings like get_dns, add_dnssec, or delete_dnssec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for inspecting DS records and DNSSEC status on an owned domain. It also suggests pairing with TLSA records via set_dns for DANE, providing a complementary usage. However, it does not explicitly exclude alternatives or state when not to use it, so it falls short of a 5.

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

get_domain_email_statusGet Domain Email StatusAInspect

Check if email is enabled on a domain and whether DNS records are verified. Returns record status and mailbox count.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check email status for
Behavior4/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It states the tool 'Checks' and 'Returns', implying a read-only operation without side effects. It also discloses the specific outputs (record status and mailbox count), which adds valuable behavioral context beyond just the operation name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with two clauses, front-loading the action and outcome. Every word contributes: it specifies what is checked, what is verified, and what is returned. No unnecessary filler or redundancy exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no output schema), the description is complete. It explains the purpose, what is checked, and what the return includes (record status and mailbox count). No additional context is needed for an agent to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage for the single 'domain' parameter with a clear description. The tool description only repeats 'domain' without adding new meaning, so the schema does the heavy lifting. According to the rubric, this warrants a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Check' and clearly identifies the resource ('email enabled on a domain', 'DNS records verified'). It distinguishes itself from sibling tools like 'check_email' (which targets individual email addresses) by focusing on domain-level email status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'check_email' or 'check_email_deliverability'. The description implies usage but does not state exclusions or name alternative tools for different scenarios, leaving the agent to infer the appropriate context from the tool's name.

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

get_domain_infoGet Domain InfoAInspect

Get detailed information about a domain you own, including auto-renew status, security lock, WHOIS privacy, and provider data.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to get info for
Behavior4/5

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

Without annotations, the description carries the burden of behavioral disclosure. It accurately conveys a read-only get operation and enumerates the kind of information returned, which sets expectations. It does not mention error cases or ownership verification, but the 'get' verb and scope make the behavior sufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that starts with the action and object, then efficiently lists the notable data points. Every phrase adds value with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input schema and absence of an output schema, the description covers the essential aspects: what the tool does, the ownership requirement, and the kind of fields returned. It does not discuss edge cases or provider-specific behavior, but for a read-only getter this is sufficient. It could be slightly enhanced by stating return format or clarifying what 'provider data' includes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the single 'domain' parameter, so the baseline is 3. The description adds the meaningful nuance that the domain must be owned, which is not present in the schema description and helps the agent understand the parameter's semantics more precisely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets detailed information about a domain, and lists specific data types (auto-renew status, security lock, WHOIS privacy, provider data). This distinguishes it from siblings like get_dns or whois_lookup, which focus on narrower or different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'a domain you own' provides a clear usage context, indicating this is for owned domains. While it does not explicitly name alternatives or exclusions, the ownership qualifier effectively guides the agent away from whois_lookup or other domain inspection tools.

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

get_domain_previewGet Domain PreviewAInspect

Get website preview metadata (title, description, image, favicon) for any domain. Useful for understanding what a taken domain is currently used for. Data is cached for 7 days.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to preview, e.g. google.com
Behavior3/5

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

With no annotations provided, the description carries the burden of disclosing behavior. It states that data is cached for 7 days, which is a meaningful behavioral detail, but it does not mention other aspects like network behavior, failure modes, or authorization requirements. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the purpose, and includes a relevant caching note. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple, single-parameter read tool with no output schema. The description compensates by listing the returned metadata fields and noting the cache duration. It is largely complete, though it does not address what happens for unavailable domains or missing metadata, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'domain' is fully described in the schema with an example. The description merely restates the domain concept without adding extra semantic value beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('website preview metadata'), explicitly lists the returned fields (title, description, image, favicon), and clarifies the use case for taken domains. This clearly distinguishes it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context by stating the tool is useful for understanding what a taken domain is currently used for. However, it does not explicitly mention when to avoid it, alternatives, or 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.

get_email_deliverabilityGet Email DeliverabilityAInspect

Get an owner-scoped email health report for a domain. Separates deterministic DNS readiness, 30-day bounce and complaint outcomes, account safety state, and measured inbox placement. A readiness score is not an Inbox probability. API: GET /api/domains/{domain}/email/deliverability.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to inspect
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the owner-scoped restriction and clarifies that the readiness score is not an inbox probability, which are meaningful behavioral cues. However, it does not explicitly state that the operation is read-only or describe potential errors, rate limits, or prerequisites beyond ownership. The provided context is useful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: it states the purpose, lists components, provides a caveat, and includes the API path. Each sentence adds value, though the API path is an implementation detail that may be slightly extraneous for an AI agent. No clutter, but not as lean as a two-sentence example.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description does a decent job of outlining the content of the report (DNS readiness, bounce/complaint outcomes, account safety, inbox placement). It also clarifies the interpretation of the readiness score. The main gap is the exact response format or field names, but for a single-parameter tool, the description is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% description coverage for the single parameter 'domain'. The description adds minimal meaning beyond the schema, except indirectly indicating that the domain must be owner-scoped. This matches the baseline of 3, where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets an 'owner-scoped email health report for a domain' with specific breakdown components (DNS readiness, bounce/complaint outcomes, account safety, inbox placement). The verb 'Get' and resource 'email health report' are specific, and it distinguishes from siblings like check_email_deliverability by describing a comprehensive report rather than a simple check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: it is for domains you own ('owner-scoped') and gives a detailed health report. However, it does not explicitly provide when-to-use vs. alternatives or exclusion conditions. No sibling tools are referenced, leaving the agent to infer when this should be selected over similar tools like check_email_deliverability.

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

get_mailbox_client_settingsGet Mail Client SettingsAInspect

Get IMAP/SMTP settings for a hosted mailbox to configure a mail client (Apple Mail, Thunderbird). Username is the full address; password is an app password. API: GET /api/emails/{address}/client-settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesHosted mailbox slug
domainYesHosted mailbox domain
Behavior4/5

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

With no annotations provided, the description carries the burden of disclosing behavior. It states that 'Username is the full address; password is an app password', which is critical behavioral context for a mail client setup. It also reveals the API endpoint. However, it does not mention response structure or error cases, but the 'Get' verb implies a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of three concise sentences, each adding unique value: purpose, credential format, and API endpoint. No unnecessary filler. It is well-structured and front-loaded with the primary action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with two parameters and no output schema, the description provides sufficient context. It explains the purpose, the credential requirements, and the API path. It could mention what fields are returned (e.g., server, ports), but the tool name and 'client-settings' resource imply this. The description is complete enough for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters ('Hosted mailbox slug' and 'Hosted mailbox domain') with 100% coverage, so the description adds minimal parameter-specific meaning. The only added detail is the note about the address format, but that applies to the mailbox rather than the slug/domain parameters directly. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get IMAP/SMTP settings for a hosted mailbox to configure a mail client'. It uses a specific verb ('Get') and resource ('client settings'), and distinguishes it from sibling tools by focusing on mail client configuration. The explicit API endpoint further reinforces the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'to configure a mail client (Apple Mail, Thunderbird)'. It also gives essential setup details (username = full address, password = app password). While it doesn't explicitly name alternative tools or situations to avoid, the use case is specific enough to guide selection among the many sibling tools.

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

get_messageGet MessageAInspect

Get a single message by ID with full content, headers, delivery events, and attachment download URLs. API: GET /api/emails/{address}/messages/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
message_idYesMessage ID
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the response contents (full content, headers, delivery events, attachment URLs) and the API endpoint, which is useful. However, it omits error behavior (e.g., 404 for missing ID), authentication requirements, or any side effects, which keeps it at a mid-level transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the key information front-loaded. No filler or redundant content. The API reference is compact and useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-ID tool with no output schema, the description covers the main need: what the tool returns. It could be more complete by noting error handling or how the address is constructed from the parameters, but it provides enough context to work effectively. Misses the last point for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes all three parameters (slug, domain, message_id) with clear names and short descriptions, so coverage is 100%. The description adds little beyond confirming 'message_id' is the ID and showing an API path using 'address', but does not explain the relationship between slug/domain and address. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('a single message by ID'), and adds precise details (full content, headers, delivery events, attachment download URLs). It clearly distinguishes from sibling tools like list_email_messages (list vs. single) and delete_message (mutating vs. read-only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'single message by ID' provides clear context for when to use this tool—when a specific message is needed. However, it does not explicitly mention when not to use it or name alternatives like list_email_messages for multiple messages, leaving it just below the top score.

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

get_nameserversGet NameserversAInspect

Get the authoritative nameservers configured for a domain you own. If empty, DNS operations (parking, email, connect) will fail.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to get nameservers for
Behavior4/5

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

With no annotations, the description carries the full burden. It conveys that the tool returns the authoritative nameservers and that an empty result indicates a serious issue that will break downstream DNS operations. This adds meaningful context beyond the basic 'get nameservers' phrase, though it omits specifics about return format and error cases for invalid or non-owned domains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences. The first sentence immediately states the tool's purpose, and the second provides a valuable caveat about empty results. No words are wasted, and the structure is front-loaded with the primary action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with one parameter and no output schema, the description covers the purpose, ownership prerequisite, and the significance of an empty result. It doesn't explicitly state the return format (e.g., array vs. string), but the low complexity and clear intent make it sufficiently complete for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the only parameter 'domain' with a clear description. The tool description adds 'a domain you own' which is a prerequisite rather than parameter syntax or formatting. Since schema coverage is 100%, the baseline of 3 is appropriate; no additional parameter-level detail is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' with a clear resource: 'authoritative nameservers configured for a domain you own.' This distinguishes it from sibling tools like get_dns (which likely returns all DNS records) and set_nameservers (which modifies them). It also specifies ownership scope ('a domain you own'), which further clarifies its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for a domain you own' signals a prerequisite for use, and the warning 'If empty, DNS operations (parking, email, connect) will fail' implies when this tool should be used (e.g., before DNS operations to verify nameserver configuration). However, it does not explicitly mention alternatives or exclusions, such as preferring get_dns for full DNS record inspection.

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

get_parking_analyticsGet Parking AnalyticsAInspect

Get visitor analytics for a parked domain - page views, inquiries, conversion rate, 30-day daily breakdown, and the 5 most recent inquiries. Use this to check how much traffic a parked domain gets and whether it's converting into buyer inquiries.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to get analytics for, e.g. example.com
Behavior4/5

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

With no annotations provided, the description carries the full burden of disclosure. It accurately conveys a read-only analytics operation and details the output components, which is transparent enough for the simple read context. It lacks mention of prerequisites (e.g., domain must be parked) or possible error states, but the behavior is otherwise clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, with the first listing the tool's output and the second giving the practical use case. Every word earns its place, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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, no output schema), the description is complete. It specifies exactly what data the agent will receive, which is sufficient for an analytics retrieval tool. No further context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'domain' parameter, which already has a clear example. The description adds the qualifier 'parked domain,' providing slight extra context, but the baseline of 3 applies since the schema already documents the parameter effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Get') and resource ('visitor analytics for a parked domain'), and enumerates the exact data returned (page views, inquiries, conversion rate, daily breakdown, recent inquiries). It distinguishes itself from sibling tools by focusing solely on analytics, not domain management or DNS.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case: 'check how much traffic a parked domain gets and whether it's converting into buyer inquiries.' This tells the agent when to use the tool, though it does not explicitly mention alternatives or when not to use it. That prevents a 5.

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

get_transfer_awayGet Transfer Away StatusAInspect

Check the status of an outbound domain transfer. Use after getting an auth code and initiating the transfer at the new registrar.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check transfer status for
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'Check the status' implies a read-only operation, but the description does not disclose the response format, authentication requirements, or potential edge cases like invalid domains. The behavioral traits are left largely implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the verb and resource. Every word earns its place, with no redundant or vague phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter status check, the description covers what the tool does and when to use it. The lack of an output schema does not significantly hurt, as the purpose is straightforward. A brief note on possible status values would round it out, but it's not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear property description ('Domain to check transfer status for'). The tool description adds no extra semantics beyond the schema, but none are necessary given the single self-explanatory parameter. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the function: 'Check the status of an outbound domain transfer.' It specifies the resource as outbound domain transfers, which distinguishes it from generic transfer status tools. However, it doesn't explicitly name sibling tools like check_transfer_status, so it stops just short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit sequencing guidance: 'Use after getting an auth code and initiating the transfer at the new registrar.' This clearly tells the agent when to use the tool. It doesn't mention exclusions or alternatives, but the context is clear enough.

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

import_domainImport DomainAInspect

Import an external domain you already own (registered at GoDaddy, Namecheap, Cloudflare, etc.) to manage through domani.run. Free, no transfer needed. Returns a TXT record to add at your DNS provider for ownership verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to import, e.g. mysite.com
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses key behaviors: the operation is free, does not require a transfer, and returns a TXT record for DNS verification. However, it does not mention that a follow-up verification step (e.g., verify_import) is required or describe any side effects or limitations, leaving some process ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the primary purpose, and every clause adds value—ownership context, cost, transfer avoidance, and the TXT record response. No redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description adequately covers what the tool does, when to use it, and what the immediate response will be. It misses the tie-in to the sibling verify_import tool, which could create a gap in the overall workflow, but the core usage is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a clear description for the single 'domain' parameter with an example. The tool description adds the context that the domain must be externally owned, but does not add further syntax or formatting details. With 100% schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: importing an external domain the user already owns, with the explicit distinction 'no transfer needed.' This differentiates it from sibling tools like transfer_domain or acquire_domain. The verb 'import' and resource 'external domain' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: for domains already owned at another registrar, and explicitly excludes transfer by saying 'no transfer needed.' It does not name alternative sibling tools directly, but the context is sufficient for an agent to choose this over transfer-related tools.

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

list_audit_eventsList Audit EventsAInspect

The account's security audit trail, newest first: token lifecycle (created/revoked/escalation attempts), spend-cap and max_price denials, charges, payout requests. Use it to review what the account's tokens have been doing.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by event type, e.g. purchase.denied_cap, token.created
limitNoEvents to return (default 50)
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It adds useful context by specifying 'newest first' ordering and enumerating the event types included. It does not contradict annotations (there are none) and provides a clear picture of what to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every word adds value. It is neither verbose nor under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with two optional parameters and no output schema, the description adequately covers what events are returned and their ordering. It could be more explicit about the response structure (e.g., individual event fields), but overall it is complete enough for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds some context around event types (e.g., token lifecycle, denials) that could inform the 'type' parameter, but it does not directly explain the parameters or their syntax beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states this is the account's security audit trail, listing specific event categories (token lifecycle, denials, charges, payouts). It uses a specific verb and resource, and the scope ('account's') distinguishes it from other list tools like list_tokens or list_invoices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use it to review what the account's tokens have been doing,' providing clear usage context. It does not mention exclusions or alternative tools, but the intended use case is evident.

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

list_backordersList BackordersAInspect

List the user's backorders (watching, caught, failed, cancelled, expired). Optionally filter by status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action and statuses, omitting that this is a read-only operation, what the return format is, or whether all statuses are included by default. This is minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently states the action, resource, and optional status filter. The statuses are compactly listed in parentheses, and there is no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional parameter, the description covers the core purpose and filtering. However, without annotations or an output schema, it lacks explicit details about return structure, default behavior when no status is provided, or any pagination concerns, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the 'status' parameter with an enum and the description 'Filter by status.' The tool description only echoes this same capability without adding new meaning, so it adds no value beyond the schema (which has high coverage).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('the user's backorders'), enumerating the exact statuses. It distinguishes itself from sibling tools like create_backorder or cancel_backorder by specifying this is a listing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (to list backorders) and mentions the optional status filter. It doesn't explicitly name alternatives or exclusions, but no sibling tool directly competes for this listing task, so the usage is well implied.

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

list_broker_requestsList Broker RequestsAInspect

List your domain acquisition requests and their status (sourcing/contacted/negotiating/agreed/no_contact/declined). Requires deals:read scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status, or 'all'
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses an authentication requirement ('Requires deals:read scope') and enumerates the possible statuses ('sourcing/contacted/negotiating/agreed/no_contact/declined'), which helps set expectations about the response content. However, it does not mention pagination, default behavior when parameters are omitted, or explicitly confirm read-only behavior, though 'List' implies non-mutating.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the primary purpose, then provides the status list and auth requirement. Every piece of information contributes value, and there is no redundancy or filler. It is concise without sacrificing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema), the description is reasonably complete. It specifies the resource, the status values, and the required scope. Minor gaps include lack of detail on default filtering when no status is provided and no mention of pagination, but these are not critical for a straightforward list operation. The description covers the essential context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter 'status' with 'Filter by status, or 'all'', but the description adds the full list of allowed statuses (sourcing/contacted/negotiating/agreed/no_contact/declined), which the schema does not include. This extra context significantly enhances parameter understanding, beyond the 100% schema coverage baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') with a clear resource ('your domain acquisition requests') and explicitly states the scope ('their status'). This distinguishes it from sibling tools like list_negotiations or get_broker_inquiry_state, which focus on different or singular aspects. The wording is unambiguous and directly states what the tool returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use this tool to list your own acquisition requests. It mentions the required scope (deals:read), which is a prerequisite, but does not explicitly state when to prefer this tool over alternatives or when not to use it. No exclusions or alternative recommendations are provided, so the guidance remains implicit rather than explicit.

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

list_domainsList DomainsAInspect

List all domains you own

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'List' implies a read-only operation, but the description does not specify output format, pagination, or whether all domain statuses are included, leaving some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of five words, front-loaded with the action and resource. Every word earns its place, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description covers the essential purpose but lacks detail on return values and any filtering options. Given the tool's simplicity, it is sufficiently complete, though a note about the output structure would improve it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and the schema is an empty object, so the description has no parameter documentation burden. The description correctly focuses on the tool's purpose rather than parameters, earning the baseline score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and identifies the resource as 'domains you own', clearly stating the tool's purpose. However, it doesn't differentiate from other list tools like list_services or list_tlds, so not quite a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_domain_info or list_services. The description lacks context, alternatives, or exclusions, leaving the agent to infer usage solely from the tool name.

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

list_email_foldersList Email FoldersAInspect

List canonical mailbox folders, virtual views, server-derived total/unread counts, and backend capabilities. API: GET /api/emails/{address}/folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
Behavior3/5

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

The description discloses the HTTP method (GET) and the data returned, including counts and capabilities, which helps infer a read-only operation. However, it does not explicitly state authentication requirements, rate limits, or other behavioral constraints, and there are no annotations to supplement this.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences: a clear summary of what the tool does and the API endpoint. Every word earns its place, and the primary action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description does a good job by enumerating the response categories (folders, views, counts, capabilities). It could be enhanced by specifying the response shape or any pagination behavior, but for a simple list tool it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have descriptions in the input schema (100% coverage), so the schema already documents 'domain' and 'slug'. The tool description does not add any additional meaning or context about how these parameters are used, beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool 'List canonical mailbox folders, virtual views, server-derived total/unread counts, and backend capabilities,' which is a specific verb+resource with clear scope. The API endpoint is included, and it is clearly distinguishable from sibling tools like list_email_messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to use this tool over alternatives. The usage is implied by the name and the description of listing folders, but there are no exclusions or references to sibling tools for comparison.

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

list_email_messagesList Email MessagesAInspect

List messages in a system folder or virtual view. Defaults to Inbox. Supports pagination, direction and search filters. API: GET /api/emails/{address}/messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoFilter by recipient address (case-insensitive, partial match)
fromNoFilter by sender address (case-insensitive, partial match)
slugYesMailbox slug
spamNoFilter by spam flag. Pass false to hide spam-flagged inbound; omit to include all.
viewNoVirtual view. Mutually exclusive with folder
limitNoMax messages to return (default 20, max 100)
cursorNoPagination cursor from previous response
domainYesMailbox domain
folderNoSystem folder. Mutually exclusive with view. Defaults to inbox
subjectNoFilter by subject (case-insensitive, partial match)
directionNoFilter by direction: 'in' for received, 'out' for sent
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It mentions the GET API endpoint and default Inbox, which implies a read-only operation, but does not explicitly state read-only behavior, auth requirements, or response details. It adds some context but lacks full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the primary purpose, and contains no unnecessary words. It is efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters and no output schema, the description covers the default folder and high-level filter capabilities but omits details about response structure, pagination cursor usage, and parameter exclusions (e.g., view/folder mutual exclusivity, which is left to the schema). It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description mentions pagination, direction, and search filters, which align with schema parameters, but adds no new meaning beyond what the property descriptions already provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as listing email messages within a system folder or virtual view, with a default to Inbox. This distinguishes it from sibling tools like list_mailboxes (which lists mailboxes) and get_message (which retrieves a single message).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description imparts clear context: it is for listing messages in a folder/view with pagination and filters. It does not explicitly mention when not to use it or suggest alternatives like get_message for single messages, but the scope is unambiguous.

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

list_identitiesList identitiesAInspect

List the free agent identities (.domani.run) you've claimed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'List' implies a read-only operation, and the scope 'you've claimed' adds useful context about the returned data. However, it does not explicitly state that the operation has no side effects, nor does it describe pagination, ordering, or error behavior. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler words. It directly states the action and scope, making it highly efficient and easy to parse. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema, the description is complete. It specifies exactly what is returned (claimed free agent identities) and the format hint (<handle>.domani.run). The tool's simplicity means no additional context is needed; the description fully covers the task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema description coverage is 100% (empty properties). The baseline for zero parameters is 4, and the description does not need to add parameter-level detail since there are none. It correctly avoids inventing unnecessary parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists 'free agent identities (<handle>.domani.run) you've claimed.' It uses a specific verb (list) and resource (claimed identities), and distinguishes from siblings like claim_identity and release_identity by specifying the scope. This is a precise and unambiguous definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for viewing identities the user has already claimed, which distinguishes it from other identity-related tools. However, it does not explicitly mention alternatives or when not to use it. The context is clear but lacks explicit exclusions or alternative guidance, so it earns a 4 rather than a 5.

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

list_invoicesList InvoicesAInspect

List the user's payment invoices. Returns invoice number, amount, date, and links to view/download the PDF. Each invoice is generated by Stripe when a domain is purchased, renewed, or transferred.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax invoices to return (default 20, max 100)
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the return content (invoice number, amount, date, PDF links) and the generation source (Stripe on domain purchases/renewals/transfers). It does not mention ordering, status filters, or pagination beyond the schema's limit parameter, but for a simple read operation this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with the core action front-loaded. Every sentence adds value: the first states the purpose and return fields, the second explains when invoices are created. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description is complete. It explains what the tool returns and why invoices exist, covering the essential context needed for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the only parameter (limit) with min, max, default, and description (100% schema coverage). The description adds no additional parameter semantics, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List the user's payment invoices.' It goes beyond a tautology by specifying the returned fields (invoice number, amount, date, PDF links) and the context (Stripe invoices for domain purchases, renewals, transfers). This distinguishes it from other list tools like list_domains or list_services.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when invoices are generated, implying when this tool would be useful (billing history for domain transactions). However, it does not explicitly contrast with alternative tools or state exclusions, though no direct sibling tool overlaps with this resource.

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

list_mailbox_aliasesList Mailbox AliasesAInspect

List all alias addresses that deliver into a mailbox. API: GET /api/emails/{address}/aliases.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic list operation and gives an API endpoint, but does not disclose potential side effects, required permissions, pagination behavior, or error conditions—significant gaps for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the core purpose, and includes the API endpoint as a useful technical reference. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the schema fully documents parameters, but there is no output schema and no annotations. The description implies the return value (a list of alias addresses) but does not mention pagination, ordering, or potential error responses, leaving some contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with clear descriptions for both 'slug' and 'domain'. The description does not add meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation: 'List all alias addresses that deliver into a mailbox.' This uses a specific verb and resource, and distinguishes the tool from sibling tools like add_mailbox_alias and remove_mailbox_alias.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you need to see all aliases for a mailbox. It does not explicitly exclude alternatives or state when not to use it, but the context is clear and there are no competing list tools for mailbox aliases.

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

list_mailbox_changesList Mailbox ChangesAInspect

Incrementally synchronize a mailbox with an opaque cursor. Call without a cursor before a bounded full snapshot, then replay changes from next_cursor. API: GET /api/email/changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNoOpaque next_cursor from the previous response
mailbox_idYesAccessible mailbox ID
Behavior4/5

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

With no annotations provided, the description carries the burden of disclosure. It explains the opaque cursor behavior, the need to call without a cursor first, and the replay pattern. However, it does not describe the return format or what 'changes' includes, leaving some ambiguity about the response. Still, the core sync behavior is well conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every word adds value. It efficiently explains the sync protocol and includes the API endpoint without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers the main invocation pattern (cursor sequencing) and the API path. It lacks explicit return value details, but the mention of next_cursor implies response includes it. For a sync tool, this is reasonably complete, though a bit more on response contents would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% (cursor and mailbox_id have descriptions; limit does not). The description adds understanding of the cursor as opaque and tied to next_cursor, and hints at bounded full snapshot implying limit usage. However, it does not elaborate on limit's range or default, and the added semantics are moderate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool performs incremental mailbox synchronization using an opaque cursor, which is a specific verb+resource combination. It clearly distinguishes itself from siblings like list_email_messages by focusing on change replay rather than simple listing, and the API endpoint is provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear sequencing instructions: call without a cursor for a bounded full snapshot, then replay changes from next_cursor. It implies the tool is for incremental sync, but does not explicitly mention when not to use it or alternative tools, so it misses the full 'when-not/alternatives' bar.

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

list_mailbox_credentialsList App PasswordsAInspect

List the app passwords for a hosted mailbox (labels + metadata; secrets are shown only once at creation). API: GET /api/emails/{address}/credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesHosted mailbox slug
domainYesHosted mailbox domain
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It goes beyond the schema by disclosing that secrets are shown only once at creation, which is important behavioral context for users expecting to retrieve password values. However, it does not mention permissions, pagination, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 a helpful note about secret visibility plus the API endpoint. Every sentence earns its place with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with two parameters and no output schema, the description is reasonably complete. It explains return scope (labels + metadata) and the secret-once limitation. It lacks explicit return format or field enumeration, but the absence of an output schema makes the description adequately informative for this level of complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for both 'domain' and 'slug'. The description adds minimal parameter-level detail beyond the schema; it reframes them as a hosted mailbox address but does not explain format or constraints beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('app passwords for a hosted mailbox'), clearly distinguishing it from sibling tools like create_mailbox_credential and revoke_mailbox_credential. It also specifies what is returned (labels + metadata), adding valuable scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies a read-only listing operation for mailbox credentials, but it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions such as 'use revoke_mailbox_credential to remove credentials'. Usage context is implicit but not explicitly contrasted with siblings.

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

list_mailboxesList MailboxesAInspect

List all your email addresses. Optionally filter by domain. API: GET /api/emails (or GET /api/email).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoFilter by domain, e.g. mysite.com. Omit to list all
Behavior3/5

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

No annotations are provided, so the description carries the full burden. The verb 'List' indicates a read operation, and 'your email addresses' suggests it's scoped to the authenticated user. However, the description does not explicitly disclose safety, permissions, or any limitations beyond the domain filter. The API endpoint note is interesting but does not add behavioral depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: 'List all your email addresses' immediately states the core purpose. The optional filter and API endpoint note are additional but compact. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description covers the essential purpose and filtering. It could mention that only email addresses are returned or address pagination, but the current level is sufficient for a task with limited complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a clear description for the `domain` parameter. The tool description merely restates 'Optionally filter by domain' without adding new meaning. Since schema description coverage is high, baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all your email addresses' – a specific verb and resource. It also mentions the optional domain filter, which distinguishes it from other list tools. The name and description align perfectly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (to list email addresses) and provides a filter option, but it does not explicitly state exclusions or alternatives. For example, it does not clarify that this lists mailboxes, not aliases, which could be confused with sibling tools like list_mailbox_aliases.

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

list_mail_rulesList Mail RulesAInspect

List a mailbox's inbound filtering rules, in the priority order they are applied. API: GET /api/emails/{address}/rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
Behavior3/5

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

No annotations are present, so description carries the full burden. It usefully discloses priority ordering and the API endpoint, but omits auth requirements, pagination, error behavior, and return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with front-loaded action and resource. The API endpoint adds useful context without unnecessary bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with only 2 parameters and no output schema, but the description still lacks explicit return value information and usage guidance. It is adequate for basic invocation but not fully autonomous decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters (domain, slug) are described, so baseline 3 applies. The description does not add extra parameter-level meaning beyond the API URL's {address} placeholder.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'List', identifies resource 'inbound filtering rules', and adds ordering detail ('priority order they are applied'). Clearly distinguishes from sibling tools like add_mail_rule/remove_mail_rule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied from the verb and resource, but no explicit when-to-use or comparison to alternatives is provided. Agent must infer this is a read-only list operation separate from adding/removing rules.

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

list_negotiationsList NegotiationsAInspect

List your active and past price negotiations (as buyer or seller). Counterparties are anonymized. Requires deals:read scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoFilter by your role
statusNoFilter by status (open|agreed|completed|all)
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It discloses the required OAuth scope (deals:read), states that counterparties are anonymized, and clarifies the list includes both active and past negotiations. This adds valuable context beyond just 'list negotiations'. It does not mention pagination, sorting, or exact return format, but for a list tool with optional filters, the disclosure is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the verb and resource, and every sentence earns its place. It includes the essential purpose, scope, a key behavioral caveat (anonymization), and the required permission. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 optional parameters, no output schema), the description covers purpose, authentication, and a notable behavioral detail. However, because there is no output schema, the description does not explain what fields are returned for each negotiation (e.g., ID, status, timestamps). For a list tool, an explicit statement about the return type would improve completeness, but it is still functionally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage: both parameters have descriptions ('Filter by your role', 'Filter by status') and role has an enum. The description adds minimal new semantic value—'as buyer or seller' simply rephrases the role parameter. The mention of 'active and past' partially overlaps with the status parameter, but it does not clarify how status values map to those categories. Thus, schema does the heavy lifting, and the description barely enhances it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and resource ('price negotiations') with scope ('active and past', 'as buyer or seller'). It distinguishes from siblings like make_offer, respond_to_offer, and finalize_negotiation by focusing on listing rather than performing negotiation actions. Also adds a unique detail (counterparty anonymization) that further clarifies the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: when you need to see your active or past price negotiations as either buyer or seller. It does not explicitly mention alternatives or exclusions, but the sibling tools for negotiation actions (make_offer, respond_to_offer, finalize_negotiation) are clearly distinct. The omission of explicit 'when not to use' guidance prevents a perfect score.

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

list_providersList ProvidersAInspect

List all supported hosting and email providers with their connection methods, target requirements, and setup notes

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly indicates a read-only listing operation and describes the output content. It doesn't mention pagination or auth, but for a simple list tool this is sufficient and no contradictions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that wastes no words. It opens with the core action and resource, then lists the additional details returned. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional filter parameter and no output schema, the description adequately conveys the purpose and output content. It could explicitly mention the category filter, but the schema already covers that, making the description sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes the single optional parameter (category) with its enum values and a clear description ('Filter by category'). The tool description adds no extra semantics beyond the schema, but the schema already covers parameter meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and the resource (supported hosting and email providers), and specifies the content returned (connection methods, target requirements, setup notes). This distinguishes it from sibling list_* tools like list_domains or list_services.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for discovering available providers and their setup details, but does not explicitly state when to use this tool vs alternatives or any exclusion criteria. With many sibling tools, more explicit guidance would be beneficial, but the purpose is clear enough for basic usage.

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

list_servicesList ServicesAInspect

List all supported services for domain verification (Stripe, Google Search Console, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the listing scope but does not disclose any behavioral details such as response format, whether it is read-only, or pagination. Since 'list' implies a read-only operation, it's adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the verb 'List', and includes concrete examples. Zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description tells the agent exactly what it returns—a list of supported domain verification services. The examples provide a sense of the expected values. There are no missing invocation details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to explain. The description confirms that all services are listed without filters, which aligns with the schema. Baseline for zero parameters is 4, and the description adds no unnecessary detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool 'List all supported services for domain verification' – a specific verb+resource with scope. It provides concrete examples (Stripe, Google Search Console) and distinguishes from sibling tools like list_providers which serve a different purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this tool is for listing domain verification services, implying when to use it. It does not explicitly mention alternatives or exclusions, but the purpose is specific enough for an agent to select appropriately.

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

list_suppressionsList SuppressionsAInspect

List addresses on your suppression list - hard bounces and complaints (added automatically) plus manual entries. Sends to these addresses are skipped. API: GET /api/suppressions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax entries to return (default 50, max 100)
cursorNoPagination cursor from a previous response
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It explains that hard bounces and complaints are added automatically and that sends to listed addresses are skipped, giving operational context. It also provides the API endpoint (GET /api/suppressions), implying a non-mutating read operation. The description does not mention auth or rate limits, but for a list operation, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and includes the API path. The first sentence states the main action, the second explains the behavior and context. No unnecessary words, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, but the description adequately indicates that the response contains addresses. It explains the type of entries (hard bounces, complaints, manual) and the effect of being on the list, which is sufficient for an agent to invoke the tool correctly. The lack of pagination details is mitigated by the schema's 'cursor' parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage of the two parameters: 'limit' and 'cursor', each with a description. The tool description does not add any additional parameter semantics beyond what the schema already provides. Since the schema fully documents parameters, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List addresses on your suppression list.' It specifies the resource (suppression list) and the verb (List), and distinguishes from sibling tools like add_suppression and remove_suppression by focusing solely on listing. It also explains what comprises the list, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it lists addresses from the suppression list, including automatic and manual entries, and notes that sends are skipped. This implies the tool is used for viewing purposes, but it does not explicitly state when to use it instead of alternatives like add_suppression or remove_suppression. Context is solid, but explicit exclusions are missing.

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

list_tldsList TLDsAInspect

List all available TLDs with registration and renewal pricing

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort field. Defaults to tld
limitNoMax results to return
orderNoSort order (default: asc)
offsetNoPagination offset
searchNoFilter TLDs containing this string
max_priceNoMaximum registration price in USD
min_priceNoMinimum registration price in USD
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It accurately describes the output (TLDs with pricing) but does not disclose pagination behavior, default sorting, or explicitly state it is a read-only operation. For a simple list tool, this is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the core purpose. It contains no unnecessary words or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward list tool, the description adequately conveys the core purpose and result. Without an output schema or annotations, it could mention that the tool supports filtering and sorting (as the schema implies), but the simplicity of the operation makes this a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific detail beyond mentioning pricing, which is already in the schema. It does not further clarify sort, filter, or pagination parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list), the resource (TLDs), and the key attribute (registration and renewal pricing). It distinguishes from sibling tools like list_domains, which handle user-owned domains, by focusing on the general TLD catalog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for browsing available TLDs and their pricing, but it does not explicitly contrast it with alternatives like list_domains or suggest_domains, nor does it state when not to use this tool. The context is clear but lacks explicit exclusions or alternative recommendations.

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

list_tokensList API TokensAInspect

List all API tokens for your account. Shows token name, masked key, creation date, last used, and expiration status. Expired tokens are marked.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It adds useful context about the output fields (token name, masked key, creation date, last used, expiration status) and notes that expired tokens are marked. This goes beyond a simple listing statement, though it doesn't mention authentication or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the main purpose and then enumerate the returned fields. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless list tool, the description is nearly complete: it states what tokens are listed and what information is shown. However, it omits potential pagination or sorting behavior, which could be relevant for a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description correctly adds no parameter details because none exist, and the schema coverage is 100% with an empty object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('list') and resource ('API tokens') with scope ('for your account'). It clearly distinguishes from sibling tools like create_token and revoke_token, which perform different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for viewing all tokens in the account, but it does not explicitly mention when to use this over alternatives or any exclusions. Since the sibling tools are mostly unrelated (create/revoke), context is clear enough.

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

list_webhook_deliveriesList Webhook DeliveriesAInspect

Get recent delivery attempts for a webhook - shows event type, HTTP status, number of attempts, and any errors. Useful for debugging webhook issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of deliveries to return (default 20)
webhook_idYesID of the webhook to get deliveries for
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses return content but does not explicitly confirm read-only behavior, mention rate limits, or describe error handling. The verb 'get' implies safety, but more explicit behavioral context would strengthen this dimension.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load the purpose and expected output, followed by a targeted use case. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 2 parameters and no output schema, the description adequately covers purpose, use case, and return fields. It could mention ordering or time window, but this is a minor gap given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have schema descriptions (100% coverage), so the description adds little beyond the schema. It does not provide additional argument-level guidance or examples, remaining at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' with a clear resource 'recent delivery attempts for a webhook', and explicitly lists the data shown (event type, HTTP status, attempts, errors). This differentiates it from sibling tools like list_webhooks or replay_webhook_delivery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use the tool ('Useful for debugging webhook issues'), but does not explicitly state when not to use it or suggest alternatives.

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

list_webhooksList WebhooksAInspect

List all webhook endpoints configured for the user's account. Returns URL, subscribed events, and active status for each webhook.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

With no annotations, the description carries the burden of disclosure. It reveals the scope (user's account) and the return fields (URL, subscribed events, active status), indicating a read-only operation. However, it does not discuss pagination, rate limits, or authentication requirements, which are absent but not critical for this simple list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, concise, and front-loaded with the action and resource. Every sentence serves a purpose, covering both the operation and the expected output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no parameters, no output schema), the description adequately covers the return values and scope. It could mention ordering or potential limits, but these are not essential for a straightforward list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema is empty, so no parameter explanation is needed. The description adds no parameter details, but the baseline for zero params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: listing webhook endpoints for the user's account. It specifies the resource (webhook endpoints) and the action (list), and distinguishes itself from sibling tools like create_webhook or list_webhook_deliveries by focusing on the endpoints themselves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating it lists all webhook endpoints for the account, which tells an agent when to invoke it. However, it does not provide explicit guidance on when not to use it or mention alternatives such as list_webhook_deliveries for delivery history.

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

make_offerMake an OfferAInspect

Open an anonymous price negotiation on a listed domain with an initial offer (below or at the asking price). The seller can counter, accept, or decline. Neither side sees the other's identity. Requires deals:write scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
offerYesYour initial offer in USD, e.g. 500
domainYesThe listed domain to negotiate on, e.g. premium.com
messageNoOptional message to the seller
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses key behaviors: the negotiation is anonymous, the offer can be below or at asking price, and the seller can counter, accept, or decline. It also mentions the required scope, which is important for authorization.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place. The main action is front-loaded, followed by negotiation dynamics and the scope requirement. No redundancy or vagueness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the negotiation process, anonymity, and scope requirement. However, since there is no output schema, it does not disclose what the response contains (e.g., a negotiation ID or status). Still, for the tool's complexity, it provides adequate context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already explained. The description adds the context that this is an 'initial offer' and that the offer is in USD, but does not provide additional syntax or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action: 'Open an anonymous price negotiation on a listed domain with an initial offer.' It uniquely identifies the tool's purpose among siblings such as buy_domain or respond_to_offer by highlighting the negotiation aspect and the anonymity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you want to negotiate on a listed domain rather than directly purchase. It also specifies a prerequisite (deals:write scope) and sets expectations with the seller's possible responses. However, it does not explicitly contrast with alternatives like buy_domain.

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

mark_messages_readMark Messages Read/UnreadAInspect

Retry-safely mark messages read or unread and return a durable per-item receipt. Reuse the exact idempotency key after timeouts. API: PATCH /api/emails/{address}/messages/read.

ParametersJSON Schema
NameRequiredDescriptionDefault
readYestrue = mark as read, false = mark as unread
slugYesMailbox slug
domainYesMailbox domain
message_idsYesIDs of messages to mark
idempotency_keyYesCaller-stable key for this exact logical batch
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses retry safety, a durable per-item receipt, and the API endpoint, which is helpful. However, it omits permission requirements, error behavior, and how partial failures are handled, making it moderate transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences, front-loaded with the primary purpose, then a critical usage tip and the API reference. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema or annotations, the description provides a high-level 'durable per-item receipt' but lacks the exact return structure and edge-case behavior (e.g., invalid message IDs, partial failures). It is sufficient for basic understanding but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage of all five parameters, so the baseline is 3. The description adds value by explaining the idempotency key reuse after timeouts, but it does not elaborate on other parameters beyond the schema, which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool marks messages read or unread, with a specific API endpoint and retry-safe behavior. However, it does not explicitly differentiate from sibling tools like update_email_messages, so it stops 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context that this tool is for idempotent read/unread marking and explicitly instructs to reuse the idempotency key after timeouts. It does not mention alternatives or exclusions, so it earns a 4 rather than a 5.

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

plan_domain_adoptionPlan Domain AdoptionAInspect

Read-only planner for an existing domain. Inspects registrar, nameservers, DNS provider, DNSSEC, account state, transfer eligibility, and price. Returns safe next actions. Call this before asking for an EPP code. Connecting is free and leaves registrar and DNS unchanged. Transferring preserves nameservers and never migrates DNS implicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesExisting domain to inspect, e.g. mysite.com
Behavior5/5

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

With no annotations, the description fully carries the burden of behavioral disclosure. It explicitly states the tool is read-only, lists what it inspects, mentions it returns safe next actions, and explains side effects (leaves registrar and DNS unchanged). It also discloses post-tool implications by noting that transferring preserves nameservers and never migrates DNS implicitly, giving the agent a clear understanding of consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each contributing unique value. It front-loads the core purpose ('Read-only planner'), then lists inspection targets, outputs, and usage guidance without redundancy. No filler words or repeated information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description is fully sufficient. It explains what the tool does, what it returns (safe next actions), when to use it, and non-destructive behavior. The context signals show low complexity, and the description fills all necessary gaps, including graceful integration with siblings like get_auth_code.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single parameter 'domain' with a clear description ('Existing domain to inspect, e.g. mysite.com'), achieving 100% schema description coverage. The tool description repeats 'existing domain' but adds no new syntax or format details, so it does not significantly enhance the schema. A baseline of 3 is appropriate because the schema already provides sufficient meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is a 'read-only planner for an existing domain' and lists the specific aspects it inspects (registrar, nameservers, DNS provider, DNSSEC, account state, transfer eligibility, price). This distinguishes it from sibling tools like connect_domain or transfer_domain by emphasizing planning and safe next actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit usage directive: 'Call this before asking for an EPP code,' directly linking it to the pre-transfer workflow. It also clarifies that connecting is free and non-destructive, implying it should be used as a safe first step before any mutating action. This gives clear context and points to an alternative (getting an EPP code).

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

provision_agentProvision Agent IdentityAInspect

Give an AI agent a complete internet identity in one call: buy a domain, set up email, create a mailbox, and (optionally) register a webhook for inbound email. Use this when someone wants to 'give my agent a domain and email' or 'set up an agent from scratch'. Confirm the domain and price with the user first (it charges for the domain). The domain purchase is the only step that can fail the call; mailbox/webhook are best-effort and report warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name for outbound email.
slugNoMailbox local part, e.g. 'hi' for hi@domain. Default 'hi'.
yearsNoRegistration years (1-10, default 1).
domainYesDomain to give the agent, e.g. myagent.run. Bought if not already owned.
webhook_urlNoOptional HTTPS URL to receive inbound email + domain events.
payment_methodNoHow to pay for the domain: card, usdc, or balance (marketplace credit).
Behavior5/5

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

With no annotations, the description fully carries the burden and does so well. It discloses the financial impact ('it charges for the domain'), the need for user confirmation ('Confirm the domain and price with the user first'), and partial-failure behavior ('domain purchase is the only step that can fail; mailbox/webhook are best-effort and report warnings'). These are meaningful behavioral traits beyond simple read/write status.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each serving a distinct purpose: what the tool does, when to use it, a critical user-confirmation warning, and failure-mode behavior. It is front-loaded with the primary purpose and contains no filler or redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool's composite complexity and absence of an output schema, the description covers all essential user-facing aspects: purpose, usage trigger, cost, confirmation requirement, and partial-failure semantics. It also implicitly distinguishes itself from simpler sibling tools by framing the full provisioning workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning to individual parameters; it only references the domain and price conceptually. No additional parameter semantics are provided beyond the schema's already detailed descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Give an AI agent a complete internet identity in one call' and enumerates the components (buy domain, set up email, create mailbox, optionally register webhook). This distinguishes it from siblings like buy_domain or create_mailbox by emphasizing the composite one-call provisioning nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit usage context: 'Use this when someone wants to give my agent a domain and email or set up an agent from scratch.' However, it does not mention when not to use the tool or suggest alternatives (e.g., buy_domain for domain-only purchases), so it stops short of full exclusion guidance.

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

release_identityRelease identityAInspect

Release a free identity handle so it's available again.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe handle to release
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only says the handle becomes available again. It does not mention whether the operation is destructive, reversible, requires ownership, or what happens to associated data, leaving significant ambiguity for a mutating action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that avoids any wasted words. It states the action and the outcome efficiently without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the tool has only one parameter and no output schema, the description lacks essential context for a mutating operation, such as reversibility, required prerequisites, or side effects. Without annotations, this brevity leaves the agent under-informed about the tool's full impact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully documents the sole parameter 'slug' with the description 'The handle to release', so the schema coverage is 100%. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Release') and resource ('free identity handle'), making the tool's purpose clear. It also implicitly distinguishes itself from sibling tools like claim_identity and update_identity by indicating the handle becomes available again.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates the tool is for freeing an identity handle so it can be reused, which provides context for when to use it. However, it does not explicitly mention alternatives or exclusions, such as 'use claim_identity to acquire a handle'.

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

remove_mailbox_aliasRemove Mailbox AliasAInspect

Remove an alias address from a mailbox. Email to that address stops being delivered. API: DELETE /api/emails/{address}/aliases/{alias}.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
aliasYesAlias address to remove - a bare slug or full address
domainYesMailbox domain
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It discloses the key behavioral consequence—delivery stops—and even gives the exact API endpoint. However, it omits other behavioral traits such as required permissions, reversibility, or edge-case behavior (e.g., removing a non-existent alias or the last alias), leaving some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two sentences. The first states the action and its effect, and the second adds the API endpoint. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple removal tool with fully described parameters and no output schema, the description covers the core behavior and endpoint. It is slightly incomplete regarding prerequisites or additional side effects, but overall it provides sufficient context for a single-purpose operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage: each parameter is described ('Mailbox slug', 'Alias address to remove - a bare slug or full address', 'Mailbox domain'). The description adds no additional parameter-level context, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'remove' and the resource 'alias address from a mailbox', and goes further to explain the direct consequence: 'Email to that address stops being delivered.' This distinguishes it well from sibling tools like add_mailbox_alias and list_mailbox_aliases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this tool is used for removing aliases and that delivery will cease, implying when to use it. However, it does not explicitly name alternatives or exclusion conditions, though the sibling tool set makes the distinction obvious.

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

remove_mail_ruleRemove Mail RuleBInspect

Remove an inbound filtering rule from a mailbox. API: DELETE /api/emails/{address}/rules/{ruleId}.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
rule_idYesThe rule ID to remove
Behavior2/5

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

With no annotations, the description carries the full burden. It only says 'Remove' and shows the HTTP DELETE method, but does not disclose that the operation is destructive, permanent, or has side effects on email filtering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action and includes the API endpoint, with no unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a mutation tool with no annotations and no output schema. The description fails to mention important context such as the permanent nature of the removal, whether the rule must exist, or how the rule_id is obtained (e.g., from list_mail_rules).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides clear descriptions for all three parameters (slug, domain, rule_id) with 100% coverage, so the description adds minimal semantic value beyond what's already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Remove') and resource ('inbound filtering rule'), and distinguishes this from sibling tools like add_mail_rule and list_mail_rules by focusing on removal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for deleting mailbox rules, but does not explicitly state when to use it vs alternatives (e.g., list_mail_rules to find rule_id) or mention prerequisites/exclusions.

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

remove_suppressionRemove SuppressionAInspect

Remove an address from your suppression list so you can email it again (e.g. after the recipient fixed their mailbox). API: DELETE /api/suppressions/{address}.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEmail address to remove from the suppression list
Behavior3/5

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

With no annotations, the description must carry the burden of disclosing behavior. It states the core action (removing from suppression list) and that it enables future emailing, and it includes the HTTP DELETE method, implying destructive intent. However, it does not explicitly state whether the removal is permanent, what happens if the address is not on the list, or any side effects. This is adequate but not rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, both highly informative. The first sentence states the purpose and action, and the second provides the exact API endpoint. No wasted words; it is front-loaded with the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is largely complete: it explains what the tool does, why, and provides the API mapping. It lacks explicit error-handling or idempotency details, but such information is not critical for this simple delete operation. Slight gap is not mentioning that the address must already be on the suppression list, but this is inferable from context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage of the single parameter 'address' with a clear description. The tool description adds contextual meaning ('so you can email it again') but does not add new details about the parameter beyond what the schema states. Baseline 3 applies due to high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Remove an address'), the resource ('your suppression list'), and the purpose ('so you can email it again'). It clearly distinguishes from sibling tools like add_suppression and list_suppressions by focusing on removal with a concrete use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context for when to use this tool: when you want to re-enable emailing an address that previously bounced (e.g., after the recipient fixed their mailbox). It does not explicitly mention when not to use it or contrast it with add_suppression, but the example implies the appropriate scenario.

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

renew_domainRenew DomainBInspect

Renew a domain you own for additional years. Always confirm with the user before calling this.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearsNoNumber of years to renew (1-10, default 1)
domainYesDomain to renew, e.g. mysite.com
max_priceNoCeiling in USD for the renewal charge. Fails with PRICE_ABOVE_MAX (nothing charged) if the real price is above it.
payment_txNoTransaction hash of a USDC payment already sent on-chain.
payment_chainNoChain the USDC payment was sent on.
payment_methodNoPayment method: 'card' to charge card on file, 'usdc' to pay with USDC. Overrides the user's default preference for this request.
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention that this is a paid transaction involving charges to the user's payment method, that it has failure conditions (like PRICE_ABOVE_MAX), or that it will extend the domain's expiration date. The confirmation instruction is helpful, but critical financial implications are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with the purpose front-loaded and no wasted words. The second sentence adds an actionable reminder to confirm with the user, which is necessary for a financial mutation tool. It is appropriately sized for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having six parameters, two enums, and no output schema, the description is minimal and omits essential context. It does not explain payment processing, success/failure return values, ownership verification, or how this tool relates to similar domain operations. For a tool that performs a paid action, this level of description is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% description coverage for all parameters, including details like default years, payment method enums, and max_price behavior. The description adds little beyond the phrase 'additional years' which somewhat corresponds to the years parameter. Since the schema does the heavy lifting, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: 'Renew a domain you own for additional years.' It uses a specific verb ('renew') and resource ('domain you own'), which distinguishes it from sibling tools like acquire_domain or buy_domain. The ownership qualifier prevents confusion with domain acquisition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context (renewing an already-owned domain) and includes an important behavioral instruction ('Always confirm with the user before calling this'). However, it does not explicitly state when to use this tool versus alternatives, such as set_auto_renew or transfer_domain, nor does it provide exclusionary guidance.

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

replay_webhook_deliveryReplay Webhook DeliveryAInspect

Redeliver one immutable webhook event. Requires a caller-stable idempotency key; retries with the same key return the same receipt and never send twice.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_idYesWebhook ID
delivery_idYesOriginal delivery ID from list_webhook_deliveries
idempotency_keyYesStable unique key for this replay operation
Behavior4/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It transparently reveals that the tool is idempotent ('same key return the same receipt') and guarantees no duplicate sends ('never send twice'), which are essential behavioral traits for a replay operation. It does not cover auth needs or failure modes, but the disclosed idempotency semantics are highly valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the core purpose, and packs critical behavior into the second sentence without redundancy. Every clause earns its place, making it exceptionally concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three required parameters and no output schema, the description covers the essential context: what it does, the idempotency requirement, and the guarantee against double-sending. It lacks detail on what the 'receipt' contains and what happens on failure, but these are secondary to successful invocation. Given the absence of annotations, the description is fairly complete, though a brief note on the response would push it to a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% parameter coverage, so the baseline is 3. The description enhances this by explaining that the idempotency_key must be 'caller-stable' and describing the retry semantics, which adds practical meaning beyond the schema's 'Stable unique key for this replay operation.' This pushes it to a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Redeliver one immutable webhook event,' which pairs a specific verb (redeliver) with a specific resource (webhook event) and a critical qualifier (immutable). This clearly differentiates it from sibling tools like create_webhook, delete_webhook, and list_webhook_deliveries, leaving no ambiguity about its function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is for redelivering a webhook event and stresses the necessity of a caller-stable idempotency key, including guidance on retry behavior ('retries with the same key return the same receipt and never send twice'). However, it does not explicitly state when to prefer this over alternatives or when not to use it, so it stops short of a 5.

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

reply_to_messageReply to EmailAInspect

Reply to an email message. For shared human-agent mailboxes, first heartbeat composing presence and pass coordination plus a stable idempotency_key; the server atomically rejects stale/double replies. Threading headers are automatic. API: POST /api/emails/{address}/messages/{id}/reply.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoAdditional CC recipients (overrides auto-CC when all=true)
allNoReply-all: auto-CC original To and CC recipients (default: false)
htmlNoHTML reply body
slugYesMailbox slug
textNoPlain text reply body
domainYesMailbox domain
message_idYesID of the message to reply to
coordinationNoCompose lease and reply generation returned by heartbeat_conversation_presence
idempotency_keyNoRequired with coordination; reuse this exact key after timeouts
Behavior4/5

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

Since no annotations are provided, the description carries the burden and discloses meaningful behavioral traits: the server atomically rejects stale/double replies when coordination and idempotency_key are used, and threading headers are automatic. It also notes the API endpoint. However, it does not discuss error scenarios, permissions, or state mutation beyond the reply itself, so it's informative 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, with the core purpose in the first sentence and supporting details in the next two. No redundant phrasing; every clause adds context about coordination, idempotency, or automatic threading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 9 parameters and a nested coordination object, the description covers the primary workflow (reply, coordination, idempotency) but omits specifics like recipient selection behavior or when coordination is unnecessary. Given no output schema, return values aren't explained, but the essential operational constraint is stated clearly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 value by explaining why coordination and idempotency_key exist—to prevent stale/double replies atomically—which is not fully obvious from the schema alone. It also clarifies that threading headers are handled automatically, reducing the need for agents to construct them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Reply to an email message,' a specific verb and resource that clearly states the action. It also notes threading headers are automatic, distinguishing it from send_email or forward_message by focusing on the reply action. The API endpoint reinforces the operation's identity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete guidance for shared human-agent mailboxes: heartbeat presence, pass coordination, and a stable idempotency_key. It does not explicitly contrast with sibling tools like send_email or forward_message, but the coordination and atomic-rejection details clarify when the tool's special behaviors apply. This is clear context without explicit exclusions.

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

resend_email_verificationResend Email VerificationAInspect

Resend a verification email for your WHOIS contact email. If the contact email matches your login email, it's already verified. Rate limited to once per 15 minutes.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail to verify (defaults to your contact email)
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses a key behavioral trait: the 15-minute rate limit. It also explains a precondition (already verified if emails match), which helps the agent predict outcomes. This is more transparent than many mutation tools, though it doesn't cover potential errors or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loaded with the primary purpose, and contains no filler. Each sentence adds value: purpose, a logical condition, and a rate limit. This is highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description covers the essential aspects: what it does, when it's not needed, and a rate limit. It doesn't explain what happens on success or failure, but the tool's simplicity and lack of output schema make this acceptable. Slightly more detail about the email-sending behavior would push it to a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (the 'email' parameter is described as 'Email to verify (defaults to your contact email)'). The description adds minor semantic context by specifying 'your WHOIS contact email,' but it doesn't significantly enhance the parameter's operational meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Resend a verification email for your WHOIS contact email.' It uses a specific verb and resource, and the additional context about already-verified emails distinguishes it from generic email-sending tools. No sibling tool has a similar purpose, so it is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context: it indicates when the tool is unnecessary ('If the contact email matches your login email, it's already verified') and notes the rate limit ('Rate limited to once per 15 minutes'). However, it doesn't explicitly mention alternative tools or when to use them, leaving a small gap.

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

respond_to_broker_inquiryRespond to Broker Inquiry (Owner)AInspect

Owner-agent path: respond to a broker's acquisition inquiry using the token from the outreach email in your inbox - fully autonomous, no email round-trip, no magic-link. offer/counter names a price and opens/advances an anonymous negotiation; accept agrees to the buyer's current offer on the table; decline/opt_out ends it. Token-authorized (no scope needed).

ParametersJSON Schema
NameRequiredDescriptionDefault
priceNoYour asking price in USD (required for offer/counter)
tokenYesThe outreach token from your inquiry email (reply-to is broker+<token>@)
actionYesoffer/counter to name a price; accept to take the buyer's current offer; decline to refuse; opt_out to stop contact
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the behavioral effects of each action (offer/counter opens/advances negotiation, decline/opt_out ends it) and notes token authorization without scope. It does not mention post-action responses or reversibility, but core behavior is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, with three dense sentences that each add value: the primary use case, the action semantics, and the auth model. There is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's modest complexity (3 parameters, no output schema), the description covers essential context: purpose, action semantics, token source, and auth. It does not discuss return values or failure modes, but those are not critical for this straightforward action tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 by specifying that price is required only for offer/counter and explaining that accept agrees to the buyer's current offer, which clarifies the purpose of parameters beyond their raw schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: 'respond to a broker's acquisition inquiry' and distinguishes it from siblings by noting the 'Owner-agent path' and autonomous token-based flow. It also enumerates distinct actions (offer/counter, accept, decline/opt_out), giving a clear scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context for when to use: when you have a broker inquiry token from an outreach email and want to respond without email/magic-link. It implicitly contrasts with alternatives but does not explicitly name sibling tools, so guidance is useful though not exhaustive.

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

respond_to_offerRespond to OfferAInspect

Counter, accept, or decline the current offer in a negotiation when it's your turn. 'accept' locks the price at the amount on the table; the buyer then finalizes payment. Requires deals:write scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesYour response
counterNoNew amount in USD (required when action=counter)
messageNo
negotiation_idYesThe negotiation ID
Behavior4/5

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

With no annotations, the description discloses that accept locks the price and requires deals:write scope, adding meaningful behavior beyond a simple 'responds' statement. It doesn't detail consequences of counter/decline, but conveys key relevant info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and resource, no wasted words. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, when to use, a key behavioral consequence, and a permission requirement. It doesn't mention return values or outcomes of counter/decline, but is complete enough for a well-scoped negotiation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes 3 of 4 parameters; the description adds context about accept's pricing behavior but doesn't explain counter parameter semantics beyond what the schema provides. It doesn't fully compensate for the gap, but overall parameter meaning is clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs (counter, accept, decline) and identifies the resource (current offer in a negotiation) and timing ('when it's your turn'), clearly distinguishing it from siblings like make_offer and finalize_negotiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes a clear context ('in a negotiation when it's your turn') and explains what accept does, but doesn't explicitly name alternatives or exclusions. The implied usage guidance is sufficient for correct selection.

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

restore_dnsRestore DNSAInspect

Restore DNS records from the server-side backup (created by snapshot_dns or during transfers). Uses diff to avoid duplicates. Call snapshot_dns first to create a backup. Pass dry_run to preview what would be applied without writing.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to restore DNS for
dry_runNoPreview only - returns would_apply without writing anything
Behavior4/5

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

No annotations, so description carries the burden. It discloses the use of diff to avoid duplicates, the need for a prior snapshot, and dry_run behavior (preview without writing). Does not fully explain side effects on existing records, but gives meaningful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all valuable, front-loaded with primary purpose, then key mechanism and usage guidance. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 2 simple params, no output schema, and no nested objects, the description covers prerequisites, behavior, and dry_run. The only minor gap is what happens to existing records on a non-dry-run restore, but overall it is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description reinforces dry_run's purpose but adds little beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Restore DNS records') and the source ('server-side backup'), distinguishing it from sibling tools like snapshot_dns and set_dns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to call snapshot_dns first and mentions dry_run for preview, providing clear context. Does not explicitly name alternatives or exclusions but the prerequisite implies usage scenario.

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

revoke_mailbox_credentialRevoke App PasswordAInspect

Revoke an app password on a hosted mailbox. Any mail client using it stops connecting. API: DELETE /api/emails/{address}/credentials/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesHosted mailbox slug
domainYesHosted mailbox domain
credential_idYesApp password id from list_mailbox_credentials
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It explicitly states that 'any mail client using it stops connecting', which is a key consequence. The DELETE method implies irreversibility, and this context goes beyond the bare minimum.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with no filler. It leads with the purpose, provides the critical impact, and ends with the API reference. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the description covers the action and effect. The mapping from domain/slug to the {address} in the endpoint is not explicitly explained, but the schema hints make it inferable. This is nearly complete for a straightforward revoke operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% coverage with descriptions for all three parameters. The description adds only the API endpoint pattern, which does not meaningfully enhance parameter understanding beyond what the schema provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Revoke' and identifies the resource as 'an app password on a hosted mailbox'. It clearly distinguishes from sibling tools like revoke_token and create_mailbox_credential by focusing on the exact object and action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied by the action itself, but the description does not explicitly state when to use this tool vs alternatives such as revoke_token, nor does it mention prerequisites like obtaining the credential ID via list_mailbox_credentials. No exclusions or alternative guidance is provided.

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

revoke_tokenRevoke API TokenAInspect

Revoke an API token immediately. The token will stop working. Use list_tokens to find token IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYesID of the token to revoke (from list_tokens)
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the immediate effect and that the token will stop working, but doesn't mention irreversibility, required permissions, or side effects. This is adequate but lacks depth for a destructive action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the core action and effect. Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with a single parameter and no output schema, the description adequately covers what it does and how to prepare. It doesn't describe return behavior, but that's not critical for a revocation action. Minor gap: could mention success/failure indicators, but overall complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents token_id with a helpful description ('ID of the token to revoke (from list_tokens)') and coverage is 100%. The description reinforces the origin of the ID but adds no additional semantic detail beyond the schema, warranting the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Revoke') and the resource ('API token'), with a specific effect ('The token will stop working'). This distinguishes it from siblings like create_token and list_tokens, and even from revoke_mailbox_credential by explicitly naming 'API token'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear prerequisite: using list_tokens to find token IDs. This contextual guidance helps the agent know how to obtain required input. However, it doesn't explicitly state when not to use the tool or name alternative revocation paths, so it stops 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.

rotate_email_webhook_secretRotate Email Webhook SecretAInspect

Regenerate the HMAC signing secret for a mailbox webhook. The old secret is immediately invalidated. API: POST /api/emails/{address}/webhook/rotate.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It notes the old secret is immediately invalidated, which is critical. However, it does not mention return values, permissions, or other side effects, so disclosure is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences plus an API endpoint, with no redundant information. It is front-loaded with the core action and important side effect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple two-parameter schema and lack of output schema, the description covers the purpose and a key behavioral trait, but it does not explain what the response contains (e.g., whether the new secret is returned). This leaves a gap for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters ('Mailbox slug' and 'Mailbox domain'). The description adds no additional parameter context beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Regenerate the HMAC signing secret') and the resource ('for a mailbox webhook'). It distinguishes from sibling webhook tools by focusing on rotation and mentions immediate invalidation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (rotating the webhook secret) but does not explicitly name alternatives or mention exclusions. The context is unambiguous, but no alternative tools are referenced.

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

sell_domainSell DomainAInspect

List a domain you own for sale on the Domani marketplace. Buyers can purchase it directly via the API. The domain must be active and not already listed. Requires domains:write scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesSale price in USD (e.g. 5000)
domainYesDomain to list for sale, e.g. premium.com
descriptionNoOptional listing description
Behavior3/5

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

With no annotations provided, the description carries the transparency burden. It discloses important prerequisites (active domain, not already listed) and the required access scope ('domains:write'). It also notes that buyers can purchase directly via the API. However, it does not disclose post-listing behavior such as whether the domain becomes immediately transferable, whether fees apply, or how reversible the action is via 'unsell_domain'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, each adding essential information: action, buyer behavior, and prerequisites/scope. There is no fluff or repetition, and the most important details are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a marketplace listing tool, the description covers the core action and prerequisites but omits important contextual details: lifecycle after listing (e.g., how buyers complete purchase, transfer mechanics), possible fees or pricing constraints, and relationship to sibling tools like 'update_listing' or 'set_listing_price'. The lack of an output schema and annotations increases the need for more context, which is only partially met.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all three parameters (price, domain, description), so the schema provides the parameter meaning. The tool description adds no additional parameter-level detail beyond the schema, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List a domain you own for sale on the Domani marketplace.' It uses a specific verb ('List') and resource ('domain'), and adds selling context. It distinguishes itself from siblings like 'unsell_domain' and 'update_listing' by focusing on initial listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: when you own a domain, want to list it for sale, and the domain is active and not already listed. It also states the required scope. However, it does not explicitly mention alternatives like 'update_listing' for already-listed domains, so it lacks explicit exclusions.

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

send_emailSend EmailAInspect

Send an email from one of your mailboxes. Specify domain and slug to identify the sender mailbox. Supports text and/or HTML body, CC/BCC, attachments (base64), and threading via In-Reply-To/References. Rate limited to 100 sends per hour per mailbox. API: POST /api/emails/{address}/send.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipient(s)
toYesRecipient email address(es)
bccNoBCC recipient(s)
htmlNoHTML body
slugYesSender mailbox slug, e.g. hello or k7x9m2
textNoPlain text body
domainYesSender mailbox domain, e.g. mysite.com or domani.run
subjectNoEmail subject line
reply_toNoReply-to email address
referencesNoSpace-separated Message-ID chain (for threading)
attachmentsNoFile attachments (max 10, max 40MB total)
in_reply_toNoMessage-ID of the email being replied to (for threading)
idempotency_keyNoUnique key to prevent duplicate sends. If a message with this key was already sent from this mailbox, the original result is returned.
allow_risky_contentNoDeprecated compatibility field. Public HTTPS third-party auth links are allowed with a warning; objective safety blocks cannot be overridden
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It adds important context: rate limit (100 sends/hour), API endpoint, threading support, and attachment encoding. However, it does not describe the response format or error behavior, which would be useful for a send operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences that front-load the purpose and then list key capabilities in a compact manner. Every clause adds useful information, and there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count (14), no output schema, and no annotations, the description is notably complete. It covers the essential purpose, sender identification, supported body types, recipients, attachments, threading, rate limits, and API endpoint. It omits response details and error cases, but remains sufficient 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds semantic grouping beyond individual schema descriptions by explaining that domain and slug identify the sender mailbox, and by mentioning base64 for attachments and In-Reply-To/References for threading. This adds value without repeating every schema field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Send' and the resource 'email from one of your mailboxes', specifying the sender via domain and slug. It also enumerates key features (text/HTML, CC/BCC, attachments, threading) that distinguish it from sibling tools like reply_to_message or forward_message.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does and its capabilities, but does not explicitly state when to use this tool versus alternatives such as reply_to_message or forward_message. The context is clear for sending a new email, but no exclusions or alternative guidance is provided.

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

set_auto_renewSet Auto-RenewAInspect

Enable or disable auto-renew for a domain you own. When enabled, the domain will be renewed automatically before expiry.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to configure
enabledYestrue to enable auto-renew, false to disable
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose a key behavioral aspect: when enabled, the domain will be renewed automatically before expiry. This explains the effect of the operation. However, it omits potential details like whether disabling stops an already scheduled renewal, whether the domain must be in a specific status, or any billing implications. For a simple boolean toggle, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action ('Enable or disable auto-renew'), and contains no redundant information. Every word adds value, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, with no output schema and no annotations. The description explains the core behavior (automatic renewal before expiry) and the ownership prerequisite, which is the essential context. It does not describe return value side effects, but that is largely unnecessary for a straightforward setter. The description is complete enough for an agent to correctly select and invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with domain and enabled already fully described in the schema. The description rephrases the enabled parameter ('enable or disable') but adds no new semantic detail beyond what the schema provides. Baseline score of 3 is appropriate because the schema handles parameter clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('enable or disable auto-renew') and the resource ('a domain you own'), making the tool's purpose unambiguous. It also distinguishes itself from sibling tools like renew_domain, which performs a one-time renewal, whereas this tool configures automatic renewal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: it applies to domains you own and affects automatic renewal behavior. However, it does not explicitly contrast with alternatives such as renew_domain or provide conditions like 'use this if you want the domain to renew automatically, use renew_domain for a one-time renewal.' The prerequisite 'a domain you own' is useful but incomplete guidance.

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

set_catch_allSet Catch-AllAInspect

Route any email sent to an unmatched address on a domain into a designated mailbox. Anything that does not match a mailbox, subaddress, or alias lands in the catch-all. The mailbox must already exist on the domain. API: PUT /api/domains/{domain}/email/catch-all.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to set the catch-all on, e.g. mysite.com
mailboxYesCatch-all mailbox - a bare slug ('inbox') or full address ('inbox@mysite.com') on this domain
Behavior3/5

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

No annotations are provided, so the description carries the burden. It clarifies the routing behavior and prerequisite, but does not disclose side effects like whether an existing catch-all is overwritten or what errors occur. Lacks depth on potential mutations and edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with the main action. Each sentence adds unique value: action, scope, and prerequisite/API endpoint. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers the core usage well. It includes the API endpoint and prerequisite. Missing some behavioral details (e.g., overwrite behavior) but overall adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters fully described (domain example, mailbox formats). The description adds minimal extra value beyond the schema, mostly restating the prerequisite. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Route any email sent to an unmatched address on a domain into a designated mailbox') with a clear resource (catch-all on a domain). It distinguishes from siblings like clear_catch_all and other email tools by defining the exact scope of unmatched addresses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context about when this applies: 'Anything that does not match a mailbox, subaddress, or alias lands in the catch-all.' It also notes a prerequisite (mailbox must already exist). However, it does not explicitly mention alternatives or when not to use it.

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

set_contactSet ContactAInspect

Set your WHOIS contact information (recommended for ICANN compliance, required before transfers). You can purchase domains without setting contact info first - a default contact is used until you set your own.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity
emailYesContact email address
phoneYesPhone in +CC.NUMBER format, e.g. +1.5551234567
stateYesState or province
countryYesISO 3166-1 alpha-2 country code, e.g. US, GB, FR
address1YesStreet address line 1
address2NoStreet address line 2 (optional)
org_nameNoOrganization name (optional)
last_nameYesLast name
first_nameYesFirst name
postal_codeYesPostal/ZIP code
Behavior3/5

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

No annotations are provided, so the description carries the transparency burden. It adds useful context about the default contact and when the setting is mandatory, but it does not disclose potential side effects like overwriting an existing contact, permission requirements, or whether the contact is verified. This is a moderate disclosure for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the verb and object, and no wasted words. The explanation about purchase timing is relevant and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward setter with fully documented schema parameters, the description provides enough context for tool selection and general usage timing. It does not describe return values, but no output schema exists and such detail is less critical here. The absence of annotations is partially compensated by the explicit guidance on when to use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no parameter-specific detail beyond grouping them as 'WHOIS contact information,' which is appropriate but does not elevate the score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Set') and resource ('your WHOIS contact information'), distinguishing it from the sibling tool set_whois_privacy which handles privacy settings rather than contact data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it (for ICANN compliance and before transfers) and when it's not required (you can purchase domains without setting contact info first, using a default contact). This provides clear usage context and even notes the default behavior as an alternative.

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

set_dnsSet DNS RecordsAInspect

Upsert DNS records for a domain you own, at the rrset level: records at a (type, name) you send replace that rrset; rrsets you don't mention are preserved (NS never touched). An automatic zone backup is taken before every write. Best practice: call get_dns first and pass its zone_version so a concurrent change fails with DNS_VERSION_CONFLICT instead of being clobbered. Common patterns: Vercel (A @ 76.76.21.21), GitHub Pages (CNAME @ user.github.io), Cloudflare Pages (CNAME @ project.pages.dev)

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to set DNS records for
recordsYesArray of DNS records to set
zone_versionNoThe zone_version from get_dns - rejects the write with DNS_VERSION_CONFLICT if the zone changed since
Behavior5/5

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

With no annotations, the description carries the full burden and excels. It discloses the upsert semantics (replaces entire rrset), the preservation of unmentioned rrsets, that NS records are never touched, that an automatic zone backup is taken before every write, and the concurrency conflict behavior (DNS_VERSION_CONFLICT). This is rich behavioral context beyond what a schema could convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: the first explains core behavior, the second mentions backup, the third gives concurrency best practice and real-world usage patterns. No fluff or redundancy. Information is front-loaded with the most critical semantics first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers the essential context: what it does, how it behaves, what safety measures exist (backup), how to avoid conflicts, and what typical use cases look like. It even mentions the required ownership condition. The only minor omission is explicit statement of return values, but this is not critical given the overall completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The description adds meaningful context beyond the schema: the rrset-level replacement semantics for the records array, the purpose of zone_version (optimistic concurrency), and the domain ownership requirement. It doesn't just repeat schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Upsert DNS records for a domain you own, at the rrset level.' It specifies the resource (DNS records for owned domains) and the behavior (replace/upsert at rrset level), distinguishing it from related tools like set_nameservers or get_dns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance: 'Best practice: call get_dns first and pass its zone_version so a concurrent change fails with DNS_VERSION_CONFLICT.' It also clarifies scope ('rrsets you don't mention are preserved, NS never touched') and gives common patterns. However, it doesn't name alternative tools for different scenarios (e.g., when to use clone_dns or set_nameservers), so it's clear but not exhaustive.

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

set_domain_redirectSet Domain RedirectAInspect

Forward a domain you own to another URL (e.g. brand.com -> brand.dev). The domain must point at domani's nameservers/parking IP. Permanent (308) by default, or temporary (307). Send an empty url to stop forwarding.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesTarget URL to forward to, e.g. https://brand.dev. Empty string clears the redirect.
domainYesThe domain to forward (must be one you own)
permanentNotrue = permanent redirect (default), false = temporary
Behavior4/5

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

No annotations are present, so the description carries the full burden. It discloses key behavioral traits: permanent redirect (308) by default, temporary (307) option, and that an empty URL clears the redirect. This goes beyond the schema and gives the agent actionable expectations about side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, each earning its place: the first states the core purpose, the second states the prerequisite, and the third explains status codes and how to stop. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward mutation tool with 3 parameters and no output schema or annotations, the description covers the essential aspects: action, prerequisites, default behavior, and clearing. It omits return value details, but given the simplicity of the operation, the description is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% coverage with clear parameter descriptions. The description adds value by elaborating on the permanent parameter (default true, 308 vs 307) and providing a concrete example for the url parameter, enhancing semantic understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: forwarding a domain the user owns to another URL, with a concrete example (brand.com -> brand.dev). It distinguishes itself from sibling DNS/email tools by focusing on domain-level redirects, not DNS records or email forwarding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides an explicit prerequisite (domain must point at domani's nameservers/parking IP) and explains how to stop forwarding (send empty url). However, it doesn't explicitly name alternatives or exclusions, such as when to use set_dns instead, so guidance is clear but lacks direct comparisons.

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

set_email_forwardSet Email ForwardAInspect

Configure inbound handling for a mailbox: forward incoming emails to another address (in addition to storing) and/or drop spam-flagged messages. Set forward_to to null to remove forwarding. API: PATCH /api/emails/{address}.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
drop_spamNoIf true, spam-flagged inbound is dropped (not stored or webhooked)
forward_toNoEmail address to forward to, or null to remove
Behavior4/5

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

With no annotations, the description carries the burden of disclosure. It clearly states that forwarding is 'in addition to storing' and that setting forward_to to null removes forwarding, which are key behavioral details. It also gives the API endpoint. It doesn't mention permissions or the ordering of forwarding vs. spam filtering, but the core behaviors are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose, and includes the API endpoint as an efficient extra. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderate-complexity tool with no annotations or output schema, the description covers the primary purpose, both configuration actions, and the removal mechanism. It doesn't describe the combined effect of setting both flags or the response shape, but the tool is simple enough that the description is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all four parameters. The description reinforces the forward_to null behavior but adds no new semantic meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses 'Configure inbound handling for a mailbox' as a clear verb+resource, then specifies two distinct behaviors (forwarding and spam dropping). This makes it easy to distinguish from sibling tools like forward_message (which forwards individual messages) and set_catch_all (which handles catch-all routing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on what the tool does and the two configuration options, making usage intent obvious. However, it doesn't explicitly mention when to use this over alternatives (e.g., forward_message for per-message forwarding), so it lacks explicit exclusions.

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

set_email_webhookSet Email WebhookAInspect

Set or remove the inbound webhook URL for a mailbox. When set, incoming emails are POSTed to this URL in real-time with HMAC-SHA256 signing. Must be HTTPS. Set to null to remove. API: PUT /api/emails/{address}/webhook or DELETE /api/emails/{address}/webhook.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
webhook_urlYesHTTPS webhook URL, or null to remove
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals key behavior: real-time POSTing of incoming emails, HMAC-SHA256 signing, and the HTTPS requirement. It also indicates that null removes the webhook. This goes well beyond the schema, though it does not address consequences like overwriting an existing webhook or authentication details beyond HTTPS.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: two sentences plus an API reference. It front-loads the core purpose, then explains behavior and removal semantics. The API endpoints provide useful developer context without unnecessary fluff. Every sentence contributes new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with no output schema, the description covers the essential behavior: webhook triggering, signing, HTTPS, and removal. It does not mention error conditions, secret management (though sibling rotate_email_webhook_secret exists), or idempotency, but these are not critical for basic usage. The description is complete enough 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.

Parameters3/5

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 'Must be HTTPS' and 'Set to null to remove', but these are already present in the schema's parameter descriptions. The API endpoint note is an implementation detail, not parameter semantics. Therefore, the description adds no meaningful information beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Set or remove the inbound webhook URL for a mailbox', which clearly identifies the action (set/remove) and the resource (mailbox inbound webhook). This distinguishes it from sibling tools like create_webhook/update_webhook/delete_webhook, which are generic webhook tools. The description also explicitly covers both setting and removal, leaving no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: for configuring a mailbox's inbound webhook URL. It states that when set, incoming emails are POSTed with HMAC-SHA256 signing and must be HTTPS. It also instructs 'Set to null to remove', providing clear operational guidance. However, it does not explicitly contrast with generic webhook tools or mention alternative tools like test_email_webhook, so it earns a 4 rather than a 5.

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

set_listing_priceSet Listing PriceAInspect

Set a 'For Sale' price on a parked domain, or remove the listing. When a price is set and parking is enabled, visitors see a 'For Sale' page with the price and a contact form to reach the domain owner. Set price to null to remove the listing.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesSale price in USD (e.g. 499.99), or null to remove the listing
domainYesDomain to configure, e.g. example.com
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It explains the visitor-facing effect (For Sale page with price and contact form) and the conditional dependence on parking being enabled. It could mention ownership/authorization requirements, but for a simple setter this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no fluff: states the action, explains the behavioral outcome, and specifies the null removal case. Every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two simple parameters, no output schema, and no nested objects, the description adequately explains the operation and its effects. It could mention the relation to parking settings or sibling tools (e.g., set_parking), but the core operation is fully covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description's mention of 'Set price to null to remove the listing' largely duplicates the schema's price description. It adds no new parameter-level detail, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Set') and resource ('listing price') and clarifies it applies to parked domains. It also covers the removal case (null), making the tool's full purpose clear and distinguishing it from generic listing tools like update_listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use this to set or remove a 'For Sale' price on a parked domain. It does not explicitly name alternative tools or state when not to use it, but the context is sufficient for most cases.

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

set_nameserversSet NameserversAInspect

Replace the nameservers for a domain you own. Requires 2–13 valid hostnames. Common values: OpenSRS DNS (ns1.systemdns.com, ns2.systemdns.com, ns3.systemdns.com), Cloudflare (assigned per account), custom NS.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to set nameservers for
nameserversYesArray of nameserver hostnames, e.g. ['ns1.systemdns.com', 'ns2.systemdns.com']
Behavior3/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It reveals that the operation replaces existing nameservers and requires 2–13 valid hostnames, but it omits details on ownership verification, authentication, or side effects like propagation time. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences that front-load the core action and constraints, followed by useful examples. No wasted words or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers purpose, constraints, and practical examples. It doesn't address post-action behavior or error conditions, but the simplicity of the operation means this is not a critical gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are already well-documented. The description adds practical value by listing common nameserver providers and clarifying 'valid hostnames', which helps the agent construct realistic inputs. This goes beyond the schema's basic examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear action ('Replace the nameservers') and resource ('for a domain you own'), distinguishing it from siblings like get_nameservers (read) and set_dns (DNS records). It leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly implies usage for changing nameservers on owned domains and provides common values, but it does not explicitly contrast with alternatives like set_dns or state when not to use it. The context is sufficiently clear for an agent to select it appropriately.

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

set_parkingSet ParkingAInspect

Enable or disable the parking page for a domain you own. When enabled, visitors to the domain see a default parking page (or a 'For Sale' page if a listing price is set). Parking is enabled by default for newly purchased domains. IMPORTANT: If the domain has existing DNS records, the response will include requires_confirmation=true and show the records that will be overwritten. You MUST inform the user and get their approval before calling again with confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to configure, e.g. example.com
confirmNoSet to true to confirm overwriting existing DNS records. Only needed when the first call returns requires_confirmation=true.
enabledYestrue to enable the parking page, false to disable it
Behavior5/5

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

With no annotations, the description fully discloses the most important behaviors: the effect on visitors, the default for new domains, the requires_confirmation response when DNS records exist, and the requirement to get user approval before setting confirm=true. This is critical for avoiding accidental overwrites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the core purpose, followed by concise explanations of behavior and the critical confirmation warning. Every sentence earns its place; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the confirmation response and overwrite risk, which is the most complex non-obvious behavior. However, since there is no output schema, it does not describe the success response shape or potential error conditions, leaving a small gap for an agent predicting outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, so baseline is 3. The description adds beyond the schema by explaining the approval workflow tied to the 'confirm' parameter and the visitor-facing impact of 'enabled'. This added value warrants a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Enable or disable the parking page for a domain you own' with a specific verb and resource, and explains the effect (visitors see a parking page or For Sale page). This distinguishes it from sibling tools like set_dns or set_nameservers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context including ownership prerequisite and the default state for new domains. The IMPORTANT note gives explicit guidance on the two-step confirmation flow for existing DNS records, but there are no explicit alternative comparisons (e.g., 'use set_dns instead') or exclusion conditions.

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

set_security_lockSet Security LockAInspect

Lock or unlock a domain's transfer lock (clientTransferProhibited). When locked, transfer requests are rejected. Unlock before transferring to another registrar.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to configure
lockedYestrue to lock (prevent transfers), false to unlock
Behavior4/5

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

With no annotations, the description carries the burden. It discloses the behavioral outcome ('transfer requests are rejected') and a prerequisite ('unlock before transferring'). It does not mention reversal speed, auth requirements, or side effects, but for a simple boolean setter this is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with action upfront. Every word earns its place, and there's no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description sufficiently covers all needed context: purpose, effect, and usage guidance. Nothing important is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters ('domain' and 'locked') have descriptions in the schema. The description adds no further parameter detail, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb and resource: 'Lock or unlock a domain's transfer lock (clientTransferProhibited).' It is specific and distinguishes this from sibling tools like set_nameservers or set_whois_privacy by naming the exact EPP status and effect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: lock to prevent transfers, unlock before transferring to another registrar. It implies when to use the tool but does not explicitly name alternatives or edge cases, so it falls slightly short of a perfect 5.

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

setup_billingSetup BillingAInspect

Get a checkout URL for the user to add a payment card. Returns a URL - tell the user to open it in their browser. After they complete the form, call get_account to verify has_payment_method is true. Only needed for card payments - agents with crypto wallets can skip this and pay with USDC on Base via x402 protocol.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'checkout' (default) returns a URL for the user to open in browser. 'setup_intent' returns a client_secret for Stripe.js integration.
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does this well by explaining that the tool returns a URL for the user to open in a browser, and that it should be followed by a verification step. It also introduces a caveat (only for card payments). However, it does not mention any side effects (e.g., whether a Stripe customer is created) or potential error conditions, so a small gap remains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long and every sentence contributes value: purpose, next step, and when to skip. It front-loads the main action and avoids redundant phrasing. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one optional param, no output schema), and the description covers the essential operational details: return type (URL), user action (open in browser), follow-up (verify via get_account), and exclusions (crypto wallets). For this complexity level, it is entirely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes the 'mode' parameter and its two enum values with behavior. The tool description does not add new insight beyond what the schema provides, so the baseline of 3 is appropriate. It also mentions the default 'checkout' indirectly but doesn't enrich the parameter semantics further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a checkout URL for the user to add a payment card.' This is a specific verb+resource combination. It also distinguishes the tool from any billing-related sibling, as no other tool in the list handles billing setup. The scope is further clarified by noting it's only for card payments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: 'Only needed for card payments - agents with crypto wallets can skip this and pay with USDC on Base via x402 protocol.' It also gives a concrete post-condition workflow: 'After they complete the form, call get_account to verify has_payment_method is true.' This clearly tells the agent how to proceed and when not to use the tool.

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

setup_domain_emailSetup Domain EmailAInspect

Pre-configure email DNS on a domain (optional). This is called automatically by create_mailbox when needed. Use this only to pre-configure DNS before creating mailboxes. Pass force=true to override existing email provider (Google Workspace, Fastmail, Proton).

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoOverride existing MX records (e.g. Google Workspace). Default: false
domainYesDomain to enable email on, e.g. mysite.com
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the tool's side effect of overriding existing email providers via force, and notes it's called automatically by another tool. While it doesn't mention potential reversibility or exact DNS changes, it provides meaningful behavioral context (pre-configuration, override semantics) beyond the raw parameters. This is solid, though 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences total, each with clear purpose. It leads with the primary action, then explains automatic invocation, then describes the force flag. No filler or repetition; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simple nature (2 params, no output schema), the description covers the essential aspects: what it does, when to use it, and how to override existing providers. It could mention the outcome (DNS records set) but the core context is present. It's complete enough for an agent to decide invocation correctly, especially with the sibling tool context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 to 'force' by specifying it overrides existing providers like Google Workspace, Fastmail, Proton, which is more detailed than the schema's 'Override existing MX records'. It also reinforces the domain parameter example. This adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Pre-configure email DNS on a domain'. It specifies the resource (email DNS on a domain) and verb (pre-configure). It also distinguishes itself from create_mailbox by noting it's called automatically and used only for pre-configuration, making its unique role clear among sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'This is called automatically by create_mailbox when needed. Use this only to pre-configure DNS before creating mailboxes.' It tells when to use (pre-configure before creating mailboxes) and implicitly when not to use (since it's automatic). It also explains the force parameter's purpose for overriding existing providers, giving clear context for its use.

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

set_whois_privacySet WHOIS PrivacyAInspect

Enable or disable WHOIS privacy for a domain you own. When enabled, your personal contact information is hidden from public WHOIS lookups.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to configure
enabledYestrue to enable WHOIS privacy, false to disable
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the key behavioral effect: enabling hides personal contact information from public WHOIS lookups. It does not mention propagation delays or other side effects, but the enable/disable semantics imply reversibility, adding useful context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action and effect, with no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation tool, the description covers purpose and key effect. No output schema exists, but the description does not need to explain return values for a basic toggle operation. It is complete enough for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters (domain and enabled) with 100% coverage. The description adds no additional parameter-level detail, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool enables or disables WHOIS privacy for a domain, with a specific verb and resource. It also explains the effect (hiding personal contact info), distinguishing it from related tools like whois_lookup and set_contact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the tool is for domains you own, providing clear context for when to use it. It does not explicitly name alternatives or exclusions, but the context is sufficient given the sibling list of domain management tools.

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

snapshot_dnsSnapshot DNSAInspect

Capture all DNS records for a domain via public DNS lookups. Discovers subdomains from CT logs, SPF, and common names. Stores a server-side backup. Use before migrations or transfers.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to snapshot
extra_subdomainsNoAdditional subdomains to include
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the method (public DNS lookups), scope (all records, subdomain discovery from CT logs, SPF, common names), and side effect (stores a server-side backup). It could be more explicit about whether repeated snapshots overwrite or how backups are subsequently accessed, but overall it is fairly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, each adding substantive information: what it captures, how it discovers subdomains, and when to use it. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's core behavior and use case, but it does not mention what the tool returns (e.g., a snapshot ID) or how the backup connects to restore_dns. Given there is no output schema, explaining the return value would be valuable for an agent deciding to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers both parameters with clear descriptions (100% coverage). The description adds value by explaining that extra_subdomains supplements automatic subdomain discovery, enhancing the parameter's meaning beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb and resource: 'Capture all DNS records for a domain via public DNS lookups.' It also distinguishes itself from siblings like get_dns, set_dns, and restore_dns by emphasizing the snapshot/backup nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises 'Use before migrations or transfers,' providing clear situational context. It does not name alternatives or give 'when not to use' guidance, so it stops short of a 5.

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

suggest_domainsSuggest DomainsAInspect

AI-powered domain suggestions. Given a project description, generates full domain names with creative TLDs (e.g. codebuddy.dev, wavify.fm), checks availability, and returns only available domains with pricing.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage/cultural inspiration: names will draw from this language's words, aesthetics, and culture
tldsNoPreferred TLDs without dots (e.g. ['com', 'dev']). Results will prioritize these.
countNoNumber of suggestions to return (default 10)
styleNoName style: 'single' (one word), 'creative' (evocative/metaphorical single word), 'short' (3-6 chars), 'brandable' (invented names), 'keyword' (descriptive)
promptYesProject description or keywords, e.g. 'AI coding assistant'
excludeNoDomains to exclude from suggestions (e.g. from previous calls)
Behavior4/5

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

With no annotations, the description carries the burden of disclosing behavior. It states that the tool generates names, checks availability, and returns only available domains with pricing. This is honest and useful, though it doesn't mention potential side effects, cost to the user for invoking the tool, or limitations like asynchronous availability checking. Yet, for a suggestion tool, the key behavioral facts are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose ('AI-powered domain suggestions'), and includes a concrete example. Every sentence contributes meaning, and there is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (6 parameters, no output schema), the description covers the essential behavior: input, generation, availability filtering, and pricing output. It also includes an illustrative example. However, it doesn't clarify the exact return structure or how availability/pricing is determined, which would benefit from a bit more detail, but the schema covers parameter syntactics, so this is sufficient for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal parameter-specific meaning beyond the schema: it mentions 'creative TLDs' (echoing the tlds parameter) and 'project description' (prompt). Since the schema already thoroughly documents all six parameters with descriptions and enums, the description is not required to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: AI-powered domain suggestions based on a project description, generating full domain names with creative TLDs and returning only available ones with pricing. It uses specific verbs and distinguishes itself from sibling tools like buy_domain or search by emphasizing the suggestion/generation aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the appropriate use case: when a user needs domain name ideas from a project description. It mentions the input (project description) and specific behavior (checks availability, returns pricing), making the context clear. However, it doesn't explicitly contrast with alternatives like browse_marketplace or search, so it stops short of full exclusion guidance.

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

test_email_webhookTest Email WebhookAInspect

Send a signed test payload to the mailbox webhook URL. Returns HTTP status and success/failure. API: POST /api/emails/{address}/webhook/test.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesMailbox slug
domainYesMailbox domain
Behavior3/5

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

With no annotations, the description carries full responsibility. It discloses the key behavior: sends a signed test payload and returns HTTP status plus success/failure. However, it omits side effects (e.g., whether a delivery record is created), prerequisites (like needing an existing webhook), and whether the action is destructive or reversible. The endpoint provides some context but not enough for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using only two sentences. The verb and resource are front-loaded, and the return value and API endpoint are provided efficiently. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and no output schema, the description covers the essential purpose, target, and return. However, it fails to mention important context such as the requirement that a webhook must be configured for the mailbox, potential side effects, or authentication prerequisites. This leaves gaps that could lead to incorrect usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both 'slug' and 'domain' have descriptions). The tool description does not add any additional meaning or metadata for the parameters beyond what the schema already provides, so it sits at the baseline. The API path mentions {address} which might relate to slug@domain, but this connection is not made explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Send a signed test payload'), the target resource ('mailbox webhook URL'), and the return value ('HTTP status and success/failure'). It also includes the explicit API endpoint, distinguishing it from related webhook tools like replay_webhook_delivery or list_webhook_deliveries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided on when to use this tool versus alternatives. It does not mention whether it requires an existing webhook or how it differs from replay_webhook_delivery or other webhook tools. The usage is implied by the name and description but never stated.

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

transfer_domainTransfer DomainAInspect

Initiate a domain transfer from another provider. PAID. The transfer includes 1 year of renewal, preserves current nameservers, and does not migrate DNS. Call plan_domain_adoption first, show the exact price and continuity plan, then get explicit confirmation before calling this. Requires the authorization/EPP code from the current provider.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to transfer, e.g. mysite.com
auth_codeYesAuthorization/EPP code from the current provider
payment_txNoTransaction hash of a USDC payment already sent on-chain.
payment_chainNoChain the USDC payment was sent on.
payment_methodNoPayment method: 'card' to charge card on file, 'usdc' to pay with USDC. Overrides the user's default preference for this request.
extra_subdomainsNoAdditional subdomains to include in the pre-transfer DNS snapshot. We auto-discover subdomains via CT logs, SPF, MX/DKIM inference, and a common wordlist - use this for any custom subdomains we might miss.
Behavior4/5

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

With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It discloses that the action is PAID, includes 1 year of renewal, preserves current nameservers, does not migrate DNS, and requires the authorization/EPP code. It also emphasizes the need for explicit confirmation. This is substantial disclosure of cost, registration effects, and preconditions, though it doesn't cover failure modes or post-transfer tracking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: first states the purpose, then key behavioral facts (PAID, renewal, nameservers, DNS), then a clear precondition and requirement. Every sentence adds critical information without redundancy. The front-loading of the purpose and immediate highlighting of 'PAID' ensures the agent quickly grasps the most important operational consequence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid, multi-step action, the description covers the essential context: cost, renewal, nameserver behavior, DNS migration status, required EPP code, and the prerequisite planning call. It doesn't describe the return value or how to track the transfer (e.g., via watch_transfer), but since there is no output schema and the tool is only 'initiate', this is a minor gap. Overall, it is sufficiently complete for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% description coverage for all 6 parameters, including domain, auth_code, payment_tx, payment_chain, payment_method, and extra_subdomains. The description adds little beyond what the schema already states, except for calling attention to the auth_code requirement. This matches the baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Initiate a domain transfer from another provider.' This is a specific verb+resource combination that distinguishes it from siblings like buy_domain, import_domain, and acquire_domain by emphasizing the 'from another provider' aspect. It immediately communicates the core action without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit sequencing guidance: 'Call plan_domain_adoption first, show the exact price and continuity plan, then get explicit confirmation before calling this.' This tells the agent when to use the tool and what prerequisites must be met. It doesn't explicitly name alternatives, but it clearly establishes the context for this tool as distinct from importing or buying.

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

unsell_domainUnsell DomainAInspect

Remove an active for-sale listing for a domain you own. The domain stays in your account but is no longer purchasable on the marketplace. Requires domains:write scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to unlist, e.g. premium.com
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses key behavior: removes the listing, domain remains in account, and becomes non-purchasable on marketplace. It also states the required OAuth scope (domains:write), which is useful for authorization awareness. It could add error handling or reversibility, but for a simple mutation this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each adding value: the action, the consequence, and the required scope. No redundant information or filler. Front-loaded with the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description is complete. It explains what happens (listing removed), the lasting effect (stays in account, not purchasable), and the authentication requirement. The context signals show only one required parameter with full schema coverage, so no additional return value or nested objects need explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the only parameter 'domain' already described as 'Domain to unlist, e.g. premium.com'. The description adds context that the domain must be owned and the listing must be active, which slightly enhances meaning beyond the schema, but this is not significant given the schema already fully documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action (remove an active for-sale listing) and the resource (domain you own). It distinguishes from related tools like sell_domain and update_listing by explicitly noting the domain stays in the account but is no longer purchasable on the marketplace.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use: when you own a domain and want to remove its active for-sale listing. It does not explicitly name alternatives or exclusions, but the context is sufficient for typical usage. The effect (no longer purchasable) helps clarify the purpose versus other listing tools.

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

update_email_messagesUpdate Email MessagesAInspect

Apply a retry-safe lifecycle action to up to 100 messages. Returns a durable per-item operation receipt. Reuse the exact idempotency key after timeouts; never invent a new key for the same logical action. Permanent deletion requires email:delete. API: POST /api/emails/{address}/messages/actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
readNoRequired for mark_read
slugYesMailbox slug
actionYes
domainYesMailbox domain
starredNoRequired for star
destinationNoRequired for move
message_idsYesExplicit message IDs
idempotency_keyYesCaller-stable key for this exact logical batch
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses retry-safe behavior, the need to reuse idempotency keys, the durable per-item receipt, and the email:delete permission for permanent deletion. It does not cover error handling, partial failure semantics, or rate limits, but the information provided is substantive and goes well beyond 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is five sentences, each earning its place: purpose, return type, retry guidance, permission note, and API endpoint. No fluff, all critical information, front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, mutation-only tool with no output schema, the description covers purpose, batch size, retry behavior, permission, and return shape. It doesn't explicitly enumerate the allowed actions (left to the schema enum) or describe error scenarios, but it is reasonably complete for the complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high, but the description adds meaningful semantics beyond the property descriptions: it explains how to use the idempotency_key correctly after timeouts, connects 'up to 100 messages' to message_ids, and clarifies the permission needed for delete_permanently. This is valuable guidance not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb+resource: 'Apply a retry-safe lifecycle action to up to 100 messages.' This distinguishes it from sibling tools like mark_messages_read or delete_messages by covering multiple possible actions (move, mark_read, star, etc.) and explicitly noting the batch limit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: for batch lifecycle actions with retry safety. It does not explicitly name alternatives or state when NOT to use it, but it does note a permission requirement ('Permanent deletion requires email:delete'), which is useful guidance. Minor gap: no comparison with sibling tools like mark_messages_read.

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

update_identityUpdate identityBInspect

Update a free identity's name/bio/emoji/email/links.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioNo
nameNo
slugYesThe handle to update
emailNo
emojiNo
linksNo
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing side effects, permissions, or update behavior. It only says 'Update' without explaining whether it's partial or full replacement, what happens on invalid slug, or any other behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states the tool's purpose and field list. It is concise, front-loaded, and contains no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 6 parameters and 1 required field, the description provides minimal context. It does not explain required parameters, return values, or any prerequisites, making it incomplete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (only 'slug' is described). The description lists the parameter names ('name/bio/emoji/email/links') but adds no detail about formats, constraints, or the structure of 'links' objects, failing to compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Update') and resource ('identity'), and lists the updatable fields (name/bio/emoji/email/links). This distinguishes it from sibling tools like 'claim_identity' and 'release_identity'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for updating a free identity's fields, suggesting it should be used when these fields need modification. However, it does not provide explicit guidance on when not to use it or alternative tools for other identity operations.

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

update_listingUpdate ListingAInspect

Update the price and/or description of an active marketplace listing. Requires domains:write scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceNoNew price in USD
domainYesDomain with active listing, e.g. premium.com
descriptionNoNew description (null to clear)
Behavior3/5

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

With no annotations provided, the description carries the burden of disclosing behavior. It adds value by requiring 'domains:write scope' and indicating partial updates ('price and/or description'), but it does not disclose failure behavior for inactive listings, response format, or side effects. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and followed by the permission requirement. No wasted words, fully self-contained, and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple 3-parameter tool with no output schema. The description covers purpose and permission, and the schema covers parameters. It lacks explicit differentiation from the sibling set_listing_price and does not describe return values, but for a simple update operation with full schema coverage, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described (e.g., 'New price in USD', 'Domain with active listing', 'New description (null to clear)'). The description's mention of 'price and/or description' reinforces the schema but adds no new syntactic or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Update') and the resource ('active marketplace listing'), and specifies the fields ('price and/or description'). This distinguishes it from siblings like browse_marketplace (view) and sell_domain (create listing), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by mentioning 'active marketplace listing' and the required 'domains:write scope', but does not explicitly compare with alternative tools like set_listing_price or explain exclusions (e.g., when the listing is not active). It gives context without naming alternatives, fitting the 'clear context, no exclusions' level.

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

update_webhookUpdate WebhookAInspect

Update an existing webhook's URL, subscribed events, or active status. Use list_webhooks to get the webhook ID first.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoNew HTTPS URL for the webhook
activeNoSet to false to pause the webhook, true to resume
eventsNoNew list of event types to subscribe to
webhook_idYesID of the webhook to update
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the mutation nature and the scoped update fields, which is useful. However, it does not mention authentication, rate limits, partial vs. full update behavior, or response format, leaving notable gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action and scope, and contains no redundant information. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple update tool with four well-documented parameters and no nested objects, the description covers the essential use case and prerequisites. It lacks details about return values or error handling, but given the low complexity, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 value beyond the schema by explicitly mapping 'active status' to the active parameter and advising the use of list_webhooks to obtain webhook_id, which assists with parameter sourcing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('update') and resource ('existing webhook'), and lists the exact attributes that can be changed (URL, subscribed events, active status). This distinguishes it from sibling tools like create_webhook and delete_webhook.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit prerequisite: 'Use list_webhooks to get the webhook ID first.' This gives clear context on how to prepare the call. It does not mention when not to use the tool or alternatives, but the guidance is actionable.

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

upgrade_planUpgrade to ProAInspect

Get a Stripe checkout URL to upgrade the user to the Pro plan ($9/month). Returns a URL. Tell the user to open it in their browser to complete the upgrade. Pro includes 10,000 emails/month, unlimited mailboxes on custom domains, API/MCP/CLI access, webhooks, and forwarding. Use this when the user hits the free plan monthly send limit (MONTHLY_LIMIT_EXCEEDED error).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool returns a URL (not a direct upgrade), instructs the agent to tell the user to open it, and lists Pro plan features. It does not mention potential side effects, prerequisites, or error behavior, but for a zero-parameter tool, this is fairly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured well, front-loading the core action and then explaining the output, next steps, and trigger condition. The inclusion of Pro plan feature details is useful for the agent's user interaction, though slightly verbose. It remains concise and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no parameters, no output schema), the description is complete. It explains when to use it, what it returns, what the agent should tell the user, and why the user might need it. There are no significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description adds context about what the tool does with no parameters, and there is no additional parameter information to provide. The schema is trivially covered, so the description adds value by explaining the output and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get a Stripe checkout URL to upgrade the user to the Pro plan'), specifies the target resource (Pro plan) and even the price ($9/month). It also distinguishes itself from sibling tools like cancel_plan by mentioning the trigger condition (MONTHLY_LIMIT_EXCEEDED).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit when-to-use condition ('Use this when the user hits the free plan monthly send limit (MONTHLY_LIMIT_EXCEEDED error)') and explains the follow-up action (tell the user to open the URL). However, it does not name alternatives or explicitly state when not to use the tool, so it falls short of a 5.

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

verify_connectionVerify ConnectionAInspect

Verify that a provider connection is working by checking DNS propagation. Use after connect_domain to confirm records are live.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to verify
methodNoMethod name if applicable
targetNoTarget for auto-detection, e.g. my-app.vercel.app
providerNoProvider name, e.g. vercel
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the mechanism (DNS propagation check) but does not state whether this is a read-only operation, potential delays due to propagation, or failure modes. The word 'verify' implies a non-mutating action, but more specifics would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose, and contains no filler words or redundant details. Every phrase adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters and no output schema, the description explains what it does and when to use it. It lacks details about return values or edge cases, but the operation is simple and the description covers the essential context adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well-documented in the schema. The description adds no additional meaning about parameter syntax, defaults, or relationships beyond what the schema provides. The baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Verify') and resource ('provider connection'), and clarifies the method ('by checking DNS propagation'). It also distinguishes itself from sibling tools like verify_import and verify_service by mentioning 'after connect_domain' to confirm records are live.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use: 'Use after connect_domain to confirm records are live.' This provides clear context. However, it does not explicitly exclude alternatives or mention when not to use it, though the guidance is sufficient for most scenarios.

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

verify_importVerify ImportAInspect

Verify DNS TXT record and complete domain import. Call after adding the TXT record from import_domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to verify, e.g. mysite.com
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It discloses that the tool 'completes domain import', implying a finalizing mutation. However, it doesn't mention failure behavior, permissions, or side effects. This is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy. Every word earns its place, with the first sentence stating purpose and the second providing usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description covers the core workflow (verify TXT and complete import) and the trigger condition (after import_domain). It could mention expected outcomes, but the essential context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single parameter 'domain' with 100% coverage and an example. The tool description adds no additional parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Verify DNS TXT record and complete domain import.' It clearly distinguishes from siblings like verify_connection and verify_service, and explicitly references import_domain as the preceding step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit sequencing: 'Call after adding the TXT record from import_domain.' This tells the agent when to invoke the tool, but doesn't discuss alternatives or when not to use it. Still, the context is clear enough for a straightforward workflow.

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

verify_serviceVerify ServiceAInspect

Add DNS records to verify domain ownership for a third-party service (Stripe, Google Search Console, AWS SES, Postmark, Resend, Facebook, HubSpot, Microsoft 365). Unknown services fall back to a generic TXT record.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesVerification token provided by the service
domainYesDomain name
serviceYesService name (e.g. stripe, google-search-console, aws-ses, postmark, resend, facebook, hubspot, microsoft-365)
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It reveals that the tool performs a mutating action (adding DNS records) and explains the fallback to a generic TXT record for unknown services. However, it omits details about side effects (e.g., overwriting existing records), prerequisites (like domain ownership), or the return response. This partial disclosure is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences deliver essential info: main purpose, supported services, and fallback. No fluff; the most important action is front-loaded. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 required parameters, no output schema, and no annotations, the description covers the core operation and service list but leaves unanswered questions like what the tool returns after adding records, whether it checks for existing verification records, and any DNS propagation guidance. It is a competent description but lacks some operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter is described. The description adds extra meaning by enumerating allowed service values and clarifying that unknown services trigger a fallback behavior, which directly affects how the 'token' and 'service' parameters are used. This goes beyond the schema's basic property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific action ('Add DNS records') tied to a clear goal ('verify domain ownership for a third-party service'). It distinguishes itself from sibling DNS tools like 'set_dns' by focusing on verification records and lists supported services, making its intent unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool: when needing to verify domain ownership for a third-party service. It provides a context-rich list of supported services and even notes fallback behavior for unknown ones, but it does not explicitly mention alternatives or exclusions. The scope is evident enough to guide selection among siblings.

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

watch_transferWatch TransferAInspect

Watch a domain and get notified (email + webhook) when it becomes eligible for transfer. Uses RDAP to check ICANN lock periods and EPP status codes. If the domain is already eligible, returns immediately without creating a watch. If not eligible but has a known date, creates a watch and notifies you when it's ready.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to watch, e.g. example.com
Behavior4/5

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

With no annotations, the description carries the full transparency burden. It discloses the underlying method (RDAP, ICANN lock periods, EPP status codes), the conditional outcomes (returns immediately if eligible, creates watch if not), and the notification channels. However, it fails to describe the case where the domain is not eligible and has no known date, leaving a behavioral gap. It also does not mention authentication or side effects, but the disclosed conditions are valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, followed by technical detail and conditional behavior. Every sentence adds substantive information with no filler or redundancy. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter and no output schema, so the description must cover main behaviors. It explains the watch creation, notification method, and immediate-return case. However, it omits the no-known-date scenario and does not describe what the return value looks like in either branch. These are notable gaps, but the description still covers the most important aspects for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the single 'domain' parameter is described with an example. The tool description does not add any additional parameter-level meaning beyond the schema, but it reinforces that the parameter is the domain to watch. Since the schema already documents the parameter adequately, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool watches a domain and notifies when it becomes eligible for transfer, specifying the mechanism (email + webhook). It distinguishes itself from sibling tools like check_transfer_eligibility by emphasizing the watch-and-notify behavior and the immediate-return condition. The verb 'watch' and resource 'domain' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool: when you want to be notified when a domain becomes eligible. It also implies a condition (if already eligible, returns immediately) but does not explicitly name alternative tools or state when not to use it. The context is clear, but no explicit alternatives or exclusions are provided.

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

whois_lookupWHOIS LookupAInspect

Look up domain registration data via RDAP (modern WHOIS). Returns registrar, dates, status, nameservers, DNSSEC, and contact information (registrant, admin, tech, billing - often redacted for privacy). Works for any domain - no ownership required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to look up, e.g. example.com
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'look up' implies a read-only operation, and the mention that contact information is 'often redacted for privacy' adds meaningful transparency about expected data limitations. It does not mention rate limits or authentication, but for a simple lookup tool these are less critical.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every phrase adds value—method (RDAP), return fields, privacy redaction, and ownership independence. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter lookup tool with no output schema, the description is complete: it states what the tool does, what data it returns, cautions about redaction, and clarifies scope (any domain). This gives the agent enough context 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the 'domain' parameter is described as 'Domain to look up, e.g. example.com'), so the baseline is 3. The description adds the context that 'no ownership required' and lists the return fields, which gives slight extra meaning to the domain parameter but does not change the parameter's syntax or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb+resource+method: 'Look up domain registration data via RDAP (modern WHOIS)'. It clearly lists the types of data returned and explicitly distinguishes itself from domain-management tools by stating 'Works for any domain - no ownership required', which differentiates it from siblings like get_domain_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: 'Works for any domain - no ownership required' implies it can be used for external/any domain lookups, unlike tools restricted to owned domains. However, it does not explicitly name alternative tools or provide when-not-to-use guidance, so it stops short of a 5.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.