internetbs-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@internetbs-mcpcheck if example.com is available"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Internet.bs MCP Server
A complete Model Context Protocol server for the Internet.bs domain registrar API.
47 tools covering 100% of the Internet.bs API:
Category | Tools | What you can do |
Domains | 11 | Check availability, register, update, info, list, count, renew, restore, push, trade |
Transfers | 7 | Initiate, retry, cancel, resend auth, history, approve/reject outgoing |
DNS Records | 4 | Add, remove, update, list (A, AAAA, CNAME, MX, TXT, SRV, NS) |
Nameservers | 5 | Create, info, update, delete, list glue records |
URL Forwarding | 4 | Add, update, remove, list redirects |
Email Forwarding | 4 | Add, update, remove, list email routes |
Registrar Lock | 3 | Enable, disable, check status |
Private WHOIS | 3 | Enable, disable, check status |
Account | 4 | Balance, price list, configuration, total cost |
Verification | 2 | Registrant email verification info & resend |
Prerequisites
An Internet.bs account — Sign up at internet.bs
API credentials — Go to your account settings and request API access. You'll receive an API Key and a Password
An MCP-compatible client (see Compatibility)
No account yet? You can try everything with the free sandbox — see Test Mode below.
Related MCP server: spaceship-mcp
Important: IP Whitelisting
Internet.bs requires you to whitelist an IP address when creating an API key. Only requests coming from that IP will be accepted. This has important implications depending on how you run this MCP server:
How to find your IP address
Run one of these commands in your terminal:
curl -s ifconfig.me # Linux / Mac / WSL
curl -s api.ipify.org # Alternative (IPv4 only)Or visit whatismyip.com in your browser.
Important: Use your IPv4 address, not IPv6. If
ifconfig.mereturns an IPv6 (e.g.2a02:...), usecurl -s api.ipify.orginstead to get your IPv4.
Local mode (npx) — recommended
You run the server on your own machine. Whitelist your residential/office IP (the public IPv4 of the machine running Claude Code).
If your ISP changes your IP (common with residential connections), you'll need to update the whitelisted IP in your Internet.bs account, or create a new API key.
Self-hosted remote mode (your own server)
You run the server on a VPS/dedicated server. Whitelist the server's fixed IP.
To find the server's outbound IP:
curl -s api.ipify.org # Run this on the serverThis works well with servers that have a static IP (OVH, Hetzner, Contabo, etc.). It does NOT work with serverless platforms like Cloudflare Workers, Vercel, or AWS Lambda, because they use shared/rotating IPs that can't be whitelisted.
Multiple environments
If you need to use the API from multiple IPs (e.g., your PC + a server), you have two options:
Create multiple API keys — one per IP, each whitelisted for its own IP
Update the whitelisted IP — in your Internet.bs account when you switch environments
Option 1 — Local (via npx) — Recommended
Runs entirely on your machine. Nothing to install besides Node.js.
{
"mcpServers": {
"internetbs": {
"command": "npx",
"args": ["-y", "internetbs-mcp"],
"env": {
"INTERNETBS_API_KEY": "your-api-key",
"INTERNETBS_PASSWORD": "your-password",
"INTERNETBS_API_URL": "https://api.internet.bs"
}
}
}
}Replace your-api-key and your-password with your credentials. Requires Node.js >= 18.
Option 2 — Self-hosted remote (your own server)
Deploy on any server with a fixed IP address. Users connect via URL and pass their own credentials in headers. The server is a stateless proxy — it never stores credentials.
{
"mcpServers": {
"internetbs": {
"url": "https://your-server.com/mcp",
"headers": {
"X-InternetBS-Key": "your-api-key",
"X-InternetBS-Password": "your-password"
}
}
}
}See Self-Hosting for deployment instructions.
Warning: Serverless platforms (Cloudflare Workers free tier, Vercel, AWS Lambda) do NOT have fixed IPs. They are incompatible with Internet.bs IP whitelisting. Use a VPS with a static IP instead.
Option 3 — Docker
{
"mcpServers": {
"internetbs": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "INTERNETBS_API_KEY=your-api-key",
"-e", "INTERNETBS_PASSWORD=your-password",
"-e", "INTERNETBS_API_URL=https://api.internet.bs",
"internetbs-mcp"
]
}
}
}Build the image:
git clone https://github.com/uglyswap/internetbs-mcp.git
cd internetbs-mcp
docker build -t internetbs-mcp .Where to put the config
Client | Config file location |
Claude Code |
|
Claude Desktop |
|
Cursor | Settings > MCP Servers |
Windsurf |
|
Test Mode
Internet.bs provides a free sandbox — no account needed, no IP whitelisting:
{
"mcpServers": {
"internetbs": {
"command": "npx",
"args": ["-y", "internetbs-mcp"],
"env": {
"INTERNETBS_API_KEY": "testapi",
"INTERNETBS_PASSWORD": "testpass",
"INTERNETBS_API_URL": "https://testapi.internet.bs"
}
}
}
}The sandbox has limited data. Some operations will return test data only.
Usage Examples
Once configured, just ask in natural language:
What you want to do | Example prompt |
Check availability | "Is example.com available?" |
Register a domain | "Register mysite.com with my contact info" |
List domains | "List all my domains" |
Domain info | "Show me the details for mysite.com" |
DNS management | "Add an A record for www.mysite.com pointing to 93.184.216.34" |
Email forwarding | "Forward info@mysite.com to me@gmail.com" |
URL forwarding | "Redirect blog.mysite.com to mysite.com/blog" |
Renew | "Renew mysite.com for 2 years" |
Transfer | "Transfer example.org to my account, auth code is ABC123" |
Account | "What's my account balance?" |
Lock | "Enable registrar lock on mysite.com" |
WHOIS privacy | "Enable private WHOIS on all my domains" |
Configuration Reference
Local mode (environment variables)
Variable | Required | Description |
| Yes | Your Internet.bs API key |
| Yes | Your Internet.bs API password |
| No | API base URL. Default: |
Remote mode (headers)
Header | Required | Description |
| Yes | Your Internet.bs API key |
| Yes | Your Internet.bs API password |
| No | API base URL. Default: |
All 47 Tools
Domain Operations (11)
Tool | Description |
| Check if a domain is available for registration |
| Register a new domain name |
| Update domain contacts, nameservers, settings |
| Get detailed domain information |
| Get domain registry status |
| List all domains in the account |
| Count domains by extension |
| Renew a domain registration |
| Restore a deleted domain in redemption period |
| Push a domain to another Internet.bs account |
| Trade .eu/.fr domains (change registrant) |
Transfer Operations (7)
Tool | Description |
| Initiate a domain transfer to your account |
| Retry a failed domain transfer |
| Cancel a pending domain transfer |
| Resend transfer authorization email |
| Get transfer history for a domain |
| Approve an outgoing domain transfer |
| Reject an outgoing domain transfer |
DNS Records (4)
Tool | Description |
| Add a DNS record (A, AAAA, CNAME, MX, TXT, SRV, NS) |
| Remove a DNS record |
| Update an existing DNS record |
| List all DNS records for a domain |
Nameserver Hosts (5)
Tool | Description |
| Create a nameserver host (glue record) |
| Get host information and IPs |
| Update host IP addresses |
| Delete a nameserver host |
| List all hosts for a domain |
URL Forwarding (4)
Tool | Description |
| Add a URL forwarding rule |
| Update a URL forwarding rule |
| Remove a URL forwarding rule |
| List URL forwarding rules for a domain |
Email Forwarding (4)
Tool | Description |
| Add an email forwarding rule |
| Update an email forwarding rule |
| Remove an email forwarding rule |
| List email forwarding rules for a domain |
Registrar Lock (3)
Tool | Description |
| Enable registrar lock (prevent unauthorized transfers) |
| Disable registrar lock |
| Get current registrar lock status |
Private WHOIS (3)
Tool | Description |
| Enable private WHOIS protection (FULL or PARTIAL) |
| Disable private WHOIS protection |
| Get current private WHOIS status |
Account (4)
Tool | Description |
| Get account balance (supports multiple currencies) |
| Get pricing for all domain extensions |
| Get account configuration and settings |
| Get total annual cost of all domains |
Registrant Verification (2)
Tool | Description |
| Get registrant email verification status |
| Resend registrant verification email |
Security
Local mode — Credentials never leave your machine. API calls go directly from your computer to Internet.bs over HTTPS.
Remote mode — Credentials are passed via HTTPS headers on each request and forwarded to Internet.bs. The server does not log or persist them.
IP whitelisting — Internet.bs requires your IP to be whitelisted, adding an extra layer of security.
No database — The server is stateless. No user data, no sessions, no logs.
Open source — Full code in this repository. Audit it yourself.
Important: Your Internet.bs API credentials can register and manage domains, which involves real money. Keep your API key and password secure. Never share them publicly.
Compatibility
Client | Local (npx) | Remote (URL) | Docker |
Claude Code | Yes | Yes | Yes |
Claude Desktop | Yes | Yes | Yes |
Cursor | Yes | Yes | Yes |
Windsurf | Yes | Yes | Yes |
Zed | Yes | — | Yes |
Any MCP client | Yes | Yes | Yes |
Self-Hosting
Deploy on any server with a static IP (VPS, dedicated server, etc.).
With Docker
git clone https://github.com/uglyswap/internetbs-mcp.git
cd internetbs-mcp
docker build -t internetbs-mcp .
docker run -d --name internetbs-mcp -p 3000:3000 internetbs-mcpWith Node.js
git clone https://github.com/uglyswap/internetbs-mcp.git
cd internetbs-mcp
npm install
npm run build
npm startAs a Cloudflare Worker (advanced)
The repo includes a wrangler.toml and src/worker.ts for Cloudflare Workers deployment. However, Cloudflare Workers free tier uses shared/rotating IPs which are incompatible with Internet.bs IP whitelisting. This only works if:
You have Cloudflare Enterprise with dedicated egress IPs, or
You use the worker as a proxy behind a fixed-IP server
npx wrangler login
npm run deployWhitelisting your server's IP
Log into your Internet.bs account
Go to API settings
Create an API key whitelisted for your server's public IP
Use that API key in your deployment
If your server has multiple outbound IPs, whitelist the one used for HTTPS requests. Run
curl ifconfig.meon the server to check.
Troubleshooting
"Missing credentials" error
Make sure your headers (remote) or env vars (local) are set correctly. The API key and password are both required.
"FAILURE" status in API responses
Usually means invalid credentials, IP not whitelisted, or the operation isn't supported. Check your Internet.bs account.
IP not authorized
Internet.bs requires IP whitelisting. Go to your account settings and add your machine's public IP. Run curl ifconfig.me to check your IP.
npx is slow on first run
npx downloads the package on first use (~25KB). Subsequent runs use the cache.
Connection timeout
The Internet.bs API can occasionally be slow. The default timeout is 25 seconds. If you experience timeouts, try again.
"Unknown tool" error
Run npx internetbs-mcp@latest to force update to the latest version.
Development
git clone https://github.com/uglyswap/internetbs-mcp.git
cd internetbs-mcp
npm install
npm run dev # Local stdio server (hot reload)
npm run dev:worker # Local Cloudflare Worker (http://localhost:8787)
npm run build # Compile TypeScript
npm start # Run compiled stdio versionProject structure
src/
index.ts # stdio entry point (local mode)
worker.ts # HTTP entry point (remote/self-hosted mode)
client.ts # Internet.bs API HTTP client
types.ts # TypeScript type definitions
tools/
domain.ts # Domain management (11 tools)
transfer.ts # Domain transfers (7 tools)
dns.ts # DNS records (4 tools)
host.ts # Nameserver hosts (5 tools)
forwarding.ts # URL & email forwarding (8 tools)
lock.ts # Registrar lock (3 tools)
whois.ts # Private WHOIS (3 tools)
account.ts # Account operations (4 tools)
verification.ts # Registrant verification (2 tools)
index.ts # Aggregates all toolsContributing
Fork the repository
Create a feature branch (
git checkout -b feature/my-feature)Commit your changes
Push and open a Pull Request
For bugs, open an issue.
Links
Internet.bs — Domain registrar
Internet.bs API Documentation — Official API docs
Model Context Protocol — MCP specification
License
MIT — see LICENSE
Available Tools
47 toolsaccount_balanceB
Get the current account balance
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Currency for the balance (e.g. USD, EUR, GBP) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It merely says 'Get the current account balance' and provides no behavioral details such as required permissions, real-time vs cached data, or what response format to expect. The word 'current' hints at recency but does not disclose other traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should clarify what the return value looks like, but it only says 'balance' without specifying whether it's a number, string, formatted currency, etc. It also does not explain how the optional currency parameter affects the result or what the default behavior is. Important context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% because the only parameter 'currency' has an explicit description. The tool description adds no additional meaning to the parameter, but the schema fully documents it. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (Get) and a clear resource (current account balance). It is unambiguous and distinguishes itself from sibling tools like account_price_list and account_configuration, as none of those claim to return the account balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or alternative-exclusion guidance is provided. The description only states what it does, not when an agent should choose this over other account-related tools. There is no mention of prerequisites or distinctions from similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_configurationB
Get the current account configuration
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 only states the purpose ('Get the current account configuration') without explaining authentication needs, return format, or any side effects (though likely 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Perfectly concise for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description is minimally viable. However, it does not clarify what 'configuration' includes or what the response will contain, leaving some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100%. The description adds no parameter details, but the baseline for zero-parameter tools is 4, as there is nothing to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('account configuration'), clearly indicating a read operation. It differentiates from sibling account tools (e.g., account_balance) by referencing 'configuration', though the term is somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as account_balance or account_price_list. There is no mention of prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_domains_total_costA
Get the total cost of all domains in the account
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The verb 'Get' explicitly indicates a read-only operation, which is transparent enough for a simple aggregate query. It does not over-promise or hide side effects, though it could add context about data freshness or currency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant words. It immediately delivers the purpose and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is complete: it states exactly what the result is (total cost of all domains). The account-wide scope is clear, and no further details are necessary for a simple aggregate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema already fully covers the input space. The description adds no parameter information, but the baseline for 0 params is 4, and no additional semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('total cost of all domains in the account'), which distinguishes it from siblings like account_balance or domain_list. It precisely communicates the scope and output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its clear purpose, but it does not explicitly state when to use this tool over alternatives or mention any exclusions. There is no direct comparison to other cost-related tools, but the purpose is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_price_listB
Get the price list for domain operations
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Price list version | |
| currency | No | Currency for prices (e.g. USD, EUR, GBP) | |
| discountCode | No | Discount code to apply to the price list |
TDQS
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 says 'Get the price list' without stating read-only status, authentication needs, response format, or how parameters affect behavior. Minimal insight beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the core purpose without any wasted words. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the description lacks context about return values, optional parameter effects, or when to use it. With no output schema and no annotations, more detail would be helpful. It is minimally adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all three parameters (version, currency, discountCode), giving 100% coverage. The description adds no extra parameter semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a price list for domain operations, using a specific verb and resource. It is distinct from all sibling tools, as no other price list tool exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any context about prerequisites or expected use cases. While there are no clear alternatives among siblings, the description gives no usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_record_addB
Add a DNS record to a domain
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Time to live in seconds | |
| type | Yes | The DNS record type | |
| value | Yes | The value for the DNS record | |
| priority | No | Priority value (required for MX and SRV records) | |
| fullRecordName | Yes | The full record name including the domain (e.g. www.example.com) |
TDQS
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 only states the action ('Add') and does not disclose idempotency, duplicate handling, permission requirements, response format, or propagation behavior. For a write operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action with no redundant information. It earns its place and is highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the one-sentence description leaves important context unaddressed, such as expected response, prerequisite domain ownership, and behavior on duplicate records. The schema covers parameters well, but the overall usage context is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all parameters, including an enum for record types and notes on priority requirements. The tool description adds no further parameter semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add'), the resource ('a DNS record'), and the target domain. It distinguishes from sibling tools like dns_record_remove and dns_record_update, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description implies usage for adding new DNS records but does not mention when to prefer it over update or remove, or any prerequisites like domain ownership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_record_listB
List all DNS records for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to list DNS records for | |
| filterType | No | Filter results by record type (e.g. A, CNAME, MX) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavioral traits. It only states that it lists all DNS records, but doesn't reveal whether results are paginated, what record fields are returned, how errors are handled, or that the optional filterType is available. This minimal disclosure leaves the agent without important 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is front-loaded with the verb and object. It is concise and easy to parse, though it could have included extra useful details without harming conciseness. The structure is efficient, earning a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters and no output schema, the description provides the essential action but lacks completeness. It doesn't mention the optional filterType in the description text, nor does it describe the expected output shape. It is minimally viable but leaves gaps that could affect correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of the parameters (domain and filterType) with clear explanations. The description adds no additional parameter semantics beyond the schema, so the baseline score of 3 is appropriate as the schema already carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all DNS records for a domain' uses a specific verb ('List') and resource ('DNS records'), clearly indicating the tool's function. It distinguishes itself from sibling tools like dns_record_add, dns_record_update, and dns_record_remove, as well as domain_list, which lists domains rather than DNS records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention conditions like 'use this to view all records' or exclude cases where filtering would require dns_record_list with filterType. The only implied usage is from the action itself, but no explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_record_removeA
Remove a DNS record from a domain
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | The DNS record type | |
| value | Yes | The value of the DNS record to remove | |
| fullRecordName | Yes | The full record name including the domain (e.g. www.example.com) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states 'Remove a DNS record from a domain' without addressing idempotency, effects of removing a non-existent record, propagation delays, or error handling. As a destructive operation, this lack of detail leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clearly worded sentence that front-loads the primary action and resource. There is no unnecessary wording or repetition, making it highly concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool, the schema covers parameter semantics well, and the description clarifies the core purpose. However, the lack of annotations and absence of behavioral detail (e.g., whether removal is permanent, whether confirmation is required) leaves the description somewhat incomplete for a destructive operation in a domain management context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all three parameters (fullRecordName, type, value), achieving 100% coverage. The description adds no extra meaning beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove a DNS record from a domain' uses a specific verb and resource, clearly indicating this tool's function. It effectively distinguishes itself from sibling tools like dns_record_add and dns_record_update by the action 'Remove'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'Remove' and the tool name, but the description does not provide explicit guidance on when to choose this over alternatives or any exclusions. No mention of prerequisites or context-specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_record_updateB
Update an existing DNS record
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Time to live in seconds | |
| type | Yes | The DNS record type | |
| newValue | Yes | The new value for the DNS record | |
| priority | No | Priority value (for MX and SRV records) | |
| currentValue | Yes | The current value of the record to identify which record to update | |
| fullRecordName | Yes | The full record name including the domain (e.g. www.example.com) |
TDQS
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, but it only restates the action without explaining side effects, idempotency, error handling, or what happens if the record does not exist. For a mutation tool, this is a critical gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that uses concise language. It conveys the core action without any filler, earning its place as a well-structured minimal description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal and lacks essential context for a mutation tool with no output schema. It does not explain return values, how the update is performed (e.g., by matching currentValue), or any behavioral nuances. The rich schema covers parameter semantics, but overall tool behavior remains under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description itself adds no parameter-level meaning, but the schema already provides detailed semantics for each field, including examples and enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'existing DNS record', which distinguishes it from sibling tools like dns_record_add, dns_record_remove, and dns_record_list. The scope is explicit (existing record), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as dns_record_add or dns_record_remove. It does not mention any prerequisites, limitations, or scenarios where this tool is preferred, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_checkA
Check domain name availability. Returns whether the domain is available for registration.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to check availability for (e.g. example.com) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states that the tool returns whether the domain is available, which is a behavioral trait. However, it does not explicitly mention that it is read-only or non-mutating, nor does it describe any response format beyond 'whether'. This is minimal but not misleading; no contradiction with annotations (since none exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action ('Check domain name availability') and a clear statement of the return value. There is no verbose or irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is minimally adequate. It clarifies the purpose and return value, but does not specify the exact return type (e.g., boolean vs string) or edge cases (e.g., invalid domains). The absence of an output schema makes the description's mention of 'returns whether' helpful, but it remains incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for the single 'domain' parameter with a clear description and example. The tool description adds no extra meaning beyond restating 'domain name'. Since baseline for high schema coverage is 3, this is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('check') and resource ('domain name availability'), and clearly states the return value ('whether available for registration'). This distinguishes it from sibling tools like domain_info (which would provide details) and domain_registry_status (which checks registry state).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (checking availability before registration) but does not explicitly state when to use it versus alternatives. There are no exclusions or named alternatives, though the tool's purpose itself is fairly clear from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_countA
Count the total number of domains in your Internet.bs account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 that it counts all domains in the account, but it does not clarify whether expired, pending, or suspended domains are included. This leaves minor ambiguity about the behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the tool's purpose without unnecessary words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameter-less tool with no output schema, the description is complete. It clearly states what the tool counts and the scope. The return value (a number) is self-evident from the verb 'count'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully covers parameter semantics. The description adds no parameter-specific information, but none is needed. The baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'count' and identifies the exact resource ('domains in your Internet.bs account'). This clearly distinguishes it from sibling tools like domain_list and domain_info, which focus on listing or detailed information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a numeric total is needed, but it does not explicitly differentiate from alternatives like domain_list or account_domains_total_cost. There is no mention of 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.
domain_createA
Register a new domain name. Requires the domain name and optionally contact information, nameservers, and registration settings.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to register (e.g. example.com) | |
| period | No | Registration period (e.g. 1Y for 1 year, 2Y for 2 years). Defaults to 1Y. | |
| ns_list | No | Comma-separated list of nameservers (e.g. ns1.example.com,ns2.example.com) | |
| autoRenew | No | Enable or disable auto-renewal for this domain. Defaults to YES. | |
| admin_email | No | Admin contact email address | |
| discountCode | No | Discount/promo code to apply to the registration | |
| privateWhois | No | WHOIS privacy level. FULL hides all info, PARTIAL hides some, DISABLED shows all. | |
| billing_email | No | Billing contact email address | |
| registrarLock | No | Registrar lock status to prevent unauthorized transfers. Defaults to ENABLED. | |
| admin_lastname | No | Admin contact last name | |
| admin_firstname | No | Admin contact first name | |
| registrant_city | No | Registrant city | |
| technical_email | No | Technical contact email address | |
| billing_lastname | No | Billing contact last name | |
| registrant_email | No | Registrant email address | |
| billing_firstname | No | Billing contact first name | |
| registrant_street | No | Registrant street address | |
| technical_lastname | No | Technical contact last name | |
| registrant_lastname | No | Registrant last name | |
| technical_firstname | No | Technical contact first name | |
| registrant_firstname | No | Registrant first name | |
| registrant_postalcode | No | Registrant postal code | |
| registrant_countrycode | No | Registrant country code (e.g. US, FR, DE) | |
| registrant_phonenumber | No | Registrant phone number (e.g. +1.5551234567) | |
| cloneContactsFromDomain | No | Clone contact information from an existing domain in your account | |
| registrant_organization | No | Registrant organization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only says 'Register a new domain name' without mentioning side effects like costs, availability checks, or possible failure modes. This is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, and no fluff. It efficiently conveys the required vs optional inputs without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 26 parameters, no output schema, and no annotations, the description omits essential operational context such as checking domain availability first (sibling domain_check), potential costs, or what happens after successful registration. The schema covers parameters but not workflow or error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds a high-level grouping ('contact information, nameservers, and registration settings') but does not meaningfully enhance the parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Register a new domain name.' This clearly distinguishes it from siblings like domain_check, domain_renew, and domain_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use this tool (to register a new domain) and states the requirement that 'domain' is necessary, with other fields optional. It does not explicitly exclude alternatives like renewal or transfer, but the action is distinct enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_infoA
Get detailed information about a domain including registration dates, nameservers, contacts, status, and WHOIS settings.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to get information for (e.g. example.com) |
TDQS
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 lists the content of the information (registration dates, nameservers, contacts, status, WHOIS settings), which gives some transparency into the response. However, it does not explicitly state that this is a read-only operation with no side effects, nor does it mention any access requirements or limitations. This is decent but somewhat under-specified for a tool with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler or redundant phrasing. It is front-loaded with the core action ('Get detailed information about a domain') and immediately lists the included data types. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description provides a clear picture of what the tool does and what information it returns. It covers the essential categories (registration dates, nameservers, contacts, status, WHOIS settings), which suffices for the agent to invoke it correctly. However, it does not clarify how this differs from potentially overlapping sibling tools like domain_registry_status, so it is not fully complete in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameter description ('The domain name to get information for (e.g. example.com)'), so the baseline is 3. The description adds no additional parameter semantics beyond restating the domain's role; it simply repeats the same context as the schema without further elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' with the resource 'domain' and enumerates the types of information returned (registration dates, nameservers, contacts, status, WHOIS settings). This clearly distinguishes it from sibling tools like domain_check (availability) and domain_registry_status (status only), fulfilling the 'specific verb+resource+scope' criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description only states what it does, leaving the agent to infer usage context implicitly. No alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_listA
List all domains in your Internet.bs account. Supports filtering, pagination, and sorting.
| Name | Required | Description | Default |
|---|---|---|---|
| sortBy | No | Field to sort results by (e.g. DomainName, ExpirationDate) | |
| rangeTo | No | End index for pagination (1-based). Use with rangeFrom for paginated results. | |
| rangeFrom | No | Start index for pagination (1-based). Use with rangeTo for paginated results. | |
| compactList | No | If YES, returns only domain names. If NO, returns full details. Defaults to NO. | |
| pendingOnly | No | If YES, returns only domains with pending operations. Defaults to NO. | |
| expirationToDate | No | Filter domains expiring on or before this date (format: YYYY/MM/DD) | |
| searchTermFilter | No | Filter domains containing this search term (e.g. 'example' matches example.com, myexample.net) | |
| expirationFromDate | No | Filter domains expiring on or after this date (format: YYYY/MM/DD) |
TDQS
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-only operation, and the description adds filtering, pagination, and sorting capabilities. However, it does not disclose response format, default pagination limits, or other edge cases, making it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose and no superfluous text. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with 8 well-described parameters and no output schema, the description provides enough context for tool selection. It does not explain the return format in detail, but the compactList parameter covers that aspect, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 8 parameters with detailed descriptions, so the baseline is 3. The description's mention of filtering, pagination, and sorting groups the parameters conceptually but does not add syntax or format details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all domains in your Internet.bs account' with a specific verb and resource. The mention of filtering, pagination, and sorting further clarifies the scope, distinguishing it from domain_count and domain_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The first sentence clearly implies the tool is for retrieving a domain list, and the supporting capabilities give context for use cases. However, it does not explicitly name alternatives or when not to use, which would be needed for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_pushB
Push (transfer) a domain to another Internet.bs account. The recipient must have an Internet.bs account.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to push (e.g. example.com) | |
| destination | Yes | Email address of the recipient's Internet.bs account |
TDQS
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 behavioral disclosure. It mentions a prerequisite and the core action (transfer), but does not disclose potential side effects, whether the transfer is immediate or requires approval, fees, or what the outcome looks like. This is a significant gap for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the purpose, and contains zero redundant wording. Every piece of information (action and prerequisite) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema and lack of annotations, the description is moderately complete. It states the purpose and a key prerequisite, but it does not explain expected outcomes, timing, or any caveats for the transfer. For a mutation tool, this leaves some gaps, though the low parameter count reduces the need for extensive detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (domain and destination) with meaningful descriptions. The tool description adds no extra parameter semantics beyond what's in the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Push (transfer) a domain to another Internet.bs account.' It identifies the specific verb (push/transfer), resource (domain), and destination (Internet.bs account). However, it does not explicitly distinguish this from sibling tools like domain_trade, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite ('The recipient must have an Internet.bs account') which implies when to use the tool, but it does not explicitly state when to use this tool instead of alternatives like transfer_initiate or domain_trade. The guidance is mostly implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_registry_statusA
Get the registry status (EPP status codes) of a domain. Shows statuses like clientTransferProhibited, serverHold, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to check registry status for |
TDQS
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 implies a read-only operation ('Get', 'Shows'), which is safe. However, it does not disclose behaviors like whether the domain must exist, real-time data, or error handling, so transparency is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the action, and includes examples. Every word adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only status tool, the description is adequate: it states the purpose and gives sample output values. However, it could mention output format or conditions (e.g., valid registered domain), so it's slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter 'domain' with a clear description, covering 100% of parameters. The tool description adds no additional semantic detail beyond the parameter name, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('registry status (EPP status codes) of a domain'), with examples (clientTransferProhibited, serverHold) that clarify the output. It is distinct from sibling tools like domain_info or registrar_lock_status by focusing on EPP status codes specifically, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit usage guidance or alternatives are provided. The description only states what the tool does, without indicating when to use it over sibling tools like domain_info or registrar_lock_status. This makes it a clear gap for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_renewA
Renew an existing domain for an additional registration period.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to renew (e.g. example.com) | |
| period | No | Renewal period (e.g. 1Y for 1 year, 2Y for 2 years). Defaults to 1Y. | |
| discountCode | No | Discount/promo code to apply to the renewal |
TDQS
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 says 'renew' without mentioning that this may involve a payment, affect the domain's expiration date, or require specific conditions. It does not describe side effects or post-conditions, leaving the agent to guess what happens.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that states the purpose without any unnecessary words. Front-loaded with the verb 'Renew' and resource, it is maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is too sparse. It does not mention potential costs, whether the renewal is immediate, if there are any restrictions on renewal timing, or what the expected outcome is. For a tool with three parameters and no other structured context, this is insufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself adds no information about the parameters beyond what the schema already provides (e.g., domain, period, discountCode). It does not clarify the format of period or how discountCode is applied, but the schema descriptions already cover those.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'renew' and the resource 'existing domain', and distinguishes this tool from domain_create and domain_update by emphasizing 'renew' and 'additional registration period'. It is specific and leaves no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for renewing an existing domain rather than creating or updating one, which provides clear context. However, it does not explicitly state when not to use it or mention any prerequisites (e.g., domain must not be expired). Sibling tool names like domain_create and domain_update reinforce the intended usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_restoreA
Restore a deleted domain that is still within its redemption grace period. This typically incurs an additional fee.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to restore from redemption (e.g. example.com) | |
| discountCode | No | Discount/promo code to apply to the restoration |
TDQS
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 an additional fee typically applies, which is useful behavioral context. However, it does not explain side effects, irreversibility, or permission requirements, leaving gaps for a mutation action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary action and followed by the key caveat. Every word 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity and full schema coverage, the description provides the essential context: what the tool does, when it applies, and the cost implication. It lacks details on outcome/response, but no output schema exists and the description is sufficient for typical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (domain and discountCode) are already described. The description adds the context of restoring from redemption but does not elaborate on parameter formats or behaviors beyond the schema, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Restore) and the target resource (a deleted domain), plus a specific condition (still within redemption grace period). It distinguishes itself from sibling tools like domain_renew or domain_create, as it's specifically for restoring already-deleted domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when a domain is deleted and within its redemption grace period. It also notes the typical fee, which is a practical caution. However, it does not explicitly mention alternatives or exclusions, such as avoiding use for domains past the grace period or using domain_renew instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_tradeA
Trade a .eu or .fr domain (change of registrant). This is required for certain TLDs when the registrant changes, as a simple update is not allowed.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to trade (must be .eu or .fr TLD) | |
| ns_list | No | Comma-separated list of nameservers (e.g. ns1.example.com,ns2.example.com) | |
| admin_email | No | Admin contact email address | |
| billing_email | No | Billing contact email address | |
| admin_lastname | No | Admin contact last name | |
| admin_firstname | No | Admin contact first name | |
| registrant_city | No | Registrant city | |
| technical_email | No | Technical contact email address | |
| billing_lastname | No | Billing contact last name | |
| registrant_email | No | Registrant email address | |
| billing_firstname | No | Billing contact first name | |
| registrant_street | No | Registrant street address | |
| technical_lastname | No | Technical contact last name | |
| registrant_lastname | No | Registrant last name | |
| technical_firstname | No | Technical contact first name | |
| registrant_firstname | No | Registrant first name | |
| registrant_postalcode | No | Registrant postal code | |
| registrant_countrycode | No | Registrant country code (e.g. US, FR, DE) | |
| registrant_phonenumber | No | Registrant phone number (e.g. +1.5551234567) | |
| registrant_organization | No | Registrant organization |
TDQS
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 clarifies the operation as a registrant change and the TLD restriction, but does not disclose potential side effects, authentication requirements, or reversibility. This is a moderate level of transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and resource, and every word adds value. It is concise while conveying both the action and the critical usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 20 parameters and no output schema, the description clearly establishes the tool's purpose and when to use it. The schema covers all parameters, and the description resolves the main ambiguity with domain_update. It could be more complete regarding process details, but enough for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 20 parameters. The description adds the .eu/.fr TLD constraint for the 'domain' parameter but does not add meaning beyond the existing schema descriptions, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Trade a .eu or .fr domain') and specifies its purpose as a registrant change. It also distinguishes this from a simple update, effectively differentiating it from the sibling domain_update tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when this tool is required: for certain TLDs ('.eu or .fr') when the registrant changes and a simple update is not allowed. It implies 'domain_update' is the alternative for other cases, providing clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_updateC
Update an existing domain's settings including nameservers, contacts, lock status, WHOIS privacy, and auto-renewal.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to update (e.g. example.com) | |
| ns_list | No | Comma-separated list of nameservers (e.g. ns1.example.com,ns2.example.com) | |
| autoRenew | No | Enable or disable auto-renewal | |
| admin_email | No | Admin contact email address | |
| billing_email | No | Billing contact email address | |
| admin_lastname | No | Admin contact last name | |
| admin_firstname | No | Admin contact first name | |
| registrant_city | No | Registrant city | |
| technical_email | No | Technical contact email address | |
| billing_lastname | No | Billing contact last name | |
| registrant_email | No | Registrant email address | |
| billing_firstname | No | Billing contact first name | |
| registrant_street | No | Registrant street address | |
| privateWhoisStatus | No | Set WHOIS privacy level | |
| technical_lastname | No | Technical contact last name | |
| registrant_lastname | No | Registrant last name | |
| registrarLockStatus | No | Set registrar lock status to prevent unauthorized transfers | |
| technical_firstname | No | Technical contact first name | |
| registrant_firstname | No | Registrant first name | |
| registrant_postalcode | No | Registrant postal code | |
| registrant_countrycode | No | Registrant country code (e.g. US, FR, DE) | |
| registrant_phonenumber | No | Registrant phone number (e.g. +1.5551234567) | |
| registrant_organization | No | Registrant organization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It indicates a mutation but fails to explain partial-update semantics (only supplied fields change), whether the domain must exist, or what the return value is. For a tool with 23 parameters, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and scope efficiently without wasted words. It lists the key setting categories in a compact manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (23), no annotations, and no output schema, this brief description is not complete. It omits how the update behaves (e.g., partial updates, reliance on domain existence) and how it relates to overlapping sibling tools, leaving agents underprepared.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already described. The description's list of categories (nameservers, contacts, lock, WHOIS, auto-renewal) adds no meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates existing domain settings and enumerates the main categories (nameservers, contacts, lock status, WHOIS privacy, auto-renewal). However, it does not explicitly differentiate from sibling tools like registrar_lock_enable/disable and private_whois_enable/disable, which overlap in functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the dedicated registrar_lock_enable/disable or private_whois_enable/disable tools, nor any prerequisites or exclusions. The generic phrasing implies use for updating domain settings, but the overlap with specialized siblings remains unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_forward_addA
Add an email forwarding rule. Emails sent to the source address will be forwarded to the destination address.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The source email address to forward from (e.g. "info@example.com") | |
| destination | Yes | The destination email address to forward to |
TDQS
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 forwarding behavior (source to destination), which adds value beyond the name, but doesn't mention permissions, idempotency, activation timing, or potential side effects. This is a minimal but adequate disclosure for a simple mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The main purpose is stated first, followed by the behavioral explanation. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with no output schema, the description covers the core intent and function. However, it lacks details about error cases, validation, or prerequisites (e.g., domain verification), which could affect correct usage. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already fully describes both parameters. The description restates the source/destination roles but adds no new semantic information. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add an email forwarding rule') with a specific verb and resource. It distinguishes from siblings like email_forward_remove/update/list by focusing on the 'add' operation, and from url_forward_add by specifying 'email' forwarding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: it's for adding a forwarding rule, but no explicit guidance on when to use this versus alternatives (e.g., email_forward_update for modifying existing rules). The description doesn't state exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_forward_listA
List all email forwarding rules configured for a domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to list email forwarding rules for (e.g. example.com) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The verb 'List' clearly indicates a read-only operation, which is a key behavioral trait. However, it provides no additional details about pagination, error conditions, or the exact structure of the response, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It earns its place by directly stating the operation and scope, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool with no output schema, the description is sufficient for correct invocation. It clearly defines the input scope. A minor gap is the lack of any mention of what the returned rules contain, but this is not critical for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the only parameter 'domain' with a description and example, so schema coverage is 100%. The description adds no extra meaning beyond repeating 'domain', thus the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all email forwarding rules configured for a domain' clearly specifies the verb (List), resource (email forwarding rules), and scope (for a domain). It is distinct from sibling tools like url_forward_list (URL forwarding) and email_forward_add/update/remove (mutations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use when you need to see email forwarding rules for a domain. However, it does not explicitly state when not to use it or mention alternatives, leaving the agent to infer context from the sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_forward_removeA
Remove an email forwarding rule for the given source email address.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The source email address of the forwarding rule to remove |
TDQS
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 behavioral disclosure. It states it 'removes' a rule, but does not mention whether the action is permanent, what happens if the rule does not exist, or any prerequisites. For a destructive operation, more transparency about side effects is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action ('Remove') and concisely states the resource and parameter. No wasted words or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, with one parameter and no output schema, and the description captures the core function. However, it lacks context about the destructive nature, error behavior, or how this relates to adding/listing forwarding rules, leaving some gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, and the description merely restates the parameter's purpose ('for the given source email address') without adding extra meaning. Baseline score of 3 is appropriate since 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and identifies the resource ('email forwarding rule') and the key parameter (source email address). It clearly distinguishes this from sibling tools like email_forward_add, email_forward_update, and email_forward_list, which involve different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the verb 'Remove' – the user would use this when they want to delete a forwarding rule. However, there is no explicit guidance on when not to use it or mention of alternatives, such as email_forward_list for checking existing rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_forward_updateA
Update an existing email forwarding rule with a new destination address.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The source email address of the forwarding rule to update | |
| destination | Yes | The new destination email address |
TDQS
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 the action (update) and the new destination, but does not reveal side effects such as whether the old destination is replaced, whether the update is idempotent, or what happens if the source rule does not exist. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It states the action and the object efficiently, making it immediately understandable. This is a model of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 parameters, no output schema), and the description plus parameter schema cover the core mechanics. However, the absence of annotations and lack of behavioral context (e.g., effects on existing rules, error conditions) leaves some gaps. It is adequate but not fully complete for an update operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with clear descriptions (source = source address of rule to update, destination = new destination address). The description essentially restates the destination parameter without adding extra semantics. With 100% schema coverage, the baseline of 3 is appropriate; the description adds no further parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') with a clear resource ('an existing email forwarding rule') and the specific change ('with a new destination address'). This clearly distinguishes it from sibling tools like email_forward_add (create) and email_forward_remove (delete), and from url_forward_update (different resource type).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: updating an existing rule with a new destination. It does not explicitly state when to use this tool versus alternatives (e.g., email_forward_add for new rules), nor does it mention prerequisites like the rule already existing. The guidance is implied but not made explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
host_createB
Create a nameserver host (glue record)
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | The hostname to create (e.g. ns1.example.com) | |
| ipList | Yes | Comma-separated list of IP addresses for the host |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of behavioral disclosure. It does not mention whether the operation is destructive, requires special permissions, is idempotent, or what effects creation has on existing DNS configurations. The minimal statement 'Create a nameserver host' does not reveal any behavioral traits beyond the core action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately states the action. It is concise and front-loaded, with no irrelevant details or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and complete schema coverage, the description is somewhat adequate. However, since there is no output schema and no annotations, the description does not explain return values, error conditions, or prerequisites (e.g., domain must exist), leaving the agent with an incomplete picture for a mutation operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (host and ipList) with 100% coverage, so the baseline is 3. The description adds no extra meaning beyond what the schema provides, such as format constraints, default values, or dependencies between the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a nameserver host (glue record)'. The verb 'Create' and the resource 'nameserver host' are specific, and the parenthetical 'glue record' further clarifies the domain-specific operation, distinguishing it from other DNS-related tools like dns_record_add or host_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as host_update, host_delete, or dns_record_add. The description simply states what it does, leaving the agent to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
host_deleteB
Delete a nameserver host
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | The hostname to delete |
TDQS
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 'Delete' without any details on permanence, side effects on associated records, or potential errors. This is insufficient for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant words. It is front-loaded and every word contributes to the meaning, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a destructive tool with no annotations and no output schema, the description is critically incomplete. It lacks any contextual information on usage, side effects, or error conditions, leaving the agent without sufficient guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the 'host' parameter as 'The hostname to delete', covering 100% of the parameters. The tool description adds no additional semantic value beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Delete' and clearly identifies the resource as 'nameserver host', which distinguishes it from sibling tools like host_create, host_info, host_update, and host_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool, prerequisites for deletion, or alternatives. It does not mention restrictions like whether the host must have no associated DNS records or if the action is irreversible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
host_infoB
Get information about a nameserver host
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | The hostname to get information for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only says 'Get information' with no details about the returned data, error behavior, authentication requirements, or side effects. The description adds no context beyond the obvious read operation, leaving the agent without important operational expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description is minimal but functional. However, it does not hint at what 'information' includes (e.g., IP addresses, status), which would help set expectations. Given the low complexity, a score of 3 reflects an adequate but not enriched description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the single parameter 'host' as 'The hostname to get information for' (100% coverage). The description provides no additional meaning beyond this, so the baseline score of 3 applies—schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('a nameserver host'), making the tool's basic purpose evident. However, 'information' is generic and doesn't specify what details are returned, nor does it distinguish this tool from the sibling host_list, which also retrieves host data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this to get details for a specific host, given the required 'host' parameter. However, there is no explicit mention of when to use this instead of host_list or any other alternative, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
host_listA
List all nameserver hosts for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to list hosts for | |
| compactList | No | Return a compact list (YES or NO, defaults to YES) |
TDQS
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 not disclose side-effect profile, response format, pagination, or any behavioral constraints. 'List' implies a read operation, but the description adds no explicit transparency about safety or behavior beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence that is front-loaded and free of superfluous words. It is appropriately sized for a simple list operation and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple list with two parameters, but lacks context about return payload, error conditions, or relationships to other host tools. Without an output schema, the description could usefully mention whether it returns all NS records or only names, but it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter information beyond what the schema already provides; it doesn't mention 'domain' or 'compactList' at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' with a clear resource 'nameserver hosts' and scope 'for a domain', clearly distinguishing it from siblings like host_create, host_info, and host_delete. It states exactly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use when you need all nameserver hosts for a domain. However, there is no explicit mention of alternatives (e.g., host_info for a single host) or when not to use this tool. No exclusions or when-to-use guidance beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
host_updateC
Update the IP addresses of a nameserver host
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | The hostname to update | |
| ipList | Yes | Comma-separated list of new IP addresses for the host |
TDQS
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 says 'update' without specifying whether the ipList replaces existing addresses, whether it is additive, or what side effects occur (e.g., DNS propagation). This leaves the mutation's behavior largely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is easily parsed and front-loaded. It contains no filler or redundant phrasing, and every word contributes to stating the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a mutation with only two parameters and no output schema, but the description is still too sparse. It fails to explain whether the update is cumulative or replacing, what constitutes a valid host, or any error conditions. For an agent to safely invoke it, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes both parameters (host, ipList) with 100% coverage. The description adds no additional parameter semantics beyond what the schema provides, so it earns the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('IP addresses of a nameserver host'), making it distinct from sibling host tools like host_create, host_delete, or host_list. However, it does not explicitly name alternatives, relying on the IP address specificity for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description gives no conditions for when to use host_update versus host_create or host_delete, nor any prerequisites or potential alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
private_whois_disableA
Disable private WHOIS protection for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to disable private WHOIS for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It only states the action without noting any side effects, reversibility, permission requirements, or consequences such as WHOIS record visibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with a clear verb-object structure, no filler, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation tool, the description covers the core action, but lacks usage context and behavioral details. Given the absence of annotations and output schema, it is minimally adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter `domain` has a schema description that fully covers its meaning, so the description adds no new information. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Disable') and resource ('private WHOIS protection') with a clear target ('a domain'). This clearly distinguishes it from siblings like private_whois_enable and private_whois_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage—disable privacy when that protection is no longer desired—but provides no explicit when-to-use or alternative guidance. No prerequisites 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.
private_whois_enableB
Enable private WHOIS protection for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Type of WHOIS privacy: FULL or PARTIAL | |
| domain | Yes | The domain name to enable private WHOIS for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It only describes the action without disclosing side effects, requirements, permissions, or propagation delays, which is particularly important 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler or redundancy. It is front-loaded and effectively communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a mutation with no annotations or output schema, and the description does not explain what enabling private WHOIS entails, any domain requirements, or the default behavior of the optional type parameter. This leaves significant gaps for an agent to make informed decisions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters documented, including the FULL/PARTIAL enum. The description adds no additional parameter meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Enable') and the target resource ('private WHOIS protection for a domain'), making it obvious what the tool does. It also naturally distinguishes from sibling tools like private_whois_disable and private_whois_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool or how it compares to alternatives. There is no mention of prerequisites, typical use cases, or exclusions, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
private_whois_statusA
Get the current private WHOIS protection status for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to check private WHOIS status for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. Although 'Get' suggests a read-only action, the description does not explicitly confirm no side effects, mention response format, or address potential errors (e.g., domain not found). This lack of behavioral context leaves the agent uncertain about what to expect beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and resource. There is no unnecessary detail, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, no output schema), the description is nearly adequate but lacks essential return-value information. Without an output schema, the agent cannot know whether 'status' is a boolean, string, or structured object. Additionally, edge cases like domain not found are unaddressed, so the description is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the 'domain' parameter is already described clearly in the schema. The tool description adds no additional parameter-level meaning, but it does not need to since the schema fully documents the only parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the target resource ('current private WHOIS protection status') for a specific domain. It distinguishes itself from sibling tools like private_whois_enable and private_whois_disable, which modify the status, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read/status-checking operation, which is intuitive given the verb 'Get'. However, it does not explicitly state when to use this tool versus private_whois_enable/disable or other status tools, nor does it provide exclusion criteria. The intended use is clear but not explicitly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registrant_verification_infoB
Get registrant email verification info for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to get verification info for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It only says 'Get ... info', implying a read operation but not disclosing any additional behavior such as return format, error conditions, or whether it affects the domain in any way. This is minimal transparency for a tool with no structured behavioral metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is adequate but incomplete. It does not mention what the returned 'verification info' contains, nor does it clarify if the operation is read-only or if there are any prerequisites. The lack of an output schema increases the need for such context, which the description does not provide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'domain' described as 'The domain name to get verification info for'. The tool description repeats this same semantic, adding no new meaning beyond the schema. Baseline of 3 is appropriate since the schema already carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('registrant email verification info') with a specific scope ('for a domain'). It distinguishes itself from sibling tools like 'registrant_verification_resend' (which resends) and 'domain_info' (which returns general domain info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus the many sibling tools. It does not mention alternatives or exclusions, leaving the agent to infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registrant_verification_resendB
Resend the registrant verification email for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to resend verification email for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the transparency burden. It only says 'Resend' without disclosing side effects (e.g., email delivery), prerequisites, idempotency, or failure behavior (e.g., if domain is not found or already verified).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words, fully front-loaded, and directly states the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool, this is minimally adequate, but the absence of annotations, output schema, and behavioral details (e.g., prerequisites, effects) leaves gaps that the description does not fill, making it only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, so the description adds no extra semantic value 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Resend') and resource ('registrant verification email for a domain'), distinguishing it from siblings like 'registrant_verification_info' and 'transfer_resend_auth_email'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, no conditions, prerequisites, or exclusions are mentioned. The description simply states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registrar_lock_disableA
Disable registrar lock for a domain to allow transfers
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to disable registrar lock for |
TDQS
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 states that the tool disables registrar lock but does not mention any prerequisites, side effects, reversibility, or impact on domain operations. For a mutating action, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the essential information without any filler. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema) and no annotations, the description provides the core 'what' and 'why' but lacks contextual guidance on limitations, expected outcomes, or relationship to other lock-related tools. It is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single 'domain' parameter with a description. The tool description does not add meaning beyond what the schema states, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Disable registrar lock'), the resource ('for a domain'), and the intended purpose ('to allow transfers'). This distinguishes it from siblings like registrar_lock_enable and registrar_lock_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to allow transfers' provides clear context for when this tool should be used. It does not explicitly mention when not to use it or name alternatives, but the sibling list includes related tools, and the purpose is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registrar_lock_enableA
Enable registrar lock for a domain to prevent unauthorized transfers
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to enable registrar lock for |
TDQS
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 behavioral disclosure. It only states the primary effect and omits idempotency, failure conditions, auth requirements, fees, or what happens if the domain already locked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the action, object, and purpose with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one fully documented parameter and no output schema. The description is minimally viable, but missing edge-case behavior (e.g., already locked, propagation time, side effects) keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description explicitly includes 'for a domain', matching the domain parameter. It adds no extra guidance on formatting, validation, or domain status requirements, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Enable registrar lock for a domain') and states the intended outcome ('prevent unauthorized transfers'), clearly distinguishing it from sibling tools like registrar_lock_disable and registrar_lock_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to prevent unauthorized transfers' gives explicit context for when to use the tool. It does not mention alternatives or exclusions, but the purpose is unambiguous relative to the disable/status siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registrar_lock_statusB
Get the current registrar lock status for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to check registrar lock status for |
TDQS
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 simply restates the tool's name without revealing whether the operation is read-only, what the response format looks like, or any potential errors. The word 'Get' implies a read, but no explicit safety or side-effect information is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff. It is appropriately sized for a simple status lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations and no output schema. The description fails to explain what the return value looks like (e.g., boolean, string) or any behavioral context. While the tool is simple, the lack of any additoinal detail makes it incomplete for an agent relying solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'domain' clearly described. The tool description itself adds no additional parameter meaning 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.
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 ('registrar lock status for a domain'), clearly stating what the tool does. It distinguishes itself from siblings like domain_registry_status or registrar_lock_enable/disable by focusing on the current lock status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention use cases, exclusions, or related tools like registrar_lock_enable/disable or domain_registry_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_away_approveA
Approve an outgoing domain transfer (transfer away from your account to another registrar).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to approve the outgoing transfer for |
TDQS
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 behavioral disclosure. It only states the action and object, but does not mention side effects, reversibility, prerequisites (e.g., pending transfer status), or what happens upon approval. This is a significant gap for a transfer-affecting operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, front-loaded with the action, and contains no redundant words. Every word adds clarity about what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and simple schema, the description is adequate for basic understanding, but it lacks context about the transfer workflow, expected preconditions, or return behavior. With no output schema and no annotations, the description does not fully convey the operational impact or surrounding steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with a clear description for 'domain'. The tool description adds no additional parameter semantics beyond restating that the domain is for the outgoing transfer, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Approve') and a clear resource ('outgoing domain transfer') with added context that the transfer moves the domain away from the account. This distinguishes it from sibling tools like transfer_away_reject or transfer_cancel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when an outgoing transfer needs approval, but it does not explicitly state when to use it versus alternatives like transfer_away_reject or transfer_cancel. There is no direct comparison or exclusion criteria, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_away_rejectA
Reject an outgoing domain transfer (transfer away from your account to another registrar). A reason must be provided (10-512 characters).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to reject the outgoing transfer for | |
| reason | Yes | Reason for rejecting the transfer (minimum 10 characters, maximum 512 characters) |
TDQS
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 behavioral disclosure. It mentions the required reason length (redundant with schema) but does not disclose the effects of rejection, whether the action is reversible, or any side effects on the transfer process. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately states the tool's purpose, with the reason constraint added in a dependent clause. Every word earns its place, making it highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool with no output schema, the description covers the basic purpose and required input. However, it omits important context such as whether the transfer must be in a pending state and what the success/failure response looks like. The tool is functional but leaves some gaps in operational completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no new meaning beyond restating the reason constraint that is already fully specified in the schema. The domain parameter is also already described clearly in the schema, so the description provides no additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Reject' and clearly identifies the resource as 'outgoing domain transfer (transfer away from your account to another registrar)', which distinguishes it from sibling tools like transfer_away_approve. The parenthetical clarification further pinpoints the exact scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context (rejecting an outgoing transfer) but does not explicitly state when to use this tool versus transfer_away_approve or transfer_cancel, nor does it mention any prerequisites like requiring a pending transfer. The context is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_cancelA
Cancel a pending domain transfer.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to cancel the transfer for |
TDQS
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 operation ('Cancel') but does not disclose potential side effects, reversibility, prerequisites (e.g., whether the transfer must be initiated by the user), or what happens if the transfer is not in a pending state. For a mutation tool, this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no unnecessary words. It is appropriately sized and front-loaded with the key action and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description covers the core purpose and parameter adequately. The word 'pending' adds important context about when this action is valid. However, it lacks explicit usage exclusions and behavioral details, so it is not fully complete but above average.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with the description 'The domain name to cancel the transfer for'. The tool description adds no additional parameter semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Cancel') and the specific resource ('pending domain transfer'). This distinguishes it from sibling tools like transfer_initiate, transfer_retry, and transfer_history by focusing on the cancellation of a transfer in a 'pending' state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'pending domain transfer' implies the tool should be used when a transfer is in a pending state and needs to be cancelled. However, there is no explicit guidance on when not to use it or mention of alternative tools for related operations, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_historyB
Get the transfer history for a domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to retrieve transfer history for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure, but it adds none. It does not state whether the operation is read-only, what the response contains, or any side effects. The description only restates the tool's name and parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundancy. It efficiently conveys the core purpose without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and annotations, the description is incomplete. It does not explain what constitutes 'transfer history,' whether the response is paginated, or what statuses/events are included, leaving the agent with insufficient information about the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'domain' parameter, so the baseline is 3. The description does not add any meaning beyond the schema; it merely restates that the domain is the target of the query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('transfer history for a domain'), which is distinct from sibling tools like transfer_initiate or transfer_cancel. It is 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives. There is no mention of use cases, exclusions, or references to other transfer_* tools that handle different actions like retry or cancel. The usage is only implied by the verb 'Get'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_initiateB
Initiate a domain transfer to your Internet.bs account. Requires the domain name and optionally the EPP auth code, registration period, registrant contact info, nameservers, and other transfer options.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to transfer (e.g. example.com) | |
| period | No | Registration period (e.g. '1Y' for 1 year) | |
| ns_list | No | Comma-separated list of nameservers (e.g. 'ns1.example.com,ns2.example.com') | |
| privateWhois | No | Private WHOIS setting: FULL, PARTIAL, or DISABLED | |
| registrarLock | No | Registrar lock setting: ENABLED or DISABLED | |
| registrant_city | No | Registrant city | |
| registrant_email | No | Registrant email address | |
| transferAuthInfo | No | The EPP authorization/transfer code from the current registrar | |
| registrant_street | No | Registrant street address | |
| registrant_lastname | No | Registrant last name | |
| registrant_firstname | No | Registrant first name | |
| registrant_postalcode | No | Registrant postal/zip code | |
| registrant_countrycode | No | Registrant country code (e.g. US, FR) | |
| registrant_phonenumber | No | Registrant phone number (e.g. +1.5551234567) | |
| cloneContactsFromDomain | No | Clone contact information from an existing domain in your account | |
| registrant_organization | No | Registrant organization |
TDQS
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 only states the action and lists optional parameters, failing to disclose important behavioral aspects such as fees, transfer duration, potential failure conditions, or whether an EPP code is mandatory. This is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core purpose and efficiently summarizes optional inputs. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (16 params, no annotations, no output schema), the description is too sparse. It does not mention expected outcomes, prerequisites (like domain unlock), or any post-transfer behavior, leaving the agent without enough context to fully understand the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes all 16 parameters with 100% coverage. The description groups parameters into categories ('EPP auth code, registration period, registrant contact info') but adds no new semantic detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Initiate' with the resource 'domain transfer' and directs it 'to your Internet.bs account.' This clearly distinguishes the tool from sibling transfer-management tools like transfer_cancel, transfer_history, and transfer_retry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used to start a domain transfer, but it does not explicitly state when to use it versus other transfer tools or mention any exclusions or alternatives. Usage context is present but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_resend_auth_emailA
Resend the transfer authorization email for a pending domain transfer.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to resend the authorization email for |
TDQS
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 states the action. It fails to mention side effects, prerequisites beyond 'pending', limitations, or error behavior, leaving the agent unaware 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that is front-loaded and efficient, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the essential scenario and prerequisite. While it could elaborate on edge cases, it is sufficiently complete for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a complete description of the 'domain' parameter (100% coverage), and the description adds no extra semantic meaning beyond restating the purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Resend' and clearly identifies the resource (transfer authorization email) and the context (pending domain transfer), fully distinguishing it from sibling tools like transfer_initiate and transfer_retry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear context by specifying the action applies to a pending domain transfer, but it does not explicitly mention alternatives or 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.
transfer_retryA
Retry a previously failed domain transfer. Optionally provide an updated EPP auth code.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to retry the transfer for | |
| transferAuthInfo | No | The EPP authorization/transfer code (if it was incorrect previously) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits on its own. It only mentions 'retry' and the optional auth code, but does not explain side effects, prerequisites (e.g., transfer must be in a failed state), potential errors, or whether the operation is safe/reversible. This is a significant gap for a mutation-like action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences that convey the action and optional parameter. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's action (retrying a domain transfer) and the absence of annotations or an output schema, the description is insufficient. It does not explain what happens after retry, what state the domain must be in, or what the return value means. The presence of sibling tools and the domain-transfer domain suggest more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with clear descriptions for both parameters: domain and transferAuthInfo. The description adds marginal value by explicitly saying 'updated' EPP auth code, but largely mirrors the schema's 'if it was incorrect previously' note. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Retry a previously failed domain transfer.' This uses a specific verb and resource, and the 'previously failed' qualifier distinguishes it from transfer_initiate, transfer_cancel, and other transfer-related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'previously failed domain transfer' provides clear context for when to use this tool. However, it does not explicitly name alternative tools (e.g., transfer_initiate for new transfers) or list exclusion conditions, though the context strongly implies the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_forward_addA
Add a URL forwarding rule for a domain. The source URL will redirect or frame to the destination URL.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The source URL to forward from (e.g. "http://www.example.com") | |
| isFramed | No | Whether to use framing (YES/NO, default YES). If YES, the destination is displayed in a frame. If NO, a redirect is used. | |
| siteTitle | No | Title for the framed page (only applicable when isFramed=YES) | |
| destination | Yes | The destination URL to forward to | |
| redirect301 | No | Whether to use a 301 permanent redirect instead of 302 (YES/NO). Only applicable when isFramed=NO. | |
| metaKeywords | No | Meta keywords for the framed page (only applicable when isFramed=YES) | |
| metaDescription | No | Meta description for the framed page (only applicable when isFramed=YES) |
TDQS
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 core behavior ('source URL will redirect or frame to the destination URL'), which is helpful, but it omits side effects, edge cases, or prerequisites such as whether the domain already exists. The description adds some value beyond annotations but lacks richness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. It front-loads the purpose and maintains high information density without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions 'for a domain' but the input schema has no domain parameter, creating ambiguity about how the domain is specified. It also does not describe return values, prerequisites, or whether existing rules might be affected. For a 7-parameter tool with no output schema, this is a significant completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are well-documented in the schema itself. The description does not add additional meaning about parameters, just restates the overall redirect/frame behavior. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Add a URL forwarding rule') and resource, distinguishing it from sibling tools like url_forward_update, url_forward_remove, and url_forward_list. Mentioning redirect/frame behavior further clarifies the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the verb 'Add' and the tool name; there is no explicit guidance on when to use this tool versus alternatives like url_forward_update. No exclusions or prerequisites are mentioned, but the context is reasonably clear for a creation operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_forward_listA
List all URL forwarding rules configured for a domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name to list URL forwarding rules for (e.g. example.com) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining behavior. It clearly indicates a read-only 'List' operation with no side effects, but it does not disclose return format, pagination, or error behavior. This is acceptable for a simple list tool but still lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant information. Every word is useful, and it wastes no space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter, this description is largely complete. It states the purpose and scope clearly. The main omission is the lack of an expected response shape, but given there is no output schema and the tool is simple, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, and the only parameter 'domain' is well explained with an example. The description adds no new parameter semantics but doesn't need to, as the schema already handles it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' with a clear resource 'all URL forwarding rules configured for a domain.' It is distinct from sibling tools like url_forward_add, url_forward_update, and email_forward_list, leaving no ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you need to see the URL forwarding rules for a given domain. There are no explicit exclusions or mentions of when to use an alternative, but the description and context make the use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_forward_removeB
Remove a URL forwarding rule for the given source URL.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The source URL of the forwarding rule to remove |
TDQS
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 only states the action without revealing side effects, error behavior (e.g., if the source URL doesn't exist), idempotency, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler. It is front-loaded and every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is minimally adequate, but it omits behavioral details that an agent would need to use it confidently, such as what happens if no matching rule exists or whether the removal is permanent. With no annotations and no output schema, the description is the main source of context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the single parameter 'source' with a clear description, and the tool description essentially repeats this information. Since schema coverage is 100%, the description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Remove') on a specific resource ('URL forwarding rule') and identifies the condition ('given source URL'). It distinguishes from sibling tools like url_forward_add and url_forward_update 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.
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. It doesn't mention that url_forward_update or url_forward_list could be relevant, nor does it specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_forward_updateA
Update an existing URL forwarding rule. Only the source is required; all other fields are optional and only provided values will be updated.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The source URL of the forwarding rule to update | |
| isFramed | No | Whether to use framing (YES/NO) | |
| siteTitle | No | Title for the framed page | |
| destination | No | The new destination URL | |
| redirect301 | No | Whether to use a 301 permanent redirect (YES/NO) | |
| metaKeywords | No | Meta keywords for the framed page | |
| metaDescription | No | Meta description for the framed page |
TDQS
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 partial-update behavior ('only provided values will be updated'), but does not mention error handling, prerequisites, or the response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the verb and resource, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus the complete schema provide a solid understanding of what the tool does, which fields are involved, and the update semantics. Minor gaps remain around return values and explicit alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of the parameters, so the baseline is 3. The description adds a valuable semantic clarification about optionality and partial updates beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Update), resource (URL forwarding rule), and scope (existing), distinguishing it from sibling tools like url_forward_add and url_forward_remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing URL forwarding rule' provides clear context that this tool is for updating rules that already exist, but it does not explicitly name alternatives or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
47 tool updates
v1.2.0- First observed
account_balance - First observed
account_configuration - First observed
account_domains_total_cost - First observed
account_price_list - First observed
dns_record_add - First observed
dns_record_list - First observed
dns_record_remove - First observed
dns_record_update - First observed
domain_check - First observed
domain_count - First observed
domain_create - First observed
domain_info - First observed
domain_list - First observed
domain_push - First observed
domain_registry_status - First observed
domain_renew - First observed
domain_restore - First observed
domain_trade - First observed
domain_update - First observed
email_forward_add - First observed
email_forward_list - First observed
email_forward_remove - First observed
email_forward_update - First observed
host_create - First observed
host_delete - First observed
host_info - First observed
host_list - First observed
host_update - First observed
private_whois_disable - First observed
private_whois_enable - First observed
private_whois_status - First observed
registrant_verification_info - First observed
registrant_verification_resend - First observed
registrar_lock_disable - First observed
registrar_lock_enable - First observed
registrar_lock_status - First observed
transfer_away_approve - First observed
transfer_away_reject - First observed
transfer_cancel - First observed
transfer_history - First observed
transfer_initiate - First observed
transfer_resend_auth_email - First observed
transfer_retry - First observed
url_forward_add - First observed
url_forward_list - First observed
url_forward_remove - First observed
url_forward_update
TDQS
Scored across 47 tools
The tools are grouped by resource (domain, transfer, DNS, etc.), but there is overlap between domain_update and dedicated toggles like registrar_lock_enable and private_whois_enable. Also, several status-querying tools (domain_info, domain_registry_status, registrar_lock_status, private_whois_status) provide similar information, which could confuse an agent.
All tools follow a consistent resource_action or resource_query pattern (e.g., domain_create, dns_record_add, registrar_lock_enable, account_balance). Even with 47 tools, the naming convention is predictable and uniform across all categories.
47 tools is far above the 25+ threshold that typically makes a tool set unwieldy. While the domain is broad, the sheer number makes it difficult for an agent to efficiently navigate and select the right tool without significant overhead.
The tool set covers the full lifecycle of domain management: registration, renewal, restore, transfer (in/out), DNS, hosts, URL/email forwarding, registrar lock, WHOIS privacy, account management, and verification. There are no obvious dead ends or missing core operations for a domain registrar server.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for DNSimple — domains, DNS zone records, availability, pricing and contacts.
MCP server for Hostinger API
Search and discover 25,000+ MCP servers across all major registries. Connect and pay autonomously.
49 developer tools via MCP: DNS, WHOIS, IP lookup, JWT, hashing, QR, and more.
Related MCP Servers
- AlicenseBqualityAmaintenanceMCP server for Dynadot domain registrar API3 — manage domains, DNS, contacts, transfers & more67381MIT
- AlicenseBqualityDmaintenanceMCP server for managing domain registrations, DNS, WHOIS privacy, transfers, and marketplace listings via Spaceship API.361032MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for domain management, enabling domain availability checks, bulk domain checks, and API connectivity testing through the RealtimeRegister API.111MIT
- AlicenseAqualityDmaintenanceComprehensive MCP server for the Namecheap API, enabling domain management, DNS record control, nameserver settings, and domain registration from any MCP client.1032MIT