{"name":"io.github.dotmoosehosting/dotmoose-tools","slug":"dotmoosehosting-dotmoose-tools","title":null,"description":"Public DNS, mail, TLS, and web diagnostics plus Looking Glass probes via remote MCP.","url":"https://mcp.market/server/dotmoosehosting-dotmoose-tools","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-10-24T01:34:04.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T07:25:29.302Z","last_ok_at":"2026-11-04T07:25:29.302Z","latency_ms":92},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/dotmoosehosting/dotmoose-mcp","website":null,"version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://mcp.dotmoose.com/tools/mcp"}],"packages":[],"tools":[{"name":"audit_page_links","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"build_dmarc_record","description":"Assemble a DMARC record from a policy, optional subdomain policy, report addresses, and enforcement percentage.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"policy":{"type":"string","enum":["none","quarantine","reject"]},"subdomainPolicy":{"type":"string","enum":["none","quarantine","reject"]},"rua":{"maxItems":5,"type":"array","items":{"type":"string","minLength":3,"maxLength":254}},"ruf":{"maxItems":5,"type":"array","items":{"type":"string","minLength":3,"maxLength":254}},"percent":{"default":100,"type":"integer","minimum":1,"maximum":100},"failureReporting":{"default":"1","type":"string","enum":["0","1","d","s"]}},"required":["policy"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"build_spf_record","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ipv4":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"ipv6":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"includes":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}},"useA":{"default":false,"type":"boolean"},"useMx":{"default":false,"type":"boolean"},"redirectDomain":{"type":"string","minLength":1,"maxLength":253},"allQualifier":{"default":"-all","type":"string","enum":["~all","-all","?all","+all"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"calculate_bandwidth","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"linkMbps":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"monthlyTransferGb":{"type":"number","exclusiveMinimum":0,"maximum":1000000000},"fileSizeGb":{"type":"number","exclusiveMinimum":0,"maximum":1000000000}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"calculate_subnet","description":"Compute the network address, broadcast or last address, and address counts for an IPv4 or IPv6 CIDR block.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cidr":{"type":"string","minLength":3,"maxLength":60}},"required":["cidr"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_bimi","description":"Read the BIMI record for a domain and selector. The selector defaults to default.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253},"selector":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,63}$"}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_compression","description":"Check whether a URL is served with gzip or Brotli compression and report the sizes with and without compression.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_dkim","description":"Read the DKIM public key record for a domain and selector.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253},"selector":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,63}$"}},"required":["domain","selector"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_dmarc","description":"Read the DMARC record published at _dmarc for a domain.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_dns_propagation","description":"Check A, AAAA, MX, NS, and TXT answers for a hostname at the Cloudflare, Google, and Quad9 resolvers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_dnssec","description":"Check the DS and DNSKEY records for a domain and whether a validating resolver sets the AD flag on its answers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_domain_delegation","description":"List the delegation nameservers for a domain and the A and AAAA glue addresses for each one.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_favicon","description":"Locate the favicon a site declares and report its URL, type, and size.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_forward_confirmed_rdns","description":"Check the PTR record for an IP address and whether the name it returns resolves back to the same address.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ip":{"type":"string","minLength":1,"maxLength":253}},"required":["ip"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_http_chain","description":"Fetch a URL and return each redirect hop with status codes and response headers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_http_status","description":"Fetch a URL and return the final status after following redirects.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_ip_blacklists","description":"Check an IP address, or the public addresses a hostname resolves to, against the reviewed DNS blacklist providers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":253}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_ipv6_website","description":"Check whether a site answers over IPv6 and compare the result with IPv4.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_mta_sts","description":"Read the MTA-STS DNS record and the published policy file for a domain.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_mx_records","description":"List the MX records for a domain with the A and AAAA addresses of each mail server.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_page_metadata","description":"Return the title, meta description, canonical URL, headings, hreflang entries, and JSON-LD types found on a page.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_security_txt","description":"Fetch and parse the security.txt file for a site.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_smtp_starttls","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_spf","description":"Read the SPF record for a domain and count the DNS lookup terms in the full include chain against the limit of 10.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_tls_certificate","description":"Connect to a host on port 443 and return the TLS version, cipher, and certificate details including expiry and subject alternative names.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":253}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_tls_configuration","description":"Observe which TLS protocol versions a host accepts and summarize its TLS configuration.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":253}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_tls_rpt","description":"Read the TLS-RPT record published at _smtp._tls for a domain.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"check_website_security","description":"Review the security controls a site exposes in its public responses, including security headers, cookie attributes, and CORS policy.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"estimate_backup_retention","description":"Estimate backup storage for a grandfather-father-son retention plan where weekly and monthly copies are full backups and daily copies are increments.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"fullBackupGb":{"type":"number","exclusiveMinimum":0,"maximum":1000000000},"dailyIncrementGb":{"type":"number","minimum":0,"maximum":1000000000},"dailyCopies":{"type":"integer","minimum":0,"maximum":365},"weeklyCopies":{"type":"integer","minimum":0,"maximum":365},"monthlyCopies":{"type":"integer","minimum":0,"maximum":365}},"required":["fullBackupGb","dailyIncrementGb","dailyCopies","weeklyCopies","monthlyCopies"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"estimate_storage_growth","description":"Project storage size over up to 120 months at a constant monthly growth rate.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"currentGb":{"type":"number","exclusiveMinimum":0,"maximum":1000000000},"monthlyGrowthPercent":{"type":"number","minimum":0,"maximum":100},"months":{"type":"integer","minimum":1,"maximum":120}},"required":["currentGb","monthlyGrowthPercent","months"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"ip_range_to_cidr","description":"Convert an IPv4 or IPv6 address range into the smallest set of CIDR blocks that covers it exactly.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"start":{"type":"string","minLength":1,"maxLength":45},"end":{"type":"string","minLength":1,"maxLength":45}},"required":["start","end"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"looking_glass_path","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":253},"family":{"anyOf":[{"type":"number","const":4},{"type":"number","const":6}]}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"looking_glass_ping","description":"Send four ICMP echo probes from the DotMoose network in Canada to a public host or IP address.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":253},"family":{"anyOf":[{"type":"number","const":4},{"type":"number","const":6}]}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"looking_glass_traceroute","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":253},"family":{"anyOf":[{"type":"number","const":4},{"type":"number","const":6}]}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lookup_domain_rdap","description":"Return the public RDAP registration summary for a domain. Registrant contact fields are not returned.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lookup_ip_info","description":"Resolve a hostname, or take an IP address directly, and return RDAP network data and the ASN for each public address.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":253}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"measure_web_performance","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"test_robots_txt","description":"Fetch the robots.txt for a site and test whether a user agent may fetch a given path.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024},"path":{"default":"/","type":"string","minLength":1,"maxLength":1024},"userAgent":{"default":"Googlebot","type":"string","minLength":1,"maxLength":128}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"trace_cname_chain","description":"Follow the CNAME chain for a hostname, up to 12 aliases, and report loops.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"validate_sitemap","description":"Fetch the sitemap for a site and report its structure, URL count, and fetch errors.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":1024}},"required":["target"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}}],"scan":{"score":80,"grade":"B","scanned_at":"2026-10-24T04:04:52.936Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-24T04:04:52.898Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 869ms"]},"poisoning":{"score":15,"max":15,"notes":["40 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://mcp.dotmoose.com/tools/mcp","reachable":true,"authRequired":false,"latencyMs":869,"serverInfo":{"name":"dotmoose-tools","version":"0.1.0"}}],"packages":[],"repo":{"found":true,"owner":"dotmoosehosting","repo":"dotmoose-mcp","archived":false,"pushedAt":"2026-10-24T01:34:04Z","stars":1,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/320364779?v=4","ownerCreatedAt":"2026-08-24T01:06:21Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-10-24T01:34:04.000Z","score":23}}}},"grade_history":[],"reviews":[]}