Uptimeify
Server Details
Free anonymous website, DNS, email and TLS checks, plus monitor read and opt-in write access.
- Status
- Healthy
- Uptime
- 99.9% over 69 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 20 tools
Most tools have clearly distinct purposes, and descriptions proactively cross-reference other tools to clarify boundaries (e.g., whois vs domain_expiry, website_status vs response_time). However, a few pairs like domain_expiry/whois and ping_test/port_check overlap enough that an agent could hesitate without careful reading.
All names use snake_case, but the patterns are mixed: check_dns vs dkim_check, asn_lookup vs ip_geolocation, and noun_noun forms like website_status. The set remains readable, but there is no single predictable convention.
With 20 tools, the set is on the heavy side for a network diagnostics server. Each tool has a clear niche, but the count is borderline and could overwhelm an agent choosing the right call.
The surface covers DNS, email authentication, SSL, HTTP, WHOIS, IP intelligence, ports, and reachability — a broad diagnostic toolkit. Minor gaps remain, such as traceroute, UDP port scanning, DNSSEC validation, and CAA record checks, but core workflows are supported.
Available Tools
20 toolsasn_lookupASN lookupARead-onlyInspect
Resolves a public IP address, or a domain, to the autonomous system that announces it: AS number and name, announced prefix, country code, registry and allocation date. Distinguishes hosting providers, CDNs and corporate networks; it does not identify the site owner. Private and reserved addresses have no announcing AS. ip_geolocation returns the same AS data plus country and PTR. Anonymous, rate-limited per IP.
| 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 declare readOnlyHint and openWorldHint, but the description adds behavior they do not cover: rate limiting per IP, anonymous operation, the negative case of private/reserved addresses returning no AS, and the interpretive limit that hosting/CDN/corporate classification does not identify an owner.
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?
Information-dense and front-loaded with the core verb and return set, then constraints. Slightly packed into two long clauses, but no sentence is filler and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return formatting is not the description's burden. For a single-parameter read tool, the description covers scope, exclusions, sibling routing, rate limits and negative cases — sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema already documents 'Public IP address or domain name'. The description restates the accepted input types but adds no syntax or format detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (resolve IP/domain to its announcing autonomous system) and enumerates exactly what is returned: AS number and name, prefix, country code, registry, allocation date. It also carves out its niche against siblings by clarifying what it does not do ('does not identify the site owner').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'ip_geolocation returns the same AS data plus country and PTR', giving a concrete condition for choosing the sibling instead. Also states when it is not applicable (private/reserved addresses have no announcing AS) and flags the anonymous, rate-limited-per-IP constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_dnsCheck DNSARead-onlyInspect
Resolves a domain's DNS records in one call (A, AAAA, CNAME, MX, TXT, NS, SOA and more) and returns each record type with its values, or a per-type error where a lookup failed. Answers come from a single resolver; dns_propagation compares several. Reads records only and never connects to the host. Anonymous, rate-limited per IP.
| 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?
Beyond the readOnlyHint/openWorldHint annotations, it discloses that lookups are anonymous, rate-limited per IP, resolved through a single resolver, and that failures are returned per record type rather than as a whole-call failure. That is meaningful operational context an agent cannot get from the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: capability and coverage first, then comparison to the alternative, then safety/rate-limit constraints. No filler and nothing repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still summarizes the return shape (each record type with values, per-type errors), and it covers auth model and rate limiting. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'domain' parameter already carries a format example, so the description adds no parameter-level detail. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (resolves) and resource (DNS records) and enumerates the covered record types (A, AAAA, CNAME, MX, TXT, NS, SOA). It also distinguishes itself from the closest sibling by noting that answers come from a single resolver.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative and the condition that selects it: 'Answers come from a single resolver; dns_propagation compares several.' It further rules out connectivity-check siblings by stating it 'never connects to the host.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_sslCheck SSLARead-onlyInspect
Fetches and evaluates a host's TLS certificate over a live handshake: subject, issuer, validity window, days until expiry, hostname match, chain trust, self-signed and expired flags, SANs, serial and SHA-256 fingerprint. Takes a hostname (not an IP address) and an optional port (default 443). A single sample taken now; HTTP behaviour is covered by website_status and the HSTS policy by hsts_check. Anonymous, rate-limited per IP; private and reserved addresses are refused.
| 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?
Annotations only cover readOnly and openWorld, so the description carries real weight: it discloses the live handshake model, that results are a single point-in-time sample, that access is anonymous and rate-limited per IP, and that private/reserved addresses are refused. These are operational facts an agent cannot derive from 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?
Two dense sentences, front-loaded with the verb and result set, then constraints and alternatives. Slightly overloaded on the field enumeration given an output schema already exists, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema covering return values and annotations covering safety, the description still supplies the missing pieces: input restrictions, rate limiting, sampling behaviour, and sibling routing. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already documented in the schema (host, port with 443 default). The description restates the hostname-not-IP constraint but adds no format or syntax detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ("Fetches and evaluates a host's TLS certificate over a live handshake") and enumerates the evaluated attributes, so an agent knows exactly what it gets. It also explicitly carves out scope against siblings website_status and hsts_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?
States the input constraint (hostname, not an IP), the optional port with its default, and names the two alternative tools with the condition that selects each (HTTP behaviour -> website_status, HSTS policy -> hsts_check). Nothing about when-to-use is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dkim_checkDKIM checkARead-onlyInspect
Fetches and validates the DKIM public key at ._domainkey.: parsed tags, key type, key size and warnings such as a revoked or malformed key. The selector is required and cannot be derived from the domain; it appears in a message's DKIM-Signature header (common provider values: google, selector1, default, k1). An unused selector returns found=false. Anonymous, rate-limited per IP.
| 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?
Annotations already cover readOnly and openWorld, and the description adds substantial operational context: anonymous access, rate limiting per IP, the unused-selector found=false edge case, and what the response includes (parsed tags, key type, key size, warnings for revoked or malformed keys). This is well beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight paragraph that front-loads the core action, then parameter constraints, then edge behavior and operational limits. Every sentence earns its place with no redundant restatement of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only lookup with an output schema and annotations, the description is complete: it covers purpose, required inputs and their provenance, edge-case behavior, and rate/auth constraints. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning: the selector cannot be derived from the domain, it appears in the DKIM-Signature header, and common values (google, selector1, default, k1) are listed. This meaningfully supplements the schema's brief 'e.g. google or default'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: fetches and validates the DKIM public key at <selector>._domainkey.<domain>. The DNS location and DKIM specificity make it trivially distinguishable from siblings like spf_check and dmarc_check. No tautology or ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context that the selector is required, cannot be derived from the domain, and comes from a message's DKIM-Signature header, plus common provider values. However, it never states when to prefer this over sibling tools or any explicit exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dmarc_checkDMARC checkARead-onlyInspect
Fetches a domain's DMARC record from _dmarc. and evaluates it: raw record, parsed tags, policy and subdomain policy, percentage, and warnings for records that parse but offer no protection (p=none, missing rua). Reports the published policy, not whether real mail passes it; spf_check and dkim_check cover the mechanisms it aligns against. Anonymous, rate-limited per IP.
| 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?
Adds real behavioral context beyond the readOnlyHint/openWorldHint annotations: anonymous access, per-IP rate limiting, the _dmarc.<domain> lookup location, and the warning heuristics for p=none/missing rua. It doesn't detail rate-limit values or timeout/error behavior, keeping it just short of a 5.
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 dense sentences, front-loaded with the fetch-and-evaluate action, with scope caveats and the sibling pointer placed after. 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?
An output schema exists, so return values need not be explained; the description nonetheless covers scope, warning behavior, access model, and alternatives. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning by revealing how the single parameter is used: it is prepended with _dmarc. to form the lookup name. That is genuine semantic value beyond the schema's 'domain name' hint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource and enumerates exactly what it evaluates (raw record, parsed tags, policy, subdomain policy, percentage, warnings). It also distinguishes itself from siblings by noting spf_check and dkim_check cover the alignment mechanisms instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly scopes the tool: it reports the published policy, not whether real mail passes it, and names spf_check/dkim_check as the alternatives for mechanism-level checks. An agent can route correctly with no inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dnsbl_checkDNSBL checkARead-onlyInspect
Checks a public IP address against common DNS blocklists and returns, per list, whether it is listed, the list's reason code and delisting URL, plus totals and a clean flag. Takes an IP address, not a domain (mx_lookup or check_dns resolve one). Slow lists are skipped rather than awaited, so partial=true marks a provisional verdict. One call reflects only the current moment. Anonymous, with the strictest per-IP rate limit of the anonymous tools.
| 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?
Goes well beyond the readOnly/openWorld annotations: it discloses that slow lists are skipped and surface as partial=true (provisional verdicts), that a call is a point-in-time snapshot only, and that the tool is anonymous with the strictest per-IP rate limit of the anonymous tools. Auth and rate-limit context like this is exactly what annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then tightly layered caveats (input type, partial results, snapshot semantics, rate limit). Four dense sentences, none of which repeat the schema or waste space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the description needn't explain returns, yet it still frames what a verdict means (clean flag, partial results, snapshot nature). Nothing an agent needs to call and interpret this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single param is already documented as 'Public IPv4 or IPv6 address', so the baseline is 3. The description adds real meaning by stressing the input must be an IP rather than a domain and by tying the parameter to what the check actually consumes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Checks a public IP address against common DNS blocklists') plus the return shape (per-list listed status, reason code, delisting URL, totals, clean flag). It also explicitly distinguishes itself from siblings by noting it takes an IP, not a domain, naming mx_lookup and check_dns as the resolvers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear input boundary and routes domain-based needs to mx_lookup or check_dns, which functions as an explicit when-not plus alternative. It does not, however, spell out the positive use case (e.g., deliverability/reputation triage) that would tell an agent when this tool is the right first call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_propagationDNS propagationARead-onlyInspect
Queries one domain against several public resolvers and compares the answers, which tells a recent record change apart from a stale cache. Returns each resolver with its values and a consistent flag that stays false while the answers differ. check_dns is the cheaper call for a single reading of all record types. Anonymous, rate-limited per IP.
| 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 and openWorldHint, so the safety profile is covered; the description goes further by disclosing anonymous access and per-IP rate limiting, plus the semantics of the 'consistent' flag. It does not say what happens on rate-limit exhaustion or how many resolvers are queried, leaving some operational detail unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with purpose before the alternative and the operational caveat. Describing the per-resolver return values is mildly redundant given an output schema exists, but the sentence earns its place by explaining what the 'consistent' flag means.
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, the description needn't explain return structure, and annotations cover the safety profile. It still supplies the missing pieces an agent needs — when to prefer check_dns, the propagation-vs-cache framing, and rate-limit/auth context — so nothing material is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema fully documents 'domain'. The description says 'one domain' but adds no format, normalization, or record-type guidance beyond the schema — the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('queries one domain against several public resolvers and compares the answers') and articulates the analytic purpose: distinguishing a recent record change from a stale cache. It is clearly separable from siblings like check_dns or mx_lookup without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative explicitly ('check_dns is the cheaper call for a single reading of all record types'), which tells the agent when to pick the other tool. The positive cue — use this after a record change to verify propagation — is implied by the purpose statement rather than stated outright, and no other exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_expiryDomain expiryARead-onlyInspect
Reports a domain's registration expiry from WHOIS with the remaining days, plus registrar, creation and update dates and the EPP status codes that reveal redemption or pending delete. Covers the registration, not the TLS certificate (check_ssl). tldSupported=false means the TLD has no queryable WHOIS server, not that the domain is unregistered. Anonymous, rate-limited per IP.
| 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 only declare readOnlyHint and openWorldHint; the description adds genuinely non-obvious behavior: anonymous access, per-IP rate limiting, and the counter-intuitive meaning of tldSupported=false ('not that the domain is unregistered'). That last point prevents a real misinterpretation, though nothing is said about failure modes for non-existent domains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct load: what is returned, what it is not, and the tldSupported/rate-limit caveats. The core purpose leads, and no sentence is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no further explanation, and the description covers the behavioral envelope (anonymity, rate limits) plus the one edge case (tldSupported) that an agent could misread. Nothing needed to call it correctly 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?
Only one parameter and schema description coverage is 100%, with an example ('deinkunde.com') already in the schema, so the baseline of 3 applies. The description adds no format, TLD, or IDN guidance beyond what the schema supplies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Reports a domain's registration expiry from WHOIS') and enumerates the returned facts (remaining days, registrar, creation/update dates, EPP status codes). It explicitly separates itself from the close sibling check_ssl, so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear positive context (registration expiry, EPP redemption/pending-delete states) and an explicit exclusion with the alternative named ('Covers the registration, not the TLS certificate (check_ssl)'). It does not, however, position itself against the sibling 'whois' tool, which is the nearest alternative, so the routing guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hsts_checkHSTS checkARead-onlyInspect
Checks a domain's HTTP Strict Transport Security setup: header presence and raw value, max-age, includeSubDomains and preload flags, whether plain HTTP redirects to HTTPS, preload-list eligibility, and warnings for ineffective values. Reports the advertised policy only; the certificate is check_ssl and the redirect chain redirect_check. Anonymous, rate-limited per IP; private and reserved addresses are refused.
| 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?
Beyond the readOnlyHint/openWorldHint annotations, it discloses access model ('Anonymous, rate-limited per IP'), a refusal condition ('private and reserved addresses are refused'), and the analytical limits of the check ('Reports the advertised policy only' plus 'warnings for ineffective values'). This is real behavioral context the annotations do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and scope, followed by routing and operational caveats. The enumerated checklist is dense but each clause maps to a distinct behavior, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation. The description covers scope, sibling boundaries, auth/rate-limit behavior, and refused targets, leaving nothing an agent needs to 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?
There is a single parameter at 100% schema coverage, and the schema already documents 'domain' with an example. The description adds nothing about the parameter beyond what the schema provides, so the 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 gives a specific verb and resource ('Checks a domain's HTTP Strict Transport Security setup') and then enumerates exactly what aspects are inspected (header presence, max-age, includeSubDomains, preload, HTTP-to-HTTPS redirect, preload eligibility, ineffective-value warnings). It is easily distinguished from check_ssl and redirect_check, which it names outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly bounds the tool's scope with 'Reports the advertised policy only' and routes the agent elsewhere for adjacent concerns: 'the certificate is check_ssl and the redirect chain redirect_check.' That is explicit when-not-to-use guidance with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http_headersHTTP headersARead-onlyInspect
Fetches a URL and returns its HTTP response headers verbatim as a name/value map, with the status line and every redirect hop. The response body is never returned. website_status gives a plain up/down verdict and redirect_check the redirect chain alone. Anonymous, rate-limited per IP; private and reserved addresses are refused.
| 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 already flag readOnlyHint and openWorldHint, but the description goes well beyond them: the response body is never returned, redirect hops are included, the call is anonymous and rate-limited per IP, and private/reserved addresses are refused. These are concrete behavioral details an agent needs before invoking.
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?
Every sentence earns its place: the core behavior is front-loaded, then the body omission, then the sibling routing, then the auth/access constraints. No redundant restatement of the name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return-value documentation is unnecessary. The description covers alternatives, safety, privacy constraints, and rate limiting. It is fully complete for invocation; only a minor note about pagination or timeouts could be added, but nothing essential 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?
With a single parameter and 100% schema description coverage, the schema already carries the parameter semantics. The description adds no format, encoding, or example beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb (fetches) and resource (URL returns HTTP response headers verbatim as a name/value map), and clarifies the exact scope: status line plus every redirect hop, never the body. It explicitly distinguishes itself from the sibling tools website_status and redirect_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?
It names both alternatives and the condition that selects them: website_status for a plain up/down verdict, redirect_check for the redirect chain alone. It also states operational constraints (anonymous, rate-limited per IP, private/reserved addresses refused), so an agent knows when the call is appropriate and when it will be rejected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_geolocationIP geolocationARead-onlyInspect
Locates a public IP address, or a domain resolved to one, at network level: country code, registry, announced prefix, PTR hostname and autonomous systems. Registry-based, so it names the network operator's country, which for hosted or CDN addresses differs from where a visitor or business is located; it is not a street address. Private and reserved addresses have no answer. Anonymous, rate-limited per IP.
| 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 only cover readOnlyHint and openWorldHint; the description adds the operationally important traits an agent needs: it is anonymous (no credentials) and rate-limited per IP, and private/reserved inputs produce no answer. It also explains the semantic limitation of the output (registry country vs. physical location), which no annotation conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and output facets, then moves through limitations and operating constraints. Four dense sentences with no filler, though the 'it is not a street address' clarification is slightly redundant with the preceding registry-country explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the description still covers input semantics, output caveats, empty-result cases, and auth/rate-limit behavior. An agent has everything needed to call it correctly and interpret the response.
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 'query' parameter, so the schema already documents the input. The description's elaboration that a domain is 'resolved to one' adds only marginal clarification over the schema's 'Public IP address or domain name', so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('locates a public IP address, or a domain resolved to one') and enumerates the returned facets (country code, registry, prefix, PTR hostname, ASNs). The 'at network level' framing separates it conceptually from registration tools like whois, but it never names a sibling despite clear overlap with asn_lookup and reverse_dns, so an agent still has to guess which tool wins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong context on when the result is and isn't meaningful: registry-based country reflects the network operator, not visitor/business location, and private/reserved addresses return nothing. What's missing is routing guidance against the 19 siblings, particularly asn_lookup and reverse_dns, which cover part of the same ground.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mx_lookupMX lookupARead-onlyInspect
Looks up a domain's MX records and resolves each mail exchanger to its IPv4 and IPv6 addresses, ordered by priority, flagging hosts that resolve into private address space. Shows where mail is delivered; it does not connect to the servers or test SMTP, and sender authorisation is covered by spf_check, dkim_check and dmarc_check. Anonymous, rate-limited per IP.
| 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?
Annotations only declare readOnlyHint and openWorldHint; the description adds real operational context: anonymous access, per-IP rate limiting, priority ordering of results, and flagging of hosts resolving into private address space. That is meaningful behavior beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: capability first, boundaries and routing second, access constraints last. No filler and nothing repeated from the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the description covers scope, exclusions, access model and rate limits. Nothing an agent needs to select or call this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (domain) and schema coverage is 100% with an example already in the schema, so the description adds no syntax or format detail. Baseline 3 applies when the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (looks up a domain's MX records) plus the resolution behavior (each exchanger to IPv4/IPv6, ordered by priority, private-space flagging). It is immediately distinguishable from siblings like check_dns or 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?
Explicitly scopes when to use it ('shows where mail is delivered') and when not ('does not connect to the servers or test SMTP'), and routes sender-authorisation questions to the named alternatives spf_check, dkim_check and dmarc_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ping_testPing testARead-onlyInspect
Measures reachability and round-trip time with repeated TCP connections to a host port (default 443), returning every attempt, sent and received counts, packet loss and min/avg/max milliseconds. A TCP handshake, not an ICMP echo, so hosts that drop ICMP still answer. website_status gives a one-shot verdict for a website. Anonymous, rate-limited per IP; private and reserved addresses are refused.
| 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?
Adds substantial context beyond the readOnly/openWorld annotations: anonymous access, per-IP rate limiting, and refusal of private/reserved addresses. These are operational constraints an agent could not infer from structured fields and that directly affect call planning.
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?
Four tight sentences, front-loaded with what is measured and returned before the mechanism, alternative, and limits. Every sentence carries distinct information; nothing is 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?
An output schema exists and the description still summarizes the returned fields, plus it covers the rate limit, the address restriction, and the sibling alternative. Nothing an agent needs to invoke this safely and correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'host' and 'port' are already documented, including the 443 default. The description restates the default but adds no format or validation nuance beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Measures reachability and round-trip time with repeated TCP connections to a host port') and clarifies the mechanism (TCP handshake, not ICMP). It also names the sibling it is not (website_status), so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative (website_status) and its distinguishing trait ('one-shot verdict'), which lets an agent route between repeated probing and a single check. It stops short of an explicit 'use X when / don't use X when' rule and never states when repeated pings are actually warranted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
port_checkPort checkARead-onlyInspect
Opens TCP connections to one port or a list of up to 10 ports on a host and reports each as open, closed or filtered, with the time taken. partial=true means not every port answered within the time budget; filtered means no answer arrived, not that the port is certainly closed. TCP only, no UDP. Anonymous, rate-limited per IP; hosts resolving to private or reserved addresses are refused.
| 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?
Goes well beyond the readOnlyHint/openWorldHint annotations: anonymous access, per-IP rate limiting, refusal of private/reserved addresses, a time budget that can yield partial=true, and the precise meaning of 'filtered'. These are exactly the operational caveats an agent needs before calling and interpreting the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, followed by tightly packed caveats with zero filler. Four sentences, each carrying distinct information (semantics of filtered, transport limit, access policy).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described; the description instead covers the ambiguous parts an agent could misread (partial vs filtered). Combined with annotations for the safety profile, nothing needed to call or interpret it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents host and the port/port-list union with min/max bounds. The description restates the 10-port cap and list form but adds no new syntax or format meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('Opens TCP connections to one port or a list of up to 10 ports on a host') and the output shape (open/closed/filtered plus time taken). This clearly differentiates it from siblings like ping_test, website_status, and check_ssl, which do not probe raw TCP ports.
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 through scope boundaries ('TCP only, no UDP') and result interpretation ('filtered means no answer arrived, not that the port is certainly closed'), which helps an agent read results correctly. However, it never says when to prefer this tool over siblings such as ping_test or website_status, nor any prerequisites beyond the private-address refusal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redirect_checkRedirect checkARead-onlyInspect
Follows a URL's redirect chain hop by hop and returns each step's status, source and target, the final URL and status, the hop count, and warnings for loops, HTTPS-to-HTTP downgrades and overly long chains. Body and headers of the destination are not returned (http_headers covers headers). Anonymous, rate-limited per IP; private and reserved addresses are refused.
| 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?
Annotations only cover readOnlyHint and openWorldHint, but the description adds materially: anonymous access, per-IP rate limiting, refusal of private/reserved addresses, loop and HTTPS-to-HTTP downgrade detection, and the explicit exclusion of body and headers from the response. This is a lot of operational context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and outcome list, then operational caveats. Dense but every clause carries information; the second sentence's parenthetical about http_headers earns its place by disambiguating a sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not explain return values, yet it usefully previews the shape and warning types. Combined with rate-limit, anonymity, and address-refusal notes, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter with 100% schema description coverage ('Full URL, e.g. https://deinkunde.com'), so the schema already carries the semantics. The description adds no extra constraint on the url argument (e.g. scheme handling or normalization), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource – follows a URL's redirect chain hop by hop – and enumerates exactly what it yields (per-hop status/source/target, final URL/status, hop count, warnings). It also separates itself from the sibling http_headers by explicitly noting headers are not returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for use (tracing redirect chains, detecting loops/downgrades/long chains) and points to http_headers as the tool for header data, which routes the agent away from a wrong sibling. It stops short of naming when-not-to-use conditions or other alternatives like website_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
response_timeResponse timeARead-onlyInspect
Measures how fast a URL answers over several samples, returning each sample plus min, average and max milliseconds, the HTTP status and an up flag. partial=true means fewer samples returned than requested. Measures the HTTP response only: no browser runs, so JavaScript, assets and Core Web Vitals are not reflected. A snapshot, not a trend. Anonymous, rate-limited per IP; private and reserved addresses are refused.
| 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 cover the read-only and open-world profile, and the description adds real behavioral context beyond that: anonymous rate limiting per IP, refusal of private and reserved addresses, and the meaning of the `partial=true` flag. The main gap is that it never states the sample count or how many samples are taken by default, which materially affects what 'rate-limited' means in practice.
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?
Four tight sentences, front-loaded with what is measured and returned, then constraints. Every clause carries a distinct fact and none restates the title or the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be exhaustively described, yet the description still summarizes them usefully. For a one-parameter, read-only measurement tool, an agent has everything it needs to decide to call it and to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, so the baseline is 3. The description adds contextual meaning to the sampling behavior ('over several samples') but gives no information about the `url` argument itself beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (measures) plus resource (URL response time) with the measurement unit and returned fields stated explicitly. It also carves out its scope against the sibling set with 'Measures the HTTP response only: no browser runs', which separates it from ping_test and website_status without the agent opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context and explicit exclusions: no JavaScript, no assets, no Core Web Vitals, and 'a snapshot, not a trend' tells the agent not to use it for monitoring over time. It stops short of naming a specific alternative sibling (e.g. ping_test for ICMP or a browser-based tool for CWV), so routing is inferred rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_dnsReverse DNSARead-onlyInspect
Resolves a public IP address to the PTR hostnames published for it, or returns the resolver's error where there is none. A PTR is set by whoever controls the address block, so it names the host rather than necessarily the site; a missing PTR is common and not a fault. Forward and reverse records need not agree, and this call does not check that they do. Anonymous, rate-limited per IP.
| 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 declare readOnlyHint=true and openWorldHint=true, but the description adds meaningful behavior beyond them: anonymous access, per-IP rate limiting, and the failure mode of returning the resolver's error when no PTR exists. The PTR provenance caveat ('set by whoever controls the address block') further sets correct expectations about result semantics.
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 front-loaded with the core action, then adds only caveats that prevent misinterpretation. Every sentence earns its place; no redundant restatement of the name or schema.
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 lookup with an output schema and safety annotations already in place, the description supplies the remaining interpretive context (PTR ownership, missing PTR normality, no forward/reverse check, rate limiting). Nothing required for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'ip' parameter, and its description already specifies 'Public IPv4 or IPv6 address.' The tool description adds no syntax or format detail beyond the schema, so the baseline of 3 is appropriate for a fully documented single 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?
States a specific verb (resolves) and resource (public IP to PTR hostnames) and clarifies the reverse-only scope with 'Forward and reverse records need not agree, and this call does not check that they do,' which distinguishes it from forward DNS siblings like check_dns. An agent can tell what this tool does without reading the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implied usage (a reverse DNS lookup) and interpretation guidance ('a missing PTR is common and not a fault'), but never states when to choose it over alternatives such as check_dns or dns_propagation. It lacks explicit when-to-use or when-not-to-use routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spf_checkSPF checkARead-onlyInspect
Fetches a domain's SPF record and evaluates it: raw record, parsed terms with qualifiers, DNS lookups counted against the RFC 7208 limit of ten, the final all qualifier, and warnings for common silent failures. A domain without a record returns found=false. Alignment and reporting belong to dmarc_check, signing keys to dkim_check. Anonymous, rate-limited per IP.
| 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 only cover readOnlyHint and openWorldHint, and the description adds genuinely new operational context: anonymous access, per-IP rate limiting, and the not-found behavior (found=false). It also flags the RFC 7208 ten-lookup limit and that warnings are emitted for silent failures, which tells the agent what edge cases the result surfaces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose in the first clause, then layers output scope, absence semantics, sibling routing, and access characteristics in a tight sequence of short sentences. No filler and no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with an output schema and annotations, this covers everything an agent needs: what it returns, what happens when no record exists, how it differs from neighbors, and the rate-limit/no-auth constraints. The output enumeration slightly overlaps the output schema but adds interpretive value (the ten-lookup limit).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (domain) and schema description coverage is 100%, so the schema already carries the semantics. The description adds no format or syntax detail beyond the schema's own example. 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?
Opens with a specific verb+resource ('Fetches a domain's SPF record and evaluates it') and immediately enumerates what the evaluation produces. It actively differentiates itself from siblings by name, stating that alignment/reporting belong to dmarc_check and signing keys to dkim_check, so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes two adjacent concerns to their correct siblings, which is stronger than most definitions. It stops short of stating a positive trigger ('use this when diagnosing email deliverability / SPF misconfiguration'), and the selection condition for each alternative is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
website_statusWebsite statusARead-onlyInspect
Checks whether a website is up right now: up/down verdict, HTTP status and text, response time, server header and number of redirects followed. The usual first call for any is-the-site-down question. A single sample from one location, not uptime; response_time, http_headers and redirect_check go deeper. Anonymous, rate-limited per IP; private and reserved addresses are refused.
| 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?
Annotations only cover read-only and open-world, but the description adds real operational context: anonymous access, per-IP rate limiting, refusal of private/reserved addresses, and the fact that a result is one sample rather than continuous uptime. These are exactly the traits an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the core verdict and its fields, followed by routing guidance and constraints. No filler and nothing repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so field-level return documentation is unnecessary, and the description still names the key fields. Combined with scope, routing, and access constraints, an agent has everything needed to call this 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?
There is a single parameter at 100% schema description coverage, including an example URL, so the schema already carries full meaning. The description adds no syntax or formatting detail beyond what the schema provides, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Checks whether a website is up right now') and enumerates exactly what the verdict contains: up/down, HTTP status and text, response time, server header, redirect count. It explicitly distinguishes itself from siblings response_time, http_headers and redirect_check, so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit routing rule ('The usual first call for any is-the-site-down question') and a clear exclusion ('A single sample from one location, not uptime') that names the deeper alternatives for those cases. Both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoisWHOISARead-onlyInspect
Retrieves WHOIS registration data for a domain: registrar, creation, update and expiry dates, EPP status codes, nameservers and the contact roles the registry still publishes (personal data is usually redacted). tldSupported=false means the TLD has no queryable WHOIS server, which differs from an unregistered domain (found=false). domain_expiry returns the expiry with the remaining days computed. Anonymous, rate-limited per IP.
| 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 only declare readOnlyHint and openWorldHint; the description goes well beyond them by disclosing anonymity, per-IP rate limiting, routine redaction of personal data, and the important failure-mode distinction between 'no WHOIS server for this TLD' and 'domain not registered'. This is exactly the behavioral context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with what is retrieved, then edge-case semantics, then operational constraints. Nothing is wasted, though the tldSupported/found explanation partially duplicates ground a return-value schema exists to cover.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with annotations and an output schema, the description supplies everything needed for correct interpretation: result semantics, the meaning of absent data, redaction behavior, and rate-limit expectations.
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, and the description adds no format or syntax detail beyond the schema's own example. Baseline 3 applies when the schema does the documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieves WHOIS registration data for a domain') and enumerates exactly what comes back (registrar, dates, EPP status, nameservers, contact roles). It also separates itself from the nearest sibling by noting that 'domain_expiry returns the expiry with the remaining days computed', and disambiguates tldSupported=false from found=false.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the content it returns, and the domain_expiry mention hints at where overlapping data lives, but there is no explicit 'use this when / use X instead when' routing among the 19 siblings. An agent must infer when WHOIS is preferable to check_dns or domain_expiry.
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.
20 tool updates
- Changed
asn_lookup15 fields changed- changed
Output schema / properties / asns / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "allocated": { + "type": [ + "string", + "null" + ] + }, + "asn": { + "type": [ + "string", + "null" + ] + }, + "cc": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "registry": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / cc / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / cc / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ip / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ip / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / prefix / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / prefix / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / query / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / query / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / registry / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / registry / typeAdded value: +[ + "string", + "null" +]
- Changed
check_dns7 fields changed- removed
Output schema / properties / domain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / domain / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - changed
Output schema / properties / records / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "error": { + "type": [ + "string", + "null" + ] + }, + "type": { + "type": [ + "string", + "null" + ] + }, + "values": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
check_ssl38 fields changed- removed
Output schema / properties / authorizationError / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / authorizationError / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / daysUntilExpiry / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / daysUntilExpiry / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / expired / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / expired / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / fingerprint256 / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / fingerprint256 / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / host / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / host / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / hostnameMatch / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / hostnameMatch / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ip / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ip / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / issuerCN / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / issuerCN / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / issuerO / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / issuerO / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / notYetValid / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / notYetValid / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / port / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / port / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / selfSigned / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / selfSigned / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / serialNumber / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / serialNumber / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / subjectCN / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / subjectCN / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / trusted / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / trusted / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / validFrom / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / validFrom / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / validTo / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / validTo / typeAdded value: +[ + "string", + "null" +]
- Changed
dkim_check19 fields changed- removed
Output schema / properties / bits / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / bits / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / domain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / domain / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / hasKey / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / hasKey / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / keyType / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / keyType / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / record / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / record / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / selector / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / selector / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / tags / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "properties": { - "tag": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "tag": { + "type": [ + "string", + "null" + ] + }, + "value": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
dmarc_check17 fields changed- removed
Output schema / properties / domain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / domain / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / pct / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / pct / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / policy / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / policy / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / record / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / record / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / subPolicy / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / subPolicy / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / tags / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "properties": { - "tag": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "tag": { + "type": [ + "string", + "null" + ] + }, + "value": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
dns_propagation9 fields changed- removed
Output schema / properties / consistent / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / consistent / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / domain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / domain / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - changed
Output schema / properties / results / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "error": { + "type": [ + "string", + "null" + ] + }, + "resolver": { + "type": [ + "string", + "null" + ] + }, + "server": { + "type": [ + "string", + "null" + ] + }, + "values": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / type / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / type / typeAdded value: +[ + "string", + "null" +]
- Changed
dnsbl_check15 fields changed- removed
Output schema / properties / clean / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / clean / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ip / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ip / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / listedCount / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / listedCount / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / partial / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / partial / typeAdded value: +[ + "boolean", + "null" +] - changed
Output schema / properties / results / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "code": { + "type": [ + "string", + "null" + ] + }, + "delistUrl": { + "type": [ + "string", + "null" + ] + }, + "error": { + "type": [ + "string", + "null" + ] + }, + "listKey": { + "type": [ + "string", + "null" + ] + }, + "listed": { + "type": [ + "boolean", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "reason": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / total / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / total / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / zonesQueried / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / zonesQueried / typeAdded value: +[ + "number", + "null" +]
- Changed
domain_expiry22 fields changed- removed
Output schema / properties / createdAt / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / createdAt / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / daysUntilExpiry / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / daysUntilExpiry / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / domain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / domain / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / expiresAt / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / expiresAt / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / registrar / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / registrar / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / tld / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / tld / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / tldSupported / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / tldSupported / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / updatedAt / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / updatedAt / typeAdded value: +[ + "string", + "null" +]
- Changed
hsts_check18 fields changed- removed
Output schema / properties / domain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / domain / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / httpsRedirect / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / httpsRedirect / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / includeSubDomains / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / includeSubDomains / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / maxAge / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / maxAge / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / preload / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / preload / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / preloadReady / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / preloadReady / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / present / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / present / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / raw / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / raw / typeAdded value: +[ + "string", + "null" +]
- Changed
http_headers9 fields changed- removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - changed
Output schema / properties / redirects / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "from": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "number", + "null" + ] + }, + "to": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / status / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / status / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / statusText / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / statusText / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / url / typeAdded value: +[ + "string", + "null" +]
- Changed
ip_geolocation19 fields changed- changed
Output schema / properties / asns / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "allocated": { + "type": [ + "string", + "null" + ] + }, + "asn": { + "type": [ + "string", + "null" + ] + }, + "cc": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "registry": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / cc / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / cc / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ip / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ip / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / prefix / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / prefix / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ptr / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ptr / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / query / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / query / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / registry / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / registry / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / resolvedFromDomain / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / resolvedFromDomain / typeAdded value: +[ + "boolean", + "null" +]
- Changed
mx_lookup7 fields changed- removed
Output schema / properties / domain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / domain / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - changed
Output schema / properties / servers / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "exchange": { + "type": [ + "string", + "null" + ] + }, + "ipv4": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "ipv6": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "priority": { + "type": [ + "number", + "null" + ] + }, + "private": { + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
ping_test21 fields changed- changed
Output schema / properties / attempts / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "properties": { - "seq": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "timeMs": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "seq": { + "type": [ + "number", + "null" + ] + }, + "timeMs": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / avgMs / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / avgMs / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / host / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / host / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ip / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ip / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / lossPct / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / lossPct / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / maxMs / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / maxMs / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / minMs / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / minMs / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / port / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / port / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / received / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / received / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / sent / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / sent / typeAdded value: +[ + "number", + "null" +]
- Changed
port_check17 fields changed- removed
Output schema / properties / host / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / host / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ip / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ip / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / partial / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / partial / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / port / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / port / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / portsRequested / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / portsRequested / typeAdded value: +[ + "number", + "null" +] - changed
Output schema / properties / results / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "error": { + "type": [ + "string", + "null" + ] + }, + "ip": { + "type": [ + "string", + "null" + ] + }, + "port": { + "type": [ + "number", + "null" + ] + }, + "state": { + "type": [ + "string", + "null" + ] + }, + "timeMs": { + "type": [ + "number", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / state / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / state / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / timeMs / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / timeMs / typeAdded value: +[ + "number", + "null" +]
- Changed
redirect_check13 fields changed- removed
Output schema / properties / finalStatus / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / finalStatus / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / finalStatusText / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / finalStatusText / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / finalUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / finalUrl / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / hops / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "from": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "number", + "null" + ] + }, + "to": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / start / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / start / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / totalHops / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / totalHops / typeAdded value: +[ + "number", + "null" +]
- Changed
response_time18 fields changed- removed
Output schema / properties / avg / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / avg / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / max / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / max / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / min / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / min / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / partial / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / partial / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / samplesRequested / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / samplesRequested / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / status / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / status / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / up / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / up / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / url / typeAdded value: +[ + "string", + "null" +]
- Changed
reverse_dns6 fields changed- removed
Output schema / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ip / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ip / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +]
- Changed
spf_check15 fields changed- removed
Output schema / properties / all / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / all / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / domain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / domain / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / lookups / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / lookups / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / record / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / record / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / terms / anyOfPrevious value: -[ - { - "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" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "qualifier": { + "type": [ + "string", + "null" + ] + }, + "term": { + "type": [ + "string", + "null" + ] + }, + "type": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
website_status16 fields changed- removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / redirects / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / redirects / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / responseTimeMs / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / responseTimeMs / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / server / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / server / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / status / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / status / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / statusText / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / statusText / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / up / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / up / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / url / typeAdded value: +[ + "string", + "null" +]
- Changed
whois21 fields changed- changed
Output schema / properties / contacts / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": {}, - "properties": { - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": {}, + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "role": { + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - removed
Output schema / properties / createdAt / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / createdAt / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / domain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / domain / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / expiresAt / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / expiresAt / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / found / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / found / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / ok / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / ok / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / registrar / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / registrar / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / tld / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / tld / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / tldSupported / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - added
Output schema / properties / tldSupported / typeAdded value: +[ + "boolean", + "null" +] - removed
Output schema / properties / updatedAt / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / updatedAt / typeAdded value: +[ + "string", + "null" +]
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
Related MCP Connectors
Live DNS, email-auth and redirect checks, HTTP security headers, uptime history, PC hardware prices.
Outside-in DNS, email security, SEO, GEO and app-link checks plus developer utilities.
Check a site's TLS certificate and its domain registration expiry. Read-only, no sign-in.
HTTP, DNS, SSL, WHOIS, ping, security-header, SEO and AI-readiness checks for any website.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceFree 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.3MIT
- AlicenseAqualityCmaintenanceProvides 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.843 npm22Apache 2.0
- AlicenseNot gradedqualityBmaintenancePerforms domain, email, and web audits in a single tool call, checking DNS, RDAP, TLS, SPF, DMARC, DKIM, MTA-STS, BIMI, security headers, and cookies, and returning reproducible findings with an A–F score. Also captures PNG screenshots of public URLs, working read-only against public records with no caching between calls.MIT
- AlicenseNot gradedqualityCmaintenanceEnables live TLS/SSL certificate health checks for any hostname, providing expiry, hostname match, trust verdict, and a health score. Supports both free and paid deep tiers with protocol/cipher analysis.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.