Sherlock Domains MCP
Enables publishing the MCP server package to PyPI for distribution, with support for authentication via token or username/password.
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., "@Sherlock Domains MCPadd a note about domain renewal dates"
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.
sherlock-mcp MCP server
Shelock Domains MCP server to buy & manage domains
Components
Resources
The server implements a simple note storage system with:
Custom note:// URI scheme for accessing individual notes
Each note resource has a name, description and text/plain mimetype
Prompts
The server provides a single prompt:
summarize-notes: Creates summaries of all stored notes
Optional "style" argument to control detail level (brief/detailed)
Generates prompt combining all current notes with style preference
Tools
The server implements one tool:
add-note: Adds a new note to the server
Takes "name" and "content" as required string arguments
Updates server state and notifies clients of resource changes
Related MCP server: codex-cli-mcp-tool
Configuration
[TODO: Add configuration details specific to your implementation]
Quickstart
Install
Claude Desktop
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Development
Building and Publishing
To prepare the package for distribution:
Sync dependencies and update lockfile:
uv syncBuild package distributions:
uv buildThis will create source and wheel distributions in the dist/ directory.
Publish to PyPI:
uv publishNote: You'll need to set PyPI credentials via environment variables or command flags:
Token:
--tokenorUV_PUBLISH_TOKENOr username/password:
--username/UV_PUBLISH_USERNAMEand--password/UV_PUBLISH_PASSWORD
Debugging
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm with this command:
npx @modelcontextprotocol/inspector uv --directory /Users/pengren/go/github.com/Fewsats/sherlock-mcp run sherlock-mcpUpon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
Available Tools
10 toolsclaim_accountA
Links an email address to an AI agent's account for web interface access and account recovery.
Important notes:
- Only accounts without an existing email can be linked
- Each email can only be linked to one account
- This method is rarely needed since emails are also set during domain registration
| Name | Required | Description | Default |
|---|---|---|---|
| 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 of behavioral disclosure. It effectively describes key constraints: the tool is for linking emails to accounts, it has specific preconditions (no existing email on account, email not already linked elsewhere), and it's rarely needed due to domain registration. However, it doesn't cover potential side effects, error conditions, or response formats, which leaves some behavioral aspects unclear.
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 well-structured and front-loaded with the core purpose, followed by important notes in bullet points. Every sentence adds value: the first explains the action and purpose, and the bullets provide critical constraints and context. There is no redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (account linking with constraints), no annotations, and no output schema, the description does a good job covering purpose, usage guidelines, and key constraints. However, it lacks details on what happens after linking (e.g., confirmation process, error responses) and doesn't mention authentication or rate limits, leaving some contextual 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 has 0% description coverage, so the description must compensate. It implicitly clarifies that the 'email' parameter is the address to be linked to the account, adding meaningful context beyond the bare schema. However, it doesn't specify format requirements (e.g., valid email patterns) or provide examples, which could enhance usability further.
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 ('Links an email address') and the target resource ('to an AI agent's account'), with explicit purposes ('for web interface access and account recovery'). It distinguishes this tool from sibling tools like 'set_contact_information' or 'domains' by focusing on account-level email linking rather than general contact updates or domain management.
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 explicit guidance on when to use this tool ('Only accounts without an existing email can be linked') and when not to use it ('Each email can only be linked to one account', 'This method is rarely needed since emails are also set during domain registration'). It effectively distinguishes this from alternatives like domain registration processes, though it doesn't name specific sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dnsB
Create a new DNS record for a domain.
domain_id: Domain UUID (e.g., 'd1234567-89ab-cdef-0123-456789abcdef')
type: DNS record type ('A', 'AAAA', 'CNAME', 'MX', 'TXT', etc.)
name: Subdomain or record name (e.g., 'www' creates www.yourdomain.com)
value: Record value (e.g., IP address for A records, domain for CNAME)
ttl: Time To Live in seconds (default: 3600)
| Name | Required | Description | Default |
|---|---|---|---|
| domain_id | Yes | ||
| type | No | TXT | |
| name | No | test | |
| value | No | test-1 | |
| ttl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, whether the operation is idempotent, or what happens on success/failure. For a mutation tool with zero annotation coverage, 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 appropriately sized and front-loaded with the core purpose in the first sentence. Each subsequent line adds necessary parameter details without redundancy. However, the parameter explanations could be slightly more structured (e.g., bullet points).
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 (mutation with 5 parameters), lack of annotations, and no output schema, the description is incomplete. It covers parameters well but misses critical behavioral context (e.g., permissions, side effects, response format), making it inadequate for safe agent 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 description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains each parameter's purpose with examples (e.g., domain_id as UUID, type with record types, name as subdomain, value with IP examples, ttl with default). This fully compensates for the schema's lack of documentation.
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 creates a new DNS record for a domain, specifying both the action (create) and resource (DNS record). It distinguishes from siblings like delete_dns and update_dns by focusing on creation, but doesn't explicitly differentiate from other creation tools (none listed).
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 on when to use this tool versus alternatives is provided. The description doesn't mention prerequisites (e.g., needing an existing domain), exclusions, or comparisons to sibling tools like update_dns or dns_records, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dnsB
Delete a DNS record for a domain.
domain_id: Domain UUID (e.g., 'd1234567-89ab-cdef-0123-456789abcdef')
record_id: DNS record ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| domain_id | Yes | ||
| record_id | 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 of behavioral disclosure. While 'Delete' implies a destructive mutation, the description doesn't specify whether this action is reversible, requires specific permissions, has rate limits, or what happens upon success/failure. This is a significant gap for a mutation 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 appropriately sized and front-loaded, with the core purpose stated in the first sentence and parameter details following directly. Every sentence earns its place by providing essential information without redundancy or 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?
Given the complexity of a destructive operation with no annotations and no output schema, the description is incomplete. It lacks critical details such as the effect of deletion (e.g., permanent removal), error handling, or return values, which are necessary for safe and effective tool 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 description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'domain_id' is a 'Domain UUID' with an example format and 'record_id' is the 'DNS record ID to delete', clarifying their roles. However, it doesn't detail where to find these IDs or validation rules, leaving some ambiguity.
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 ('Delete') and resource ('a DNS record for a domain'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'update_dns' or 'create_dns', which would require mentioning this is specifically for removal rather than modification or creation.
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. With siblings like 'update_dns' and 'create_dns' available, there's no indication of prerequisites (e.g., needing an existing record), exclusions, or comparative context, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_recordsB
Get DNS records for a domain.
domain_id: Domain UUID (e.g: 'd1234567-89ab-cdef-0123-456789abcdef')
Each DNS record contains:
id (str): Unique record identifier
type (str): DNS record type (e.g. 'A', 'CNAME', 'MX', 'TXT')
name (str): DNS record name
value (str): DNS record value
ttl (int): Time to live in seconds
| Name | Required | Description | Default |
|---|---|---|---|
| domain_id | 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 of behavioral disclosure. It states this is a 'Get' operation, implying read-only behavior, but doesn't mention critical aspects like authentication requirements, rate limits, error conditions, or whether it returns all records or requires pagination. This leaves significant gaps for safe and effective use.
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 efficiently structured: the first sentence states the purpose, followed by a clear parameter explanation and a bulleted list of return fields. Every sentence earns its place without redundancy, making it easy to parse and front-loaded with essential 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 tool's moderate complexity (1 parameter, no output schema, no annotations), the description is partially complete. It excels in explaining parameters and return values but lacks behavioral context (e.g., auth, errors) and usage guidelines relative to siblings. This makes it adequate but with clear gaps for reliable agent 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 description adds substantial value beyond the input schema, which has 0% description coverage. It explains the 'domain_id' parameter with a concrete example (UUID format) and details the structure of returned DNS records (id, type, name, value, ttl), compensating fully for the schema's lack of documentation.
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 with a specific verb ('Get') and resource ('DNS records for a domain'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'domains' or 'search', which might also retrieve domain-related information, leaving some ambiguity about when to choose this specific 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 provides no guidance on when to use this tool versus alternatives. With siblings like 'domains' (likely listing domains) and 'search' (potentially broader searches), there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domainsA
List domains owned by the authenticated user.
Each domain object contains:
id (str): Unique domain identifier (domain_id in other methods)
domain_name (str): The registered domain name
created_at (str): ISO timestamp of domain creation
expires_at (str): ISO timestamp of domain expiration
auto_renew (bool): Whether domain is set to auto-renew
locked (bool): Domain transfer lock status
private (bool): WHOIS privacy protection status
nameservers (list): List of nameserver hostnames
status (str): Domain status (e.g. 'active')
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 effectively describes the tool as a read-only list operation (implied by 'List domains'), and it details the structure of returned domain objects, including fields like 'id', 'domain_name', and 'status'. This adds valuable context beyond basic functionality, though it doesn't cover aspects like error handling or authentication requirements explicitly.
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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by a bulleted list of return fields for clarity. Every sentence earns its place by providing essential information without redundancy or 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?
Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is quite complete. It explains what the tool does, who it applies to (authenticated user), and the structure of returned data. However, it could be slightly more complete by mentioning any limitations (e.g., pagination) or error cases, though this is minor for a simple list tool.
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 0 parameters with 100% coverage, so no parameter information is needed from the description. The description correctly focuses on output semantics by detailing the returned domain object fields, which compensates for the lack of an output schema. This adds significant value beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('domains owned by the authenticated user'), making the purpose specific and unambiguous. It distinguishes this tool from siblings like 'search' or 'get_purchase_offers' by focusing on listing owned domains rather than searching or purchasing.
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 by specifying 'domains owned by the authenticated user,' which suggests this tool is for retrieving the user's own domains. However, it does not explicitly state when to use this tool versus alternatives like 'search' or provide any exclusions or prerequisites, leaving some guidance gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contact_informationB
Retrieve the currently configured contact information that will be used for domain purchases and ICANN registration.
| 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 full burden. It states this is a retrieval operation, implying read-only behavior, but doesn't disclose any behavioral traits like authentication requirements, rate limits, error conditions, or what 'currently configured' means in terms of freshness/caching.
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 sentence that efficiently conveys the core purpose with zero waste. Front-loaded with the main action and resource, appropriately sized for a simple retrieval 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 parameterless retrieval tool with no annotations and no output schema, the description adequately states what it does but lacks context about return format, error handling, or relationship to sibling tools. It's minimally viable but has clear gaps in behavioral disclosure.
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 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose without redundant parameter information, meeting the baseline for parameterless tools.
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 ('Retrieve') and resource ('currently configured contact information'), with specific purpose for 'domain purchases and ICANN registration'. It doesn't explicitly differentiate from sibling tools like 'set_contact_information', but the retrieval vs. setting distinction is implied.
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 contact information is needed for domain/ICANN purposes, but doesn't explicitly state when to use this vs. alternatives like 'set_contact_information' or other sibling tools. No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_purchase_offersA
Request available payment options for a domain.
This method returns an L402 offer, which includes details such as offer_id, amount, currency, and more.
The returned offer can be processed by any tool supporting L402 offers.
The TLD .ai mandates a minimum registration and renewal period of two years. So inform the user that they need to purchase a 2 year package when they request a .ai domain.
The L402 offer structure:
{
'offers': [
{
'offer_id': 'example_offer_id', # String identifier for the offer
'amount': 100, # Numeric cost value in USD cents
'currency': 'usd', # Currency code
'description': 'Example offer', # Text description
'title': 'Example Package' # Title of the package
}
],
'payment_context_token': 'example_token', # Payment context token
'payment_request_url': 'https://api.example.com/payment-request', # Payment URL
'version': '0.2.2' # API version
}
sid: Search ID from a previous search request
domain: Domain name to purchase from the search results related to `sid`
| Name | Required | Description | Default |
|---|---|---|---|
| sid | Yes | ||
| domain | 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 of behavioral disclosure. It effectively describes the return type (L402 offer), its structure, and how it can be processed ('by any tool supporting L402 offers'). It also includes important domain-specific constraints (.ai TLD requirements). However, it doesn't mention potential errors, rate limits, or authentication needs, leaving some behavioral aspects uncovered.
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 appropriately sized but not optimally structured. It front-loads the purpose but includes an extensive JSON example that could be summarized more concisely. The .ai TLD note is important but interrupts the flow. Some sentences could be tightened for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (domain purchasing with payment offers), no annotations, and no output schema, the description does a good job of explaining the return value structure and constraints. It covers the essential context needed to use the tool effectively, though additional information about error handling or authentication would make it more 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 description coverage is 0%, so the description must compensate. It clearly explains both parameters: 'sid' as 'Search ID from a previous search request' and 'domain' as 'Domain name to purchase from the search results related to `sid`'. This adds crucial semantic meaning beyond the bare schema, though it could provide more detail about format constraints or examples.
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 purpose: 'Request available payment options for a domain.' It specifies the verb ('request') and resource ('payment options for a domain'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'search' or 'domains' beyond mentioning domain purchase context.
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 by mentioning that the domain should be 'from the search results related to `sid`' and includes a note about .ai domains requiring 2-year packages. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'search' or 'domains', nor does it specify prerequisites or exclusions beyond the sid and domain parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchA
Search for available domains matching the query.
Returns search results with available/unavailable domains, their prices in USD cents, and a search ID needed for purchase requests.
The query can be a full domain name with or without the TLD but not subdomains or text.
Valid queries:
- "example"
- "example.com"
- "my-domain"
Invalid queries:
- "www.example.com" # no subdomains
- "this is a search" # no spaces
- "sub.domain.com" # no subdomains
| Name | Required | Description | Default |
|---|---|---|---|
| q | 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 of behavioral disclosure. It effectively describes key behaviors: it returns search results with availability status, prices in USD cents, and a search ID needed for purchases. It also specifies query constraints (no subdomains, no spaces), which are crucial for correct usage.
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 well-structured and front-loaded: the first sentence states the purpose, the second details the return values, and the rest provides specific usage rules with clear examples. Every sentence adds value without redundancy, making it efficient 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?
Given the tool's moderate complexity (1 parameter, no output schema, no annotations), the description is largely complete. It covers purpose, usage, behavioral traits, and parameter semantics thoroughly. However, it does not mention potential errors, rate limits, or authentication needs, leaving minor gaps in full contextual coverage.
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 0% description coverage, so the description fully compensates by adding rich semantic details about the 'q' parameter. It explains what constitutes valid queries (e.g., full domain names with or without TLD) and provides explicit examples of valid and invalid inputs, going far beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Search') and resource ('available domains'), distinguishing it from siblings like 'domains' (likely a list tool) or 'get_purchase_offers' (related but different). It specifies what is being searched for and what is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (to search for domain availability) and includes explicit rules for valid/invalid queries. However, it does not explicitly state when to use alternatives like 'domains' or 'get_purchase_offers', missing full sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_contact_informationA
Set the contact information that will be used for domain purchases and ICANN registration.
Contact information must be set before attempting any domain purchases.
All fields are required:
first_name: First name
last_name: Last name
email: Email address
address: Street address
city: City
state: Two-letter state code for US/Canada (e.g., 'CA', 'NY') or province name (e.g., 'Madrid')
postal_code: Postal code
country: Two-letter country code ('US', 'ES', 'FR')
| Name | Required | Description | Default |
|---|---|---|---|
| cfn | Yes | ||
| cln | Yes | ||
| cem | Yes | ||
| cadd | Yes | ||
| cct | Yes | ||
| cst | Yes | ||
| cpc | Yes | ||
| ccn | 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 clearly indicates this is a write/mutation operation ('Set') with permanent effects (for domain registration). However, it doesn't disclose important behavioral traits like whether this requires specific permissions, if changes are reversible, what happens to existing contact information, or any rate limits/quotas.
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 efficiently structured with a clear purpose statement upfront, followed by prerequisite information, then a well-organized parameter explanation. Every sentence adds value with no redundant information. The bullet-style parameter listing is particularly effective for clarity.
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 mutation tool with 8 parameters and no annotations or output schema, the description does an excellent job explaining purpose, prerequisites, and parameter semantics. The main gap is lack of information about the return value or confirmation of success/failure, which would be helpful since there's no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage (all parameters have generic titles like 'Cfn'), but the description provides comprehensive semantic mapping for all 8 parameters. It clearly explains what each parameter represents (e.g., 'first_name: First name', 'state: Two-letter state code...'), including format requirements and examples, fully compensating for the schema's deficiencies.
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 ('Set the contact information') and its purpose ('used for domain purchases and ICANN registration'). It distinguishes this from sibling tools like 'get_contact_information' by specifying it's a set/write operation rather than a read operation.
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 to use this tool ('must be set before attempting any domain purchases'), providing clear prerequisites. It also implies when not to use it (if contact information is already set or if only reading is needed, use 'get_contact_information' instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dnsB
Update an existing DNS record for a domain.
NOTE: Updating a record will change its record id.
domain_id: Domain UUID (e.g., 'd1234567-89ab-cdef-0123-456789abcdef')
record_id: DNS record UUID to update
type: DNS record type ('A', 'AAAA', 'CNAME', 'MX', 'TXT', etc.)
name: Subdomain or record name (e.g., 'www' for www.yourdomain.com)
value: New record value (e.g., IP address for A records)
ttl: Time To Live in seconds (default: 3600)
| Name | Required | Description | Default |
|---|---|---|---|
| domain_id | Yes | ||
| record_id | Yes | ||
| type | No | TXT | |
| name | No | test-2 | |
| value | No | test-2 | |
| ttl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It notes that 'Updating a record will change its record id,' which is a critical behavioral trait not obvious from the schema. However, it lacks other important details: whether this requires specific permissions, if changes are reversible, potential side effects on DNS resolution, or error handling for invalid inputs.
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 well-structured and appropriately sized. It starts with a clear purpose statement, includes a behavioral note upfront, and then lists parameters with explanations. Every sentence adds value, though the parameter explanations could be slightly more concise by avoiding redundancy in examples like 'e.g.,' repetitions.
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 no annotations and no output schema, the description is moderately complete. It covers the tool's purpose and parameters well but lacks critical context: no output format details, no error conditions, no rate limits or authentication requirements, and minimal behavioral transparency beyond the record ID change note. For a mutation tool with 6 parameters, this leaves gaps in operational understanding.
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 0%, so the description must compensate. It successfully adds meaning for all 6 parameters by explaining each one's purpose with examples (e.g., 'domain_id: Domain UUID', 'type: DNS record type', 'ttl: Time To Live in seconds'). This goes beyond the schema's basic titles and provides essential context for proper usage.
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 with a specific verb ('Update') and resource ('existing DNS record for a domain'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'create_dns' or 'delete_dns', which would require mentioning it modifies existing records rather than creating new ones or removing them.
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 prerequisites (e.g., needing an existing DNS record), contrast with 'create_dns' for new records or 'delete_dns' for removal, or specify any contextual constraints like domain ownership requirements.
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. Dates show when Glama detected each change.
10 tool updates
- First observed
claim_account - First observed
create_dns - First observed
delete_dns - First observed
dns_records - First observed
domains - First observed
get_contact_information - First observed
get_purchase_offers - First observed
search - First observed
set_contact_information - First observed
update_dns
TDQS
Each tool has a clearly distinct purpose with no ambiguity. For example, 'create_dns', 'update_dns', and 'delete_dns' handle different DNS operations, while 'domains' lists domains and 'search' checks availability. The 'claim_account' tool is separate for account management, and contact information tools are distinct from domain operations.
Most tools follow a consistent verb_noun or noun pattern (e.g., 'create_dns', 'delete_dns', 'dns_records', 'domains', 'search'). Minor deviations include 'get_contact_information' and 'get_purchase_offers' using 'get_' prefix, and 'set_contact_information' using 'set_', but these are still readable and logical.
With 10 tools, the count is well-scoped for domain management. It covers core workflows like domain search, purchase, DNS management, and account/contact setup without being overwhelming. Each tool serves a specific, necessary function in the domain lifecycle.
The tool set provides complete coverage for domain management. It includes domain search, purchase offers, DNS CRUD operations (create, read, update, delete), domain listing, and account/contact setup. There are no obvious gaps; agents can handle the full lifecycle from search to DNS configuration.
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
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Cloudflare Workers MCP server: domain-intel
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that provides access to Jina AI's powerful web services (page reading, web search, fact checking) through Claude.317828MIT
- AlicenseNot gradedqualityFmaintenanceAn MCP server that allows Claude Code to interact with the OpenAI Codex CLI.2921MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for managing DNS records and domains via the Namecheap API. Works with Claude.ai and other MCP clients.17MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for domainagent.dev, enabling AI agents to search, register, deploy, host, and manage domains with USDC payment on Base via x402. Supports static site deployment via Cloudflare Pages and DNS management.19MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Fewsats/sherlock-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server