# io.github.dotmoosehosting/dotmoose-tools

> Public DNS, mail, TLS, and web diagnostics plus Looking Glass probes via remote MCP.

- name: io.github.dotmoosehosting/dotmoose-tools
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 90/100 flags: duplicate-repo
- quality: 87/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.dotmoosehosting%2Fdotmoose-tools
- tools: https://api.protogrid.dev/v1/servers/io.github.dotmoosehosting%2Fdotmoose-tools/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "dotmoose-tools": {
      "type": "http",
      "url": "https://mcp.dotmoose.com/tools/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 80
- drivers: +repository +namespace-matches-repo +reachable +uptime-100% +updated-21d-ago -duplicate-repo(3 names)
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 87/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 88 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 40 of 40 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: trace_cname_chain (idempotentHint); check_forward_confirmed_rdns (idempotentHint); check_tls_certificate (idempotentHint); …
- pass `tools.token_cost`: about 4,351 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: 83 (weight 15)

- warn `stability.changes`: 40 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name
- pass `stability.new_links`: no tool change named a new site

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 40, about 4,351 tokens to load them all
- tool set hash: 6dfdead71502180ca3e55d2f234da677
- tools last changed: 2026-10-24T07:00:35.566Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.dotmoosehosting/dotmoose-tools.svg)](https://protogrid.dev/servers/io.github.dotmoosehosting/dotmoose-tools)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-24 `build_dmarc_record` changed (annotations)
- 2026-10-24 `build_spf_record` changed (annotations)
- 2026-10-24 `estimate_backup_retention` changed (annotations)
- 2026-10-24 `estimate_storage_growth` changed (annotations)
- 2026-10-24 `calculate_bandwidth` changed (annotations)
- 2026-10-24 `ip_range_to_cidr` changed (annotations)
- 2026-10-24 `calculate_subnet` changed (annotations)
- 2026-10-24 `looking_glass_path` changed (annotations)
- 2026-10-24 `looking_glass_traceroute` changed (annotations)
- 2026-10-24 `looking_glass_ping` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/io.github.dotmoosehosting%2Fdotmoose-tools/changes

## Remotes

- https://mcp.dotmoose.com/tools/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (40)

- `audit_page_links`: Check up to 20 same-origin links found on one page and report the status of each. This is a single page check, not a site crawl.
- `build_dmarc_record`: Assemble a DMARC record from a policy, optional subdomain policy, report addresses, and enforcement percentage.
- `build_spf_record`: Assemble an SPF record from IP ranges, includes, and the a and mx mechanisms, and count its DNS lookup terms against the limit of 10.
- `calculate_bandwidth`: Convert a link speed into maximum daily and monthly transfer, convert monthly transfer into an average rate, and estimate how long a file transfer takes at a given rate.
- `calculate_subnet`: Compute the network address, broadcast or last address, and address counts for an IPv4 or IPv6 CIDR block.
- `check_bimi`: Read the BIMI record for a domain and selector. The selector defaults to default.
- `check_compression`: Check whether a URL is served with gzip or Brotli compression and report the sizes with and without compression.
- `check_dkim`: Read the DKIM public key record for a domain and selector.
- `check_dmarc`: Read the DMARC record published at _dmarc for a domain.
- `check_dns_propagation`: Check A, AAAA, MX, NS, and TXT answers for a hostname at the Cloudflare, Google, and Quad9 resolvers.
- `check_dnssec`: Check the DS and DNSKEY records for a domain and whether a validating resolver sets the AD flag on its answers.
- `check_domain_delegation`: List the delegation nameservers for a domain and the A and AAAA glue addresses for each one.
- `check_favicon`: Locate the favicon a site declares and report its URL, type, and size.
- `check_forward_confirmed_rdns`: Check the PTR record for an IP address and whether the name it returns resolves back to the same address.
- `check_http_chain`: Fetch a URL and return each redirect hop with status codes and response headers.
- `check_http_status`: Fetch a URL and return the final status after following redirects.
- `check_ip_blacklists`: Check an IP address, or the public addresses a hostname resolves to, against the reviewed DNS blacklist providers.
- `check_ipv6_website`: Check whether a site answers over IPv6 and compare the result with IPv4.
- `check_mta_sts`: Read the MTA-STS DNS record and the published policy file for a domain.
- `check_mx_records`: List the MX records for a domain with the A and AAAA addresses of each mail server.
- `check_page_metadata`: Return the title, meta description, canonical URL, headings, hreflang entries, and JSON-LD types found on a page.
- `check_security_txt`: Fetch and parse the security.txt file for a site.
- `check_smtp_starttls`: Connect to the mail servers for a domain on port 25 and report the banner, EHLO response, and STARTTLS support. No mail is sent and no recipient is tested.
- `check_spf`: Read the SPF record for a domain and count the DNS lookup terms in the full include chain against the limit of 10.
- `check_tls_certificate`: Connect to a host on port 443 and return the TLS version, cipher, and certificate details including expiry and subject alternative names.
- `check_tls_configuration`: Observe which TLS protocol versions a host accepts and summarize its TLS configuration.
- `check_tls_rpt`: Read the TLS-RPT record published at _smtp._tls for a domain.
- `check_website_security`: Review the security controls a site exposes in its public responses, including security headers, cookie attributes, and CORS policy.
- `estimate_backup_retention`: Estimate backup storage for a grandfather-father-son retention plan where weekly and monthly copies are full backups and daily copies are increments.
- `estimate_storage_growth`: Project storage size over up to 120 months at a constant monthly growth rate.
- `ip_range_to_cidr`: Convert an IPv4 or IPv6 address range into the smallest set of CIDR blocks that covers it exactly.
- `looking_glass_path`: Sample the route from the DotMoose network in Canada to a public host or IP address, up to 20 hops with three probes per hop.
- `looking_glass_ping`: Send four ICMP echo probes from the DotMoose network in Canada to a public host or IP address.
- `looking_glass_traceroute`: Trace the route from the DotMoose network in Canada to a public host or IP address, up to 20 hops with one probe per hop.
- `lookup_domain_rdap`: Return the public RDAP registration summary for a domain. Registrant contact fields are not returned.
- `lookup_ip_info`: Resolve a hostname, or take an IP address directly, and return RDAP network data and the ASN for each public address.
- `measure_web_performance`: Measure DNS, connect, TLS, and time to first byte for a URL from the DotMoose diagnostic node. This is a network timing sample. It is not a browser rendering benchmark.
- `test_robots_txt`: Fetch the robots.txt for a site and test whether a user agent may fetch a given path.
- `trace_cname_chain`: Follow the CNAME chain for a hostname, up to 12 aliases, and report loops.
- `validate_sitemap`: Fetch the sitemap for a site and report its structure, URL count, and fetch errors.
