Uptimeify
Server Details
Free anonymous website, DNS, email and TLS checks, plus read-only access to your monitors.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
20 toolsasn_lookupARead-onlyInspect
ASN lookup for a public IP or domain: the autonomous system and its network owner.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Public IP address or domain name |
Output Schema
| Name | Required | Description |
|---|---|---|
| cc | No | |
| ip | No | |
| ok | No | |
| asns | No | |
| found | No | |
| query | No | |
| prefix | No | |
| registry | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds meaningful context: it specifies the input type (public IP or domain) and the output (ASN and network owner). It also distinguishes 'public' IPs, implying private IPs may not work. This adds value beyond annotations without contradicting them.
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 immediately identifies the tool's purpose, output, and input constraints. Every word contributes value 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?
This is a simple lookup tool with one parameter, a read-only annotation, and an output schema. The description fully covers the essential purpose and input scope. It could optionally mention example queries or error behavior, but such details are not necessary given the simplicity and existing schema/annotations.
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%, with the parameter description already stating 'Public IP address or domain name.' The tool description repeats this information almost verbatim ('for a public IP or domain') and does not add new semantics like format examples or validation constraints. Baseline 3 is appropriate since the schema carries the full meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs an 'ASN lookup' for a public IP or domain and returns 'the autonomous system and its network owner.' This is a specific verb + resource + outcome, and it distinguishes itself from sibling tools like whois or ip_geolocation, which focus on different network attributes.
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 the tool (when you need ASN information for a public IP or domain) but does not explicitly mention alternatives or provide exclusion criteria. Usage guidance is implicit rather than explicit, which aligns with a score of 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_dnsARead-onlyInspect
Check a domain's DNS records (A/AAAA/CNAME/TXT/NS and more).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| found | No | |
| domain | No | |
| records | No | |
| warnings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the specific record types, but no limits, return format, or other behavioral details. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that clearly states the purpose without any fluff. 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 one-parameter tool with an output schema, the description is adequately complete. It could specify what 'and more' includes, but the output schema likely covers details.
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 'domain' parameter, and the description adds no parameter semantics 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 the tool's action ('Check') and resource ('domain's DNS records'), and enumerates specific record types (A/AAAA/CNAME/TXT/NS), which distinguishes it from siblings like mx_lookup (specific record) and dns_propagation (propagation 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 use for checking DNS records but gives no explicit guidance on when to choose this tool over siblings like mx_lookup or dns_propagation. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_sslARead-onlyInspect
Check a host's TLS/SSL certificate: issuer, validity dates, expiry, chain and trust verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | Domain name (not an IP), e.g. deinkunde.com | |
| port | No | TLS port, default 443 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ip | No | |
| ok | No | |
| san | No | |
| host | No | |
| port | No | |
| found | No | |
| expired | No | |
| issuerO | No | |
| trusted | No | |
| validTo | No | |
| issuerCN | No | |
| subjectCN | No | |
| validFrom | No | |
| selfSigned | No | |
| notYetValid | No | |
| serialNumber | No | |
| hostnameMatch | No | |
| fingerprint256 | No | |
| daysUntilExpiry | No | |
| authorizationError | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals a safe read operation, so the description adds value by listing the specific certificate details returned. However, it does not discuss edge cases (e.g., SNI behavior, timeouts) or the trust verdict semantics beyond the minimal list.
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, well-structured sentence that gets straight to the point. It is concise, informative, and front-loads the core 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, the readOnlyHint annotation, and the presence of an output schema, the description sufficiently covers the tool's purpose and key details. It does not need to explain return values because the output schema handles that, and the description provides enough to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters (host and port), with descriptions including the port default. The description itself does not add parameter-level detail beyond referencing 'host', so it neither detracts nor meaningfully enhances 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 uses a specific verb ('Check') and identifies the resource ('host's TLS/SSL certificate'), then enumerates the key attributes examined (issuer, validity dates, expiry, chain, trust verdict). This clearly distinguishes it from sibling tools like check_dns or port_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (checking SSL certificate details for a host) but does not explicitly state when to use this tool over alternatives or provide exclusions. Sibling tools such as hsts_check or port_check are not referenced, so the context is clear but not contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dkim_checkARead-onlyInspect
Check a domain's DKIM public key for a given selector: fetch it and validate it.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. deinkunde.com | |
| selector | Yes | DKIM selector, e.g. google or default |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| bits | No | |
| tags | No | |
| error | No | |
| found | No | |
| domain | No | |
| hasKey | No | |
| record | No | |
| keyType | No | |
| selector | No | |
| warnings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation declares the operation is read-only, and the description adds that it fetches and validates the key. However, it does not explain what 'validate' entails, error behavior, or any prerequisites, leaving some gaps beyond the annotation.
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 is front-loaded with the action (Check) and the resource (DKIM public key), then clarifies via 'fetch it and validate it.' Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only tool with an output schema and clear annotations, the description provides adequate context. It explains the core behavior, and the output schema covers return values, so no significant detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'domain' and 'selector' already described with examples. The description merely restates these concepts without adding extra semantic detail, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks a domain's DKIM public key for a given selector, and explains it fetches and validates it. This specific verb+resource combination distinguishes it from sibling tools like dmarc_check, spf_check, and mx_lookup.
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 over alternatives, but the name and description imply usage for DKIM key validation. The sibling list shows related DNS tools, yet no comparisons 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.
dmarc_checkARead-onlyInspect
Check a domain's DMARC policy record: fetch it and evaluate the policy.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| pct | No | |
| tags | No | |
| error | No | |
| found | No | |
| domain | No | |
| policy | No | |
| record | No | |
| warnings | No | |
| subPolicy | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint annotation already declares safety; description adds 'fetch' and 'evaluate' steps, but no additional behavioral detail like handling of missing records or response format. It doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the operation, no 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 simple one-parameter read-only tool with an output schema, the description is adequate and covers the core behavior; could mention when to use but not necessary for 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 fully describes the single 'domain' parameter with an example; description adds no parameter-level meaning, 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 uses specific verbs 'fetch' and 'evaluate' with the resource 'DMARC policy record', clearly distinguishing it from sibling tools like dkim_check and spf_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are given; usage is implied by the domain-specific resource, but there's no guidance on exclusions or when other DNS tools might be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnsbl_checkARead-onlyInspect
DNSBL check: whether a public IP address is listed on common DNS blacklists. Returns partial results if some blocklists are too slow to answer.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | Public IPv4 or IPv6 address |
Output Schema
| Name | Required | Description |
|---|---|---|
| ip | No | |
| ok | No | |
| clean | No | |
| total | No | |
| partial | No | |
| results | No | |
| listedCount | No | |
| zonesQueried | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already indicates a safe read operation. The description adds a valuable behavioral detail: 'Returns partial results if some blocklists are too slow to answer,' which informs the agent about potential incomplete responses. This goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences. It front-loads the primary purpose and includes a brief caveat about partial results, 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 tool is simple with one parameter, an output schema, and a clear annotation. The description covers the core behavior and a key edge case (partial results). It does not mention any prerequisites or error conditions, but these are not critical for this straightforward 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 already provides a clear description for the 'ip' parameter ('Public IPv4 or IPv6 address') with 100% coverage. The description adds no additional semantic detail beyond reiterating 'public IP address,' so the 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 tool's function: checking whether a public IP address is listed on DNS blacklists. It uses a specific verb ('check') and resource ('public IP address' against 'DNS blacklists'), distinguishing it from sibling tools like check_dns or mx_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (to determine if an IP is blacklisted) and implies it is for IP reputation checks. It does not explicitly mention alternatives or exclusions, but the context is sufficient for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_propagationARead-onlyInspect
Check DNS propagation of a domain across multiple public resolvers.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| type | No | |
| domain | No | |
| results | No | |
| consistent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe read nature is known. The description adds the behavioral detail of checking 'multiple public resolvers', which is useful but does not cover aspects like resolver count, timeout, or output details. With annotations present, this is adequate but not rich additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the tool's purpose. It contains no filler and every word contributes to understanding the tool's functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter), the presence of an output schema, and readOnlyHint annotation, the description is fairly complete. It could potentially explain what 'propagation' means in terms of expected behavior, but for a simple read-only tool, the current description suffices.
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 for the single 'domain' parameter, with a clear example ('deinkunde.com'). The description does not add any additional parameter semantics, 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 checks DNS propagation of a domain across multiple public resolvers. The phrase 'across multiple public resolvers' distinguishes it from sibling tools like check_dns, which likely performs basic DNS lookups. This gives a specific verb and resource with clear scope.
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 you need to verify DNS propagation, but it does not explicitly state when to use this tool versus alternatives. No exclusions or alternatives are mentioned, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_expiryBRead-onlyInspect
Check a domain's registration expiry date and the days remaining.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| tld | No | |
| error | No | |
| found | No | |
| domain | No | |
| statuses | No | |
| createdAt | No | |
| expiresAt | No | |
| registrar | No | |
| updatedAt | No | |
| tldSupported | No | |
| daysUntilExpiry | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds no extra behavioral context beyond confirming it is a read operation. It does not mention data sources, potential delays, or failure modes for unregistered/invalid domains, so it provides minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly conveys the purpose without any redundant words or filler. It is appropriately front-loaded 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?
With an output schema present, return values are already documented. The simple tool has only one parameter and read-only annotations, so the description is mostly complete. However, it could benefit from a brief mention of how the expiry date is obtained (e.g., via WHOIS) or edge-case behavior, but this is not critical given the schema 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?
Schema coverage is 100% with a clear description for the 'domain' parameter including an example. The tool description adds no additional meaning, so the baseline score of 3 is appropriate since the schema 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 clearly states the action ('Check') and the specific resource ('domain's registration expiry date and the days remaining'). This is specific and distinguishes it from broader sibling tools like whois, which would provide more general registry 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 description provides no guidance on when to use this tool versus alternatives (e.g., whois, check_ssl). It merely states what it does without contextual hints or exclusions, so the agent receives no help in selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hsts_checkARead-onlyInspect
HSTS check: a domain's HTTP Strict Transport Security configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| raw | No | |
| domain | No | |
| maxAge | No | |
| preload | No | |
| present | No | |
| warnings | No | |
| preloadReady | No | |
| httpsRedirect | No | |
| includeSubDomains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe read-only nature is known. The description adds little behavioral context beyond what's implied by 'check'—it does not mention network calls, failure conditions, or what happens with domains lacking HSTS. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that restates the tool name ('HSTS check') and adds the resource. It is concise but somewhat under-informative; it earns its place by specifying the resource, but could be more structured without being verbose.
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 an output schema exists. The description sufficiently defines the purpose for a basic check tool, and the annotations cover the read-only safety. It doesn't need to explain return values since output schema presumably handles that.
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 with an example. The description doesn't add further semantic context, but since the schema fully documents the parameter, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks a domain's HTTP Strict Transport Security configuration, which is specific and distinct from sibling tools like check_ssl or http_headers. The verb 'check' plus the resource 'domain's HSTS configuration' makes 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 this tool is for checking HSTS configuration, but it does not explicitly state when to use it over alternatives or provide exclusions. It is clear from context that it's for security header checks, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_headersARead-onlyInspect
Fetch the HTTP response headers for a URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL, e.g. https://deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| url | No | |
| status | No | |
| headers | No | |
| redirects | No | |
| statusText | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description's 'Fetch' aligns with this read-only behavior. However, the description does not disclose any behavioral nuances such as redirect following, timeouts, or rate limits, so it adds only minimal context beyond the annotation.
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 entire description is an eight-word sentence that states the core function without redundancy. It is appropriately sized for a one-parameter read-only tool and front-loads the key 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?
For a tool with a single required parameter, full schema coverage, a readOnly annotation, and an output schema, the description is sufficiently complete. No additional context is necessary 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?
The input schema already documents the only parameter (url) with format guidance ('Full URL, e.g., https://deinkunde.com'), providing 100% coverage. The description adds no parameter-specific details beyond referring to 'a URL,' so 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 uses a specific verb ('Fetch') and resource ('HTTP response headers'), clearly identifying what the tool does. It also distinguishes this tool from siblings like check_ssl or whois by focusing on HTTP headers.
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 vs alternatives. The description only states the action and target, with no mention of when it's appropriate, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_geolocationARead-onlyInspect
IP geolocation for a public IP address or a domain (country, region, ASN, org).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Public IP address or domain name |
Output Schema
| Name | Required | Description |
|---|---|---|
| cc | No | |
| ip | No | |
| ok | No | |
| ptr | No | |
| asns | No | |
| found | No | |
| query | No | |
| prefix | No | |
| registry | No | |
| resolvedFromDomain | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, signaling a safe read operation. The description adds value by naming the output fields (country, region, ASN, org), but does not disclose potential limitations, input validation rules, or rate-level behaviors. This meets the baseline but goes no further.
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 tool's purpose and output. Every word adds meaning, with no repetition of schema or annotation 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 simplicity (one well-documented parameter, read-only annotation, and an output schema), the description provides sufficient context by stating input types and output categories. It lacks explicit notes on IP format variations or error behavior, but the complexity is low enough that this is not a significant 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 schema provides full coverage for the single 'query' parameter with a clear description ('Public IP address or domain name'). The tool description adds no additional parameter-level detail, so the schema carries the burden. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates the tool provides geolocation information for a public IP or domain, listing the main output fields (country, region, ASN, org). While it uses a noun phrase rather than a verb, it distinguishes itself from sibling tools by mentioning the broader scope of results, though it doesn't explicitly contrast with asn_lookup.
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 you need geolocation data for an IP or domain, but it provides no explicit guidance on when to choose this over alternatives like asn_lookup or whois. No exclusions or competitor comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mx_lookupARead-onlyInspect
MX lookup for a domain: its mail exchanger records and their addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| found | No | |
| domain | No | |
| servers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already signals a safe read operation. The description adds that the tool returns MX records and 'their addresses,' which is useful output detail, but it does not disclose edge-case behavior such as missing MX records or resolved address semantics. With annotations covering safety, this modest additional context warrants a 3.
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 without filler. It front-loads the core purpose and includes the key output detail ('their addresses'), earning every word.
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 fully documented parameter, an output schema, and a read-only annotation, the description is mostly complete. However, it lacks any guidance on how this differs from the many DNS-related siblings (e.g., check_dns), so a sentence about when to use it would make it 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?
Input schema coverage is 100% with the 'domain' parameter already well-described ('Domain name, e.g. deinkunde.com'). The tool description does not add any parameter-level detail beyond what the schema provides, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific action: 'MX lookup for a domain' and specifies what it returns ('its mail exchanger records and their addresses'). This distinguishes it from sibling tools like check_dns (generic DNS), dkim_check, and dmarc_check which focus on other record types.
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 'for a domain' provides clear context for when to use this tool. However, it does not explicitly mention alternatives or exclusion scenarios (e.g., when to use check_dns instead), so it lacks the explicit when/when-not guidance that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ping_testARead-onlyInspect
Ping test: measure TCP reachability and round-trip time to a host.
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | Domain name or host | |
| port | No | Port, default 443 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ip | No | |
| ok | No | |
| host | No | |
| port | No | |
| sent | No | |
| avgMs | No | |
| maxMs | No | |
| minMs | No | |
| lossPct | No | |
| attempts | No | |
| received | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the safety profile is clear. The description adds meaningful context by specifying that this measures TCP-level reachability (not ICMP ping) and reports round-trip time, which is valuable behavioral information beyond the annotation.
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, grammatically efficient sentence that front-loads the core purpose. There is zero extraneous content, and the 'Ping test:' prefix is a helpful label rather than waste.
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, presence of an output schema, and read-only annotation, the description is sufficiently complete. It covers the essential behavior (TCP reachability and RTT), though it could be improved with a brief usage context relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters clearly (host, port with default). The description does not add new parameter-level detail, but with 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('measure') and identifies both the resource (TCP reachability to a host) and the metric (round-trip time). It clearly distinguishes from siblings like port_check (which likely just tests port openness) and response_time (HTTP-level timing).
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 (for TCP reachability and RTT), but does not explicitly contrast it with alternatives such as port_check or response_time. It provides no when-not-to-use guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
port_checkARead-onlyInspect
Check whether one or more TCP ports are open on a host. Pass a single port or a list, up to 10 per call.
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | Domain name or host | |
| port | Yes | TCP port, or a list of up to 10 ports, e.g. 443 or [80, 443, 25] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ip | No | |
| ok | No | |
| host | No | |
| port | No | |
| state | No | |
| timeMs | No | |
| partial | No | |
| results | No | |
| portsRequested | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares this as a safe read operation, so the description does not need to repeat that. The description adds 'up to 10 per call' which is also present in the schema, and does not disclose additional behavioral traits like connection timeouts or return format. It is consistent with annotations, no contradiction.
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 primary purpose, and includes a necessary usage hint about the port list limit. 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?
For a simple two-parameter read-only tool with full schema descriptions and an output schema, the description provides adequate context for an agent to select and invoke it. Minor omissions like defining 'open' (e.g., TCP handshake success) are covered by the output schema, 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?
Both parameters are fully described in the schema (100% coverage), including an example for the port parameter. The description reinforces the ability to pass a single port or list but does not add meaning beyond the schema. Baseline of 3 is appropriate because the schema handles 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 a specific action ('Check whether one or more TCP ports are open on a host') with a specific resource (TCP ports on a host). It distinguishes from sibling tools by explicitly mentioning TCP ports, which differentiates it from DNS, SSL, ping, and other network checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking TCP port availability but does not explicitly state when to use it over alternatives or mention exclusions. No comparison to sibling tools like ping_test or check_ssl is provided. Usage context is clear but implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redirect_checkARead-onlyInspect
Check the HTTP redirect chain for a URL, tracing it to the final destination.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL, e.g. https://deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| hops | No | |
| start | No | |
| finalUrl | No | |
| warnings | No | |
| totalHops | No | |
| finalStatus | No | |
| finalStatusText | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already covers the safety profile, and the description adds the behavioral detail that it traces the chain to the final destination. However, it does not disclose potential edge cases like redirect loops, hop limits, or whether relative redirects are handled. It provides minimal extra context beyond the annotation.
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 of 13 words, front-loads the verb and resource, and contains no filler or redundant phrases. It is 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?
Given the tool's simplicity (one parameter, read-only annotation, and an output schema), the description sufficiently explains the tool's behavior and purpose. It does not need to explain return values because the output schema handles that. No critical information is missing for effective tool selection and 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 single parameter 'url' is fully described in the schema with a clear example. The description only repeats that it takes a URL, adding no new meaning. With 100% schema coverage, the baseline of 3 is appropriate; the description does not enhance the parameter understanding.
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 specifies a clear verb ('Check') and resource ('HTTP redirect chain for a URL'), and further clarifies the outcome ('tracing it to the final destination'). This distinguishes it from sibling tools like http_headers or website_status, which do not focus specifically on redirect chains.
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 you need to see redirects and the final URL, but it does not explicitly state when to use this tool over alternatives or list exclusions. There is no mention of when not to use it, e.g., if you only need response codes or headers. The context is clear but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
response_timeARead-onlyInspect
Measure a website's response time (DNS, connect, TTFB, total).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL, e.g. https://deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| up | No | |
| avg | No | |
| max | No | |
| min | No | |
| url | No | |
| status | No | |
| partial | No | |
| samples | No | |
| samplesRequested | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds useful context by enumerating the measured network phases (DNS, connect, TTFB, total). It does not describe timeout behavior or response format, but the output schema covers return values, so the added context is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence: 'Measure a website's response time (DNS, connect, TTFB, total).' Every word contributes to understanding the tool's function, with no redundancy or irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter, a clear output schema, and a simple purpose, the description fully captures what the agent needs to select and invoke the tool. It identifies the tool's niche and the measured metrics, making it complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the only parameter 'url' ('Full URL, e.g. https://deinkunde.com'). The description adds no additional meaning about the parameter, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Measure' and a clearly defined resource 'website's response time', listing specific metrics (DNS, connect, TTFB, total). This distinguishes it from sibling tools such as ping_test or http_headers, which have different objectives.
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 detailed response-time breakdowns are desired, but it does not explicitly mention alternatives, nor does it state when not to use this tool. The context is clear enough to infer the use case, but no exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_dnsARead-onlyInspect
Reverse DNS: resolve a public IP address to its PTR hostname.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | Public IPv4 or IPv6 address |
Output Schema
| Name | Required | Description |
|---|---|---|
| ip | No | |
| ok | No | |
| error | No | |
| hostnames | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint: true, so the safety profile is covered. The description adds that the tool resolves to a PTR hostname, but it does not disclose edge-case behavior (e.g., what happens if no PTR record exists) or any potential rate limits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the tool name and core action, with zero wasted 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?
Given a single required parameter, a read-only annotation, and an existing output schema (not shown but signaled), the description is complete. It identifies the input type and output format, and no further details are needed for this straightforward lookup 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 provides 100% coverage with the 'ip' parameter described as 'Public IPv4 or IPv6 address'. The description does not add any additional meaning beyond what the schema already 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 uses a specific verb 'resolve' with a clear object ('public IP address') and outcome ('PTR hostname'), making the tool's purpose immediately obvious. It also distinguishes itself from sibling DNS tools like asn_lookup or mx_lookup by focusing solely on reverse DNS.
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 a PTR hostname for an IP) but there is no explicit guidance on when to use this tool versus alternatives like check_dns or dns_propagation. With 25 sibling tools, clearer differentiation would help an agent select the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spf_checkARead-onlyInspect
Check a domain's SPF record: fetch it and evaluate the policy.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| all | No | |
| error | No | |
| found | No | |
| terms | No | |
| domain | No | |
| record | No | |
| lookups | No | |
| warnings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and the description adds useful behavioral context: it fetches the record and evaluates the policy. This goes beyond the annotation by clarifying the two-step nature of the operation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with a colon splitting the action into fetch and evaluate. No wasted words, front-loaded, and the structure aids quick comprehension.
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 DNS lookup tool with an output schema available, the description sufficiently covers the core behavior. It does not need to explain return values because an output schema exists, and the simplicity of the tool means no additional context is required.
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 for the single 'domain' parameter with an example ('e.g. deinkunde.com'). The description adds no additional parameter-level detail, so it defaults to the baseline score 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 function: 'Check a domain's SPF record: fetch it and evaluate the policy.' It uses a specific verb ('check') and identifies the resource (domain's SPF record), which differentiates it from sibling tools like dkim_check and dmarc_check that target other 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 implies usage—if you need to check an SPF record, this is the tool—but it gives no explicit when-to-use or when-not-to-use guidance. It does not name alternatives or exclusions, so it falls short of clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
website_statusARead-onlyInspect
Is a website up right now? Start here for any is-the-site-down question: up/down verdict, HTTP status, response time and redirect count in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL, e.g. https://deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| up | No | |
| url | No | |
| server | No | |
| status | No | |
| redirects | No | |
| statusText | No | |
| responseTimeMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint:true already covers safety. The description adds valuable behavioral context by listing exactly what the call returns (up/down verdict, HTTP status, response time, redirect count) and indicating it checks 'right now' (real-time). It does not contradict annotations and provides useful expectations beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences that front-load the core question and immediately follow with usage guidance and output summary. Every phrase earns its place: 'right now' signals real-time, 'start here' gives behavioral priority, and the enumerated outputs set expectations with zero 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 simplicity of the tool (one required parameter, fully documented in schema) and the presence of an output schema, the description is complete. It captures the purpose, usage trigger, and key return fields, and the sibling context makes it clear this is the default entry point for website status checks.
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 for the single 'url' parameter is 100%, with a clear example ('https://deinkunde.com'). The description does not add extra parameter-level information beyond confirming the resource is a website, so it meets the baseline for schema-heavy tools but doesn't exceed 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 phrase ('Is a website up right now?') and resource ('website'), and lists concrete outputs (up/down verdict, HTTP status, response time, redirect count). It also distinguishes itself from siblings by explicitly positioning itself as the starting point ('Start here') for is-the-site-down questions.
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 usage context: 'Start here for any is-the-site-down question'—this tells when to use the tool. It implies that for more focused checks (e.g., response time alone) other sibling tools might be used, but it does not explicitly name alternatives or exclusions, so it stops short of the highest score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoisARead-onlyInspect
Retrieve WHOIS registration data for a domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name, e.g. deinkunde.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| tld | No | |
| error | No | |
| found | No | |
| domain | No | |
| contacts | No | |
| statuses | No | |
| createdAt | No | |
| expiresAt | No | |
| registrar | No | |
| updatedAt | No | |
| nameservers | No | |
| tldSupported | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description consistently describes a read operation. It adds minimal context beyond stating it retrieves 'registration data', but does not disclose any limitations, rate limits, or special behaviors. With annotations present, this is acceptable 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 a single, focused sentence that is front-loaded with the verb and object. Every word adds value; there is no fluff 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?
For a single-parameter tool with a rich output schema and readOnly annotation, the description is sufficient. It clearly names the action and subject, and the output schema covers return values, so no further detail 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?
Schema coverage is 100% with a clear description for the 'domain' parameter (including an example). The description only repeats 'domain' without adding new meaning, so it meets the baseline but does not enhance parameter understanding.
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 ('Retrieve') and clearly identifies the resource ('WHOIS registration data for a domain'). It distinguishes from siblings by focusing on WHOIS specifically, which is distinct from DNS, SSL, or expiry checks.
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 versus alternatives like domain_expiry or check_dns. The description implies a general WHOIS lookup but provides no exclusions or alternative tool suggestions.
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.
13 tool updates
- Removed
alert_history - Removed
billing_summary - Removed
check_history - Removed
get_organization - Removed
list_alert_channels - Removed
list_customers - Removed
list_incidents - Removed
list_maintenance_windows - Removed
list_monitors - Removed
list_status_pages - Removed
list_users - Removed
monitor_status - Removed
uptime_summary
8 tool updates
- Added
alert_history - Added
billing_summary - Added
get_organization - Added
list_alert_channels - Added
list_customers - Added
list_maintenance_windows - Added
list_status_pages - Added
list_users
3 tool updates
- Changed
check_history2 fields changed- added
Input schema / properties / kindAdded value: +{ + "description": "Monitor family. Omit to cover all eight. One of: website, dns, icmp, tcp, ftp, smtp, ssh, imap_pop", + "enum": [ + "website", + "dns", + "icmp", + "tcp", + "ftp", + "smtp", + "ssh", + "imap_pop" + ], + "type": "string" +} - changed
Input schema / properties / monitor_id / descriptionPrevious value: -"The monitor/website id"New value: +"The monitor id"
- Changed
list_monitors5 fields changed- added
Input schema / properties / kindAdded value: +{ + "description": "Monitor family. Omit to cover all eight. One of: website, dns, icmp, tcp, ftp, smtp, ssh, imap_pop", + "enum": [ + "website", + "dns", + "icmp", + "tcp", + "ftp", + "smtp", + "ssh", + "imap_pop" + ], + "type": "string" +} - changed
Output schema / properties / items / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "properties": { - "avgResponseDay": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "avgResponseMonth": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "avgResponseYear": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "hasCritical": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "hasWarning": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "isDown": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "isRecovering": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "monitoringType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "publicId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "upSinceAt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "uptimeDay": { - "anyOf": [ - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } - ] - }, - { - "type": "null" - } - ] - }, - "uptimeMonth": { - "anyOf": [ - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } - ] - }, - { - "type": "null" - } - ] - }, - "uptimeYear": { - "anyOf": [ - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } - ] - }, - { - "type": "null" - } - ] - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "avgResponseDay": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "avgResponseMonth": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "avgResponseYear": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "hasCritical": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "hasWarning": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "isDown": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "isRecovering": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "monitoringType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "publicId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "upSinceAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "uptimeDay": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "uptimeMonth": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "uptimeYear": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / pageRemoved value: -{ - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] -} - added
Output schema / properties / partialFailuresAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - removed
Output schema / properties / perPageRemoved value: -{ - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] -}
- Changed
monitor_status2 fields changed- added
Input schema / properties / kindAdded value: +{ + "description": "Monitor family. Omit to cover all eight. One of: website, dns, icmp, tcp, ftp, smtp, ssh, imap_pop", + "enum": [ + "website", + "dns", + "icmp", + "tcp", + "ftp", + "smtp", + "ssh", + "imap_pop" + ], + "type": "string" +} - added
Output schema / properties / kindAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +}
3 tool updates
- Changed
dnsbl_check2 fields changed- added
Output schema / properties / partialAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / zonesQueriedAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +}
- Changed
port_check8 fields changed- added
Input schema / properties / port / anyOfAdded value: +[ + { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + { + "items": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } +] - changed
Input schema / properties / port / descriptionPrevious value: -"TCP port to test"New value: +"TCP port, or a list of up to 10 ports, e.g. 443 or [80, 443, 25]" - removed
Input schema / properties / port / maximumRemoved value: -65535 - removed
Input schema / properties / port / minimumRemoved value: -1 - removed
Input schema / properties / port / typeRemoved value: -"integer" - added
Output schema / properties / partialAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / portsRequestedAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / resultsAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ip": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "port": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "state": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "timeMs": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] +}
- Changed
response_time2 fields changed- added
Output schema / properties / partialAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / samplesRequestedAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +}
25 tool updates
- Changed
asn_lookup1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "asns": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "allocated": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "asn": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "cc": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "registry": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "cc": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "ip": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "prefix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "query": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "registry": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
check_dns1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "domain": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "records": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "values": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "warnings": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
check_history1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "data": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "checkedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "errorMessage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "location": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "responseTimeMs": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "success": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "page": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "pageCount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "total": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
check_ssl1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "authorizationError": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "daysUntilExpiry": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "expired": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "fingerprint256": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "host": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "hostnameMatch": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "ip": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "issuerCN": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "issuerO": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "notYetValid": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "port": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "san": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "selfSigned": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "serialNumber": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "subjectCN": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "trusted": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "validFrom": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "validTo": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
dkim_check1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "bits": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "domain": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "hasKey": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "keyType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "record": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "selector": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tags": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "tag": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "warnings": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
dmarc_check1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "domain": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "policy": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "record": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "subPolicy": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tags": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "tag": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "warnings": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
dns_propagation1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "consistent": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "domain": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "results": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resolver": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "server": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "values": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
dnsbl_check1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "clean": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "ip": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "listedCount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "results": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "delistUrl": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "listKey": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "listed": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "total": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
domain_expiry1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "createdAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "daysUntilExpiry": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "domain": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "expiresAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "registrar": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statuses": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "tld": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tldSupported": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "updatedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
hsts_check1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "domain": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "httpsRedirect": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "includeSubDomains": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "maxAge": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "preload": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "preloadReady": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "present": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "raw": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "warnings": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
http_headers1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "headers": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "redirects": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "from": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "to": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "statusText": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
ip_geolocation1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "asns": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "allocated": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "asn": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "cc": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "registry": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "cc": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "ip": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "prefix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ptr": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "query": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "registry": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resolvedFromDomain": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
list_incidents1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "incidents": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "customer": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "company": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "email": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "publicId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "error_message": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "monitor": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "hostname": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "publicId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "publicId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resolved_at": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "response_time_ms": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severityLevel": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "source": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "started_at": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status_code": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "summary": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "website": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "id": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "publicId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "websiteId": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
list_monitors1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "items": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "avgResponseDay": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "avgResponseMonth": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "avgResponseYear": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "hasCritical": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "hasWarning": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "isDown": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "isRecovering": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "monitoringType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "publicId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "upSinceAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "uptimeDay": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "uptimeMonth": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "uptimeYear": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "page": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "perPage": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "total": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
monitor_status1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "avgResponseDay": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "avgResponseMonth": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "avgResponseYear": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "hasCritical": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "hasWarning": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "isActive": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "isDown": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "isRecovering": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "monitoringType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "publicId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "upSinceAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "updatedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "uptimeDay": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "uptimeMonth": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "uptimeYear": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
mx_lookup1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "domain": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "servers": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "exchange": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ipv4": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "ipv6": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "priority": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "private": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
ping_test1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "attempts": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "seq": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "timeMs": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "avgMs": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "host": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ip": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "lossPct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "maxMs": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "minMs": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "port": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "received": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "sent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
port_check1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "host": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ip": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "port": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "state": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "timeMs": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
redirect_check1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "finalStatus": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "finalStatusText": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "finalUrl": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "hops": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "from": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "to": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "totalHops": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "warnings": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
response_time1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "avg": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "max": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "min": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "samples": { + "anyOf": [ + { + "items": { + "type": "number" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "up": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
reverse_dns1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "hostnames": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "ip": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
spf_check1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "all": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "domain": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "lookups": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "record": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "terms": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "qualifier": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "term": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "warnings": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
uptime_summary1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "day": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "dayAvgResponse": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "month": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "monthAvgResponse": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "year": { + "anyOf": [ + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + { + "type": "null" + } + ] + }, + "yearAvgResponse": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
website_status1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "redirects": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "responseTimeMs": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "server": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "statusText": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "up": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
- Changed
whois1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": {}, + "properties": { + "contacts": { + "anyOf": [ + { + "items": { + "additionalProperties": {}, + "properties": { + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "domain": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "expiresAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "found": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "nameservers": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "registrar": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statuses": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "tld": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tldSupported": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "updatedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" +}
25 tool updates
- First observed
asn_lookup - First observed
check_dns - First observed
check_history - First observed
check_ssl - First observed
dkim_check - First observed
dmarc_check - First observed
dns_propagation - First observed
dnsbl_check - First observed
domain_expiry - First observed
hsts_check - First observed
http_headers - First observed
ip_geolocation - First observed
list_incidents - First observed
list_monitors - First observed
monitor_status - First observed
mx_lookup - First observed
ping_test - First observed
port_check - First observed
redirect_check - First observed
response_time - First observed
reverse_dns - First observed
spf_check - First observed
uptime_summary - First observed
website_status - First observed
whois
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Live DNS, email-auth and redirect checks, HTTP security headers, uptime history, PC hardware prices.
Free uptime monitoring: HTTP/TCP/TLS/DNS + MCP server checks, cron heartbeats, status pages, alerts.
DNS lookups, health reports, SSL certs, security scans, GEO scoring, uptime checks
SSL/TLS scanning, free Let's Encrypt issuance, and certificate-expiry monitoring.
Related MCP Servers
- AlicenseAqualityCmaintenanceSix-layer website monitoring (uptime, performance, SSL, DNS, visual regression, content change) from Claude, Cline, and Cursor. Free tools (DNS lookup, SSL check, speed test, website checker) work without an account; monitor, incident, alert, and status-page tools use a personal API key.16181MIT
- AlicenseAqualityBmaintenanceProvides comprehensive tools for real-time DNS queries across 53 record types, global propagation checks, and SSL certificate analysis. It also enables domain security scans for SPF/DKIM/DMARC configurations and HTTP uptime monitoring.88822Apache 2.0
- AlicenseNot gradedqualityAmaintenanceFree SSL/TLS scanning and Let's Encrypt certificate issuance (private key stays local), plus certificate-expiry monitoring via one MCP server. Public scan and cert tools need no account.MIT
- AlicenseNot gradedqualityCmaintenanceProvides live infrastructure monitoring for AI agents, including domain health checks, MCP server security posture, email blacklists, broken-link scans, and cloud vendor status. No signup or API key needed for public tools.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Several tools cluster around overlapping diagnostics, such as asn_lookup vs ip_geolocation and website_status vs response_time/redirect_check/http_headers. Descriptions generally clarify the differences, but the boundaries between some tools are not immediately obvious.
Naming conventions are mixed: check_dns and check_ssl use verb-first, while dkim_check, spf_check, and hsts_check use noun-first. There are also varied styles like dns_propagation, domain_expiry, and whois, making the pattern inconsistent but still readable.
At 20 tools, the server falls into the borderline heavy range. Most tools address a distinct diagnostic need, but some could be consolidated, such as website_status overlapping with response_time and redirect_check.
The toolkit covers the core read-only network/domain diagnostic domain well: DNS, email authentication, SSL/TLS, WHOIS, IP intelligence, and website availability. Minor gaps like traceroute or DNSSEC validation exist, but there are no critical missing operations for the apparent purpose.